代碼崩潰運行命令時
MainClass:http://pastebin.com/U99LAQ6z
ListenerClass:http://pastebin.com/ZF5i8mw1
說明
我正在我的插件,我目前正在創建的部分大堂。基本上我所做的是當玩家用鼠標左鍵點擊它們設置點1,當他們右鍵單擊他們設置點2.我有一個塊選擇器,選擇第一個塊,然後選擇所有塊Y和Z上的所有塊,然後在X上,直到它們等於點2。它將每個塊記錄到一個HashMap中,以便在需要時再調用塊。我的問題是我認爲我有一個無限循環或類似的東西,因爲控制檯給我一個錯誤。有時它也會給我一個更長的堆棧跟蹤,我只是對此感到困惑。
所以我想要做的是創建一個簡單的基礎,我將用於所有未來的插件,需要定義區域。這是假設當玩家運行命令positionwand它給他們一個工具,讓他們選擇點。左擊選擇point1,右擊選擇point2。我使用getPoint1和getPoint2來獲取它們,因爲我將這些點存儲在HashMap中。一旦玩家選擇了他們運行命令/ lobbycreate(lobbyname)的點,並且當他們運行該命令時,假設獲得並存儲給定點內的所有塊。爲此,我使用一系列的for循環。首先,我有變量blockSelector。我希望blockSelector從getPoint1開始,然後去getPoint2選擇這兩個點之間的所有塊。然後我們去我的第一個循環,而blockSelector.getBlockX()!= getPoint2X,getPoint2X是我用來獲取getPoint2的X座標的變量。這一點就是這樣,所有這個循環和這個循環中的所有循環都將繼續,直到blockSelector和getPoint2X都具有相同的值。在這個循環中,我有另外一個循環,除了使用Z座標之外,還做了同樣的事情,因此它選擇了Z座標上的所有塊,但是隻有在它內部的循環中選擇了Y座標上的所有塊。經過這一切後,我根據replaceVar是什麼來增加或減少1,並重復循環,直到blockSelector的所有3個座標都等於getPoint2,從而保存進程中的所有塊。我擁有所有這些if語句和replaceVar的原因是因爲選擇座標時,玩家可以選擇負座標和正座標,並且getPoint1可以大於或小於getPoint2,所以我必須根據這兩個值進行增加或減少。
控制檯輸出
jobisingh issued server command: /lobbycreate gulp
[09:46:50 ERROR]: The server has stopped responding!
[09:46:50 ERROR]: Please report this to http://www.spigotmc.org/
[09:46:50 ERROR]: Be sure to include ALL relevant console errors and Minecraft crash reports
[09:46:50 ERROR]: Spigot version: git-Spigot-b2c2c63-a3cb1bc (MC: 1.8.7)
[09:46:50 ERROR]: ------------------------------
[09:46:50 ERROR]: Server thread dump (Look for plugins here before reporting to Spigot!):
[09:46:50 ERROR]: ------------------------------
[09:46:50 ERROR]: Current Thread: Server thread
[09:46:50 ERROR]: PID: 17 | Suspended: false | Native: false | State: RUNNABLE
[09:46:50 ERROR]: Stack:
[09:46:50 ERROR]: java.util.HashMap.put(Unknown Source)
[09:46:50 ERROR]: me.jobisingh.MainClass.onCommand(MainClass.java:223)
[09:46:50 ERROR]: org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
[09:46:50 ERROR]: org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141)
[09:46:50 ERROR]: org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:640)
[09:46:50 ERROR]: net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1149)
[09:46:50 ERROR]: net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:984)
[09:46:50 ERROR]: net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45)
[09:46:50 ERROR]: net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1)
[09:46:50 ERROR]: net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13)
[09:46:50 ERROR]: java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
[09:46:50 ERROR]: java.util.concurrent.FutureTask.run(Unknown Source)
[09:46:50 ERROR]: net.minecraft.server.v1_8_R3.SystemUtils.a(SystemUtils.java:19)
[09:46:50 ERROR]: net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:714)
[09:46:50 ERROR]: net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374)
[09:46:50 ERROR]: net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:653)
[09:46:50 ERROR]: net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:556)
[09:46:50 ERROR]: java.lang.Thread.run(Unknown Source)
[09:46:50 ERROR]: ------------------------------
[09:46:50 ERROR]: Entire Thread Dump:
[09:46:50 ERROR]: ------------------------------
[09:46:50 ERROR]: Current Thread: Chunk I/O Executor Thread-1
[09:46:50 ERROR]: PID: 38 | Suspended: false | Native: false | State: WAITING
[09:46:50 ERROR]: Stack:
> Press any key to continue . . .