AbdElAziz333 / Canary

A performance mod designed to optimize Minecraft's general performance and unofficial fork of Lithium mod for Minecraft Forge.
https://www.curseforge.com/minecraft/mc-mods/canary
GNU Lesser General Public License v3.0
41 stars 3 forks source link

Canary's sleeping tile entities have invalid name, preventing listing tile entities with Crash Utilities #224

Open C0deH4cker opened 3 months ago

C0deH4cker commented 3 months ago

Version Information

canary-mc1.19.2-0.3.3

Expected Behavior

Listing active tile entities using Crash Utilities should work when Canary is installed on a server.

Actual Behavior

An exception is thrown. Canary's sleeping tile entities have the name <canary_sleeping>, which contains the invalid characters <>. Responsible source line: https://github.com/AbdElAziz333/Canary/blob/a109fe12abea309e7931107a1bcb71ecb82502cd/src/main/java/com/abdelaziz/canary/common/block/entity/SleepingBlockEntity.java#L23

[05Jun2024 11:27:27.564] [Server thread/ERROR] [net.minecraft.commands.Commands/]: Command exception: /cu tileentities list
net.minecraft.ResourceLocationException: Non [a-z0-9/._-] character in path of location: minecraft:<canary_sleeping>
at net.minecraft.resources.ResourceLocation.<init>(ResourceLocation.java:37) ~[server-1.19.2-20220805.130853-srg.jar%23625!/:?]
at net.minecraft.resources.ResourceLocation.<init>(ResourceLocation.java:42) ~[server-1.19.2-20220805.130853-srg.jar%23625!/:?]
at com.darkere.crashutils.DataStructures.TileEntityData.lambda$createLists$0(TileEntityData.java:41) ~[crashutilities-6.2.jar%23413!/:6.2]
at java.util.ArrayList.forEach(Unknown Source) ~[?:?]
at com.darkere.crashutils.DataStructures.TileEntityData.createLists(TileEntityData.java:33) ~[crashutilities-6.2.jar%23413!/:6.2]
at com.darkere.crashutils.CrashUtilCommands.TileEntityCommands.AllLoadedTEsCommand.run(AllLoadedTEsCommand.java:31) ~[crashutilities-6.2.jar%23413!/:6.2]
at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:263) ~[brigadier-1.0.18.jar%2374!/:?]
at net.minecraft.commands.Commands.m_242674_(Commands.java:240) ~[server-1.19.2-20220805.130853-srg.jar%23625!/:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.m_242600_(ServerGamePacketListenerImpl.java:1239) ~[server-1.19.2-20220805.130853-srg.jar%23625!/:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$12(ServerGamePacketListenerImpl.java:1217) ~[server-1.19.2-20220805.130853-srg.jar%23625!/:?]
at net.minecraft.util.thread.BlockableEventLoop.m_18693_(BlockableEventLoop.java:68) ~[server-1.19.2-20220805.130853-srg.jar%23625!/:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(Unknown Source) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[server-1.19.2-20220805.130853-srg.jar%23625!/:?]
at net.minecraft.util.thread.BlockableEventLoop.m_6367_(BlockableEventLoop.java:157) ~[server-1.19.2-20220805.130853-srg.jar%23625!/:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.m_6367_(ReentrantBlockableEventLoop.java:23) ~[server-1.19.2-20220805.130853-srg.jar%23625!/:?]
at net.minecraft.server.MinecraftServer.m_6367_(MinecraftServer.java:763) ~[server-1.19.2-20220805.130853-srg.jar%23625!/:?]
at net.minecraft.server.MinecraftServer.m_6367_(MinecraftServer.java:157) ~[server-1.19.2-20220805.130853-srg.jar%23625!/:?]
at net.minecraft.util.thread.BlockableEventLoop.m_7245_(BlockableEventLoop.java:131) ~[server-1.19.2-20220805.130853-srg.jar%23625!/:?]
at net.minecraft.server.MinecraftServer.m_129961_(MinecraftServer.java:746) ~[server-1.19.2-20220805.130853-srg.jar%23625!/:?]
at net.minecraft.server.MinecraftServer.m_7245_(MinecraftServer.java:740) ~[server-1.19.2-20220805.130853-srg.jar%23625!/:?]
at net.minecraft.util.thread.BlockableEventLoop.m_18699_(BlockableEventLoop.java:116) ~[server-1.19.2-20220805.130853-srg.jar%23625!/:?]
at net.minecraft.server.MinecraftServer.m_130012_(MinecraftServer.java:725) ~[server-1.19.2-20220805.130853-srg.jar%23625!/:?]
at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:658) ~[server-1.19.2-20220805.130853-srg.jar%23625!/:?]
at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:244) ~[server-1.19.2-20220805.130853-srg.jar%23625!/:?]
at java.lang.Thread.run(Unknown Source) [?:?]

Reproduction Steps

I don't know enough of how Canary works to understand when it uses sleeping tile entities, but effectively:

  1. Somehow get the game in a state where Canary has sleeping tile entities.
  2. Run the command /cu tileentities list
  3. Observe that in the chat window you see the error message "An unexpected error occurred trying to execute that command", and the stack trace I pasted above is visible in your server console.

Other Information

Playing the FTB F.A.M. modpack (https://www.feed-the-beast.com/modpacks/121-ftb-presents-fam?tab=about)