Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Событие выдачи игроку опыта

JavaScript:
public class ExpChangeEventTimer extends BukkitRunnable{

//Код писал в редакторе сообщения рубакита, извините если что-то не так

     public HashMap<Player, Integer> exps = new HashMap<Player, Integer>();

     public void run(){
          for(Player p : Bukkit.getOnlinePlayers(){
               if(exps.contains(p){
                    if(exps.get(p) != p.getExperience(){
                         Bukkit.getPluginManager().callEvent(new PlayerExpChangeEvent(p, p.getExperience());
                         exps.remove(p);
                    }else{
                         exps.remove(p);
                         exps.put(p, p.getExperience());
                    }
               }else exps.put(p, p.getExperience());
          }
     }
}

public class MyPlugin extends JavaPlugin{

     public void onEnable(){
          new ExpChangeEventTimer().runTaskTimer(this, 20, 20);
     }
     
}
 
//Код писал в редакторе сообщения рубакита, извините если что-то не так
Часть с проверкой изменения опыта мне очень не нравиться. Лучше так:
JavaScript:
public void run() {
   for (Player p: Bukkit.getOnlinePlayers() {
     if (exps.contains(p)) {
       if (exps.get(p) != p.getExperience()) Bukkit.getPluginManager().callEvent(new PlayerExpChangeEvent(p, p.getExperience()));
     }
     exps.put(p, p.getExperience());
   }
}
Кстати, нашёл много ошибок с незакрытыми скобками.
 
Часть с проверкой изменения опыта мне очень не нравиться. Лучше так:
JavaScript:
public void run() {
   for (Player p: Bukkit.getOnlinePlayers() {
     if (exps.contains(p)) {
       if (exps.get(p) != p.getExperience()) Bukkit.getPluginManager().callEvent(new PlayerExpChangeEvent(p, p.getExperience()));
     }
     exps.put(p, p.getExperience());
   }
}
Кстати, нашёл много ошибок с незакрытыми скобками.
Ну да, есть немного говнокода :D
Привык что в Средах разработки скобки ставятся автоматом
 

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

Назад
Верх