Advertisement
MrJonton01

CombatTag - Probleme

Oct 21st, 2016
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 11.43 KB | None | 0 0
  1. package me.MrJonton01.NotyCombatTag;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.HashMap;
  6. import java.util.List;
  7.  
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.World;
  10. import org.bukkit.command.Command;
  11. import org.bukkit.command.CommandSender;
  12. import org.bukkit.entity.Player;
  13. import org.bukkit.event.EventHandler;
  14. import org.bukkit.event.Listener;
  15. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  16. import org.bukkit.event.player.PlayerJoinEvent;
  17. import org.bukkit.plugin.java.JavaPlugin;
  18. import org.bukkit.scheduler.BukkitRunnable;
  19.  
  20. public class Main extends JavaPlugin implements Listener {
  21.  
  22.     String prefix = "§7<§aNoty§8CombatTag§7> ";
  23.     HashMap<String, Long> combat = new HashMap<String, Long>();
  24.     List<String> activeworlds = new ArrayList<String>();
  25.     List<String> latestworlds = new ArrayList<String>();
  26.     HashMap<String, Integer> tp = new HashMap<String, Integer>();
  27.  
  28.     public void onEnable() {
  29.         Bukkit.getServer().getPluginManager().registerEvents(this, this);
  30.         check("delay", 100);
  31.         for (World w : Bukkit.getWorlds()) {
  32.             activeworlds.add(w.getName());
  33.             if (activeworlds.size() == Bukkit.getWorlds().size()) {
  34.                 cfgSet("active-worlds", activeworlds);
  35.             }
  36.  
  37.         }
  38.         check("latest-worlds", Arrays.asList("Placeholder"));
  39.         check("inactive-worlds", Arrays.asList("Placeholder"));
  40.         check("registered-players", Arrays.asList("Placeholder"));
  41.  
  42.         for (String n : getConfig().getStringList("registered-players")) {
  43.             if (getConfig().getStringList("registered-players").contains("Placeholder")) {
  44.                 continue;
  45.             } else {
  46.                 for (String iw : getConfig().getStringList("inactive-worlds")) {
  47.                     if (getConfig().contains(n + "." + iw)) {
  48.                         cfgSet(n + "." + iw, null);
  49.                     } else {
  50.                         continue;
  51.                     }
  52.                 }
  53.             }
  54.         }
  55.  
  56.         if (getConfig().getStringList("latest-worlds").contains("Placeholder")) {
  57.             cfgSet("latest-worlds", Bukkit.getWorlds());
  58.             for (World w : Bukkit.getWorlds()) {
  59.                 latestworlds.add(w.getName());
  60.                 if (latestworlds.size() == Bukkit.getWorlds().size()) {
  61.                     cfgSet("latest-worlds", latestworlds);
  62.                 }
  63.  
  64.             }
  65.         } else {
  66.             for (String w : getConfig().getStringList("latest-worlds")) {
  67.                 if (getConfig().getStringList("active-worlds").contains(w)) {
  68.                     continue;
  69.                 } else {
  70.                     if (getConfig().getStringList("inactive-worlds").contains("Placeholder")) {
  71.                         cfgSet("inactive-worlds", getConfig().getStringList("inactive-worlds").add(w));
  72.                         cfgSet("inactive-worlds", getConfig().getStringList("inactive-worlds").remove("Placeholder"));
  73.                     } else {
  74.                         cfgSet("inactive-worlds", getConfig().getStringList("inactive-worlds").add(w));
  75.                     }
  76.                 }
  77.             }
  78.         }
  79.     }
  80.  
  81.     private void check(String path, Object value) {
  82.         if (!getConfig().contains(path)) {
  83.             getConfig().set(path, value);
  84.             saveConfig();
  85.         }
  86.     }
  87.  
  88.     private void cfgSet(String path, Object value) {
  89.         getConfig().set(path, value);
  90.         saveConfig();
  91.     }
  92.  
  93.     @EventHandler
  94.     public void onJoin(PlayerJoinEvent e) {
  95.         Player p = e.getPlayer();
  96.  
  97.         for (World w : Bukkit.getWorlds()) {
  98.             String wn = w.getName();
  99.             check(p.getUniqueId() + "." + wn, true);
  100.         }
  101.  
  102.         if (!getConfig().getStringList("registered-players").contains(p.getUniqueId().toString())) {
  103.             cfgSet("registered-players",
  104.                     getConfig().getStringList("registered-players").add(p.getUniqueId().toString()));
  105.         }
  106.  
  107.     }
  108.  
  109.     public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
  110.         Player p = (Player) sender;
  111.  
  112.         if (cmd.getName().equalsIgnoreCase("combattag")) {
  113.             if (args.length == 0) {
  114.                 msg("§6Plugin von §eMrJonton01", p);
  115.                 msg("", p);
  116.                 msg("§aHelp-Befehl: §2/combattag help", p);
  117.             }
  118.             if (args.length == 1) {
  119.                 if (args[0].equalsIgnoreCase("help")) {
  120.  
  121.                     msg("§bListe aller verfügbaren Befehle:", p);
  122.                     msg("§bWeitere Infos findest du beim Nutzen des Befehls.", p);
  123.                     msg("", p);
  124.                     msg("§e/combattag", p);
  125.                     msg("§e/combattag toggle", p);
  126.                     msg("§e/combattag help", p);
  127.  
  128.                 } else if (args[0].equalsIgnoreCase("toggle")) {
  129.                     if (p.hasPermission("combattag.vip")) {
  130.                         msg("§6Befehl-Nutzung:", p);
  131.                         msg("§e/combattag toggle here§7- §e(De)Aktiviert die \"CombatTag\"-Nachrichten für dich für die Welt/den Spielmodus indem du dich gerade befindest.",
  132.                                 p);
  133.                         msg("§e/combattag toggle all §7- §e(De)Aktiviert die \"CombatTag\"-Nachrichten für dich für alle Spielmodi/Welten.",
  134.                                 p);
  135.                         msg("§e/combattag toggle WELT/SPIELMODUS§7- §e(De)Aktiviert die \"CombatTag\"-Nachrichten für dich für die Welt/den Spielmodus welche(n) du angegeben hast.",
  136.                                 p);
  137.                     } else {
  138.                         msg("§6Befehl-Nutzung:", p);
  139.                         msg("§e/combattag toggle here§7- §e(De)Aktiviert die \"CombatTag\"-Nachrichten für dich für die Welt/den Spielmodus indem du dich gerade befindest.",
  140.                                 p);
  141.                         msg("§e/combattag toggle all §7- §e(De)Aktiviert die \"CombatTag\"-Nachrichten für dich für alle Spielmodi/Welten.",
  142.                                 p);
  143.                     }
  144.                 } else {
  145.                     p.chat("/combattag help");
  146.                 }
  147.             } else if (args.length == 2) {
  148.                 if (args[0].equalsIgnoreCase("toggle")) {
  149.                     if (args[1].equalsIgnoreCase("here")) {
  150.                         if (getConfig().contains(p.getUniqueId() + "." + p.getWorld().getName())) {
  151.                             if (getConfig().getBoolean(p.getUniqueId() + "." + p.getWorld().getName()) == true) {
  152.                                 cfgSet(p.getUniqueId() + "." + p.getWorld().getName(), false);
  153.                             } else {
  154.                                 cfgSet(p.getUniqueId() + "." + p.getWorld().getName(), true);
  155.                             }
  156.                         } else {
  157.                             msg("§cEs ist ein Fehler aufgetreten! Bitte melde ihn an MrJonton01:", p);
  158.                             msg("§cConfig-Pfad für UUID" + p.getUniqueId().toString() + " (" + p.getName() + ", "
  159.                                     + p.getWorld().getName() + ") nicht gefunden.", p);
  160.                         }
  161.                     } else if (args[1].equalsIgnoreCase("all")) {
  162.                         for (String w : getConfig().getStringList("active-worlds")) {
  163.                             if (!getConfig().contains(p.getUniqueId().toString() + ".all")) {
  164.                                 cfgSet(p.getUniqueId().toString() + ".all", "1");
  165.                             } else {
  166.                                 if (getConfig().getString(p.getUniqueId().toString() + ".all").equalsIgnoreCase("0")) {
  167.                                     cfgSet(p.getUniqueId() + "." + w, true);
  168.                                 } else {
  169.                                     cfgSet(p.getUniqueId() + "." + w, false);
  170.                                 }
  171.                             }
  172.                         }
  173.                         if (getConfig().getString(p.getUniqueId().toString() + ".all").equalsIgnoreCase("0")) {
  174.                             cfgSet(p.getUniqueId().toString() + ".all", "1");
  175.                             msg("§aDu hast alle Nachrichten für dich §2aktiviert§a!", p);
  176.                         } else {
  177.                             cfgSet(p.getUniqueId().toString() + ".all", "0");
  178.                             msg("§aDu hast alle Nachrichten für dich §cdeaktiviert§a!", p);
  179.                         }
  180.                     } else {
  181.                         if (p.hasPermission("combattag.vip")) {
  182.                             if (Bukkit.getWorlds().contains(Bukkit.getWorld(args[1]))) {
  183.                                 if (getConfig().getBoolean(p.getUniqueId().toString() + "." + args[1]) == true) {
  184.                                     cfgSet(p.getUniqueId().toString() + "." + args[1], false);
  185.                                     msg("§aDu hast die Nachrichten in der Welt/in dem Spielmodus §3" + args[1]
  186.                                             + " §cdeaktiviert§a!", p);
  187.                                 } else {
  188.                                     cfgSet(p.getUniqueId().toString() + "." + args[1], true);
  189.                                     msg("§aDu hast die Nachrichten in der Welt/in dem Spielmodus §3" + args[1]
  190.                                             + " §2aktiviert§a!", p);
  191.                                 }
  192.                             } else {
  193.                                 msg("§cDiese Welt/Dieser Spielmodus ist nicht verfügbar. Bitte achte auch auf Groß- und Kleinschreibung!",
  194.                                         p);
  195.                             }
  196.                         } else {
  197.                             msg("§cDu benötigst mindestens den §6VIP§c-Rang um dies nutzen zu dürfen!", p);
  198.                         }
  199.                     }
  200.                 } else {
  201.                     p.chat("/combattag help");
  202.                 }
  203.             } else {
  204.                 p.chat("/combattag help");
  205.             }
  206.         }
  207.         return true;
  208.  
  209.     }
  210.  
  211.     @EventHandler
  212.     public void onDamage(EntityDamageByEntityEvent e) {
  213.         Player p = (Player) e.getEntity();
  214.         Player d = (Player) e.getDamager();
  215.  
  216.         if (e.getEntity() instanceof Player && e.getDamager() instanceof Player) {
  217.  
  218.             if (!combat.containsKey(p.getName())) {
  219.                 if (!combat.containsKey(d.getName())) {
  220.                     if (getConfig().getBoolean(p.getUniqueId() + "." + p.getWorld().getName()) == true) {
  221.                         if (getConfig().getBoolean(d.getUniqueId() + "." + d.getWorld().getName()) == true) {
  222.                             msg("§eDu bist nun im §aKampf §emit " + d.getDisplayName() + "§e! Logge dich nicht aus!",
  223.                                     p);
  224.                             msg("§eDu bist nun im §aKampf §emit " + p.getDisplayName() + "§e! Logge dich nicht aus!",
  225.                                     d);
  226.                         } else {
  227.                             msg("§eDu bist nun im §aKampf §emit " + d.getDisplayName() + "§e! Logge dich nicht aus!",
  228.                                     p);
  229.                         }
  230.                     } else {
  231.                         if (getConfig().getBoolean(d.getUniqueId() + "." + d.getWorld().getName()) == true) {
  232.                             msg("§eDu bist nun im §aKampf §emit " + p.getDisplayName() + "§e! Logge dich nicht aus!",
  233.                                     d);
  234.                         } else {
  235.                         }
  236.                     }
  237.                 }
  238.             }
  239.             combat.put(p.getName(), getConfig().getLong("delay"));
  240.             combat.put(d.getName(), getConfig().getLong("delay"));
  241.  
  242.             timer(d);
  243.             timer(p);
  244.  
  245.         } else {
  246.             return;
  247.         }
  248.  
  249.     }
  250.  
  251.     @SuppressWarnings("deprecation")
  252.     private void timer(Player p) {
  253.  
  254.         int cid = Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new BukkitRunnable() {
  255.            
  256.            
  257.             public void run() {
  258.                
  259.                 if (combat.containsKey(p.getName())) {
  260.                     if (combat.get(p.getName()) == 0) {
  261.                         if (getConfig().getBoolean(p.getUniqueId().toString() + "." + p.getWorld().getName()) == true) {
  262.                             msg("§eDu bist nun §cnicht mehr §eim Kampf und kannst dich sicher ausloggen!", p);
  263.                             combat.remove(p.getName());
  264.                             p.sendMessage("ok");
  265.                             this.cancel();
  266.                             // Bukkit.getScheduler().cancelTask(cid);
  267.                            
  268.                              return;
  269.                         } else {
  270.                             combat.remove(p.getName());
  271.                             p.sendMessage("okkk");
  272.                             this.cancel();
  273.                             //Bukkit.getScheduler().cancelTasks(pl);
  274.                              //Bukkit.getScheduler().cancelTask();
  275.                              return;
  276.                         }
  277.                     }
  278.                     else{
  279.                 combat.replace(p.getName(), combat.get(p.getName()) - 1);
  280.                     }
  281.                 } else {
  282.                 }
  283.                 // p.sendMessage("" + combat.get(p.getName()) + " §c" +
  284.                 // this.getTaskId());
  285.             }
  286.         }, 1L, 1L);
  287.        
  288.         /*BukkitTask cid = Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new BukkitRunnable() {
  289.            
  290.            
  291.             public void run() {
  292.  
  293.                 tp.put(p.getName(), cid);
  294.                
  295.                 if (combat.containsKey(p.getName())) {
  296.                             Bukkit.getServer().getConsoleSender().sendMessage("" + this.getTaskId());
  297.                     if (combat.get(p.getName()) == 0) {
  298.                         if (getConfig().getBoolean(p.getUniqueId().toString() + "." + p.getWorld().getName()) == true) {
  299.                             msg("§eDu bist nun §cnicht mehr §eim Kampf und kannst dich sicher ausloggen!", p);
  300.                             combat.remove(p.getName());
  301.                             // Bukkit.getScheduler().cancelTask(cid);
  302.                              return;
  303.                         } else {
  304.                             combat.remove(p.getName());
  305.                             //Bukkit.getScheduler().cancelTasks(pl);
  306.                              //Bukkit.getScheduler().cancelTask();
  307.                              return;
  308.                         }
  309.                     }
  310.                     else{
  311.                     }
  312.                 combat.replace(p.getName(), combat.get(p.getName()) - 1);
  313.                 } else {
  314.                 }
  315.                 // p.sendMessage("" + combat.get(p.getName()) + " §c" +
  316.                 // this.getTaskId());
  317.             }
  318.         }, 1L, 1L);*/
  319.        
  320.         if (!combat.containsKey(p.getName())) {
  321.              return;
  322.              }
  323.  
  324.        
  325.         /*
  326.          * if (!combat.containsKey(p.getName())) {
  327.          * Bukkit.getScheduler().cancelTask(cid); }
  328.          */
  329.  
  330.     }
  331.  
  332.     private void msg(String message, Player p) {
  333.         p.sendMessage(prefix + message);
  334.     }
  335.  
  336. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement