Farmer's Delight Refabricated

Farmer's Delight Refabricated

12M Downloads

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

Closed this issue · 12 comments

commented

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

  • I have tested this on a minimal instance

Performance and shader mods

  • I am using performance or shader mods
commented

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

commented
commented

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.

commented

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

commented

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

commented

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.

commented

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

commented

So this mod is unable to be used on Velocity Networks? As I have the same issue when trying to connect to our paper lobby/hub and traced to this mod being the issue. By making a modpack with only fabric API and this version of Farmer's Delight for Fabric, I get the same error. We were trying to update our Create server on the Network, that has the now Depracated Farmer's Delight for Fabric, which works fine but with addons no longer supporting we tried switching to this version.

commented

Report to velocity. Could be that it's "caused" by porting lib but caused is a big world. Most issues related to velocity are velocity fault as it's a tool meant for vanilla and it's bound to break with mods

commented

Okay, so I've narrowed down the issue to a part of the codebase. I am rewriting the packets within that section of the codebase to make sure this won't happen again.

commented

I've managed to fix this on 1.21.1, when 1.20.1 will receive this same fix, I'm unsure, but I do plan on it.

commented

Thank you for the help.