Trinkets Compat Layer for Accessories

Trinkets Compat Layer for Accessories

3M Downloads

[Fabric 1.21.1] Log spam with Unicopia / Trinkets Compat Layer

unilock opened this issue ยท 3 comments

commented

Describe the bug
When using Unicopia with Accessories via the Trinkets Compat Layer, the game log is spammed with the following while in a world:

[14:24:12] [Render thread/WARN]: Unable to get some value leading to an error, here comes the dumping data!
[14:24:12] [Render thread/WARN]: Entity: class_746['unilock'/33, l='ClientLevel', x=-5.50, y=77.00, z=32.50]
[14:24:12] [Render thread/WARN]: Entity Slots: {face=SlotTypeImpl[name=face, alternativeTranslation=Optional.empty, icon=accessories:gui/slot/face, order=900, amount=1, validators=[accessories:tag, accessories:component], dropRule=DEFAULT], hat=SlotTypeImpl[name=hat, alternativeTranslation=Optional.empty, icon=accessories:gui/slot/hat, order=1000, amount=1, validators=[accessories:tag, accessories:component], dropRule=DEFAULT], accessories:feet=SlotTypeImpl[name=accessories:feet, alternativeTranslation=Optional.empty, icon=accessories:gui/slot/empty, order=1000, amount=1, validators=[accessories:feet], dropRule=DEFAULT], charm=SlotTypeImpl[name=charm, alternativeTranslation=Optional.empty, icon=accessories:gui/slot/charm, order=1000, amount=1, validators=[accessories:tag, accessories:component], dropRule=DEFAULT], accessories:chest=SlotTypeImpl[name=accessories:chest, alternativeTranslation=Optional.empty, icon=accessories:gui/slot/empty, order=1000, amount=1, validators=[accessories:chest], dropRule=DEFAULT], necklace=SlotTypeImpl[name=necklace, alternativeTranslation=Optional.empty, icon=accessories:gui/slot/necklace, order=1000, amount=1, validators=[accessories:tag, accessories:component], dropRule=DEFAULT], cape=SlotTypeImpl[name=cape, alternativeTranslation=Optional.empty, icon=accessories:gui/slot/cape, order=900, amount=1, validators=[accessories:tag, accessories:component], dropRule=DEFAULT], hand=SlotTypeImpl[name=hand, alternativeTranslation=Optional.empty, icon=accessories:gui/slot/hand, order=900, amount=2, validators=[accessories:tag, accessories:component], dropRule=DEFAULT], accessories:legs=SlotTypeImpl[name=accessories:legs, alternativeTranslation=Optional.empty, icon=accessories:gui/slot/empty, order=1000, amount=1, validators=[accessories:legs], dropRule=DEFAULT], ring=SlotTypeImpl[name=ring, alternativeTranslation=Optional.empty, icon=accessories:gui/slot/ring, order=800, amount=2, validators=[accessories:tag, accessories:component], dropRule=DEFAULT], wrist=SlotTypeImpl[name=wrist, alternativeTranslation=Optional.empty, icon=accessories:gui/slot/wrist, order=1000, amount=1, validators=[accessories:tag, accessories:component], dropRule=DEFAULT], belt=SlotTypeImpl[name=belt, alternativeTranslation=Optional.empty, icon=accessories:gui/slot/belt, order=1000, amount=1, validators=[accessories:tag, accessories:component], dropRule=DEFAULT], accessories:head=SlotTypeImpl[name=accessories:head, alternativeTranslation=Optional.empty, icon=accessories:gui/slot/empty, order=1000, amount=1, validators=[accessories:head], dropRule=DEFAULT], shoes=SlotTypeImpl[name=shoes, alternativeTranslation=Optional.empty, icon=accessories:gui/slot/shoes, order=900, amount=1, validators=[accessories:tag, accessories:component], dropRule=DEFAULT], back=SlotTypeImpl[name=back, alternativeTranslation=Optional.empty, icon=accessories:gui/slot/back, order=800, amount=1, validators=[accessories:tag, accessories:component], dropRule=DEFAULT], anklet=SlotTypeImpl[name=anklet, alternativeTranslation=Optional.empty, icon=accessories:gui/slot/anklet, order=1000, amount=1, validators=[accessories:tag, accessories:component], dropRule=DEFAULT]}
[14:24:12] [Render thread/WARN]: Current Containers: {face=io.wispforest.accessories.impl.AccessoriesContainerImpl@2629283c, hat=io.wispforest.accessories.impl.AccessoriesContainerImpl@710ebf52, accessories:feet=io.wispforest.accessories.impl.AccessoriesContainerImpl@4f5f2e4f, charm=io.wispforest.accessories.impl.AccessoriesContainerImpl@12f18a4d, accessories:chest=io.wispforest.accessories.impl.AccessoriesContainerImpl@7d7628e7, necklace=io.wispforest.accessories.impl.AccessoriesContainerImpl@7906ec34, cape=io.wispforest.accessories.impl.AccessoriesContainerImpl@4f1d980d, hand=io.wispforest.accessories.impl.AccessoriesContainerImpl@5120d041, accessories:legs=io.wispforest.accessories.impl.AccessoriesContainerImpl@1d5deb92, ring=io.wispforest.accessories.impl.AccessoriesContainerImpl@5374d341, wrist=io.wispforest.accessories.impl.AccessoriesContainerImpl@700ae4d2, belt=io.wispforest.accessories.impl.AccessoriesContainerImpl@277f904a, accessories:head=io.wispforest.accessories.impl.AccessoriesContainerImpl@550cfe4c, shoes=io.wispforest.accessories.impl.AccessoriesContainerImpl@2097d177, back=io.wispforest.accessories.impl.AccessoriesContainerImpl@79c9dc3, anklet=io.wispforest.accessories.impl.AccessoriesContainerImpl@5c3ab0ba}
[14:24:12] [Render thread/WARN]: More Info: (Unable to locate the given slot type: [glove])

Expected behavior
No log spam.

Steps to reproduce

  1. Install Minecraft 1.21.1, Fabric Loader, Fabric API, Accessories + Trinkets Compat Layer for Accessories, owo-lib, and Unicopia
  2. Start the game, join a world
  3. Observe the game log being spammed with the same message constantly (every tick?) until leaving the world

Version Information:

  • Minecraft Version: 1.21.1 (probably also 1.20.1)
  • Accessories Version: 1.1.0-beta.16+1.21.1
  • Accessories TCLayer version: 3.10.0+beta.18

Mod Loader:

  • Fabric
  • Neoforge (with connector)

Client/Server Logs
latest.log: https://gist.github.com/unilock/b36487dd419c66b6978a65acc5f8eb60

Corresponding issue on Unicopia's tracker: Sollace/Unicopia#523

commented

I used a mixin to print a stacktrace when that info is logged:

java.lang.Throwable
	at TRANSFORMER/[email protected]/dev.emi.trinkets.compat.WrappedTrinketComponent.handler$dmp000$example$inject(WrappedTrinketComponent.java:519)
	at TRANSFORMER/[email protected]/dev.emi.trinkets.compat.WrappedTrinketComponent.lambda$getInventory$0(WrappedTrinketComponent.java)
	at TRANSFORMER/[email protected]/io.wispforest.tclayer.OuterGroupMap$InnerSlotMap.get(OuterGroupMap.java:169)
	at TRANSFORMER/[email protected]/io.wispforest.tclayer.OuterGroupMap$InnerSlotMap.get(OuterGroupMap.java:95)
	at java.base/java.util.Map.getOrDefault(Map.java:691)
	at TRANSFORMER/[email protected]/com.minelittlepony.unicopia.compat.trinkets.TrinketsDelegateImpl.lambda$getInventory$9(TrinketsDelegateImpl.java:120)
	at java.base/java.util.Optional.map(Optional.java:260)
	at TRANSFORMER/[email protected]/com.minelittlepony.unicopia.compat.trinkets.TrinketsDelegateImpl.getInventory(TrinketsDelegateImpl.java:118)
	at TRANSFORMER/[email protected]/com.minelittlepony.unicopia.compat.trinkets.TrinketsDelegateImpl.getEquipped(TrinketsDelegateImpl.java:93)
	at TRANSFORMER/[email protected]/com.minelittlepony.unicopia.item.FriendshipBraceletItem.getWornBangles(FriendshipBraceletItem.java:127)
	at TRANSFORMER/[email protected]/com.minelittlepony.unicopia.client.render.BraceletFeatureRenderer.renderArm(BraceletFeatureRenderer.java:84)
	at TRANSFORMER/[email protected]/com.minelittlepony.unicopia.client.render.AccessoryFeatureRenderer.lambda$renderArm$3(AccessoryFeatureRenderer.java:58)
	at java.base/java.lang.Iterable.forEach(Iterable.java:75)
	at TRANSFORMER/[email protected]/com.minelittlepony.unicopia.client.render.AccessoryFeatureRenderer.renderArm(AccessoryFeatureRenderer.java:58)
	at TRANSFORMER/[email protected]/net.minecraft.client.renderer.entity.player.PlayerRenderer.handler$gcl000$unicopia$onRenderArm(PlayerRenderer.java:4529)
	at TRANSFORMER/[email protected]/net.minecraft.client.renderer.entity.player.PlayerRenderer.renderHand(PlayerRenderer.java:215)
	at TRANSFORMER/[email protected]/net.minecraft.client.renderer.entity.player.PlayerRenderer.renderRightHand(PlayerRenderer.java:193)
	at TRANSFORMER/[email protected]/net.minecraft.client.renderer.ItemInHandRenderer.renderPlayerArm(ItemInHandRenderer.java:262)
	at TRANSFORMER/[email protected]/net.minecraft.client.renderer.ItemInHandRenderer.renderArmWithItem(ItemInHandRenderer.java:402)
	at TRANSFORMER/[email protected]/net.minecraft.client.renderer.ItemInHandRenderer.renderHandsWithItems(ItemInHandRenderer.java:338)
	at TRANSFORMER/[email protected]/net.minecraft.client.renderer.GameRenderer.renderItemInHand(GameRenderer.java:951)
	at TRANSFORMER/[email protected]/net.minecraft.client.renderer.GameRenderer.renderLevel(GameRenderer.java:1277)
	at TRANSFORMER/[email protected]/net.minecraft.client.renderer.GameRenderer.render(GameRenderer.java:1024)
	at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.runTick(Minecraft.java:1195)
	at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.run(Minecraft.java:807)
	at TRANSFORMER/[email protected]/net.minecraft.client.main.Main.main(Main.java:230)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:136)
	at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:124)
	at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.CommonClientLaunchHandler.runService(CommonClientLaunchHandler.java:32)
	at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.CommonLaunchHandler.lambda$launchService$4(CommonLaunchHandler.java:118)
	at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30)
	at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53)
	at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71)
	at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:103)
	at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:74)
	at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26)
	at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23)
	at [email protected]/cpw.mods.bootstraplauncher.BootstrapLauncher.run(BootstrapLauncher.java:210)
	at [email protected]/cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:69)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at io.github.zekerzhayard.forgewrapper.installer.Main.main(Main.java:67)
	at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:105)
	at org.prismlauncher.EntryPoint.listen(EntryPoint.java:129)
	at org.prismlauncher.EntryPoint.main(EntryPoint.java:70)

(on NeoForge via Sinytra Connector because I already had a development environment set up, but, close enough)

commented

Sorry for the lack of response on this as I have been dealing with porting and general health stuff but this seems like a odd issue. Something is unable to translate the slot id to the proper container which should be there within accessories so will need to investigate this when I have some time coming up

commented

Ok so recent update has been pushed for the tclayer that seems to fix this issue. It was down to not translating the trinket key to accessories key before getting a container causing the error.