(Решено)Удалить предметы

  • Автор темы Автор темы Kurumi
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Kurumi

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Kurumi
У меня стоит Scavenger, но я хочу чтобы при респавне определенные предметы пропадали. Я сделал лист предметов в конфиге своего плагина, которые будет пропадать при респавне. Но они не пропадают.
Делаю так
PHP:
for(String mat : main.getConfig().getStringList("Items"))
        {
            e.getPlayer().getInventory().contains(new ItemStack(Material.getMaterial(mat)));
        }
Но при респавне ничего не происходит.
Пробовал так
PHP:
for(String mat : main.getConfig().getConfigurationSection("Items").getKeys(false))
        {
            e.getPlayer().getInventory().contains(new ItemStack(Material.getMaterial(mat)));
        }
но при респавне выбивает null pointer exception и жалуется на строку "for(String mat : main.getConfig().getConfigurationSection("Items").getKeys(false))

Как исправить?
 
Как у тебя конфиг выглядит? И ты ничего не удаляешь.
 
Не благодари, это пример, я сделал что бы искался айди а не название предмета
Код:
    public void onEnable(){
        saveDefaultConfig();
        for(Player p : Bukkit.getOnlinePlayers()){
            if(checkInventory(p)){
                p.sendMessage("У тебя запрещённый предмет");
            }
        }
    }
    @SuppressWarnings("deprecation")
    public boolean checkInventory(Player p){
        for(String item : getConfig().getStringList("prohibit")){
            try {
                if(p.getInventory().contains(Integer.parseInt(item))){
                    return true;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return false;
    }
 
Не благодари, это пример, я сделал что бы искался айди а не название предмета
Код:
    public void onEnable(){
        saveDefaultConfig();
        for(Player p : Bukkit.getOnlinePlayers()){
            if(checkInventory(p)){
                p.sendMessage("У тебя запрещённый предмет");
            }
        }
    }
    @SuppressWarnings("deprecation")
    public boolean checkInventory(Player p){
        for(String item : getConfig().getStringList("prohibit")){
            try {
                if(p.getInventory().contains(Integer.parseInt(item))){
                    return true;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return false;
    }
Если делать как ты скинул - все работает. Но когда я пытаюсь сделать это через respawn event ничего не выходит
PHP:
    public void respawn(PlayerRespawnEvent e)
{                
             if(main.checkInventory(p))
            {
                e.getPlayer().sendMessage("true"); 
            }
}
 
Можно по материалу или стаку.
player.getInventory().remove()

И ты @EventHandler добавил?
Я уже разобрался. Все работает.
Я использую тот же самый метод удаления предметов - все удаляется. В чем заключается "неправильность удаления"?
 
Я уже разобрался. Все работает.
Я использую тот же самый метод удаления предметов - все удаляется. В чем заключается "неправильность удаления"?
Ну в первом посте ты использовал contains, без if или что ты там хотел делать.
e.getPlayer().getInventory().contains(new ItemStack(Material.getMaterial(mat)));
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх