Помогите Ну очень большой вопрос.

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

AlexMor

Активный участник
Пользователь
Баллы
76
И еще раз здравствуйте для тех кому я возможно уже надоел :3
У меня как у продвинутого бревна в сфере Java вопрос...
Но начну с истории: Я модернизирую плагин WorldClaim под свой сервак, решил заменить стандартное распледеление кол-во чанков (а именно оно в плагине одно вля всех групп) на свое более гибкое, которое бы распределяло максимум чанков само по группам, и возникла проблема, не могу вытащить имя группы в виде String вот попытки:
Код:
    String[] group = PermissionsEx.getUser(p).getGroupNames();
но eclipse почему-то зачеркивает "getGroupNames()" и не хочет узнавать имена групп в которые входит игрок
Проблема номер два, и опять с предистории: опять меня что-то не устроило в WorldClaim и я решил добавить налог за каждый заприваченный чанк и цену за него вывести в конфиг таким образом "tax<GroupName>" например "taxdefault" и чтоб он начинал считать налог когда игрок заходит на сервер, вот и код:
Vars - класс с переменными и всякими подсчетами (например подсчет заприваченных чанков игроком)

Код:
public class TaxClass implements Listener{
   public long dolg;
   public long minutes;
   public long hours;
   
   
   
   //Игрок заходит - начинается отсчет налога
   @EventHandler (priority = EventPriority.HIGHEST)
   public void joinPlayer (PlayerJoinEvent pj){
     Player pl = pj.getPlayer();
     taxMetod(pl);
   }
   
   
   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] ;
           long credit;
           credit = (long) ( ch * Vars.config.getLong(taxperchunk));
           dolg += credit;
           long currentTimeNew = new Date().getTime();
           Vars.taxRate.put(p, currentTimeNew);
           if(currentMoney < dolg){
             long ost = (long) Vars.eco.getBalance(p);
             dolg -= ost;
             Vars.eco.withdrawPlayer(p, ost);
             p.sendMessage(falseMessage);
             p.sendMessage("Все деньги с вашего счета сняты на погашение долга по налогам!");
             p.sendMessage("Снято : "+ost+" Dollars  Долг : "+dolg+" Dollars");
           } else {
             p.sendMessage(trueMessage);
             int timehour = 0;
             int timeminute = (int) ((TimeRate / 1000) /60 );
             if (timeminute > 60){
               do
               {
                 timeminute -= 60;
                 timehour++;
               }
               while (timeminute >= 60);
             }
             long ost = currentMoney - dolg;
             p.sendMessage("Оплаченная сумма: "+ dolg + "Dollars  На счету осталось: "+ost+" Dollars");
             p.sendMessage("Следуйщая авто-оплата через "+timehour+"часов и "+timeminute+"минут.");
             Vars.eco.withdrawPlayer(p, dolg);
           }
         }
         
           
       } else {
         currentTime = new Date().getTime();
         Vars.taxRate.put(p, currentTime);
       }
     long lastUse = Vars.taxRate.get(p);
     this.hours = 0;
     this.minutes = (long) (((currentTime - lastUse) / 1000) /60 );
     if (minutes > 60){
       do
       {
         minutes -= 60;
         hours++;
       }
       while (minutes >= 60);
     }
   }
но этот умный exlipse ругается на строку "String[] group = PermissionsEx.getUser(p).getGroupNames();"зачеркивая "getGroupNames()"

И наконец последний вопрос, как сделать так чтоб метод "TaxMetod" из класса "TaxClass" вызывался допустим каждые 10 минут , использую переменную "p" как игрока.

В интернете икал и все 4-ое издание перерыл не нашел, возможно плохо искал, но все же прошу помощи у вас)))
 
Насчет вопроса не знаю, но по коду скажу что вместо этого:
long currentTime = new Date().getTime();
Лучше использовать это:
long current = System.currentTimeMillis() //Точно не помню :D
 
Зачеркнутый метод, значит он deprecated, то есть устарел и его скоро могут выпилить. Нужны они для сохранения совместимости. Он точно возвращает String[]? Посмотри на возвращаемый тип, может там Set<String>. Точно помочь не могу, не могу найти доки от PEX.
 
Последнее редактирование:
Зачеркнутый метод, значит он deprecated, то есть устарел и его скоро могут выпилить. Нужны они для сохранения совместимости. Он точно возвращает String[]? Посмотри на возвращаемый тип, может там Set<String>. Точно помочь не могу, не могу найти доки от PEX.
С этим разобрался, ты прав и он возвращает стринг, все работает на самом деле правильно )) закрываю тема, ложная тревога)
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх