arxenix / better-shulkers

better-shulkers
Creative Commons Zero v1.0 Universal
14 stars 3 forks source link

Mod not working outside of single player world #8

Open AntoineMary opened 3 years ago

AntoineMary commented 3 years ago

Hi, Was trying this mod (awesome mod by the way, for having created it so fast after the video) But there a little problem when using separate client and server. I never use single player server always made one on one on my spare computer for my worlds.

For all the test cases :

Mod on client only, fabric loader only on remote : Item appear in creative, can be added to inv but no possibility to enchant is using enchant table and when using anvil merge is proposed but skulker disappear on click (Seems normal to me and was expecting this behaviour)

Fabric only Client, Fabric server with mod : Items in creative menu can be added to inv, enchanting table works and anvil too but there no label, enchant book have no name (Expected too as both party need labels)

Mods on both side : All text are here, all is working as expected until I try to place / break any shulker box enchanted or not and instant crash the server with the following message :

[13:03:27] [Server thread/ERROR]: Encountered an unexpected exception
java.lang.NoSuchMethodError: 'net.minecraft.class_1767 net.minecraft.class_2627.method_11320()'
        at dev.arxenix.bettershulkers.ShulkerUtilsKt.itemStackFromBlockEntity(ShulkerUtilsKt.java:108) ~[bettershulkers-v0.1.0-1.16.x_alpha.jar:?]
        at net.minecraft.class_2480.method_9560(class_2480.java:550) ~[intermediary-server.jar:?]
        at net.minecraft.class_4970$class_4971.method_26189(class_4970.java:890) ~[intermediary-server.jar:?]
        at net.minecraft.class_2248.method_9609(class_2248.java:325) ~[intermediary-server.jar:?]
        at net.minecraft.class_2248.method_9511(class_2248.java:351) ~[intermediary-server.jar:?]
        at net.minecraft.class_2248.method_9556(class_2248.java:402) ~[intermediary-server.jar:?]
        at net.minecraft.class_3225.method_14266(class_3225.java:268) ~[intermediary-server.jar:?]
        at net.minecraft.class_3225.method_21717(class_3225.java:222) ~[intermediary-server.jar:?]
        at net.minecraft.class_3225.method_14263(class_3225.java:197) ~[intermediary-server.jar:?]
        at net.minecraft.class_3244.method_12066(class_3244.java:940) ~[intermediary-server.jar:?]
        at net.minecraft.class_2846.method_12361(class_2846.java:40) ~[intermediary-server.jar:?]
        at net.minecraft.class_2846.method_11054(class_2846.java:10) ~[intermediary-server.jar:?]
        at net.minecraft.class_2600.method_11072(class_2600.java:21) ~[intermediary-server.jar:?]
        at net.minecraft.class_3738.run(class_3738.java:18) ~[intermediary-server.jar:?]
        at net.minecraft.class_1255.method_18859(class_1255.java:144) ~[intermediary-server.jar:?]
        at net.minecraft.class_4093.method_18859(class_4093.java:23) ~[intermediary-server.jar:?]
        at net.minecraft.server.MinecraftServer.method_24306(MinecraftServer.java:758) ~[intermediary-server.jar:?]
        at net.minecraft.server.MinecraftServer.method_18859(MinecraftServer.java:152) ~[intermediary-server.jar:?]
        at net.minecraft.class_1255.method_16075(class_1255.java:118) ~[intermediary-server.jar:?]
        at net.minecraft.server.MinecraftServer.method_20415(MinecraftServer.java:740) ~[intermediary-server.jar:?]
        at net.minecraft.server.MinecraftServer.method_16075(MinecraftServer.java:734) ~[intermediary-server.jar:?]
        at net.minecraft.class_1255.method_18857(class_1255.java:127) ~[intermediary-server.jar:?]
        at net.minecraft.server.MinecraftServer.method_16208(MinecraftServer.java:719) ~[intermediary-server.jar:?]
        at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:671) ~[intermediary-server.jar:?]
        at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:254) ~[intermediary-server.jar:?]
        at java.lang.Thread.run(Thread.java:832) [?:?]

Moreover at start of server I get those lines messages :

[13:02:48] [main/WARN]: Error loading class: net/minecraft/class_756 (java.lang.ClassNotFoundException: net/minecraft/class_756)
[13:02:48] [main/WARN]: @Mixin target net.minecraft.class_756 was not found bettershulkers.mixins.json:BuiltinModelItemRendererMixin
[13:02:48] [main/WARN]: Error loading class: net/minecraft/class_834 (java.lang.ClassNotFoundException: net/minecraft/class_834)
[13:02:48] [main/WARN]: @Mixin target net.minecraft.class_834 was not found bettershulkers.mixins.json:ShulkerBoxBlockEntityRendererMixin
Could not find code source for magic-at:/net/minecraft/class_1886$15.class: java.net.MalformedURLException: unknown protocol: magic-at
[13:02:51] [main/INFO]: BetterShulkers - fabric mod initialized

To me magic-at error is unrelated to bettershulker but I did not look yet into your code and I think it is just a problem of the mod init on server side.

I will try to write a fix and make a PR for it, but never really write a mod with fabric so if you have some clue or already a solution I take it :)

Edit : For the two error at startup it just come from the mixins the two only need to be injected client side Edit2: The problem come from the method that get color, it is only implemented client side

arxenix commented 3 years ago

Thanks for the detailed report! This should be resolved shortly.