Closed tal5 closed 1 year ago
if you want me to store a public static final Field and all.
strongly preferred, in part because it yields an error message quicker while loading if it's wrong in a future update
if you want me to store a public static final Field and all.
strongly preferred, in part because it yields an error message quicker while loading if it's wrong in a future update
Should be done
Explanation
1.20.2 has a new
PlayerChunkSender
class, probably as part of their new chunk handling - it's stored in a field onServerGamePacketListenerImpl
, is created in the constructor, and gets used in a few places outside of that for chunk stuff. This PR sets the old listener's one into our overring one, which seems to fix the issues with chunk loading (using reflection as it'sfinal
).Additions
ReflectionMappingsInfo.ServerGamePacketListenerImpl_chunkSender
- reflection mappings for thePlayerChunkSender
field.Changes
PlayerChunkSender
to the old listener's one inAbstractListenerPlayInImpl
's constructor.Notes
UsedReflectionHelper#setFieldValue
instead of storing aField
and all as it's cleaner and this isn't really a hot code path (the constructor specifically isn't, at least), but let me know if you want me to store apublic static final Field
and all.