Quality of Life (QoL) Fixes
Mod Overview
This mod for the Fabric loader offers numerous useful improvements and fixes that make the Minecraft gaming experience more comfortable. All features can be customized according to your preferences through the configuration file.
Main Features
The mod eliminates annoying error messages "... moved too quickly!..." that appear when the server thinks the player is moving at excessive speed. It also disables automatic teleportation of players back when moving quickly. These improvements work for vehicles as well.
Important technical fixes have been implemented: AbstractCriterion progressions now use thread-safe sets, solving problems similar to this one. Various elements have been made safe for null pointers, including getHeightOffset for ShulkerEntity, preventing errors like this one.
Significantly increased maximum stack size for many items to 64 units (toggleable feature): saddles, buckets, milk buckets, entity buckets, powdered snow buckets, snowballs, boats, ender pearls, eggs, enchanted books, honey bottles, potions, music discs, horse armor, stews.
Technical Fixes
Fixed ConcurrentModificationException error in StructureTemplate.PalettedBlockInfoList:
Caused byjava.util.ConcurrentModificationException
at java.util.HashMap.computeIfAbsent(HashMap.java:1221) ~[?:?]
at net.minecraft.structure.StructureTemplate$PalettedBlockInfoList.getAllOf(StructureTemplate:773) ~[?:?]
at net.minecraft.structure.StructureTemplate.getInfosForBlock(StructureTemplate:184) ~[?:?]
at net.minecraft.structure.pool.SinglePoolElement.getStructureBlockInfos(SinglePoolElement:111) ~[?:?]
Resolved the issue with incorrect sound packets that led to client disconnection from the server:
[21.11 14:17:52] [Server] [Netty Epoll Server IO #2/ERROR]: Error receiving packet 96 [21.11 14:17:52] [Server] java.lang.IllegalArgumentExceptionCan't find id for 'net.minecraft.class_3414@164a3a7a' in map Registry[ResourceKey[minecraft:root / minecraft:sound_event] (Experimental)] [21.11 14:17:52] [Server] at Not Enough Crashes deobfuscated stack trace.(1.19.2+build.28) ~[?:?] [21.11 14:17:52] [Server] at net.minecraft.network.PacketByteBuf.writeRegistryValue(PacketByteBuf:147) ~[?:?] [21.11 14:17:52] [Server] at net.minecraft.network.packet.s2c.play.PlaySoundS2CPacket.write(PlaySoundS2CPacket:47) ~[?:?] [21.11 14:17:52] [Server] at net.minecraft.network.PacketEncoder.encode(PacketEncoder:45) ~[?:?] [21.11 14:17:52] [Server] at net.minecraft.network.PacketEncoder.encode(PacketEncoder:14) ~[?:?] [21.11 14:17:52] [Server] at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107) [netty-codec-4.1.77.Final.jar:?] [21.11 14:17:52] [Server] at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) [netty-transport-4.1.77.Final.jar:?] [21.11 14:17:52] [Server] at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:764) [netty-transport-4.1.77.Final.jar:?] [21.11 14:17:52] [Server] at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1071) [netty-transport-4.1.77.Final.jar:?] [21.11 14:17:52] [Server] at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) [netty-common-4.1.77.Final.jar:?] [21.11 14:17:52] [Server] at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) [netty-common-4.1.77.Final.jar:?] [21.11 14:17:52] [Server] at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) [netty-common-4.1.77.Final.jar:?] [21.11 14:17:52] [Server] at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:391) [netty-transport-classes-epoll-4.1.77.Final.jar:?] [21.11 14:17:52] [Server] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995) [netty-common-4.1.77.Final.jar:?] [21.11 14:17:52] [Server] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.77.Final.jar:?] [21.11 14:17:52] [Server] at java.lang.Thread.run(Thread.java:833) [?:?] [21.11 14:17:52] [Server] [Netty Epoll Server IO #2/ERROR]: [QoLFixes] Failed to register SoundEvent Packet with ID platypus:platypus_ambient [21.11 14:17:52] [Server] [Netty Epoll Server IO #2/WARN]: [QoLFixes] Skipping write error for the bad Sound packet
Configuration
All features can be enabled and disabled in the configuration file config/qolfixes.json5. Detailed configuration documentation can be found at https://github.com/spoorn/QoLFixes/blob/main/config-documentation.json5.
Dependencies
Required for the mod to work:
- Fabric API - https://modrinth.com/mod/fabric-api
