Enderman NBT Data sign bit error
The issue is that enderman cannot carry blocks with id larger then 127, the block will not render and the game will crash when they try to swap the block again.
They WILL carry any block with id under 127.
All tests where done using the emerald block (id 133).
It first happened when I was creating a bukkit plugin that edited the carried and carriedData NBT tags for the enderman, I was able to spawn them but, as said before, the block did not render and the server crashed when one of these enderman tried to pick another block.
Then I edited some more enderman (with emerald block) and closed the server before they picked any other block, then after loading the map on single player and waiting a few seconds, one of the enderman picked a block and the game crashed.
It seems that as the block id is internally saved as byte it is not properly converted to int when using it as a index of the "material array".....
It keeps the sign bit and messes up the integer sign, probably there is a missing " int idAsInteger = (idAsByte & 0xFF); " somewhere on the code.
This is suported by the fact that the Exception is ArrayIndexOutOfBoundsException and the index is -123.
-123 is the same as 133 (emerald block) when using the last by as sign (two's complement)
The same may occur for carriedData (not tested)
Crash reports below!
Environment
Not relevant
Created Issue:
Enderman NBT Data
The issue is that enderman cannot carry blocks with id larger then 127, the block will not render and the game will crash when they try to swap the block again.
All tests where done using the emerald block (id 133).
It first happened when I was creating a bukkit plugin that edited the carried and carriedId NBT tags for the enderman, I was able to spawn them but, as said before, the block did not render and the server crashed when one of these enderman tried to pick another block.
Then I edited some more enderman (with emerald block) and closed the server before they picked any other block, then after loading the map on single player and waiting a few seconds, one of the enderman picked a block and the game crashed.
It seems that as the block id is internally saved as byte it is not properly converted to int when using it as a index of the "material array".....
It keeps the signal bit and messes up the integer signal, probably there is a missing " int idAsInteger = (idAsByte & 0xFF); " somewhere on the code.
This is suported by the fact that the Exception is ArrayIndexOutOfBoundsException and the index is -123.
-123 is the same as 133 (emerald block) when using the last by as signal (two's complement)Happy Digging
Minecraft Crash Report when Loading the Map in Single Player---- Minecraft Crash Report ---- // Don't be sad. I'll do better next time, I promise! Time: 04-01-2013 23:29 Description: Ticking entity java.lang.ArrayIndexOutOfBoundsException: -123 at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) at yc.h(SourceFile:1196) at in.h(SourceFile:362) at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) -- Entity being ticked -- Details: Entity Type: Enderman (qd) Entity ID: 3913714 Name: Enderman Exact location: 224,35, 64,00, 23,17 Block location: World: (224,64,23), Chunk: (at 0,4,7 in 14,1; contains blocks 224,0,16 to 239,255,31), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Momentum: -0,00, -0,08, 0,03 Stacktrace: at yc.h(SourceFile:1196) at in.h(SourceFile:362) -- Affected level -- Details: Level name: Foguetes All players: 1 total; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Chunk stats: ServerChunkCache: 625 Drop: 0 Level seed: 2871721227194718943 Level generator: ID 00 - default, ver 1. Features enabled: true Level generator options: Level spawn location: World: (268,64,-2), Chunk: (at 12,4,14 in 16,-1; contains blocks 256,0,-16 to 271,255,-1), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1) Level time: 3267873 game time, 3753717 day time Level dimension: 0 Level storage version: 0x04ABD - Anvil Level weather: Rain time: 51739 (now: false), thunder time: 64063 (now: false) Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: false Stacktrace: at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) -- System Details -- Details: Minecraft Version: 1.4.6 Operating System: Windows Vista (x86) version 6.0 Java Version: 1.7.0_02, Oracle Corporation Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation Memory: 284210728 bytes (271 MB) / 519110656 bytes (495 MB) up to 1037959168 bytes (989 MB) JVM Flags: 2 total; -Xms512m -Xmx1024m AABB Pool Size: 3273 (183288 bytes; 0 MB) allocated, 774 (43344 bytes; 0 MB) used Suspicious classes: No suspicious classes found. IntCache: cache: 0, tcache: 0, allocated: 1, tallocated: 63 Profiler Position: N/A (disabled) Vec3 Pool Size: 1634 (91504 bytes; 0 MB) allocated, 627 (35112 bytes; 0 MB) used Player Count: 1 / 8; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Type: Integrated Server (map_client.txt) Is Modded: Probably not. Jar signature remains and both client + server brands are untouched.Environment
Not relevant
The issue is that enderman cannot carry blocks with id larger then 127, the block will not render and the game will crash when they try to swap the block again.
All tests where done using the emerald block (id 133).
It first happened when I was creating a bukkit plugin that edited the carried and carriedId NBT tags for the enderman, I was able to spawn them but, as said before, the block did not render and the server crashed when one of these enderman tried to pick another block.
Then I edited some more enderman (with emerald block) and closed the server before they picked any other block, then after loading the map on single player and waiting a few seconds, one of the enderman picked a block and the game crashed.
It seems that as the block id is internally saved as byte it is not properly converted to int when using it as a index of the "material array".....
It keeps the signal bit and messes up the integer signal, probably there is a missing " int idAsInteger = (idAsByte & 0xFF); " somewhere on the code.
This is suported by the fact that the Exception is ArrayIndexOutOfBoundsException and the index is -123.
-123 is the same as 133 (emerald block) when using the last by as signal (two's complement)AND
I think the it would be good to change the enderman's NBT tags 'carried' and 'carriedData' from Short to Byte to keep it equal to the FallingSand/FallingBlock 's 'Tile' and 'Data' tags that are Bytes.
Happy Digging
Minecraft Crash Report when Loading the Map in Single Player---- Minecraft Crash Report ---- // Don't be sad. I'll do better next time, I promise! Time: 04-01-2013 23:29 Description: Ticking entity java.lang.ArrayIndexOutOfBoundsException: -123 at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) at yc.h(SourceFile:1196) at in.h(SourceFile:362) at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) -- Entity being ticked -- Details: Entity Type: Enderman (qd) Entity ID: 3913714 Name: Enderman Exact location: 224,35, 64,00, 23,17 Block location: World: (224,64,23), Chunk: (at 0,4,7 in 14,1; contains blocks 224,0,16 to 239,255,31), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Momentum: -0,00, -0,08, 0,03 Stacktrace: at yc.h(SourceFile:1196) at in.h(SourceFile:362) -- Affected level -- Details: Level name: Foguetes All players: 1 total; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Chunk stats: ServerChunkCache: 625 Drop: 0 Level seed: 2871721227194718943 Level generator: ID 00 - default, ver 1. Features enabled: true Level generator options: Level spawn location: World: (268,64,-2), Chunk: (at 12,4,14 in 16,-1; contains blocks 256,0,-16 to 271,255,-1), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1) Level time: 3267873 game time, 3753717 day time Level dimension: 0 Level storage version: 0x04ABD - Anvil Level weather: Rain time: 51739 (now: false), thunder time: 64063 (now: false) Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: false Stacktrace: at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) -- System Details -- Details: Minecraft Version: 1.4.6 Operating System: Windows Vista (x86) version 6.0 Java Version: 1.7.0_02, Oracle Corporation Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation Memory: 284210728 bytes (271 MB) / 519110656 bytes (495 MB) up to 1037959168 bytes (989 MB) JVM Flags: 2 total; -Xms512m -Xmx1024m AABB Pool Size: 3273 (183288 bytes; 0 MB) allocated, 774 (43344 bytes; 0 MB) used Suspicious classes: No suspicious classes found. IntCache: cache: 0, tcache: 0, allocated: 1, tallocated: 63 Profiler Position: N/A (disabled) Vec3 Pool Size: 1634 (91504 bytes; 0 MB) allocated, 627 (35112 bytes; 0 MB) used Player Count: 1 / 8; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Type: Integrated Server (map_client.txt) Is Modded: Probably not. Jar signature remains and both client + server brands are untouched.
The issue is that enderman cannot carry blocks with id larger then 127, the block will not render and the game will crash when they try to swap the block again.
All tests where done using the emerald block (id 133).It first happened when I was creating a bukkit plugin that edited the carried and carriedId NBT tags for the enderman, I was able to spawn them but, as said before, the block did not render and the server crashed when one of these enderman tried to pick another block.
Then I edited some more enderman (with emerald block) and closed the server before they picked any other block, then after loading the map on single player and waiting a few seconds, one of the enderman picked a block and the game crashed.
It seems that as the block id is internally saved as byte it is not properly converted to int when using it as a index of the "material array".....
It keeps the signal bit and messes up the integer signal, probably there is a missing " int idAsInteger = (idAsByte & 0xFF); " somewhere on the code.
This is suported by the fact that the Exception is ArrayIndexOutOfBoundsException and the index is -123.
-123 is the same as 133 (emerald block) when using the last by as signal (two's complement)AND
I think the it would be good to change the enderman's NBT tags 'carried' and 'carriedData' from Short to Byte to keep it equal to the FallingSand/FallingBlock 's 'Tile' and 'Data' tags that are Bytes.
Happy Digging
Minecraft Crash Report when Loading the Map in Single Player---- Minecraft Crash Report ---- // Don't be sad. I'll do better next time, I promise! Time: 04-01-2013 23:29 Description: Ticking entity java.lang.ArrayIndexOutOfBoundsException: -123 at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) at yc.h(SourceFile:1196) at in.h(SourceFile:362) at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) -- Entity being ticked -- Details: Entity Type: Enderman (qd) Entity ID: 3913714 Name: Enderman Exact location: 224,35, 64,00, 23,17 Block location: World: (224,64,23), Chunk: (at 0,4,7 in 14,1; contains blocks 224,0,16 to 239,255,31), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Momentum: -0,00, -0,08, 0,03 Stacktrace: at yc.h(SourceFile:1196) at in.h(SourceFile:362) -- Affected level -- Details: Level name: Foguetes All players: 1 total; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Chunk stats: ServerChunkCache: 625 Drop: 0 Level seed: 2871721227194718943 Level generator: ID 00 - default, ver 1. Features enabled: true Level generator options: Level spawn location: World: (268,64,-2), Chunk: (at 12,4,14 in 16,-1; contains blocks 256,0,-16 to 271,255,-1), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1) Level time: 3267873 game time, 3753717 day time Level dimension: 0 Level storage version: 0x04ABD - Anvil Level weather: Rain time: 51739 (now: false), thunder time: 64063 (now: false) Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: false Stacktrace: at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) -- System Details -- Details: Minecraft Version: 1.4.6 Operating System: Windows Vista (x86) version 6.0 Java Version: 1.7.0_02, Oracle Corporation Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation Memory: 284210728 bytes (271 MB) / 519110656 bytes (495 MB) up to 1037959168 bytes (989 MB) JVM Flags: 2 total; -Xms512m -Xmx1024m AABB Pool Size: 3273 (183288 bytes; 0 MB) allocated, 774 (43344 bytes; 0 MB) used Suspicious classes: No suspicious classes found. IntCache: cache: 0, tcache: 0, allocated: 1, tallocated: 63 Profiler Position: N/A (disabled) Vec3 Pool Size: 1634 (91504 bytes; 0 MB) allocated, 627 (35112 bytes; 0 MB) used Player Count: 1 / 8; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Type: Integrated Server (map_client.txt) Is Modded: Probably not. Jar signature remains and both client + server brands are untouched.The issue is that enderman cannot carry blocks with id larger then 127, the block will not render and the game will crash when they try to swap the block again.
They WILL carry any block with id under 127.
All tests where done using the emerald block (id 133).
It first happened when I was creating a bukkit plugin that edited the carried and carriedId NBT tags for the enderman, I was able to spawn them but, as said before, the block did not render and the server crashed when one of these enderman tried to pick another block.
Then I edited some more enderman (with emerald block) and closed the server before they picked any other block, then after loading the map on single player and waiting a few seconds, one of the enderman picked a block and the game crashed.
It seems that as the block id is internally saved as byte it is not properly converted to int when using it as a index of the "material array".....
It keeps the signal bit and messes up the integer signal, probably there is a missing " int idAsInteger = (idAsByte & 0xFF); " somewhere on the code.
This is suported by the fact that the Exception is ArrayIndexOutOfBoundsException and the index is -123.
-123 is the same as 133 (emerald block) when using the last by as signal (two's complement)AND
I think the it would be good to change the enderman's NBT tags 'carried' and 'carriedData' from Short to Byte to keep it equal to the FallingSand/FallingBlock 's 'Tile' and 'Data' tags that are Bytes.
Happy Digging
Minecraft Crash Report when Loading the Map in Single Player---- Minecraft Crash Report ---- // Don't be sad. I'll do better next time, I promise! Time: 04-01-2013 23:29 Description: Ticking entity java.lang.ArrayIndexOutOfBoundsException: -123 at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) at yc.h(SourceFile:1196) at in.h(SourceFile:362) at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) -- Entity being ticked -- Details: Entity Type: Enderman (qd) Entity ID: 3913714 Name: Enderman Exact location: 224,35, 64,00, 23,17 Block location: World: (224,64,23), Chunk: (at 0,4,7 in 14,1; contains blocks 224,0,16 to 239,255,31), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Momentum: -0,00, -0,08, 0,03 Stacktrace: at yc.h(SourceFile:1196) at in.h(SourceFile:362) -- Affected level -- Details: Level name: Foguetes All players: 1 total; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Chunk stats: ServerChunkCache: 625 Drop: 0 Level seed: 2871721227194718943 Level generator: ID 00 - default, ver 1. Features enabled: true Level generator options: Level spawn location: World: (268,64,-2), Chunk: (at 12,4,14 in 16,-1; contains blocks 256,0,-16 to 271,255,-1), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1) Level time: 3267873 game time, 3753717 day time Level dimension: 0 Level storage version: 0x04ABD - Anvil Level weather: Rain time: 51739 (now: false), thunder time: 64063 (now: false) Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: false Stacktrace: at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) -- System Details -- Details: Minecraft Version: 1.4.6 Operating System: Windows Vista (x86) version 6.0 Java Version: 1.7.0_02, Oracle Corporation Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation Memory: 284210728 bytes (271 MB) / 519110656 bytes (495 MB) up to 1037959168 bytes (989 MB) JVM Flags: 2 total; -Xms512m -Xmx1024m AABB Pool Size: 3273 (183288 bytes; 0 MB) allocated, 774 (43344 bytes; 0 MB) used Suspicious classes: No suspicious classes found. IntCache: cache: 0, tcache: 0, allocated: 1, tallocated: 63 Profiler Position: N/A (disabled) Vec3 Pool Size: 1634 (91504 bytes; 0 MB) allocated, 627 (35112 bytes; 0 MB) used Player Count: 1 / 8; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Type: Integrated Server (map_client.txt) Is Modded: Probably not. Jar signature remains and both client + server brands are untouched.
The issue is that enderman cannot carry blocks with id larger then 127, the block will not render and the game will crash when they try to swap the block again.
They WILL carry any block with id under 127.
All tests where done using the emerald block (id 133).
It first happened when I was creating a bukkit plugin that edited the carried and carriedId NBT tags for the enderman, I was able to spawn them but, as said before, the block did not render and the server crashed when one of these enderman tried to pick another block.
Then I edited some more enderman (with emerald block) and closed the server before they picked any other block, then after loading the map on single player and waiting a few seconds, one of the enderman picked a block and the game crashed.
It seems that as the block id is internally saved as byte it is not properly converted to int when using it as a index of the "material array".....
It keeps the signal bit and messes up the integer signal, probably there is a missing " int idAsInteger = (idAsByte & 0xFF); " somewhere on the code.
This is suported by the fact that the Exception is ArrayIndexOutOfBoundsException and the index is -123.
-123 is the same as 133 (emerald block) when using the last by as signal (two's complement)The same may occur for carriedData (not tested)
AND
I think the it would be good to change the enderman's NBT tags 'carried' and 'carriedData' from Short to Byte to keep it equal to the FallingSand/FallingBlock 's 'Tile' and 'Data' tags that are Bytes.
Happy Digging
Minecraft Crash Report when Loading the Map in Single Player---- Minecraft Crash Report ---- // Don't be sad. I'll do better next time, I promise! Time: 04-01-2013 23:29 Description: Ticking entity java.lang.ArrayIndexOutOfBoundsException: -123 at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) at yc.h(SourceFile:1196) at in.h(SourceFile:362) at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) -- Entity being ticked -- Details: Entity Type: Enderman (qd) Entity ID: 3913714 Name: Enderman Exact location: 224,35, 64,00, 23,17 Block location: World: (224,64,23), Chunk: (at 0,4,7 in 14,1; contains blocks 224,0,16 to 239,255,31), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Momentum: -0,00, -0,08, 0,03 Stacktrace: at yc.h(SourceFile:1196) at in.h(SourceFile:362) -- Affected level -- Details: Level name: Foguetes All players: 1 total; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Chunk stats: ServerChunkCache: 625 Drop: 0 Level seed: 2871721227194718943 Level generator: ID 00 - default, ver 1. Features enabled: true Level generator options: Level spawn location: World: (268,64,-2), Chunk: (at 12,4,14 in 16,-1; contains blocks 256,0,-16 to 271,255,-1), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1) Level time: 3267873 game time, 3753717 day time Level dimension: 0 Level storage version: 0x04ABD - Anvil Level weather: Rain time: 51739 (now: false), thunder time: 64063 (now: false) Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: false Stacktrace: at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) -- System Details -- Details: Minecraft Version: 1.4.6 Operating System: Windows Vista (x86) version 6.0 Java Version: 1.7.0_02, Oracle Corporation Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation Memory: 284210728 bytes (271 MB) / 519110656 bytes (495 MB) up to 1037959168 bytes (989 MB) JVM Flags: 2 total; -Xms512m -Xmx1024m AABB Pool Size: 3273 (183288 bytes; 0 MB) allocated, 774 (43344 bytes; 0 MB) used Suspicious classes: No suspicious classes found. IntCache: cache: 0, tcache: 0, allocated: 1, tallocated: 63 Profiler Position: N/A (disabled) Vec3 Pool Size: 1634 (91504 bytes; 0 MB) allocated, 627 (35112 bytes; 0 MB) used Player Count: 1 / 8; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Type: Integrated Server (map_client.txt) Is Modded: Probably not. Jar signature remains and both client + server brands are untouched.
The issue is that enderman cannot carry blocks with id larger then 127, the block will not render and the game will crash when they try to swap the block again.
They WILL carry any block with id under 127.
All tests where done using the emerald block (id 133).
It first happened when I was creating a bukkit plugin that edited the carried and carried
IdNBT tags for the enderman, I was able to spawn them but, as said before, the block did not render and the server crashed when one of these enderman tried to pick another block.Then I edited some more enderman (with emerald block) and closed the server before they picked any other block, then after loading the map on single player and waiting a few seconds, one of the enderman picked a block and the game crashed.
It seems that as the block id is internally saved as byte it is not properly converted to int when using it as a index of the "material array".....
It keeps the signal bit and messes up the integer signal, probably there is a missing " int idAsInteger = (idAsByte & 0xFF); " somewhere on the code.
This is suported by the fact that the Exception is ArrayIndexOutOfBoundsException and the index is -123.
-123 is the same as 133 (emerald block) when using the last by as signal (two's complement)The same may occur for carriedData (not tested)
AND
I think the it would be good to change the enderman's NBT tags 'carried' and 'carriedData' from Short to Byte to keep it equal to the FallingSand/FallingBlock 's 'Tile' and 'Data' tags that are Bytes.
Happy Digging
Minecraft Crash Report when Loading the Map in Single Player---- Minecraft Crash Report ---- // Don't be sad. I'll do better next time, I promise! Time: 04-01-2013 23:29 Description: Ticking entity java.lang.ArrayIndexOutOfBoundsException: -123 at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) at yc.h(SourceFile:1196) at in.h(SourceFile:362) at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) -- Entity being ticked -- Details: Entity Type: Enderman (qd) Entity ID: 3913714 Name: Enderman Exact location: 224,35, 64,00, 23,17 Block location: World: (224,64,23), Chunk: (at 0,4,7 in 14,1; contains blocks 224,0,16 to 239,255,31), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Momentum: -0,00, -0,08, 0,03 Stacktrace: at yc.h(SourceFile:1196) at in.h(SourceFile:362) -- Affected level -- Details: Level name: Foguetes All players: 1 total; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Chunk stats: ServerChunkCache: 625 Drop: 0 Level seed: 2871721227194718943 Level generator: ID 00 - default, ver 1. Features enabled: true Level generator options: Level spawn location: World: (268,64,-2), Chunk: (at 12,4,14 in 16,-1; contains blocks 256,0,-16 to 271,255,-1), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1) Level time: 3267873 game time, 3753717 day time Level dimension: 0 Level storage version: 0x04ABD - Anvil Level weather: Rain time: 51739 (now: false), thunder time: 64063 (now: false) Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: false Stacktrace: at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) -- System Details -- Details: Minecraft Version: 1.4.6 Operating System: Windows Vista (x86) version 6.0 Java Version: 1.7.0_02, Oracle Corporation Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation Memory: 284210728 bytes (271 MB) / 519110656 bytes (495 MB) up to 1037959168 bytes (989 MB) JVM Flags: 2 total; -Xms512m -Xmx1024m AABB Pool Size: 3273 (183288 bytes; 0 MB) allocated, 774 (43344 bytes; 0 MB) used Suspicious classes: No suspicious classes found. IntCache: cache: 0, tcache: 0, allocated: 1, tallocated: 63 Profiler Position: N/A (disabled) Vec3 Pool Size: 1634 (91504 bytes; 0 MB) allocated, 627 (35112 bytes; 0 MB) used Player Count: 1 / 8; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Type: Integrated Server (map_client.txt) Is Modded: Probably not. Jar signature remains and both client + server brands are untouched.The issue is that enderman cannot carry blocks with id larger then 127, the block will not render and the game will crash when they try to swap the block again.
They WILL carry any block with id under 127.
All tests where done using the emerald block (id 133).
It first happened when I was creating a bukkit plugin that edited the carried and carriedData NBT tags for the enderman, I was able to spawn them but, as said before, the block did not render and the server crashed when one of these enderman tried to pick another block.
Then I edited some more enderman (with emerald block) and closed the server before they picked any other block, then after loading the map on single player and waiting a few seconds, one of the enderman picked a block and the game crashed.
It seems that as the block id is internally saved as byte it is not properly converted to int when using it as a index of the "material array".....
It keeps the signal bit and messes up the integer signal, probably there is a missing " int idAsInteger = (idAsByte & 0xFF); " somewhere on the code.
This is suported by the fact that the Exception is ArrayIndexOutOfBoundsException and the index is -123.
-123 is the same as 133 (emerald block) when using the last by as signal (two's complement)The same may occur for carriedData (not tested)
AND
I think the it would be good to change the enderman's NBT tags 'carried' and 'carriedData' from Short to Byte to keep it equal to the FallingSand/FallingBlock 's 'Tile' and 'Data' tags that are Bytes.
Happy Digging
Minecraft Crash Report when Loading the Map in Single Player---- Minecraft Crash Report ---- // Don't be sad. I'll do better next time, I promise! Time: 04-01-2013 23:29 Description: Ticking entity java.lang.ArrayIndexOutOfBoundsException: -123 at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) at yc.h(SourceFile:1196) at in.h(SourceFile:362) at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) -- Entity being ticked -- Details: Entity Type: Enderman (qd) Entity ID: 3913714 Name: Enderman Exact location: 224,35, 64,00, 23,17 Block location: World: (224,64,23), Chunk: (at 0,4,7 in 14,1; contains blocks 224,0,16 to 239,255,31), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Momentum: -0,00, -0,08, 0,03 Stacktrace: at yc.h(SourceFile:1196) at in.h(SourceFile:362) -- Affected level -- Details: Level name: Foguetes All players: 1 total; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Chunk stats: ServerChunkCache: 625 Drop: 0 Level seed: 2871721227194718943 Level generator: ID 00 - default, ver 1. Features enabled: true Level generator options: Level spawn location: World: (268,64,-2), Chunk: (at 12,4,14 in 16,-1; contains blocks 256,0,-16 to 271,255,-1), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1) Level time: 3267873 game time, 3753717 day time Level dimension: 0 Level storage version: 0x04ABD - Anvil Level weather: Rain time: 51739 (now: false), thunder time: 64063 (now: false) Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: false Stacktrace: at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) -- System Details -- Details: Minecraft Version: 1.4.6 Operating System: Windows Vista (x86) version 6.0 Java Version: 1.7.0_02, Oracle Corporation Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation Memory: 284210728 bytes (271 MB) / 519110656 bytes (495 MB) up to 1037959168 bytes (989 MB) JVM Flags: 2 total; -Xms512m -Xmx1024m AABB Pool Size: 3273 (183288 bytes; 0 MB) allocated, 774 (43344 bytes; 0 MB) used Suspicious classes: No suspicious classes found. IntCache: cache: 0, tcache: 0, allocated: 1, tallocated: 63 Profiler Position: N/A (disabled) Vec3 Pool Size: 1634 (91504 bytes; 0 MB) allocated, 627 (35112 bytes; 0 MB) used Player Count: 1 / 8; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Type: Integrated Server (map_client.txt) Is Modded: Probably not. Jar signature remains and both client + server brands are untouched.
Enderman NBT Data sign bit error
The issue is that enderman cannot carry blocks with id larger then 127, the block will not render and the game will crash when they try to swap the block again.
They WILL carry any block with id under 127.
All tests where done using the emerald block (id 133).
It first happened when I was creating a bukkit plugin that edited the carried and carriedData NBT tags for the enderman, I was able to spawn them but, as said before, the block did not render and the server crashed when one of these enderman tried to pick another block.
Then I edited some more enderman (with emerald block) and closed the server before they picked any other block, then after loading the map on single player and waiting a few seconds, one of the enderman picked a block and the game crashed.
It seems that as the block id is internally saved as byte it is not properly converted to int when using it as a index of the "material array".....
It keeps the signal bit and messes up the integer signal, probably there is a missing " int idAsInteger = (idAsByte & 0xFF); " somewhere on the code.
This is suported by the fact that the Exception is ArrayIndexOutOfBoundsException and the index is -123.
-123 is the same as 133 (emerald block) when using the last by as signal(two's complement)The same may occur for carriedData (not tested)
AND
I think the it would be good to change the enderman's NBT tags 'carried' and 'carriedData' from Short to Byte to keep it equal to the FallingSand/FallingBlock 's 'Tile' and 'Data' tags that are Bytes.
Happy Digging
Minecraft Crash Report when Loading the Map in Single Player---- Minecraft Crash Report ---- // Don't be sad. I'll do better next time, I promise! Time: 04-01-2013 23:29 Description: Ticking entity java.lang.ArrayIndexOutOfBoundsException: -123 at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) at yc.h(SourceFile:1196) at in.h(SourceFile:362) at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) -- Entity being ticked -- Details: Entity Type: Enderman (qd) Entity ID: 3913714 Name: Enderman Exact location: 224,35, 64,00, 23,17 Block location: World: (224,64,23), Chunk: (at 0,4,7 in 14,1; contains blocks 224,0,16 to 239,255,31), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Momentum: -0,00, -0,08, 0,03 Stacktrace: at yc.h(SourceFile:1196) at in.h(SourceFile:362) -- Affected level -- Details: Level name: Foguetes All players: 1 total; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Chunk stats: ServerChunkCache: 625 Drop: 0 Level seed: 2871721227194718943 Level generator: ID 00 - default, ver 1. Features enabled: true Level generator options: Level spawn location: World: (268,64,-2), Chunk: (at 12,4,14 in 16,-1; contains blocks 256,0,-16 to 271,255,-1), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1) Level time: 3267873 game time, 3753717 day time Level dimension: 0 Level storage version: 0x04ABD - Anvil Level weather: Rain time: 51739 (now: false), thunder time: 64063 (now: false) Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: false Stacktrace: at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) -- System Details -- Details: Minecraft Version: 1.4.6 Operating System: Windows Vista (x86) version 6.0 Java Version: 1.7.0_02, Oracle Corporation Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation Memory: 284210728 bytes (271 MB) / 519110656 bytes (495 MB) up to 1037959168 bytes (989 MB) JVM Flags: 2 total; -Xms512m -Xmx1024m AABB Pool Size: 3273 (183288 bytes; 0 MB) allocated, 774 (43344 bytes; 0 MB) used Suspicious classes: No suspicious classes found. IntCache: cache: 0, tcache: 0, allocated: 1, tallocated: 63 Profiler Position: N/A (disabled) Vec3 Pool Size: 1634 (91504 bytes; 0 MB) allocated, 627 (35112 bytes; 0 MB) used Player Count: 1 / 8; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Type: Integrated Server (map_client.txt) Is Modded: Probably not. Jar signature remains and both client + server brands are untouched.
The issue is that enderman cannot carry blocks with id larger then 127, the block will not render and the game will crash when they try to swap the block again.
They WILL carry any block with id under 127.
All tests where done using the emerald block (id 133).
It first happened when I was creating a bukkit plugin that edited the carried and carriedData NBT tags for the enderman, I was able to spawn them but, as said before, the block did not render and the server crashed when one of these enderman tried to pick another block.
Then I edited some more enderman (with emerald block) and closed the server before they picked any other block, then after loading the map on single player and waiting a few seconds, one of the enderman picked a block and the game crashed.
It seems that as the block id is internally saved as byte it is not properly converted to int when using it as a index of the "material array".....
It keeps the signalbit and messes up the integer sign, probably there is a missing " int idAsInteger = (idAsByte & 0xFF); " somewhere on the code.
This is suported by the fact that the Exception is ArrayIndexOutOfBoundsException and the index is -123.
-123 is the same as 133 (emerald block) when using the last by as sign (two's complement)The same may occur for carriedData (not tested)
AND
I think the it would be good to change the enderman's NBT tags 'carried' and 'carriedData' from Short to Byte to keep it equal to the FallingSand/FallingBlock 's 'Tile' and 'Data' tags that are Bytes.
Happy Digging
Minecraft Crash Report when Loading the Map in Single Player---- Minecraft Crash Report ---- // Don't be sad. I'll do better next time, I promise! Time: 04-01-2013 23:29 Description: Ticking entity java.lang.ArrayIndexOutOfBoundsException: -123 at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) at yc.h(SourceFile:1196) at in.h(SourceFile:362) at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) -- Entity being ticked -- Details: Entity Type: Enderman (qd) Entity ID: 3913714 Name: Enderman Exact location: 224,35, 64,00, 23,17 Block location: World: (224,64,23), Chunk: (at 0,4,7 in 14,1; contains blocks 224,0,16 to 239,255,31), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Momentum: -0,00, -0,08, 0,03 Stacktrace: at yc.h(SourceFile:1196) at in.h(SourceFile:362) -- Affected level -- Details: Level name: Foguetes All players: 1 total; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Chunk stats: ServerChunkCache: 625 Drop: 0 Level seed: 2871721227194718943 Level generator: ID 00 - default, ver 1. Features enabled: true Level generator options: Level spawn location: World: (268,64,-2), Chunk: (at 12,4,14 in 16,-1; contains blocks 256,0,-16 to 271,255,-1), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1) Level time: 3267873 game time, 3753717 day time Level dimension: 0 Level storage version: 0x04ABD - Anvil Level weather: Rain time: 51739 (now: false), thunder time: 64063 (now: false) Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: false Stacktrace: at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) -- System Details -- Details: Minecraft Version: 1.4.6 Operating System: Windows Vista (x86) version 6.0 Java Version: 1.7.0_02, Oracle Corporation Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation Memory: 284210728 bytes (271 MB) / 519110656 bytes (495 MB) up to 1037959168 bytes (989 MB) JVM Flags: 2 total; -Xms512m -Xmx1024m AABB Pool Size: 3273 (183288 bytes; 0 MB) allocated, 774 (43344 bytes; 0 MB) used Suspicious classes: No suspicious classes found. IntCache: cache: 0, tcache: 0, allocated: 1, tallocated: 63 Profiler Position: N/A (disabled) Vec3 Pool Size: 1634 (91504 bytes; 0 MB) allocated, 627 (35112 bytes; 0 MB) used Player Count: 1 / 8; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Type: Integrated Server (map_client.txt) Is Modded: Probably not. Jar signature remains and both client + server brands are untouched.
The issue is that enderman cannot carry blocks with id larger then 127, the block will not render and the game will crash when they try to swap the block again.
They WILL carry any block with id under 127.
All tests where done using the emerald block (id 133).
It first happened when I was creating a bukkit plugin that edited the carried and carriedData NBT tags for the enderman, I was able to spawn them but, as said before, the block did not render and the server crashed when one of these enderman tried to pick another block.
Then I edited some more enderman (with emerald block) and closed the server before they picked any other block, then after loading the map on single player and waiting a few seconds, one of the enderman picked a block and the game crashed.
It seems that as the block id is internally saved as byte it is not properly converted to int when using it as a index of the "material array".....
It keeps the sign bit and messes up the integer sign, probably there is a missing " int idAsInteger = (idAsByte & 0xFF); " somewhere on the code.
This is suported by the fact that the Exception is ArrayIndexOutOfBoundsException and the index is -123.
-123 is the same as 133 (emerald block) when using the last by as sign (two's complement)The same may occur for carriedData (not tested)
AND
I think the it would be good to change the enderman's NBT tags 'carried' and 'carriedData' from Short to Byte to keep it equal to the FallingSand/FallingBlock 's 'Tile' and 'Data' tags that are Bytes.
Happy Digging
Minecraft Crash Report when Loading the Map in Single Player---- Minecraft Crash Report ---- // Don't be sad. I'll do better next time, I promise! Time: 04-01-2013 23:29 Description: Ticking entity java.lang.ArrayIndexOutOfBoundsException: -123 at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) at yc.h(SourceFile:1196) at in.h(SourceFile:362) at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at aaa.a(SourceFile:47) at zz.a(SourceFile:364) at yc.a(SourceFile:299) at yc.c(SourceFile:288) at yc.d(SourceFile:370) at qd.c(SourceFile:137) at md.j_(SourceFile:540) at qj.j_(SourceFile:31) at yc.a(SourceFile:1319) at in.a(SourceFile:450) at yc.g(SourceFile:1297) -- Entity being ticked -- Details: Entity Type: Enderman (qd) Entity ID: 3913714 Name: Enderman Exact location: 224,35, 64,00, 23,17 Block location: World: (224,64,23), Chunk: (at 0,4,7 in 14,1; contains blocks 224,0,16 to 239,255,31), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Momentum: -0,00, -0,08, 0,03 Stacktrace: at yc.h(SourceFile:1196) at in.h(SourceFile:362) -- Affected level -- Details: Level name: Foguetes All players: 1 total; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Chunk stats: ServerChunkCache: 625 Drop: 0 Level seed: 2871721227194718943 Level generator: ID 00 - default, ver 1. Features enabled: true Level generator options: Level spawn location: World: (268,64,-2), Chunk: (at 12,4,14 in 16,-1; contains blocks 256,0,-16 to 271,255,-1), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1) Level time: 3267873 game time, 3753717 day time Level dimension: 0 Level storage version: 0x04ABD - Anvil Level weather: Rain time: 51739 (now: false), thunder time: 64063 (now: false) Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: false Stacktrace: at net.minecraft.server.MinecraftServer.r(SourceFile:744) at net.minecraft.server.MinecraftServer.q(SourceFile:679) at bdz.q(SourceFile:117) at net.minecraft.server.MinecraftServer.run(SourceFile:613) at fy.run(SourceFile:849) -- System Details -- Details: Minecraft Version: 1.4.6 Operating System: Windows Vista (x86) version 6.0 Java Version: 1.7.0_02, Oracle Corporation Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation Memory: 284210728 bytes (271 MB) / 519110656 bytes (495 MB) up to 1037959168 bytes (989 MB) JVM Flags: 2 total; -Xms512m -Xmx1024m AABB Pool Size: 3273 (183288 bytes; 0 MB) allocated, 774 (43344 bytes; 0 MB) used Suspicious classes: No suspicious classes found. IntCache: cache: 0, tcache: 0, allocated: 1, tallocated: 63 Profiler Position: N/A (disabled) Vec3 Pool Size: 1634 (91504 bytes; 0 MB) allocated, 627 (35112 bytes; 0 MB) used Player Count: 1 / 8; [iq['goncalomb'/3913857, l='Foguetes', x=243,20, y=68,65, z=0,70]] Type: Integrated Server (map_client.txt) Is Modded: Probably not. Jar signature remains and both client + server brands are untouched.The issue is that enderman cannot carry blocks with id larger then 127, the block will not render and the game will crash when they try to swap the block again.
They WILL carry any block with id under 127.
All tests where done using the emerald block (id 133).
It first happened when I was creating a bukkit plugin that edited the carried and carriedData NBT tags for the enderman, I was able to spawn them but, as said before, the block did not render and the server crashed when one of these enderman tried to pick another block.
Then I edited some more enderman (with emerald block) and closed the server before they picked any other block, then after loading the map on single player and waiting a few seconds, one of the enderman picked a block and the game crashed.
It seems that as the block id is internally saved as byte it is not properly converted to int when using it as a index of the "material array".....
It keeps the sign bit and messes up the integer sign, probably there is a missing " int idAsInteger = (idAsByte & 0xFF); " somewhere on the code.
This is suported by the fact that the Exception is ArrayIndexOutOfBoundsException and the index is -123.
-123 is the same as 133 (emerald block) when using the last by as sign (two's complement)The same may occur for carriedData (not tested)
Crash reports below!
Is this still a concern in the current Minecraft version? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases.
Is this still a concern in the current Minecraft version 1.6.2 / Launcher version 1.1.3 ? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases.
Please attach current crash report.
Enderman aren't supposed to carry those blocks. See the wiki for the blocks that they are supposed to carry.
Your making them do something unintended.
@Xavier Brown, You are right they by default all blocks carried by enderman are with id under 127. But i still think that they are not working right. If they would have programmed enderman to pick up emerald blocks by default it would have crashed the game. This does not affect the normal user but is an inconsistency in the code.
It might affect adventure maps.
I just tested it and, yes, it's still present on 1.5, just updated the affected versions...
Confirmed on release 1.5.2.
what about 1.6?
Still happens in 1.6.2, just updated using a new crash report!
Is this still a concern in the current Minecraft version 1.7.2 / Launcher version 1.3.4 ? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases.
This ticket is incomplete without the requested information, no response has been received within a reasonable time and we are assuming the issue has been resolved. If you are still experiencing this issue, we can reopen it at your request.
Please review the guidelines before reporting issues.