Помогите Создание уникального сундука

l_Slime_l

Активный участник
Пользователь
Баллы
76
При вводе команды будет создаваться уникальный сундук. При клике на сундук будет выполняться определённый код. Как сделать этот уникальный сундук? Думаю, что нужно координаты сундука из List<Location> сравнивать с координатами сундука, на который кликнул игрок) Можно пример, а то у меня что-то не получается. Я сам не понял, что я написал, но думаю вы поймете 😁
 
Потестил и вывел для тебя новый сорт говнокода.
На жуй
Код:
@Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
    }
  
  
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(!(sender instanceof Player)) {
            return true;
        }
        if(cmd.getName().equalsIgnoreCase("cmd")) {
            Player p = (Player) sender;
            Location pl = p.getLocation();
            pl.getBlock().setType(Material.CHEST);
            Chest chest = (Chest) pl.getBlock().getState();
            chest.setCustomName("null");
            return true;
        }
        return true;
    }
    @EventHandler
    public void onInventoryOpen(InventoryOpenEvent e) {
        Player p =(Player) e.getPlayer();
        if(e.getInventory().getName().equalsIgnoreCase("null") && e.getInventory().getType() == InventoryType.CHEST) {
            e.setCancelled(true);
            p.sendMessage("chest");
        } else {
            p.sendMessage("not chest!");
            return;
        }
    }
 
Потестил и вывел для тебя новый сорт говнокода.
На жуй
Код:
@Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
    }
 
 
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(!(sender instanceof Player)) {
            return true;
        }
        if(cmd.getName().equalsIgnoreCase("cmd")) {
            Player p = (Player) sender;
            Location pl = p.getLocation();
            pl.getBlock().setType(Material.CHEST);
            Chest chest = (Chest) pl.getBlock().getState();
            chest.setCustomName("null");
            return true;
        }
        return true;
    }
    @EventHandler
    public void onInventoryOpen(InventoryOpenEvent e) {
        Player p =(Player) e.getPlayer();
        if(e.getInventory().getName().equalsIgnoreCase("null") && e.getInventory().getType() == InventoryType.CHEST) {
            e.setCancelled(true);
            p.sendMessage("chest");
        } else {
            p.sendMessage("not chest!");
            return;
        }
    }
Ну вот мне кажется по имени инвентаря как-то не хорошо проверять) Лучше бы конечно по локации проверять, но придется так наверное)
 
Ну вот мне кажется по имени инвентаря как-то не хорошо проверять) Лучше бы конечно по локации проверять, но придется так наверное)
По локации как ты заметил проверить не получилось.
 
Назад
Верх