- Баллы
- 76
- Имя в Minecraft
- f3azzy
Делаю что-то типо спасательной платформы, где при её использовании под игроком будет спавниться платформа из слизи, я всё сделал, но блоки могут спавниться внутри различных постройках, разрушая карту, как это избежать?
мой костыль:
мой костыль:
Код:
@EventHandler
public void SlimePlatform(PlayerInteractEvent e) {
if(e.getAction() != Action.RIGHT_CLICK_AIR && e.getAction() != Action.RIGHT_CLICK_BLOCK) {
return;
} else {
if(e.getPlayer().getInventory().getItemInMainHand().getType() == Material.SLIME_BALL) {
Player p = e.getPlayer();
int x = p.getLocation().getBlockX();
int y = p.getLocation().getBlockY();
int z = p.getLocation().getBlockZ();
World w = p.getWorld();
Location checkblock = new Location(w, x, y -1, z);
if(checkblock.getBlock().getType() != Material.AIR) {
p.sendMessage(ChatColor.GOLD + "HNS" + ChatColor.GRAY + " » " + ChatColor.WHITE + "Вы не можете использовать"
+ ChatColor.GREEN + " Слизневую-платформу " + ChatColor.WHITE + "стоя на блоке.");
} else {
Location firstBlock = new Location(w, x, y -5, z);
Location twoBlock = new Location(w, x -1, y -5, z);
Location threeBlock = new Location(w, x +1, y -5, z);
Location fourBlock = new Location(w, x -1, y -5, z -1);
Location fiveBlock = new Location(w, x +1, y -5, z +1);
Location sixBlock = new Location(w, x, y -5, z -1);
Location sevenBlock = new Location(w, x, y -5, z +1);
Location eightBlock = new Location(w, x -1, y -5, z +1);
Location nineBlock = new Location(w, x +1, y -5, z -1);
firstBlock.getBlock().setType(Material.SLIME_BLOCK);
twoBlock.getBlock().setType(Material.SLIME_BLOCK);
threeBlock.getBlock().setType(Material.SLIME_BLOCK);
fourBlock.getBlock().setType(Material.SLIME_BLOCK);
fiveBlock.getBlock().setType(Material.SLIME_BLOCK);
sixBlock.getBlock().setType(Material.SLIME_BLOCK);
sevenBlock.getBlock().setType(Material.SLIME_BLOCK);
eightBlock.getBlock().setType(Material.SLIME_BLOCK);
nineBlock.getBlock().setType(Material.SLIME_BLOCK);
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
@Override
public void run() {
firstBlock.getBlock().setType(Material.AIR);
twoBlock.getBlock().setType(Material.AIR);
threeBlock.getBlock().setType(Material.AIR);
fourBlock.getBlock().setType(Material.AIR);
fiveBlock.getBlock().setType(Material.AIR);
sixBlock.getBlock().setType(Material.AIR);
sevenBlock.getBlock().setType(Material.AIR);
eightBlock.getBlock().setType(Material.AIR);
nineBlock.getBlock().setType(Material.AIR);
}
}, 150L);
return;
}
} else {
return;
}
}
}
