Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
хули inventory у тебя holders?Чтобы было понятно что я хочу.
Код:@EventHandler public void handle(InventoryClickEvent e) { Entity clickedp = e.getWhoClicked(); // то что я хочу получить в другом классе Inventory i = holders.get(e.getWhoClicked());
В ивенте и получаешь.Лучше бы ответил как получить e.getWhoClicked
Нету другого ивента на келик инвентаря, он один.Мне надо проверить в другом ивенте из другого класса на то что игрок (сделавший что-то) являлся игроком кливнувшим на предмет
Этот ивент никакого отношение к кликам инвентаря вообще не имеет..void onDamageByEntity(EntityDamageByEntityEvent e) {
Написал код, выдаёт ошибку.
Хз в чём проблемма.
Код: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<>();
(Класс dev)Код:@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); } } } }
Код:@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(); } } } } }
Ошибка в 37 строке. Посмотри что тамКод:[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
Как у тебя выглядит мапа clicked?Я чекал, но всеравно не понимаю в чём дело.
Вот она
Код:if(plugin.clicked.containsValue(p.getName())) {
Тебя не смущает, что ты проверяешь наличие строки, а не игрока?public Map<String, Player> clicked = new HashMap<>();
В одном из методов добавляется значение:
Player p = (Player) e.getWhoClicked();
clicked.put("Clicked", p);
Как проверить значение? containsKey?
private static final List<Uuid> clicked = new ArrayList<>();
clicked.add(player.getUuid());
if (clicked.contains(player.getUuid()) { ... }
clicked.remove(player.getUuid());
У него и хешмеп может быть нулевойМожет у тебя plugin == null? Скинь фулл код класса dev
Да вроде как он инициализирует мапуУвидел код, аж как то поплохело
У него и хешмеп может быть нулевой