If minecraft/loot_table/entities/armor_stand.json
has something invalid in the target
field, server throws an exception, armor stand item is spawned, and armor stand remains.
{
"type": "minecraft:entity",
"random_sequence": "minecraft:entities/armor_stand",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:slime_ball",
"functions": [
{
"function": "minecraft:copy_custom_data",
"source": "this",
"ops": [
{
"source": "",
"target": "",
"op": "replace"
}
]
}
]
}
]
}
]
}
while the loot table is invalid, expected behavior would be something similar to setting target to .
[12:44:10] [Worker-Main-2/ERROR]: Couldn't parse data file 'minecraft:entities/armor_stand' from 'minecraft:loot_table/entities/armor_stand.json': DataResult.Error['Failed to parse path .: Invalid NBT path element at position 0: <--[HERE]': fdo@41e865fa]
rather than an exception and unbreakable entity.
Exception thrown:
[12:31:08] [Server thread/ERROR]: Failed to handle packet aij@71def426, suppressing error
java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 0
at fe$g.a(SourceFile:209) ~[server-1.21.6.jar:?]
at fek$c$3.a(SourceFile:162) ~[server-1.21.6.jar:?]
at fek$b.a(SourceFile:41) ~[server-1.21.6.jar:?]
at fek.a(SourceFile:87) ~[server-1.21.6.jar:?]
at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
at fek.a(SourceFile:87) ~[server-1.21.6.jar:?]
at few.b(SourceFile:38) ~[server-1.21.6.jar:?]
at few.apply(SourceFile:18) ~[server-1.21.6.jar:?]
at fez.a(SourceFile:90) ~[server-1.21.6.jar:?]
at fex.a(SourceFile:16) ~[server-1.21.6.jar:?]
at fdw.a(SourceFile:35) ~[server-1.21.6.jar:?]
at feb$1.a(SourceFile:67) ~[server-1.21.6.jar:?]
at fdn.b(SourceFile:77) ~[server-1.21.6.jar:?]
at fdn.a(SourceFile:100) ~[server-1.21.6.jar:?]
at fdo.a(SourceFile:98) ~[server-1.21.6.jar:?]
at fdo.a(SourceFile:107) ~[server-1.21.6.jar:?]
at cam.b(SourceFile:1590) ~[server-1.21.6.jar:?]
at cam.b(SourceFile:1539) ~[server-1.21.6.jar:?]
at cqo.d(SourceFile:406) ~[server-1.21.6.jar:?]
at cqo.c(SourceFile:401) ~[server-1.21.6.jar:?]
at cqo.a(SourceFile:346) ~[server-1.21.6.jar:?]
at bzm.b(SourceFile:1977) ~[server-1.21.6.jar:?]
at cut.e(SourceFile:1271) ~[server-1.21.6.jar:?]
at auc.e(SourceFile:1946) ~[server-1.21.6.jar:?]
at avf$1.a(SourceFile:1862) ~[server-1.21.6.jar:?]
at aij$1.a(SourceFile:174) ~[server-1.21.6.jar:?]
at aij.a(SourceFile:74) ~[server-1.21.6.jar:?]
at avf.a(SourceFile:1821) ~[server-1.21.6.jar:?]
at aij.a(SourceFile:61) ~[server-1.21.6.jar:?]
at aij.a(SourceFile:15) ~[server-1.21.6.jar:?]
at zz.a(SourceFile:27) ~[server-1.21.6.jar:?]
at anb.run(SourceFile:18) ~[server-1.21.6.jar:?]
at bvx.d(SourceFile:164) ~[server-1.21.6.jar:?]
at bwc.d(SourceFile:23) ~[server-1.21.6.jar:?]
at net.minecraft.server.MinecraftServer.b(SourceFile:883) ~[server-1.21.6.jar:?]
at net.minecraft.server.MinecraftServer.d(SourceFile:179) ~[server-1.21.6.jar:?]
at bvx.B(SourceFile:138) ~[server-1.21.6.jar:?]
at net.minecraft.server.MinecraftServer.bv(SourceFile:865) ~[server-1.21.6.jar:?]
at net.minecraft.server.MinecraftServer.B(SourceFile:859) ~[server-1.21.6.jar:?]
at bvx.b(SourceFile:147) ~[server-1.21.6.jar:?]
at net.minecraft.server.MinecraftServer.b(SourceFile:823) ~[server-1.21.6.jar:?]
at net.minecraft.server.MinecraftServer.w_(SourceFile:830) ~[server-1.21.6.jar:?]
at net.minecraft.server.MinecraftServer.y(SourceFile:713) ~[server-1.21.6.jar:?]
at net.minecraft.server.MinecraftServer.a(SourceFile:291) ~[server-1.21.6.jar:?]
at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
Can confirm in Minecraft 1.21.7 release candidate 2. If the armor stand dies via another source within the world (not from a player action), then the server/client crashes.