Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите PlayerJoinEvent и PlayerQuitEvent

Тема в разделе "Разработка плагинов для новичков", создана пользователем AlexMor, 17 дек 2016.

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

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

    Баллы:
    66
    Здравствуйте у меня такая проблема, редактирую WorldClaim под себя, подключил класс Listener и создал @EventHandler с приоритетом HAGEST , теперь такая ошибка когда игрок заходит\выходит, что посоветуете?))
    Код:
    [17:58:11] [User Authenticator #1/INFO]: UUID of player AlexMor is 4fad6fdc-144b-3bfa-a615-93d1591cdd11
    [17:58:12] [Server thread/ERROR]: Could not pass event PlayerJoinEvent to WorldClaim v2.1
    org.bukkit.event.EventException
       at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot.jar:git-Spigot-570526c-c1b529e]
       at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-570526c-c1b529e]
       at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-570526c-c1b529e]
       at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-570526c-c1b529e]
       at net.minecraft.server.v1_10_R1.PlayerList.onPlayerJoin(PlayerList.java:333) [spigot.jar:git-Spigot-570526c-c1b529e]
       at net.minecraft.server.v1_10_R1.PlayerList.a(PlayerList.java:159) [spigot.jar:git-Spigot-570526c-c1b529e]
       at net.minecraft.server.v1_10_R1.LoginListener.b(LoginListener.java:144) [spigot.jar:git-Spigot-570526c-c1b529e]
       at net.minecraft.server.v1_10_R1.LoginListener.E_(LoginListener.java:54) [spigot.jar:git-Spigot-570526c-c1b529e]
       at net.minecraft.server.v1_10_R1.NetworkManager.a(NetworkManager.java:233) [spigot.jar:git-Spigot-570526c-c1b529e]
       at net.minecraft.server.v1_10_R1.ServerConnection.c(ServerConnection.java:140) [spigot.jar:git-Spigot-570526c-c1b529e]
       at net.minecraft.server.v1_10_R1.MinecraftServer.D(MinecraftServer.java:827) [spigot.jar:git-Spigot-570526c-c1b529e]
       at net.minecraft.server.v1_10_R1.DedicatedServer.D(DedicatedServer.java:400) [spigot.jar:git-Spigot-570526c-c1b529e]
       at net.minecraft.server.v1_10_R1.MinecraftServer.C(MinecraftServer.java:668) [spigot.jar:git-Spigot-570526c-c1b529e]
       at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:567) [spigot.jar:git-Spigot-570526c-c1b529e]
       at java.lang.Thread.run(Unknown Source) [?:1.8.0_101]
    Caused by: java.lang.NullPointerException
       at me.chris.WorldClaim.TaxClass.JoinPlayer(TaxClass.java:21) ~[?:?]
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
       at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
       at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot.jar:git-Spigot-570526c-c1b529e]
       ... 14 more
    [17:58:12] [Server thread/INFO]: AlexMor[/127.0.0.1:57923] logged in with entity id 200 at ([world]96.40399782724535, 76.0, 244.74375860090456)
    [17:58:18] [Server thread/INFO]: AlexMor lost connection: Disconnected
    [17:58:18] [Server thread/ERROR]: Could not pass event PlayerQuitEvent to WorldClaim v2.1
    org.bukkit.event.EventException
       at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot.jar:git-Spigot-570526c-c1b529e]
       at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-570526c-c1b529e]
       at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-570526c-c1b529e]
       at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-570526c-c1b529e]
       at net.minecraft.server.v1_10_R1.PlayerList.disconnect(PlayerList.java:385) [spigot.jar:git-Spigot-570526c-c1b529e]
       at net.minecraft.server.v1_10_R1.PlayerConnection.a(PlayerConnection.java:1068) [spigot.jar:git-Spigot-570526c-c1b529e]
       at net.minecraft.server.v1_10_R1.NetworkManager.handleDisconnection(NetworkManager.java:318) [spigot.jar:git-Spigot-570526c-c1b529e]
       at net.minecraft.server.v1_10_R1.ServerConnection.c(ServerConnection.java:174) [spigot.jar:git-Spigot-570526c-c1b529e]
       at net.minecraft.server.v1_10_R1.MinecraftServer.D(MinecraftServer.java:827) [spigot.jar:git-Spigot-570526c-c1b529e]
       at net.minecraft.server.v1_10_R1.DedicatedServer.D(DedicatedServer.java:400) [spigot.jar:git-Spigot-570526c-c1b529e]
       at net.minecraft.server.v1_10_R1.MinecraftServer.C(MinecraftServer.java:668) [spigot.jar:git-Spigot-570526c-c1b529e]
       at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:567) [spigot.jar:git-Spigot-570526c-c1b529e]
       at java.lang.Thread.run(Unknown Source) [?:1.8.0_101]
    Caused by: java.lang.NullPointerException
       at me.chris.WorldClaim.TaxClass.QuitPlayer(TaxClass.java:74) ~[?:?]
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
       at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
       at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot.jar:git-Spigot-570526c-c1b529e]
       ... 12 more
    [17:58:18] [Server thread/INFO]: AlexMor left the game
    
     
  2. Хостинг MineCraft
    <
  3. AtomicInteger

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

    Баллы:
    46
    Присмотрись к 21 и 74 строкам класса TaxClass.
     
  4. Автор темы
    AlexMor

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

    Баллы:
    66
    Строка 21 (класс joinPlayer)
    taxMetod(p);
    Строка 74 (класс taxMetod)
    if(Vars.taxRate.containsKey(p)){

    ошибок нет, что делать?
     
  5. slavik123123123

    slavik123123123 Старожил Пользователь

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    у тебя они null.
     
  6. Автор темы
    AlexMor

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

    Баллы:
    66
    всмысле null как исправить?
     
  7. AtomicInteger

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

    Баллы:
    46
    Полное руководство, 9-е издание, Шилдт, например.
     
  8. Автор темы
    AlexMor

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

    Баллы:
    66
    Я читал у меня есть эта книга, а исправить то как? там подобного нету
     
  9. AtomicInteger

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

    Баллы:
    46
    Не надо так говорить.Не надо.
     
  10. Автор темы
    AlexMor

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

    Баллы:
    66
    Так как исправить... КАК!?
     
  11. AtomicInteger

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

    Баллы:
    46
    Шаг первый.Перестань называть методы классами.
     
  12. Автор темы
    AlexMor

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

    Баллы:
    66
    Да перепутал, каюсь)
     
  13. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    У тебя надо бы спросить, скинь нам, что такое Vars.taxRate и taxMetod.
     
  14. Автор темы
    AlexMor

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

    Баллы:
    66
    Vars это класс переменных, taxRate это HashMap
    Код:
      public static HashMap<Player, Long>  taxRate;
    
    taxMetod это метод который вычисляет налоги за чанки который были запревачены через WorldClaim и снимает эту сумму через определенное время (TimeRate) со счета игрока , вот весь метод:
    Код:
      public long credit;
    public void taxMetod (Player p){
         long currentTime = new Date().getTime();
         long TimeRate = Vars.config.getLong("TimeRate");
         if(Vars.taxRate.containsKey(p)){
           long lastUse = Vars.taxRate.get(p);
    
           
           if ((currentTime - lastUse) > TimeRate){
             String falseMessage = Vars.config.getString("falseMessage");
               String trueMessage = Vars.config.getString("trueMessage");
               long currentMoney = (long) Vars.eco.getBalance(p);
               long ch = HelperMethods.calculateChunks(p);
               @SuppressWarnings("deprecation")
               String[] group = PermissionsEx.getUser(p).getGroupNames();
               String taxperchunk = (String) "tax"+group[0] ;
               this.credit = (long) ( ch * Vars.config.getLong(taxperchunk));
               long currentTimeNew = new Date().getTime();
               Vars.taxRate.put(p, currentTimeNew);
               if(currentMoney < credit){
                 p.sendMessage(falseMessage);
               
               } else {
                 p.sendMessage(trueMessage);
                 int timehour = 0;
                 int timeminute = (int) ((TimeRate / 1000) /60 );
                 if (timeminute > 60){
                   do
                   {
                     timeminute -= 60;
                     timehour++;
                   }
                   while (timeminute >= 60);
                 }
                 p.sendMessage("Оплаченная сумма: "+ credit);
                 p.sendMessage("Следуйщая авто-оплата через "+timehour+"часов и "+timeminute+"минут.");
                 Vars.eco.withdrawPlayer(p, credit);
               }
             }
             
               
           } else {
             Vars.taxRate.put(p, currentTime);
           }
       }
    
    метод joinPlayer вызывает taxMetod вот код:
    Код:
      @EventHandler (priority = EventPriority.HIGHEST)
       public void joinPlayer (PlayerJoinEvent pj){
         Player p = pj.getPlayer();
         taxMetod(p);
       }
    
    методы joinPlayer и taxMetod находятся в одном классе TaxClass
     
  15. slavik123123123

    slavik123123123 Старожил Пользователь

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    == null
     
  16. Автор темы
    AlexMor

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

    Баллы:
    66
    а... все понял спасибо))[DOUBLEPOST=1481997331,1481996932][/DOUBLEPOST]
    хотя нет, не понял, значит ошибка выходит потому что taxRate == null? как исправить? никак не пойму
     
  17. Dymeth

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

    Баллы:
    76
    У тебя нигде не задаётся значение Vars.taxRate (а значит это поле со значением null). Если учитывать, что это static-content, то ты можешь просто прописать:
    Код:
    public static HashMap<Player, Long> taxRate = new HashMap<Player, Long>();
    Либо же отдельным static-блоком:
    Код:
    public static HashMap<Player, Long> taxRate;
    static {
        taxRate = new HashMap<Player, Long>();
    }
     
Статус темы:
Закрыта.

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