удалено

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

MCosmos

Активный участник
Пользователь
Баллы
76
удалено
 
Последнее редактирование:
Чтобы было понятно что я хочу.


Код:
    @EventHandler
    public void handle(InventoryClickEvent e) {
        Entity clickedp = e.getWhoClicked(); // то что я хочу получить в другом классе
        Inventory i = holders.get(e.getWhoClicked());
хули inventory у тебя holders?
 
Player p = (Player)e.getWhoClicked();
А проверять какой открыт инвентарь так (сравнивайте имя инвентаря)
String in = e.getInventory().getName();
 
Добавляй игрока в массив и отталкивайся от него
 
Написал код, выдаёт ошибку.
Хз в чём проблемма.

Код:
    public Map<String, Player> clicked = new HashMap<>();

Код:
                Player p = (Player) e.getWhoClicked();
                clicked.put(p.getName(), p);

Код:
                  if(plugin.clicked.containsValue(p)) {

Ошибка org.bukkit.event.EventException: null
Код:
Скинь
Код:
всю
Код:
ошибку и код
Код:
а не бессмысленные
Код:
куски
Код:
чего либо
 
Ок

(Главный класс)
Код:
    private Map<Player, Inventory> holders = new HashMap<>();

Код:
    @EventHandler
    public void handle(InventoryClickEvent e) {
        Inventory i = holders.get(e.getWhoClicked());
        if(i == null) return;
        e.setCancelled(true);
        if(i.equals(e.getClickedInventory()) && e.getSlot() == 10) {
            if(e.getClick().isLeftClick()) {
                if(flag1 == false) {
                    ItemStack item = i.getItem(10);
                    ItemMeta meta = item.getItemMeta();
                    item.setItemMeta(meta);
                    List<String> loreList = new ArrayList<String>();
                    loreList.add(ChatColor.RED + "Данная функция уже используется");
                    meta.setLore(loreList);
                    item.setItemMeta(meta);
                    i.setItem(10, item);
                } else
                {
                ItemStack item = i.getItem(10);
                ItemMeta meta = item.getItemMeta();
                item.setItemMeta(meta);
                List<String> loreList = new ArrayList<String>();
                loreList.add(ChatColor.GREEN + "Антивировано");
                meta.setLore(loreList);
                item.setItemMeta(meta);
                i.setItem(10, item);
                devkill.toggle();
                devban.toggle();
                HastPlugin.enableflag2();
                HastPlugin.enableflag3();
                dev.enable();
                Player p = (Player) e.getWhoClicked();
                clicked.put("Clicked", p);
                Bukkit.getPluginManager().registerEvents(new dev(), this);
                HastPlugin.toggleflag();
                }
            } else
            {
            if(e.getClick().isRightClick()) {
            ItemStack item = i.getItem(10);
            ItemMeta meta = item.getItemMeta();
            item.setItemMeta(meta);
            List<String> loreList = new ArrayList<String>();
            loreList.add(ChatColor.GRAY + "Не активировано");
            meta.setLore(loreList);
            item.setItemMeta(meta);
            i.setItem(10, item);
            dev.toggle();
            HastPlugin.enableflag();
        }
       
        if(i.equals(this.i)) {
            e.setCancelled(true);
        }
        }
        }
    }
(Класс dev)
Код:
    @EventHandler
    void onDamageByEntity(EntityDamageByEntityEvent e) {
        if (flag == false) {
    } else
    {
        if(e.getEntity() instanceof Player && e.getDamager() instanceof Player) {
               if(e.getDamager().hasPermission("hastplugin.kick")) {
                   Player p = (Player) e.getDamager();
                   if(plugin.clicked.containsValue(p.getName())) {
            Bukkit.dispatchCommand(Bukkit.getConsoleSender(),"kick "+e.getEntity().getName()+ " Кикнут администрацией");
          e.getDamager().sendMessage(ChatColor.GOLD + "[DEV] " + ChatColor.YELLOW + "Вы успешно кикнули игрока " +e.getEntity().getName());
          dev.toggle();
          HastPlugin.enableflag();
                   }
        }
    }
    }
}
Молодец, теперь ошибку скинь полностью
 
Код:
[23:04:42 ERROR]: Could not pass event EntityDamageByEntityEvent to HastPlugin v1.0
org.bukkit.event.EventException: null
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[server.jar:git-Spigot-dcd1643-e60fc34]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[server.jar:git-Spigot-dcd1643-e60fc34]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:500) [server.jar:git-Spigot-dcd1643-e60fc34]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:485) [server.jar:git-Spigot-dcd1643-e60fc34]
        at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callEvent(CraftEventFactory.java:93) [server.jar:git-Spigot-dcd1643-e60fc34]
        at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:580) [server.jar:git-Spigot-dcd1643-e60fc34]
        at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:483) [server.jar:git-Spigot-dcd1643-e60fc34]
        at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.handleLivingEntityDamageEvent(CraftEventFactory.java:612) [server.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.EntityLiving.damageEntity0(EntityLiving.java:1346) [server.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.EntityHuman.damageEntity0(EntityHuman.java:846) [server.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.EntityLiving.damageEntity(EntityLiving.java:868) [server.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.EntityHuman.damageEntity(EntityHuman.java:759) [server.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.EntityPlayer.damageEntity(EntityPlayer.java:586) [server.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.EntityHuman.attack(EntityHuman.java:1005) [server.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.EntityPlayer.attack(EntityPlayer.java:1311) [server.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1623) [server.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.PacketPlayInUseEntity.a(SourceFile:69) [server.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.PacketPlayInUseEntity.a(SourceFile:13) [server.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13) [server.jar:git-Spigot-dcd1643-e60fc34]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_51]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_51]
        at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [server.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:748) [server.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406) [server.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) [server.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [server.jar:git-Spigot-dcd1643-e60fc34]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_51]
Caused by: java.lang.NullPointerException
        at hastplugin.main.dev.onDamageByEntity(dev.java:37) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_51]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[server.jar:git-Spigot-dcd1643-e60fc34]
        ... 26 more
Ошибка в 37 строке. Посмотри что там
 
public Map<String, Player> clicked = new HashMap<>();

В одном из методов добавляется значение:

Player p = (Player) e.getWhoClicked();
clicked.put("Clicked", p);
Тебя не смущает, что ты проверяешь наличие строки, а не игрока?
 
Код:
if(plugin.clicked.containsValue(p.getName())) {
У тебя в значении мапы указан игрок, а не строка. Почему ты проверяешь по строке тогда
 
Как проверить значение? containsKey?
ZegydaT.png
 
Может у тебя plugin == null? Скинь фулл код класса dev
 
На кой тут вообще мапа?
Инициализируем список.
Код:
private static final List<Uuid> clicked = new ArrayList<>();
Добавляем игрока.
Код:
clicked.add(player.getUuid());
Проверяем на существование.
Код:
if (clicked.contains(player.getUuid()) { ... }
Удаляем из списка.
Код:
clicked.remove(player.getUuid());
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх