End-Tech / syncmatica

Server-wide shared litematics.
Creative Commons Zero v1.0 Universal
97 stars 26 forks source link

1.20.2 Support #63

Closed sakura-ryoko closed 11 months ago

sakura-ryoko commented 1 year ago

Hello, I have attempted to port the mod myself, but ran into Custom C2S/S2C Payload (net.minecraft.network.packet.c2s.common.CustomPayloadC2SPacket) issues that I don't know how to fix. Thanks! :)

nnnik commented 1 year ago

I don't have the energy to look at it right now. I will hand in an assignment next week after that I will come back to you. Otherwise feel free to message me on discord :).

sakura-ryoko commented 1 year ago

Check out this fork, they seem to have fixed some of the issues I was referring to, but I haven't tried it: https://github.com/End-Tech/syncmatica/compare/master...jSdCool:syncmatica:1.20.2

jSdCool commented 1 year ago

I am current running into an issue where when a client connects they get immediately disconnected because a packed contained 37 more bytes then expected. or an unsupported operation occurred. no idea why this is happening.

sakura-ryoko commented 1 year ago

Yeah interesting code but I am looking around at other mods and they are completely ditching the "CustomPayloadC2SPacket" handler based code. Take a look at this DIFF for ServUX for example: https://github.com/maruohon/servux/commit/40c87cdd4c254b31ba1187eb4251f4e6d02446aa#diff-8b2b4dc2beddf33f175067672b99fa8dcd3900d5283846b3077fc01274f94546

It is my hunch that Syncmatica's packet handler needs a rewrite, essentially to support the newer Fabric API calls. I was building a test version and the MOD compiled and installed, and the problem I was having is that it kept saying "Unknown Identifier syncmatica:payload" referring to the networking code.

Although I am not smart enough with Java to do such a thing.

nnnik commented 1 year ago

Yeah I will probably ditch it too and go even further and remove PacketByteBuf too for my own implementation.

sakura-ryoko commented 1 year ago

Yeah the GUI and everything was working fine using masa's current litematica code, just the "Share" and "View Schematics" buttons were greyed out. Also the fabric.mod.json needed a few extra lines for version numbers instead of "*" ... it kept whining about that and failed to load the mod without it, but in terms of lazy porting I think I understand that work flow at least! :)

jSdCool commented 1 year ago

The reason it was saying "Unknown Identifier syncmatica:payload" is most likely because in 1.20.2 the supported types of custom payloads are hard coded into the C2S and S2C classes. I used a mixin in my attempt to bypass this hard coding.

I think Ditching the Custom Payload packs might be a good idea.

If possible I recommend using the fabric network API V1

nnnik commented 1 year ago

See the thing is syncmatica 0.3.10 can still communicate with syncmatica 0.2.0. I have invested a lot of code into making this work. I'd rather stop developing altogether than moving away from C2S and S2C packets.

sakura-ryoko commented 1 year ago

It might still work if the "unknown identifier" part is resolved ... idk. I'm just hopeful it can get sorted out.

Adogs1 commented 11 months ago

所以syncmatica1.20.2无法更新了?