TARDIS

TARDIS

228k Downloads

Exterminating a TARDIS with players inside causes an error and the TARDIS is not exterminated fully

Technoguyfication opened this issue ยท 0 comments

commented

Describe the bug
Exterminating a TARDIS with players inside it (and online) causes an error in the server console and the TARDIS is not fully exterminated. The police box dematerializes, but the timelord can /tardis rebuild it and use it normally still.

The error:

[01:45:48 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'tardis' in plugin TARDIS v4.6.3-b2282
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[patched_1.16.5.jar:git-Paper-752]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.16.5.jar:git-Paper-752]
        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.dispatchCommand(CraftServer.java:826) ~[patched_1.16.5.jar:git-Paper-752]
        at net.minecraft.server.v1_16_R3.PlayerConnection.handleCommand(PlayerConnection.java:2185) ~[patched_1.16.5.jar:git-Paper-752]
        at net.minecraft.server.v1_16_R3.PlayerConnection.c(PlayerConnection.java:2000) ~[patched_1.16.5.jar:git-Paper-752]
        at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:1953) ~[patched_1.16.5.jar:git-Paper-752]
        at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:50) ~[patched_1.16.5.jar:git-Paper-752]
        at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:8) ~[patched_1.16.5.jar:git-Paper-752]
        at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:35) ~[patched_1.16.5.jar:git-Paper-752]
        at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Paper-752]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Paper-752]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Paper-752]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Paper-752]
        at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1266) ~[patched_1.16.5.jar:git-Paper-752]
        at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1259) ~[patched_1.16.5.jar:git-Paper-752]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.5.jar:git-Paper-752]
        at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1220) ~[patched_1.16.5.jar:git-Paper-752]
        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1134) ~[patched_1.16.5.jar:git-Paper-752]
        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291) ~[patched_1.16.5.jar:git-Paper-752]
        at java.lang.Thread.run(Thread.java:831) [?:?]
Caused by: java.lang.UnsupportedOperationException: Calling Entity#remove on players produces undefined (bad) behavior
        at org.bukkit.craftbukkit.v1_16_R3.entity.CraftPlayer.remove(CraftPlayer.java:2262) ~[patched_1.16.5.jar:git-Paper-752]
        at me.eccentric_nz.TARDIS.builders.TARDISInteriorPostioning.reclaimChunks(TARDISInteriorPostioning.java:206) ~[?:?]
        at me.eccentric_nz.TARDIS.destroyers.TARDISDestroyerInner.destroyInner(TARDISDestroyerInner.java:67) ~[?:?]
        at me.eccentric_nz.TARDIS.destroyers.TARDISExterminator.exterminate(TARDISExterminator.java:257) ~[?:?]
        at me.eccentric_nz.TARDIS.commands.tardis.TARDISExterminateCommand.doExterminate(TARDISExterminateCommand.java:42) ~[?:?]
        at me.eccentric_nz.TARDIS.commands.tardis.TARDISCommands.onCommand(TARDISCommands.java:210) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[patched_1.16.5.jar:git-Paper-752]
        ... 19 more

To Reproduce
Steps to reproduce the behaviour:

  1. Grow a TARDIS and initialize it
  2. Have a player enter the TARDIS
  3. Break the sign on the police box, and do /tardis exterminate
  4. "An internal error occurred executing this command" message and the police box dematerializes.

In my testing, the player inside the TARDIS is not teleported out consistently. Sometimes they were teleported out, and sometimes they remained inside.

/tardis version output

[01:50:08 INFO]: [TARDIS] Server version: git-Paper-752 (MC: 1.16.5)
[01:50:08 INFO]: [TARDIS] TARDIS version: 4.6.3-b2282
[01:50:08 INFO]: [TARDIS] TARDISChunkGenerator version: 4.6.3
[01:50:08 INFO]: [TARDIS] Multiverse-Core version: 4.2.2-b812
[01:50:08 INFO]: [TARDIS] Essentials version: 2.18.2.0
[01:50:08 INFO]: [TARDIS] WorldGuard version: 7.0.4+f7ff984
[01:50:08 INFO]: [TARDIS] CoreProtect version: 19.5
[01:50:08 INFO]: [TARDIS] GriefPrevention version: 16.17.1-2b69191

Note: I didn't have time to test this on a fresh Minecraft server, but I did create a fresh TARDIS to test with and the behavior still occured.