edwinmindcraft / calio Goto Github PK
View Code? Open in Web Editor NEWThis project forked from apace100/calio
Calio is a simple library mod for Minecraft Fabric, its main feature being the serializable data system.
License: MIT License
This project forked from apace100/calio
Calio is a simple library mod for Minecraft Fabric, its main feature being the serializable data system.
License: MIT License
Confirmed on 1.19.x/forge aece46e, buildscript 1.19.x/forge e4f58032
Not yet confirmed Does not occur on 1.20.x/forge.
When in singleplayer, the RegistryAccess
used by the internal server appears to be obtained from RegistryAccess.BUILTIN
. The code in ClientHelper.isServerContext
assumes that this is not the case, and thus always returns false. This can cause datapack reloads in singleplayer to unexpectedly fail as the server will attempt to send the client's registries to the client.
Aside from one instance in origins-architectury:PartialOrigin.Builder.powers, the access
argument is always null. As such, it may be possible to remove the comparison to RegistryAccess.BUILTIN
and just use the null check. This may have some regressions, and I suspect that a better solution exists.
MC Version: 1.19.2
Forge Version: 43.1.47
Calio Forge Version: 1.6.0.3
Origin Forge Version: 1.5.0.6
Server-to-client packets are too big:
Payload may not be larger than 1048576 bytes
Confirmed on 1.19.x/forge aece46e, buildscript 1.19.x/forge e4f58032
Although the structure of the code in HolderCodec
is different, this bug also seems to apply to 1.20.x/forge.
When the client receives multiple S2CDynamicRegistryPacket
s for the same registry, it will decode and handle them concurrently. However, the call(s) to access.get
in HolderCodec.decode
may happen concurrently with the call to CalioDynamicRegistryManager.reset
in S2CDynamicRegistryPacket.handle
. If this occurs, the call to access.get
may fail with IllegalArgumentException.
I was able to fix the problem on a local copy by placing locks around accesses to CalioDynamicRegistryManager.registries
. However, this came with a performance penalty. A better solution may be to remove the call to registries.remove
in CalioDynamicRegistryManager.reset
, but I am unsure of the potential regressions of that change.
In order to force the packets to be split, I used Origins++. However, this could occur with any sufficiently large datapack.
I suspect this to be the cause of EdwinMindcraft/origins-architectury#405 and its duplicates.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.