- Баллы
- 76
В общем, есть один старый плагин на 1.7.9 который мне нужно оживить.
При написании команды, как я понял, должна спавнится маленькая платформа, но половина её спавнится и выдает ошибку в консоль. Немного разобравшись, я понял, что эта ошибка связанна с тем, что неправильно ставятся рамки. Я не совсем понимаю, что можно сделать с этой проблемой.
Прошу Вас о помощи.
При написании команды, как я понял, должна спавнится маленькая платформа, но половина её спавнится и выдает ошибку в консоль. Немного разобравшись, я понял, что эта ошибка связанна с тем, что неправильно ставятся рамки. Я не совсем понимаю, что можно сделать с этой проблемой.
Прошу Вас о помощи.
PHP:
private void createFrame(final int x, final int y, final int z, final Player p) {
final Location loc = p.getLocation();
loc.setX((double)x);
loc.setY((double)y);
loc.setZ((double)z);
p.getWorld().spawn(loc, ItemFrame.class);
}
PHP:
private void create(final CommandSender sender, final String name, final boolean vip) {
final Player p = (Player)sender;
final int x = p.getLocation().getBlockX();
final int y = p.getLocation().getBlockY();
final int z = p.getLocation().getBlockZ();
final char dir = this.getDirection(p, 0);
final World world = p.getWorld();
int blockID = this.fm.standardTableBlockID;
int blockData = this.fm.standardTableBlockDataValue;
int wblockID = this.fm.standardWallBlockID;
int wblockData = this.fm.standardWallBlockDataValue;
if (vip) {
blockID = this.fm.vipTableBlockID;
blockData = this.fm.vipTableBlockDataValue;
wblockID = this.fm.vipWallBlockID;
wblockData = this.fm.vipWallBlockDataValue;
}
this.undoWorld = world.getName();
this.undo = new int[128][5];
this.undonr = 0;
this.back = new int[10][2];
this.backnr = 0;
int x2 = x;
final int y2 = y;
int z2 = z;
if (dir == 'S') {
x2 -= 3;
for (int i = 0; i < 4; ++i) {
for (int n = 0; n < 7; ++n) {
this.setBlock(x2, y2, z2, 0, 0, world, true, false);
this.setBlock(x2, y2 + 1, z2, 0, 0, world, true, false);
this.setBlock(x2, y2 + 2, z2, 0, 0, world, true, false);
++x2;
}
++z2;
x2 -= 7;
}
for (int i = 0; i < 5; ++i) {
this.setBlock(x - 2 + i, y, z + 1, blockID, blockData, world, false, false);
this.setBlock(x - 2 + i, y, z + 2, blockID, blockData, world, false, false);
this.createSign(x - 2 + i, y, z, this.getDirection(p, 0), world, true);
}
this.setBlock(x - 1, y + 1, z + 4, wblockID, wblockData, world, false, true);
for (int i = 0; i < 7; ++i) {
this.setBlock(x - 3 + i, y, z + 3, wblockID, wblockData, world, false, false);
this.setBlock(x - 3 + i, y + 1, z + 3, wblockID, wblockData, world, false, false);
this.setBlock(x - 3 + i, y + 2, z + 3, wblockID, wblockData, world, false, false);
this.setBlock(x - 3 + i, y + 2, z + 4, wblockID, wblockData, world, false, true);
}
this.setBlock(x + 4, y + 2, z + 3, wblockID, wblockData, world, false, true);
this.setBlock(x - 4, y + 2, z + 3, wblockID, wblockData, world, false, true);
this.createFrame(x - 1, y + 1, z + 3, p);
this.createSign(x + 1, y + 1, z + 2, this.getDirection(p, 0), world, true);
for (int i = 0; i < 7; ++i) {
this.setBlock(x - 3 + i, y + 2, z + 2, 0, 0, world, false, false);
this.createFrame(x - 3 + i, y + 2, z + 3, p);
}
this.setBlock(x - 1, y + 1, z + 4, this.back[0][0], this.back[0][1], world, false, false);
for (int i = 0; i < 7; ++i) {
this.setBlock(x - 3 + i, y + 2, z + 4, this.back[i + 1][0], this.back[i + 1][1], world, false, false);
}
this.setBlock(x + 4, y + 2, z + 3, this.back[8][0], this.back[8][1], world, false, false);
this.setBlock(x - 4, y + 2, z + 3, this.back[9][0], this.back[9][1], world, false, false);
this.placeDoor(true, false, false, x, y, z + 3, dir, world);
}
if (dir == 'E') {
z2 -= 3;
for (int i = 0; i < 4; ++i) {
for (int n = 0; n < 7; ++n) {
this.setBlock(x2, y2, z2, 0, 0, world, true, false);
this.setBlock(x2, y2 + 1, z2, 0, 0, world, true, false);
this.setBlock(x2, y2 + 2, z2, 0, 0, world, true, false);
++z2;
}
++x2;
z2 -= 7;
}
for (int i = 0; i < 5; ++i) {
this.setBlock(x + 1, y, z - 2 + i, blockID, blockData, world, false, false);
this.setBlock(x + 2, y, z - 2 + i, blockID, blockData, world, false, false);
this.createSign(x, y, z - 2 + i, this.getDirection(p, 0), world, true);
}
this.setBlock(x + 4, y + 1, z + 1, wblockID, wblockData, world, false, true);
for (int i = 0; i < 7; ++i) {
this.setBlock(x + 3, y, z - 3 + i, wblockID, wblockData, world, false, false);
this.setBlock(x + 3, y + 1, z - 3 + i, wblockID, wblockData, world, false, false);
this.setBlock(x + 3, y + 2, z - 3 + i, wblockID, wblockData, world, false, false);
this.setBlock(x + 4, y + 2, z - 3 + i, wblockID, wblockData, world, false, true);
}
this.setBlock(x + 3, y + 2, z + 4, wblockID, wblockData, world, false, true);
this.setBlock(x + 3, y + 2, z - 4, wblockID, wblockData, world, false, true);
this.createFrame(x + 3, y + 1, z + 1, p);
this.createSign(x + 2, y + 1, z - 1, this.getDirection(p, 0), world, true);
for (int i = 0; i < 7; ++i) {
this.setBlock(x + 2, y + 2, z - 3 + i, 0, 0, world, false, false);
this.createFrame(x + 3, y + 2, z - 3 + i, p);
}
this.setBlock(x + 4, y + 1, z + 1, this.back[0][0], this.back[0][1], world, false, false);
for (int i = 0; i < 7; ++i) {
this.setBlock(x + 4, y + 2, z - 3 + i, this.back[i + 1][0], this.back[i + 1][1], world, false, false);
}
this.setBlock(x + 3, y + 2, z + 4, this.back[8][0], this.back[8][1], world, false, false);
this.setBlock(x + 3, y + 2, z - 4, this.back[9][0], this.back[9][1], world, false, false);
this.placeDoor(true, false, false, x + 3, y, z, dir, world);
}
if (dir == 'N') {
x2 -= 3;
for (int i = 0; i < 4; ++i) {
for (int n = 0; n < 7; ++n) {
this.setBlock(x2, y2, z2, 0, 0, world, true, false);
this.setBlock(x2, y2 + 1, z2, 0, 0, world, true, false);
this.setBlock(x2, y2 + 2, z2, 0, 0, world, true, false);
++x2;
}
--z2;
x2 -= 7;
}
for (int i = 0; i < 5; ++i) {
this.setBlock(x + 2 - i, y, z - 1, blockID, blockData, world, false, false);
this.setBlock(x + 2 - i, y, z - 2, blockID, blockData, world, false, false);
this.createSign(x + 2 - i, y, z, this.getDirection(p, 0), world, true);
}
this.setBlock(x + 1, y + 1, z - 4, wblockID, wblockData, world, false, true);
for (int i = 0; i < 7; ++i) {
this.setBlock(x + 3 - i, y, z - 3, wblockID, wblockData, world, false, false);
this.setBlock(x + 3 - i, y + 1, z - 3, wblockID, wblockData, world, false, false);
this.setBlock(x + 3 - i, y + 2, z - 3, wblockID, wblockData, world, false, false);
this.setBlock(x + 3 - i, y + 2, z - 4, wblockID, wblockData, world, false, true);
}
this.setBlock(x - 4, y + 2, z - 3, wblockID, wblockData, world, false, true);
this.setBlock(x + 4, y + 2, z - 3, wblockID, wblockData, world, false, true);
this.createFrame(x + 1, y + 1, z - 3, p);
this.createSign(x - 1, y + 1, z - 2, this.getDirection(p, 0), world, true);
for (int i = 0; i < 7; ++i) {
this.setBlock(x + 3 - i, y + 2, z - 2, 0, 0, world, false, false);
this.createFrame(x + 3 - i, y + 2, z - 3, p);
}
this.setBlock(x + 1, y + 1, z - 4, this.back[0][0], this.back[0][1], world, false, false);
for (int i = 0; i < 7; ++i) {
this.setBlock(x + 3 - i, y + 2, z - 4, this.back[i + 1][0], this.back[i + 1][1], world, false, false);
}
this.setBlock(x - 4, y + 2, z - 3, this.back[8][0], this.back[8][1], world, false, false);
this.setBlock(x + 4, y + 2, z - 3, this.back[9][0], this.back[9][1], world, false, false);
this.placeDoor(true, false, false, x, y, z - 3, this.getDirection(p, 0), world);
}
if (dir == 'W') {
z2 -= 3;
for (int i = 0; i < 4; ++i) {
for (int n = 0; n < 7; ++n) {
this.setBlock(x2, y2, z2, 0, 0, world, true, false);
this.setBlock(x2, y2 + 1, z2, 0, 0, world, true, false);
this.setBlock(x2, y2 + 2, z2, 0, 0, world, true, false);
++z2;
}
--x2;
z2 -= 7;
}
for (int i = 0; i < 5; ++i) {
this.setBlock(x - 1, y, z + 2 - i, blockID, blockData, world, false, false);
this.setBlock(x - 2, y, z + 2 - i, blockID, blockData, world, false, false);
this.createSign(x, y, z + 2 - i, this.getDirection(p, 0), world, true);
}
this.setBlock(x - 4, y + 1, z - 1, wblockID, wblockData, world, false, true);
for (int i = 0; i < 7; ++i) {
this.setBlock(x - 3, y, z + 3 - i, wblockID, wblockData, world, false, false);
this.setBlock(x - 3, y + 1, z + 3 - i, wblockID, wblockData, world, false, false);
this.setBlock(x - 3, y + 2, z + 3 - i, wblockID, wblockData, world, false, false);
this.setBlock(x - 4, y + 2, z + 3 - i, wblockID, wblockData, world, false, true);
}
this.setBlock(x - 3, y + 2, z - 4, wblockID, wblockData, world, false, true);
this.setBlock(x - 3, y + 2, z + 4, wblockID, wblockData, world, false, true);
this.createFrame(x - 3, y + 1, z - 1, p);
this.createSign(x - 2, y + 1, z + 1, this.getDirection(p, 0), world, true);
for (int i = 0; i < 7; ++i) {
this.setBlock(x - 2, y + 2, z + 3 - i, 0, 0, world, false, false);
this.createFrame(x - 3, y + 2, z + 3 - i, p);
}
this.setBlock(x - 4, y + 1, z - 1, this.back[0][0], this.back[0][1], world, false, false);
for (int i = 0; i < 7; ++i) {
this.setBlock(x - 4, y + 2, z + 3 - i, this.back[i + 1][0], this.back[i + 1][1], world, false, false);
}
this.setBlock(x - 3, y + 2, z - 4, this.back[8][0], this.back[8][1], world, false, false);
this.setBlock(x - 3, y + 2, z + 4, this.back[9][0], this.back[9][1], world, false, false);
this.placeDoor(true, false, false, x - 3, y, z, dir, world);
}
this.fm.createTable(name, world.getName(), x, y, z, dir, vip);
this.fm.saveData(false);
this.fm.lastTable().hitframe.setItem(new ItemStack(Material.MAP, 1, (short)this.getMapData(world.getName(), "--")));
}
PHP:
[Server thread/ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'bj' in plugin Blackjack v1.2.1
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot-1.11.2.jar:git-Spigot-3fb9445-2b6c9f4]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot-1.11.2.jar:git-Spigot-3fb9445-2b6c9f4]
at org.bukkit.craftbukkit.v1_11_R1.CraftServer.dispatchCommand(CraftServer.java:650) ~[spigot-1.11.2.jar:git-Spigot-3fb9445-2b6c9f4]
at net.minecraft.server.v1_11_R1.PlayerConnection.handleCommand(PlayerConnection.java:1354) [spigot-1.11.2.jar:git-Spigot-3fb9445-2b6c9f4]
at net.minecraft.server.v1_11_R1.PlayerConnection.a(PlayerConnection.java:1189) [spigot-1.11.2.jar:git-Spigot-3fb9445-2b6c9f4]
at net.minecraft.server.v1_11_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot-1.11.2.jar:git-Spigot-3fb9445-2b6c9f4]
at net.minecraft.server.v1_11_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot-1.11.2.jar:git-Spigot-3fb9445-2b6c9f4]
at net.minecraft.server.v1_11_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot-1.11.2.jar:git-Spigot-3fb9445-2b6c9f4]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_181]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_181]
at net.minecraft.server.v1_11_R1.SystemUtils.a(SourceFile:46) [spigot-1.11.2.jar:git-Spigot-3fb9445-2b6c9f4]
at net.minecraft.server.v1_11_R1.MinecraftServer.D(MinecraftServer.java:747) [spigot-1.11.2.jar:git-Spigot-3fb9445-2b6c9f4]
at net.minecraft.server.v1_11_R1.DedicatedServer.D(DedicatedServer.java:399) [spigot-1.11.2.jar:git-Spigot-3fb9445-2b6c9f4]
at net.minecraft.server.v1_11_R1.MinecraftServer.C(MinecraftServer.java:678) [spigot-1.11.2.jar:git-Spigot-3fb9445-2b6c9f4]
at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:576) [spigot-1.11.2.jar:git-Spigot-3fb9445-2b6c9f4]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_181]
Caused by: java.lang.IllegalArgumentException: Cannot spawn hanging entity for org.bukkit.entity.ItemFrame at Location{world=CraftWorld{name=world},x=14.0,y=75.0,z=268.0,pitch=37.89996,yaw=-211.90306}
at org.bukkit.craftbukkit.v1_11_R1.CraftWorld.createEntity(CraftWorld.java:1153) ~[spigot-1.11.2.jar:git-Spigot-3fb9445-2b6c9f4]
at org.bukkit.craftbukkit.v1_11_R1.CraftWorld.spawn(CraftWorld.java:1208) ~[spigot-1.11.2.jar:git-Spigot-3fb9445-2b6c9f4]
at org.bukkit.craftbukkit.v1_11_R1.CraftWorld.spawn(CraftWorld.java:854) ~[spigot-1.11.2.jar:git-Spigot-3fb9445-2b6c9f4]
at am.progr.schmailzl.Blackjack.Blackjack.createFrame(Blackjack.java:1368) ~[?:?]
at am.progr.schmailzl.Blackjack.Blackjack.create(Blackjack.java:1227) ~[?:?]
at am.progr.schmailzl.Blackjack.Blackjack.onCommand(Blackjack.java:495) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot-1.11.2.jar:git-Spigot-3fb9445-2b6c9f4]
... 15 more