Aizistral-Studios / No-Chat-Reports

Disable Player Chat Reporting and make user messages untrackable.
https://modrinth.com/mod/no-chat-reports
Do What The F*ck You Want To Public License
950 stars 78 forks source link

When encryption is enabled, writing the schematic materials list to a file causes the game to crash #484

Open notavaliablename opened 4 months ago

notavaliablename commented 4 months ago

Modloader

Fabric

Minecraft Version

1.21

Modloader Version

Fabric Loader 0.16.0 + API 0.100.7+1.21

No Chat Reports Version

1.21-v2.8.0

Modpack Info

No response

The latest.log File

No response

Bug Description

I have both the No Chat Reports and Litematica mods installed (version 1.21 is currently maintained by Sakura-Ryoko). The Litematica mod can write the schematic materials list to a file, but when I enable chat encryption from No Chat Reports and then try to write the file, it causes the game to crash. 351711155-1ae7fac9-38e1-4d75-8dc9-ee065e48506e

I have ruled out other possibilities, and the issue also occurs when only No Chat Reports and Litematica are installed. I attempted to submit an issue to the current maintainer of Litematica, and she stated that she cannot fix this problem and said it's a bug with 'No Chat Reports.' She advised me to report this issue to you.

Steps to Reproduce

1.Install the No Chat Reports, Litematica, and Fabric API 2.Write a schematic materials list to a file 3.Game crashed

Other Information

Here is the original response from the current maintainer of Litematica

Why is No Chat Reports concerned with Writing / Reading files ?

I also don't understand why its doing this:

at fi.dy.masa.malilib.util.StringUtils.sendOpenFileChatMessage(StringUtils.java:82)
at fi.dy.masa.litematica.gui.GuiMaterialList$ButtonListener.actionPerformedWithButton(GuiMaterialList.java:301)
at fi.dy.masa.malilib.gui.button.ButtonBase.onMouseClickedImpl(ButtonBase.java:85)
at fi.dy.masa.malilib.gui.widgets.WidgetBase.onMouseClicked(WidgetBase.java:92)
at fi.dy.masa.malilib.gui.GuiBase.onMouseClicked(GuiBase.java:280)
at fi.dy.masa.malilib.gui.GuiListBase.onMouseClicked(GuiListBase.java:92)
at fi.dy.masa.malilib.gui.GuiBase.method_25402(GuiBase.java:222)

I did more code digging, and this is a "NoChatReports" bug. Report it to them, as their JSON Serializer is passing an Empty Dynamic Registry during their "Encrypt / Decrypt" attempts.

public static Component recreate(Component component) {
        return Component.Serializer.fromJson(Component.Serializer.toJson(component, RegistryAccess.EMPTY), RegistryAccess.EMPTY);
    }

EMPTY Dynamic Registry (RegistryAccess) objects causes crashes.