代码崩溃运行命令时
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 . . .