Funzocker1
Schafhirte
Heyho liebe Coder
. Ich dachte mir heute einfach mal:
Auf meinem Server wäre doch ein Antilogout Plugin cool. Also habe ich mich drann gemacht und schnell was hin gecodet.
Dann ist mir aber aufgefallen das der Countdown beim ersten Schlag funktioniert aber bei allen folgenden immer schneller wird. Jetzt ist es meiner Meinung nach das Problem das die Tasks nicht beendet werden und so immer mehr Tasks runterzählen. Jetzt wollte ich fragen wie ich dieses Problem am besten lösen könnte bzw. die Task einfach wieder schließen kann um 1. Ramen zu sparen und 2. Mein Problem damit zu beheben.
Ok hoffe auf Antworten lg
Auf meinem Server wäre doch ein Antilogout Plugin cool. Also habe ich mich drann gemacht und schnell was hin gecodet.
Code:
@EventHandler(priority = EventPriority.HIGHEST)
public void onEnti(EntityDamageByEntityEvent e) {
if(e.isCancelled() == false) {
if(e.getEntity() instanceof Player) {
if(e.getDamager() instanceof Player) {
final Player victim = (Player) e.getEntity();
final Player damager = (Player) e.getDamager();
if(plugin.logout.containsKey(e.getEntity()) == false) {
victim.sendMessage("§7[§6System§7] §cDu bist nun im Kampf. Loggst du dich aus verlierst du dein Inventar");
plugin.logout.put(victim, 15);
if(plugin.logout.containsKey(damager) == false) {
damager.sendMessage("§7[§6System§7] §cDu bist nun im Kampf. Loggst du dich aus verlierst du dein Inventar");
plugin.logout.put(damager, 15);
}else {
plugin.logout.put(damager, 15);
}
}else {
plugin.logout.put(victim, 15);
if(plugin.logout.containsKey(damager) == false) {
damager.sendMessage("§7[§6System§7] §cDu bist nun im Kampf. Loggst du dich aus verlierst du dein Inventar");
plugin.logout.put(damager, 15);
}else {
plugin.logout.put(damager, 15);
}
}
plugin.getServer().getScheduler().runTaskTimerAsynchronously(plugin,new Runnable() {
@Override
public void run() {
try{
int victimcount = plugin.logout.get(victim) - 1;
int damagercount = plugin.logout.get(damager) -1;
System.out.println(victimcount);
System.out.println(damagercount);
plugin.logout.put(victim, victimcount);
plugin.logout.put(damager, damagercount);
if(victimcount <= 0) {
victim.sendMessage("§7[§6System§7] §aDu hast den Kampf verlassen. Du kannst dich wieder ausloggen");
plugin.logout.remove(victim);
}
if(damagercount <= 0) {
damager.sendMessage("§7[§6System§7] §aDu hast den Kampf verlassen. Du kannst dich wieder ausloggen");
plugin.logout.remove(damager);
}
}catch(Exception e) {
}
}
},0,20);
}
}
}
}
Ok hoffe auf Antworten lg