ochotonida / curious-armor-stands Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
I was looking at this mod as a means to have Tool Belt items placed in armor stands for display, but I noticed the logic to equip/unequip on the armorstand relies on CuriosApi.getCuriosHelper().getCurio(stackInHand).ifPresent
to run its logic, but curios can be defined via tags, without implementing the capability, which means those items will not get equipped at all even if they work fine on the player curios slots.
Armor stand with item (nothing happens):
Im not sure if this is an issue of this mod or botania, but I thought id let you know!
Using custom texturepack that changes the sprite of the wings, but it doesn't work on default textures either.
Versions:
Minecraft Forge: 1.20.1 - 47.2.17
Curios API: 5.9.1+1.20.1
Curious Armorstands: 1.20-5.1.0
Botania: 1.20.1-444-forge
curios-forge-1.18.2-5.0.7.1
curious-armor-stands-1.18.1-4.0.0
(https://www.curseforge.com/minecraft/mc-mods/curious-armor-stands)Forge 40.1.68
I've noticed curious being rather hungry in performance on some entities where I wasn't expecting curios to do much.
Below is a profile view of entities being ticked in one minute. As you can see Curios event handler is taking 1.36%
on an armor stand in comparison the second worst event handler is only 0.05%
.
On our dedicated server with a large world and various dungeons that have generated in armor stands the impact of this is even worse that in the above picture (which is single player). It also has me somewhat worried about potentially pointless network traffic due to armor stands and curios since the trace contains packet related things.
When checking for how many armor stands there are forge entity list
only shows 10 in the same exact location the above profile was done so it is not an excessive amount.
Removing only Curious armor stands from the mod pack does resolve this issue.
Curios to not do any ticking with armor stands. If somehow this is still needed an option to disable this would be neat.
I'm not sure if this falls on Curious itself to resolve or the Curios Armor Stand mod.
(Cross posted here too: TheIllusiveC4/Curios#251)
Curious Armor Stands-1.16.3-2.0.0.jar
forge-1.16.4-35.0.7.jar
When i install it on my server and login, i can't move.
It also doesn't render my arm.
I can break blocks near me (without animation), but i don't fall down if i break the block under me.
So you just hang in the sky, unable to move.
I tried in a single player world and there everything works, just on server it doesn't.
grtz,
Machinegun Marty
Versions:
--- Minecraft: 1.20.1
--- Curios: 5.8.1
--- Curious Armor Stands: 5.0.1
--- Forge/Fabric: Forge 47.2.20
Observed Behavior:
Upon loading a world, curios on armor stands(namely tested with artifacts mod) seem to fall off their armor stands the next time the world is loaded in(Save and Quit, then load the same world), no logs of note are shown when looking at the logs.
Items can be placed back on the armor stands, but will fall off again the next time the world is loaded again, it's more an annoyance if anything.
Attempting to place a spyglass on an armor stand with Spyglass of Curios installed results in a crash that is impossible to recover from without editing the world to remove the armor stand, or removing Curious Armor Stands entirely (at the cost of removing any Curios placed onto the stand). Rejoining the world without doing so will crash you again.
Running NeoForge 47.1.105 on Minecraft version 1.20.1, Curios API version 5.9.1, Curious Armor Stands version 5.1.0.
EDIT: In my haste to submit this, I forgot to add a crash report. Here's one.
(The Lightman's Currency stuff is from the Armor Trader, which places an armor stand when placed).
It looks like some API stuff has changed.
Throwing error when placing an armor stand. Also, the armor stand is not placed.
[08:30:27] [Server thread/ERROR] [ne.mi.ev.EventBus/EVENTBUS]: Exception caught during firing event: null
Index: 3
Listeners:
0: HIGHEST
1: ASM: net.minecraftforge.common.ForgeInternalHandler@7880b0cd onEntityJoinWorld(Lnet/minecraftforge/event/entity/EntityJoinWorldEvent;)V
2: NORMAL
3: ASM: class curiousarmorstands.CuriousArmorStands$Events entityJoinWorld(Lnet/minecraftforge/event/entity/EntityJoinWorldEvent;)V
4: ASM: top.theillusivec4.curios.common.event.CuriosEventHandler@686033cc entityJoinWorld(Lnet/minecraftforge/event/entity/EntityJoinWorldEvent;)V
java.lang.NullPointerException
at top.theillusivec4.curios.common.inventory.CurioStacksHandler.flagUpdate(CurioStacksHandler.java:405)
at top.theillusivec4.curios.common.inventory.CurioStacksHandler.addTransientModifier(CurioStacksHandler.java:385)
at top.theillusivec4.curios.common.inventory.CurioStacksHandler.addPermanentModifier(CurioStacksHandler.java:389)
at top.theillusivec4.curios.common.inventory.CurioStacksHandler.addLegacyChange(CurioStacksHandler.java:141)
at top.theillusivec4.curios.common.inventory.CurioStacksHandler.grow(CurioStacksHandler.java:128)
at curiousarmorstands.CurioInventoryCapability$CurioInventoryWrapper.lambda$growSlotType$1(CurioInventoryCapability.java:116)
at java.base/java.util.Optional.ifPresent(Optional.java:183)
at curiousarmorstands.CurioInventoryCapability$CurioInventoryWrapper.growSlotType(CurioInventoryCapability.java:116)
at top.theillusivec4.curios.server.SlotHelper.lambda$growSlotType$7(SlotHelper.java:121)
at net.minecraftforge.common.util.LazyOptional.ifPresent(LazyOptional.java:165)
at top.theillusivec4.curios.server.SlotHelper.growSlotType(SlotHelper.java:120)
at top.theillusivec4.curios.server.SlotHelper.setSlotsForType(SlotHelper.java:107)
at curiousarmorstands.CuriousArmorStands$Events.entityJoinWorld(CuriousArmorStands.java:69)
at net.minecraftforge.eventbus.ASMEventHandler_1_Events_entityJoinWorld_EntityJoinWorldEvent.invoke(.dynamic)
at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:85)
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:302)
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283)
at net.minecraft.world.server.ServerWorld.func_72838_d(ServerWorld.java:813)
at net.minecraft.world.server.ServerWorld.func_217376_c(ServerWorld.java:754)
at java.base/java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411)
at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
at net.minecraft.world.IServerWorld.func_242417_l(SourceFile:11)
at net.minecraft.item.ArmorStandItem.func_195939_a(SourceFile:54)
at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:644)
at net.minecraft.item.ItemStack.func_196084_a(ItemStack.java:186)
at net.minecraft.server.management.PlayerInteractionManager.func_219441_a(PlayerInteractionManager.java:350)
at net.minecraft.network.play.ServerPlayNetHandler.func_184337_a(ServerPlayNetHandler.java:958)
at net.minecraft.network.play.client.CPlayerTryUseItemOnBlockPacket.func_148833_a(SourceFile:36)
at net.minecraft.network.play.client.CPlayerTryUseItemOnBlockPacket.func_148833_a(SourceFile:10)
at net.minecraft.network.PacketThreadUtil.func_225383_a(SourceFile:21)
at net.minecraft.util.concurrent.TickDelayedTask.run(SourceFile:18)
at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213166_h(SourceFile:144)
at net.minecraft.util.concurrent.RecursiveEventLoop.func_213166_h(SourceFile:23)
at net.minecraft.server.MinecraftServer.func_213166_h(MinecraftServer.java:734)
at net.minecraft.server.MinecraftServer.func_213166_h(MinecraftServer.java:159)
at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213168_p(SourceFile:118)
at net.minecraft.server.MinecraftServer.func_213205_aW(MinecraftServer.java:717)
at net.minecraft.server.MinecraftServer.func_213168_p(MinecraftServer.java:711)
at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213160_bf(SourceFile:103)
at net.minecraft.server.MinecraftServer.func_213202_o(MinecraftServer.java:696)
at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:646)
at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:232)
at java.base/java.lang.Thread.run(Thread.java:834)
[08:30:27] [Server thread/FATAL] [minecraft/ThreadTaskExecutor]: Error executing task on Server
java.lang.NullPointerException: null
at top.theillusivec4.curios.common.inventory.CurioStacksHandler.flagUpdate(CurioStacksHandler.java:405) ~[curios:property(class java.lang.String, provider(?))] {re:classloading}
at top.theillusivec4.curios.common.inventory.CurioStacksHandler.addTransientModifier(CurioStacksHandler.java:385) ~[curios:property(class java.lang.String, provider(?))] {re:classloading}
at top.theillusivec4.curios.common.inventory.CurioStacksHandler.addPermanentModifier(CurioStacksHandler.java:389) ~[curios:property(class java.lang.String, provider(?))] {re:classloading}
at top.theillusivec4.curios.common.inventory.CurioStacksHandler.addLegacyChange(CurioStacksHandler.java:141) ~[curios:property(class java.lang.String, provider(?))] {re:classloading}
at top.theillusivec4.curios.common.inventory.CurioStacksHandler.grow(CurioStacksHandler.java:128) ~[curios:property(class java.lang.String, provider(?))] {re:classloading}
at curiousarmorstands.CurioInventoryCapability$CurioInventoryWrapper.lambda$growSlotType$1(CurioInventoryCapability.java:116) ~[curious_armor_stands:1.16.5-2.1.2] {re:classloading}
at java.util.Optional.ifPresent(Optional.java:183) ~[?:?] {}
at curiousarmorstands.CurioInventoryCapability$CurioInventoryWrapper.growSlotType(CurioInventoryCapability.java:116) ~[curious_armor_stands:1.16.5-2.1.2] {re:classloading}
at top.theillusivec4.curios.server.SlotHelper.lambda$growSlotType$7(SlotHelper.java:121) ~[curios:property(class java.lang.String, provider(?))] {re:classloading}
at net.minecraftforge.common.util.LazyOptional.ifPresent(LazyOptional.java:165) ~[forge:?] {re:classloading}
at top.theillusivec4.curios.server.SlotHelper.growSlotType(SlotHelper.java:120) ~[curios:property(class java.lang.String, provider(?))] {re:classloading}
at top.theillusivec4.curios.server.SlotHelper.setSlotsForType(SlotHelper.java:107) ~[curios:property(class java.lang.String, provider(?))] {re:classloading}
at curiousarmorstands.CuriousArmorStands$Events.entityJoinWorld(CuriousArmorStands.java:69) ~[curious_armor_stands:1.16.5-2.1.2] {re:classloading}
at net.minecraftforge.eventbus.ASMEventHandler_1_Events_entityJoinWorld_EntityJoinWorldEvent.invoke(.dynamic) ~[?:?] {}
at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:85) ~[eventbus-4.0.0.jar:?] {}
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:302) ~[eventbus-4.0.0.jar:?] {}
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283) ~[eventbus-4.0.0.jar:?] {}
at net.minecraft.world.server.ServerWorld.func_72838_d(ServerWorld.java:813) ~[?:?] {re:classloading}
at net.minecraft.world.server.ServerWorld.func_217376_c(ServerWorld.java:754) ~[?:?] {re:classloading}
at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411) ~[?:?] {}
at java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) ~[?:?] {}
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658) ~[?:?] {}
at net.minecraft.world.IServerWorld.func_242417_l(SourceFile:11) ~[?:?] {re:classloading}
at net.minecraft.item.ArmorStandItem.func_195939_a(SourceFile:54) ~[?:?] {re:classloading}
at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:644) ~[forge:?] {re:classloading}
at net.minecraft.item.ItemStack.func_196084_a(ItemStack.java:186) ~[?:?] {re:classloading,xf:fml:forge:filled_map.4,xf:fml:forge:itemstack}
at net.minecraft.server.management.PlayerInteractionManager.func_219441_a(PlayerInteractionManager.java:350) ~[?:?] {re:classloading}
at net.minecraft.network.play.ServerPlayNetHandler.func_184337_a(ServerPlayNetHandler.java:958) ~[?:?] {re:classloading}
at net.minecraft.network.play.client.CPlayerTryUseItemOnBlockPacket.func_148833_a(SourceFile:36) ~[?:?] {re:classloading}
at net.minecraft.network.play.client.CPlayerTryUseItemOnBlockPacket.func_148833_a(SourceFile:10) ~[?:?] {re:classloading}
at net.minecraft.network.PacketThreadUtil.func_225383_a(SourceFile:21) ~[?:?] {re:classloading}
at net.minecraft.util.concurrent.TickDelayedTask.run(SourceFile:18) ~[?:?] {re:classloading}
at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213166_h(SourceFile:144) ~[?:?] {re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.util.concurrent.RecursiveEventLoop.func_213166_h(SourceFile:23) ~[?:?] {re:computing_frames,re:classloading}
at net.minecraft.server.MinecraftServer.func_213166_h(MinecraftServer.java:734) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.func_213166_h(MinecraftServer.java:159) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213168_p(SourceFile:118) ~[?:?] {re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.func_213205_aW(MinecraftServer.java:717) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.func_213168_p(MinecraftServer.java:711) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213160_bf(SourceFile:103) ~[?:?] {re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.func_213202_o(MinecraftServer.java:696) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:646) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:232) ~[?:?] {re:classloading,pl:accesstransformer:B}
at java.lang.Thread.run(Thread.java:834) [?:?] {}
Minecraft - 1.18.2
Forge - 40.1.42
Curious Armor Stands - curious-armor-stands-1.18.1-4.0.0
Playing in single player. When I attempted to place an armor stand, Minecraft crashed.
Crash report -
https://www.toptal.com/developers/hastebin/kizemosose.properties
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.