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