MehVahdJukaar / FarmersDelightRefabricated

A lightweight farming expansion for Minecraft.
MIT License
24 stars 15 forks source link

Mod causes a disconnect when playing on a server without the mod #56

Open WubzyGD opened 2 months ago

WubzyGD commented 2 months ago

Minecraft version

1.20.1

Farmer's Delight version

2.1.1

Fabric Loader version

15.7

Fabric API version

91

Description

I run a handful of servers bundled in one network for my friends and I. One of them is a fabric survival server, the other two are run on paper.

I would like to begin by clarifying that we have about 200 mods - some of them dealing in world generation, client side, server side, and client/server side interactions, changes, etc - on the fabric server, and have had no issues going from server to server (where one is fabric and the rest are vanilla paper)

I can load into the fabric server without issue and I just tried a public server. But attempting to join any of the others (/server creative) causes a network disconnect.

Steps to reproduce

Have a server network with mismatched launchers Attempt to load into a non-fabric server in the network

Mod list

    - advancementplaques 1.4.11
    - ambientsounds 5.3.9
    - appleskin 2.5.1+mc1.20
    - architectury 9.1.13
    - autohud 6.3.3+1.20.1
    - balm-fabric 7.2.2
    - beenfo 1.20-fabric0.83.0-1.3.3
       |-- crowdin-translate 1.4+1.19.3
       \-- gbfabrictools 1.3.5+1.20
    - betteradvancements 0.3.2.161
    - betterthirdperson 1.9.0
    - blur 3.1.0
       |-- midnightlib 1.4.1
       \-- satin 1.13.0
    - boids 1.1.1
    - bookshelf 20.1.9
    - brb 1.10.0+1.20.0-1
    - cameraoverhaul 1.4.0-fabric-universal
    - chunksfadein 1.0.4-1.20.1
       |-- com_moandjiezana_toml_toml4j 0.7.2
       \-- crowdin-translate 1.4+1.19.3
    - cicada 0.7.1+1.20.1
    - cleanview 1.20.1-v1-fabric
    - cloth-config 11.1.106
       \-- cloth-basic-math 0.6.1
    - cobwebs 1.0.0
    - collective 7.39
    - connectiblechains 2.2.1+1.20.1
    - continuity 3.0.0-beta.3+1.20.1
    - craftingtweaks 18.2.3
    - creativecore 2.11.24
       \-- net_minecraftforge_eventbus 6.0.3
    - cupboard 1.20.1-2.0
    - deepslatetweaks 1.2
    - detailab 2.6.3+1.20.1-fabric
    - diggusmaximus 1.5.9-1.20
       \-- kyrptconfig 1.5.6-1.20
    - do_a_barrel_roll 3.5.5+1.20.1
       \-- fabric-permissions-api-v0 0.2-SNAPSHOT
    - doubledoors 5.4
    - durabilitytooltip 1.1.5
    - dynamiccrosshair 7.4.4+1.20
       \-- yaclx 1.12+1.20.2
    - easyanvils 8.0.1
    - eatinganimationid 1.20+1.9.5
    - ecs 1.3.0-MC1.20
    - elytratrims 3.1.9
       \-- mixinsquared 0.1.2-beta.4
    - enchantment_lore 1.3.2
       |-- crowdin-translate 1.4+1.19.3
       \-- server_translations_api 2.0.0+1.20
            \-- packet_tweaker 0.4.0+1.19.4
    - enchdesc 17.0.14
    - entity_model_features 1.2.3
    - entity_texture_features 5.2.3
       \-- org_apache_httpcomponents_httpmime 4.5.10
    - entityculling 1.6.2-mc1.20.1
    - essential-container 1.0.0
       \-- essential-loader 1.2.0
    - essential-dependencies 0
       \-- fabric-language-kotlin 1.10.19+kotlin.1.9.23
            |-- org_jetbrains_kotlin_kotlin-reflect 1.9.23
            |-- org_jetbrains_kotlin_kotlin-stdlib 1.9.23
            |-- org_jetbrains_kotlin_kotlin-stdlib-jdk7 1.9.23
            |-- org_jetbrains_kotlin_kotlin-stdlib-jdk8 1.9.23
            |-- org_jetbrains_kotlinx_atomicfu-jvm 0.23.2
            |-- org_jetbrains_kotlinx_kotlinx-coroutines-core-jvm 1.8.0
            |-- org_jetbrains_kotlinx_kotlinx-coroutines-jdk8 1.8.0
            |-- org_jetbrains_kotlinx_kotlinx-datetime-jvm 0.5.0
            |-- org_jetbrains_kotlinx_kotlinx-serialization-cbor-jvm 1.6.3
            |-- org_jetbrains_kotlinx_kotlinx-serialization-core-jvm 1.6.3
            \-- org_jetbrains_kotlinx_kotlinx-serialization-json-jvm 1.6.3
    - fabric-api 0.91.0+1.20.1
       |-- fabric-api-base 0.4.30+7abfd51577
       |-- fabric-api-lookup-api-v1 1.6.35+4d8536c977
       |-- fabric-biome-api-v1 13.0.12+215bbe9677
       |-- fabric-block-api-v1 1.0.10+92a0d36777
       |-- fabric-block-view-api-v2 1.0.0+92a0d36777
       |-- fabric-blockrenderlayer-v1 1.1.40+b3afc78b77
       |-- fabric-client-tags-api-v1 1.1.1+97bb207577
       |-- fabric-command-api-v1 1.2.33+f71b366f77
       |-- fabric-command-api-v2 2.2.12+b3afc78b77
       |-- fabric-commands-v0 0.2.50+df3654b377
       |-- fabric-containers-v0 0.1.63+df3654b377
       |-- fabric-content-registries-v0 4.0.10+57aed33f77
       |-- fabric-convention-tags-v1 1.5.4+a1a980da77
       |-- fabric-crash-report-info-v1 0.2.18+aeb40ebe77
       |-- fabric-data-generation-api-v1 12.3.3+d7b148e077
       |-- fabric-dimensions-v1 2.1.53+8536527b77
       |-- fabric-entity-events-v1 1.5.22+b3afc78b77
       |-- fabric-events-interaction-v0 0.6.1+e91849a877
       |-- fabric-events-lifecycle-v0 0.2.62+df3654b377
       |-- fabric-game-rule-api-v1 1.0.39+ae9f657a77
       |-- fabric-item-api-v1 2.1.27+b3afc78b77
       |-- fabric-item-group-api-v1 4.0.11+d7b148e077
       |-- fabric-key-binding-api-v1 1.0.36+fb8d95da77
       |-- fabric-keybindings-v0 0.2.34+df3654b377
       |-- fabric-lifecycle-events-v1 2.2.21+b3afc78b77
       |-- fabric-loot-api-v2 1.2.0+96dfa95977
       |-- fabric-loot-tables-v1 1.1.44+9e7660c677
       |-- fabric-message-api-v1 5.1.8+d7b148e077
       |-- fabric-mining-level-api-v1 2.1.49+b3afc78b77
       |-- fabric-model-loading-api-v1 1.0.2+709a987177
       |-- fabric-models-v0 0.4.1+9386d8a777
       |-- fabric-networking-api-v1 1.3.10+eeb8eb3677
       |-- fabric-networking-v0 0.3.50+df3654b377
       |-- fabric-object-builder-api-v1 11.1.2+4ee0bc6077
       |-- fabric-particles-v1 1.1.1+201a23a077
       |-- fabric-recipe-api-v1 1.0.20+b3afc78b77
       |-- fabric-registry-sync-v0 2.3.2+4df89eb277
       |-- fabric-renderer-api-v1 3.2.0+39a511ba77
       |-- fabric-renderer-indigo 1.5.0+39a511ba77
       |-- fabric-renderer-registries-v1 3.2.45+df3654b377
       |-- fabric-rendering-data-attachment-v1 0.3.36+92a0d36777
       |-- fabric-rendering-fluids-v1 3.0.27+b3afc78b77
       |-- fabric-rendering-v0 1.1.48+df3654b377
       |-- fabric-rendering-v1 3.0.7+b3afc78b77
       |-- fabric-resource-conditions-api-v1 2.3.7+29de845d77
       |-- fabric-resource-loader-v0 0.11.9+132c48c177
       |-- fabric-screen-api-v1 2.0.7+b3afc78b77
       |-- fabric-screen-handler-api-v1 1.3.29+b3afc78b77
       |-- fabric-sound-api-v1 1.0.12+b3afc78b77
       |-- fabric-transfer-api-v1 3.3.3+c81d263177
       \-- fabric-transitive-access-wideners-v1 4.3.0+6c31357e77
    - fabricloader 0.15.7
       \-- mixinextras 0.3.5
    - fallingleaves 1.15.4
    - farmersdelight 1.20.1-2.1.1+refabricated
       |-- mm 2.3
       |-- porting_lib_accessors 2.3.4+1.20.1
       |    \-- porting_lib_core 2.3.4+1.20.1
       |-- porting_lib_base 2.3.4+1.20.1
       |    |-- porting_lib_attributes 2.3.4+1.20.1
       |    |-- porting_lib_common 2.3.4+1.20.1
       |    |-- porting_lib_core 2.3.4+1.20.1
       |    |-- porting_lib_entity 2.3.4+1.20.1
       |    |-- porting_lib_fluids 2.3.4+1.20.1
       |    |-- porting_lib_mixin_extensions 2.3.4+1.20.1
       |    |-- porting_lib_transfer 2.3.4+1.20.1
       |    |-- porting_lib_utility 2.3.4+1.20.1
       |    \-- reach-entity-attributes 2.4.0
       |-- porting_lib_client_events 2.3.4+1.20.1
       |    \-- porting_lib_core 2.3.4+1.20.1
       |-- porting_lib_config 2.3.4+1.20.1
       |    \-- porting_lib_core 2.3.4+1.20.1
       |-- porting_lib_extensions 2.3.4+1.20.1
       |    |-- porting_lib_attributes 2.3.4+1.20.1
       |    |-- porting_lib_common 2.3.4+1.20.1
       |    |-- porting_lib_core 2.3.4+1.20.1
       |    \-- reach-entity-attributes 2.4.0
       |-- porting_lib_lazy_registration 2.3.4+1.20.1
       |    \-- porting_lib_core 2.3.4+1.20.1
       |-- porting_lib_loot 2.3.4+1.20.1
       |    \-- porting_lib_core 2.3.4+1.20.1
       |-- porting_lib_networking 2.3.4+1.20.1
       |    \-- porting_lib_core 2.3.4+1.20.1
       |-- porting_lib_recipe_book_categories 2.3.4+1.20.1
       |    \-- porting_lib_core 2.3.4+1.20.1
       |-- porting_lib_registries 2.3.4+1.20.1
       |    \-- porting_lib_core 2.3.4+1.20.1
       |-- porting_lib_tags 3.0
       |    \-- porting_lib_core 2.3.4+1.20.1
       \-- porting_lib_tool_actions 2.3.4+1.20.1
            \-- porting_lib_core 2.3.4+1.20.1
    - farsight 1.20.1-4.2
       \-- org_jctools_jctools-core 4.0.1
    - firstperson 2.4.1
    - forgeconfigapiport 8.0.0
    - fsit v1.3.0
       |-- com_electronwill_night-config_core 3.6.6
       \-- com_electronwill_night-config_toml 3.6.6
    - iceberg 1.1.18
    - immersive_paintings 0.6.7+1.20.1
    - incendium 5.3.1
    - indium 1.0.27+mc1.20.1
    - inventoryessentials 8.2.3
    - inventorysorter 1.9.0-1.20
       \-- kyrptconfig 1.5.6-1.20
    - invmove 0.8.4
    - iris 1.6.11
       |-- io_github_douira_glsl-transformer 2.0.0-pre13
       |-- org_anarres_jcpp 1.4.14
       \-- org_antlr_antlr4-runtime 4.11.1
    - itemborders 1.2.1
    - items_displayed 1.2.2
    - java 17
    - journeymap 5.9.12
       \-- journeymap-api-fabric 1.20-1.9-fabric-SNAPSHOT
    - legendarytooltips 1.4.5
    - litematica 0.15.3
    - litematica_printer 3.2
    - malilib 0.16.1
    - maptooltip 3.0.0
    - merchantmarkers 1.3.1
    - minecraft 1.20.1
    - minihud 0.27.0
    - modmenu 7.2.2
    - nemos-woodcutter 1.6.0-1.20.1
    - noexpensive 1.20.1-1.9.0
    - nullscape 1.2.2
    - nvidium 0.2.4-beta
    - physicsmod 3.0.6
    - presencefootsteps 1.9.0
       \-- kirin 1.15.0
    - prism 1.0.5
    - puzzleslib 8.1.20
       \-- puzzlesaccessapi 8.0.7
    - replanter 1.3
    - replaymod 1.20.1-2.6.13
    - roughlyenoughitems 12.0.684
       \-- error_notifier 1.0.9
    - sfcr 1.7.6-mc1.20
    - signtools 1.0.3
    - silkspawners 1.1.3
    - skinlayers 1.5.4-mc1.20.1
    - smoothswapping 0.9.3.1
    - sodium 0.5.3
    - sound_physics_remastered 1.20.1-1.1.2
    - status-effect-bars 1.0.3
    - supermartijn642configlib 1.1.8+a
    - supermartijn642corelib 1.1.17
    - terralith 2.4.3
    - tia 1.20-1.1
    - trade_cycling 1.20.1-1.0.7
    - vectorientation 1.1
    - voicechat 1.20.1-2.4.32
    - worldedit 7.2.15+6463-5ca4dff
    - yeetusexperimentus 2.3.0-build.4+mc1.20.1
    - yet_another_config_lib_v3 3.2.2+1.20
       |-- com_twelvemonkeys_common_common-image 3.10.0-SNAPSHOT
       |-- com_twelvemonkeys_common_common-io 3.10.0-SNAPSHOT
       |-- com_twelvemonkeys_common_common-lang 3.10.0-SNAPSHOT
       |-- com_twelvemonkeys_imageio_imageio-core 3.10.0-SNAPSHOT
       |-- com_twelvemonkeys_imageio_imageio-metadata 3.10.0-SNAPSHOT
       |-- com_twelvemonkeys_imageio_imageio-webp 3.10.0-SNAPSHOT
       |-- org_quiltmc_parsers_gson 0.2.1
       \-- org_quiltmc_parsers_json 0.2.1

Logs

latest.log

15:38:19.687
Essential Logger
Netty Client IO #8
Network Exception Caught
io.netty.handler.codec.DecoderException: net.minecraft.class_151: Non [a-z0-9/._-] character in path of location: inecraft:piston#minecraft:yellow_dye_from_dandelion\u0012minecraft:charcoal\u0017minecraft:stone_pickaxe\u0015minecraft:ston
    at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:489)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:280)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
    at com.replaymod.recording.packet.PacketListener.channelRead(PacketListener.java:380)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:336)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:308)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:336)
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)
    at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:444)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:280)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: net.minecraft.class_151: Non [a-z0-9/._-] character in path of location: inecraft:piston#minecraft:yellow_dye_from_dandelion\u0012minecraft:charcoal\u0017minecraft:stone_pickaxe\u0015minecraft:ston
    at net.minecraft.class_2960.method_45137(class_2960.java:252)
    at net.minecraft.class_2960.<init>(class_2960.java:47)
    at net.minecraft.class_2960.<init>(class_2960.java:51)
    at net.minecraft.class_2960.<init>(class_2960.java:56)
    at net.minecraft.class_2540.method_10810(class_2540.java:723)
    at net.minecraft.class_2540.method_34068(class_2540.java:218)
    at net.minecraft.class_2540.method_34066(class_2540.java:231)
    at net.minecraft.class_2713.<init>(class_2713.java:35)
    at net.minecraft.class_2539$class_4532.method_22310(class_2539.java:459)
    at net.minecraft.class_2539.method_10783(class_2539.java:522)
    at net.minecraft.class_2543.decode(class_2543.java:32)
    at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:519)
    at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:458)
    ... 41 more

Minimal instance

Performance and shader mods

MehVahdJukaar commented 1 month ago

most mods cant work if you dont add them to the server. its like trying to connect a 1.21 client to a 1.20.1 server. Hopefully that makes sense

WubzyGD commented 1 month ago

I can see where it may cause some issues, but again, the main one at hand is that after a myriad of mods, this is the only one that causes issues. And that's accounting for us having mods like terralith and other mods that add blocks and such, and none of them are problematic when switching between servers. I imagine a fix is somewhat trivial.

At this point I'm more or less at a loss. We can't disable farmer's and can't realistically enable it on the vanilla servers, so if there's any way a fix can be made, it would be greatly appreciated.

On Fri, Jul 26, 2024, 10:04 AM MehVahdJukaar @.***> wrote:

most mods cant work if you dont add them to the server. its like trying to connect a 1.21 client to a 1.20.1 server. Hopefully that makes sense

— Reply to this email directly, view it on GitHub https://github.com/MehVahdJukaar/FarmersDelight/issues/56#issuecomment-2252847290, or unsubscribe https://github.com/notifications/unsubscribe-auth/APBS37DDHHCHFJBRMXWXUMDZOJJPFAVCNFSM6AAAAABKMSCSHGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENJSHA2DOMRZGA . You are receiving this because you authored the thread.Message ID: @.***>

MehVahdJukaar commented 1 month ago

It doesn't really matter. This is not an issue, mods are not made to be used on a mismatched connection like that. If they are they will be marked as client only. There are many things that could cause this, heck in forge the loader itself will enforce this not allowing you to connect if registries are out of sync. Many issues and client side desyncs can and will happen when you have mods that ste not on the server. Like idk performing an action thanks to an event only to see it quickly replaced back as the server informs the client that infact nothing happened.

MehVahdJukaar commented 1 month ago

If you want to connect to a server without the mod simply boot up an instance without, it's that simple

MehVahdJukaar commented 1 month ago

Also terralith is just a datapack, a server side mod. It doesn't even need to be there on the client. Why do you even want to connect to a server that doesn't have the mod? You won't be able to use any of the mod features there

WubzyGD commented 1 month ago

Terralith is a mod jar in my mods folder, as you can see above. No idea if it provides anything to the client, but it was a quick example. I had a minimal hand in building the pack - I just run the server. I again have dozens and dozens of mods-- that's the main thing to bear in mind.

I'm glad forge doesn't allow connections with mismatched registries. Perhaps fabric chose not to include this block for a reason? And perhaps also the dozens upon dozens of mods I have don't cause any issues... for a reason?

My friends and I enjoy the benefits of being able to quickly swap to a separate world/server from within a small hub of servers to, for example, test a build in a plain creative superflat. To be specific, this is one single server connection proxied to separate instances on my machine. I just /server creative or /server home (survival) and we can jump around. Our modpack, with this mod being a new exception, is a vanilla+ sort of pack that doesn't make any significant additions to the game worth making available in the other servers.

Arguing however at this point is pointless. If you want to chalk it off to a me issue, I'll decompile or clone and add conditionals to prevent this issue myself. I thought the developer of the mod might be willing to take a few minutes and see if they could point me in a better direction or lend some time and effort to solve an issue clearly sourced from and unique to their mod, but that seems not the case, and I apologize for wasting your time.

MehVahdJukaar commented 1 month ago

any mod contains a datapack. terralith is specifically one thats primairly if just the datapack, bundled as a mod. Most worldgen mods are server only as worldgen is something server driven. Fabric doesnt include that for the same reason why doing anything on it always requires re inventing the wheel: it just doesnt have any features. As for the mods you have you WILL have desyncs. maybe just minor that you never noticed but as ive said mods that arent marked as client side are not meant to be used like that. This obviously is deeply untested territory too. Looking at you mod list you also do have a majority of them being either client side only or server side only stuff like terralith. Oh and the log you sent is the client one. Its the server one that will tell why it didnt accept the client