AlexModGuy / Citadel

A Library containing shared code used throughout most of my projects. Can be considered a continuation of LLibrary, of which this borrows the majority of its source code from.
24 stars 29 forks source link

Compatibility issue with Data Trader mod: EntityDataAccessor is null #120

Closed son0fether closed 1 year ago

son0fether commented 1 year ago

The Data Trader mod uses an extended Villager. Spawning it immediately causes the game to crash (after the villager makes one "hrrr" sound). Adding Citadel to a single-player where a Data Trader already exists causes a crash on startup. https://www.curseforge.com/minecraft/mc-mods/data-trader

This looks similar to other issues involved synced data or other modifications to lower-level classes.

Crash log in a world with a fairly minimal set of mods: Sorry, I can't figure out how to make this whole thing preformatted. ---- Minecraft Crash Report ---- // Why did you do that? Time: 2023-04-15 12:58:05 Description: Ticking entity java.lang.NullPointerException: Cannot invoke "net.minecraft.network.syncher.SynchedEntityData$DataItem.m_135403_()" because the return value of "net.minecraft.network.syncher.SynchedEntityData.m_135379_(net.minecraft.network.syncher.EntityDataAccessor)" is null at net.minecraft.network.syncher.SynchedEntityData.m_135370_(SynchedEntityData.java:119) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,re:classloading} at net.minecraft.world.entity.LivingEntity.getCitadelEntityData(LivingEntity.java:3555) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin,pl:mixin:APP:domesticationinnovation.mixins.json:LivingEntityMixin,pl:mixin:A} at com.github.alexthe666.citadel.server.entity.CitadelEntityData.getCitadelTag(CitadelEntityData.java:21) ~[citadel-2.1.3-1.19.jar%23150!/:2.1.3-1.19] {re:classloading} at com.github.alexthe666.citadel.server.entity.CitadelEntityData.getOrCreateCitadelTag(CitadelEntityData.java:16) ~[citadel-2.1.3-1.19.jar%23150!/:2.1.3-1.19] {re:classloading} at com.github.alexthe668.domesticationinnovation.server.entity.TameableUtils.getFrozenTime(TameableUtils.java:375) ~[domesticationinnovation-1.6.1-1.19.2.jar%23152!/:1.6.1-1.19.2] {re:mixin,re:classloading} at com.github.alexthe668.domesticationinnovation.server.CommonProxy.onLivingUpdate(CommonProxy.java:262) ~[domesticationinnovation-1.6.1-1.19.2.jar%23152!/:1.6.1-1.19.2] {re:classloading} at com.github.alexthe668.domesticationinnovation.server.__CommonProxy_onLivingUpdate_LivingTickEvent.invoke(.dynamic) ~[domesticationinnovation-1.6.1-1.19.2.jar%23152!/:1.6.1-1.19.2] {re:classloading,pl:eventbus:B} at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:73) ~[eventbus-6.0.3.jar%2379!/:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:315) ~[eventbus-6.0.3.jar%2379!/:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:296) ~[eventbus-6.0.3.jar%2379!/:?] {} at net.minecraftforge.common.ForgeHooks.onLivingTick(ForgeHooks.java:315) ~[forge-1.19.2-43.2.8-universal.jar%23160!/:?] {re:classloading} at net.minecraft.world.entity.LivingEntity.m_8119_(LivingEntity.java:2251) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin,pl:mixin:APP:domesticationinnovation.mixins.json:LivingEntityMixin,pl:mixin:A} at net.minecraft.world.entity.Mob.m_8119_(Mob.java:316) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:domesticationinnovation.mixins.json:MobMixin,pl:mixin:A} at net.minecraft.world.entity.npc.Villager.m_8119_(Villager.java:247) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:domesticationinnovation.mixins.json:VillagerMixin,pl:mixin:A} at net.minecraft.server.level.ServerLevel.m_8647_(ServerLevel.java:658) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:A} at net.minecraft.world.level.Level.m_46653_(Level.java:457) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LevelMixin,pl:mixin:A} at net.minecraft.server.level.ServerLevel.m_184063_(ServerLevel.java:323) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:A} at net.minecraft.world.level.entity.EntityTickList.m_156910_(EntityTickList.java:54) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:classloading} at net.minecraft.server.level.ServerLevel.m_8793_(ServerLevel.java:303) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:A} at net.minecraft.server.MinecraftServer.m_5703_(MinecraftServer.java:866) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at net.minecraft.server.MinecraftServer.m_5705_(MinecraftServer.java:806) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at net.minecraft.client.server.IntegratedServer.m_5705_(IntegratedServer.java:84) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:654) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:244) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at java.lang.Thread.run(Thread.java:833) [?:?] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Server thread Stacktrace: at net.minecraft.network.syncher.SynchedEntityData.m_135370_(SynchedEntityData.java:119) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,re:classloading} at net.minecraft.world.entity.LivingEntity.getCitadelEntityData(LivingEntity.java:3555) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin,pl:mixin:APP:domesticationinnovation.mixins.json:LivingEntityMixin,pl:mixin:A} at com.github.alexthe666.citadel.server.entity.CitadelEntityData.getCitadelTag(CitadelEntityData.java:21) ~[citadel-2.1.3-1.19.jar%23150!/:2.1.3-1.19] {re:classloading} at com.github.alexthe666.citadel.server.entity.CitadelEntityData.getOrCreateCitadelTag(CitadelEntityData.java:16) ~[citadel-2.1.3-1.19.jar%23150!/:2.1.3-1.19] {re:classloading} at com.github.alexthe668.domesticationinnovation.server.entity.TameableUtils.getFrozenTime(TameableUtils.java:375) ~[domesticationinnovation-1.6.1-1.19.2.jar%23152!/:1.6.1-1.19.2] {re:mixin,re:classloading} at com.github.alexthe668.domesticationinnovation.server.CommonProxy.onLivingUpdate(CommonProxy.java:262) ~[domesticationinnovation-1.6.1-1.19.2.jar%23152!/:1.6.1-1.19.2] {re:classloading} at com.github.alexthe668.domesticationinnovation.server.__CommonProxy_onLivingUpdate_LivingTickEvent.invoke(.dynamic) ~[domesticationinnovation-1.6.1-1.19.2.jar%23152!/:1.6.1-1.19.2] {re:classloading,pl:eventbus:B} at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:73) ~[eventbus-6.0.3.jar%2379!/:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:315) ~[eventbus-6.0.3.jar%2379!/:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:296) ~[eventbus-6.0.3.jar%2379!/:?] {} at net.minecraftforge.common.ForgeHooks.onLivingTick(ForgeHooks.java:315) ~[forge-1.19.2-43.2.8-universal.jar%23160!/:?] {re:classloading} at net.minecraft.world.entity.LivingEntity.m_8119_(LivingEntity.java:2251) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin,pl:mixin:APP:domesticationinnovation.mixins.json:LivingEntityMixin,pl:mixin:A} at net.minecraft.world.entity.Mob.m_8119_(Mob.java:316) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:domesticationinnovation.mixins.json:MobMixin,pl:mixin:A} at net.minecraft.world.entity.npc.Villager.m_8119_(Villager.java:247) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:domesticationinnovation.mixins.json:VillagerMixin,pl:mixin:A} at net.minecraft.server.level.ServerLevel.m_8647_(ServerLevel.java:658) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:A} at net.minecraft.world.level.Level.m_46653_(Level.java:457) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LevelMixin,pl:mixin:A} at net.minecraft.server.level.ServerLevel.m_184063_(ServerLevel.java:323) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:A} at net.minecraft.world.level.entity.EntityTickList.m_156910_(EntityTickList.java:54) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:classloading} at net.minecraft.server.level.ServerLevel.m_8793_(ServerLevel.java:303) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:A} -- Entity being ticked -- Details: Entity Type: datatrader:data_trader (de.melanx.datatrader.trader.Trader) Entity ID: 77 Entity Name: Trader Entity's Exact location: -92.50, 63.00, -38.50 Entity's Block location: World: (-93,63,-39), Section: (at 3,15,9 in -6,3,-3; chunk contains blocks -96,-64,-48 to -81,319,-33), Region: (-1,-1; contains chunks -32,-32 to -1,-1, blocks -512,-64,-512 to -1,319,-1) Entity's Momentum: 0.00, 0.00, 0.00 Entity's Passengers: [] Entity's Vehicle: null Stacktrace: at net.minecraft.world.level.Level.m_46653_(Level.java:457) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LevelMixin,pl:mixin:A} at net.minecraft.server.level.ServerLevel.m_184063_(ServerLevel.java:323) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:A} at net.minecraft.world.level.entity.EntityTickList.m_156910_(EntityTickList.java:54) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:classloading} at net.minecraft.server.level.ServerLevel.m_8793_(ServerLevel.java:303) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:A} at net.minecraft.server.MinecraftServer.m_5703_(MinecraftServer.java:866) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at net.minecraft.server.MinecraftServer.m_5705_(MinecraftServer.java:806) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at net.minecraft.client.server.IntegratedServer.m_5705_(IntegratedServer.java:84) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:654) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:244) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at java.lang.Thread.run(Thread.java:833) [?:?] {} -- Affected level -- Details: All players: 0 total; [] Chunk stats: 2209 Level dimension: minecraft:overworld Level spawn location: World: (0,74,0), Section: (at 0,10,0 in 0,4,0; chunk contains blocks 0,-64,0 to 15,319,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,-64,0 to 511,319,511) Level time: 29877 game time, 1113 day time Level name: Test World 1 Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: true Level weather: Rain time: 104075 (now: false), thunder time: 125333 (now: false) Known server brands: forge Level was modded: true Level storage version: 0x04ABD - Anvil Stacktrace: at net.minecraft.server.MinecraftServer.m_5703_(MinecraftServer.java:866) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at net.minecraft.server.MinecraftServer.m_5705_(MinecraftServer.java:806) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at net.minecraft.client.server.IntegratedServer.m_5705_(IntegratedServer.java:84) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:654) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:244) ~[client-1.19.2-20220805.130853-srg.jar%23155!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at java.lang.Thread.run(Thread.java:833) [?:?] {} -- System Details -- Details: Minecraft Version: 1.19.2 Minecraft Version ID: 1.19.2 Operating System: Windows 10 (amd64) version 10.0 Java Version: 17.0.3, Microsoft Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft Memory: 5120614336 bytes (4883 MiB) / 6341787648 bytes (6048 MiB) up to 13455327232 bytes (12832 MiB) CPUs: 4 Processor Vendor: AuthenticAMD Processor Name: AMD A10-6700 APU with Radeon(tm) HD Graphics Identifier: AuthenticAMD Family 21 Model 19 Stepping 1 Microarchitecture: Piledriver Frequency (GHz): 3.69 Number of physical packages: 1 Number of physical CPUs: 2 Number of logical CPUs: 4 Graphics card #0 name: NVIDIA GeForce GTX 960 Graphics card #0 vendor: NVIDIA (0x10de) Graphics card #0 VRAM (MB): 4095.00 Graphics card #0 deviceId: 0x1401 Graphics card #0 versionInfo: DriverVersion=31.0.15.1694 Memory slot #0 capacity (MB): 4096.00 Memory slot #0 clockSpeed (GHz): 1.60 Memory slot #0 type: DDR3 Memory slot #1 capacity (MB): 4096.00 Memory slot #1 clockSpeed (GHz): 1.60 Memory slot #1 type: DDR3 Memory slot #2 capacity (MB): 8192.00 Memory slot #2 clockSpeed (GHz): 1.60 Memory slot #2 type: DDR3 Memory slot #3 capacity (MB): 8192.00 Memory slot #3 clockSpeed (GHz): 1.60 Memory slot #3 type: DDR3 Virtual memory max (MB): 50107.65 Virtual memory used (MB): 16465.34 Swap memory total (MB): 25600.00 Swap memory used (MB): 251.31 JVM Flags: 4 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx12832m -Xms256m Server Running: true Player Count: 0 / 8; [] Data Packs: vanilla, mod:trophymanager, mod:forge, mod:libx, mod:datatrader, file/datatrader_modpack_trades (incompatible), mod:citadel, mod:domesticationinnovation World Generation: Experimental Type: Integrated Server (map_client.txt) Is Modded: Definitely; Client brand changed to 'forge'; Server brand changed to 'forge' Launched Version: forge-43.2.8 ModLauncher: 10.0.8+10.0.8+main.0ef7e830 ModLauncher launch target: forgeclient ModLauncher naming: srg ModLauncher services: mixin-0.8.5.jar mixin PLUGINSERVICE eventbus-6.0.3.jar eventbus PLUGINSERVICE fmlloader-1.19.2-43.2.8.jar slf4jfixer PLUGINSERVICE fmlloader-1.19.2-43.2.8.jar object_holder_definalize PLUGINSERVICE fmlloader-1.19.2-43.2.8.jar runtime_enum_extender PLUGINSERVICE fmlloader-1.19.2-43.2.8.jar capability_token_subclass PLUGINSERVICE accesstransformers-8.0.4.jar accesstransformer PLUGINSERVICE fmlloader-1.19.2-43.2.8.jar runtimedistcleaner PLUGINSERVICE modlauncher-10.0.8.jar mixin TRANSFORMATIONSERVICE modlauncher-10.0.8.jar fml TRANSFORMATIONSERVICE FML Language Providers: minecraft@1.0 lowcodefml@null javafml@null Mod List: client-1.19.2-20220805.130853-srg.jar |Minecraft |minecraft |1.19.2 |DONE |Manifest: a1:d4:5e:04:4f:d3:d6:e0:7b:37:97:cf:77:b0:de:ad:4a:47:ce:8c:96:49:5f:0a:cf:8c:ae:b2:6d:4b:8a:3f LibX-1.19.2-4.2.8.jar |LibX |libx |1.19.2-4.2.8 |DONE |Manifest: NOSIGNATURE DataTrader-1.19.1-1.2.3.jar |DataTrader |datatrader |1.19.1-1.2.3 |DONE |Manifest: NOSIGNATURE trophymanager-1.19.2-0.2.1.0.jar |Trophy Manager |trophymanager |1.19.2-0.2.1.0 |DONE |Manifest: NOSIGNATURE forge-1.19.2-43.2.8-universal.jar |Forge |forge |43.2.8 |DONE |Manifest: 84:ce:76:e8:45:35:e4:0e:63:86:df:47:59:80:0f:67:6c:c1:5f:6e:5f:4d:b3:54:47:1a:9f:7f:ed:5e:f2:90 citadel-2.1.3-1.19.jar |Citadel |citadel |2.1.3 |DONE |Manifest: NOSIGNATURE domesticationinnovation-1.6.1-1.19.2.jar |Domestication Innovation |domesticationinnovation |1.6.1 |DONE |Manifest: NOSIGNATURE Crash Report UUID: e1f347a9-fcec-414a-bf7a-589ddc085303 FML: 43.2 Forge: net.minecraftforge:43.2.8
AlexModGuy commented 1 year ago

https://github.com/MelanX/DataTrader/blob/1.19.x/src/main/java/de/melanx/datatrader/trader/Trader.java#LL179C10-L179C10

mod author needs to utilize super.defineSynchedData() like every other entity class, ever.