Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.85 KB | None | 0 0
  1. package fr.artemis.artemiscore.command;
  2.  
  3. import fr.artemis.library.CC;
  4. import fr.artemis.library.command.CommandBuilder;
  5. import fr.artemis.artemiscore.ArtemisCorePlugin;
  6.  
  7. import org.bukkit.Bukkit;
  8. import org.bukkit.OfflinePlayer;
  9. import org.bukkit.entity.Player;
  10. import org.bukkit.scheduler.BukkitRunnable;
  11.  
  12. public class RankCommand {
  13.  
  14.     private ArtemisCorePlugin plugin;
  15.  
  16.     public RankCommand(ArtemisCorePlugin plugin) {
  17.         this.plugin = plugin;
  18.         this.registerCommand();
  19.  
  20.     }
  21.     public void registerCommand() {
  22.         new CommandBuilder("rank").setExecutor((sender, args) -> {
  23.  
  24.             if (args.length == 3) {
  25.  
  26.                 final OfflinePlayer target = Bukkit.getOfflinePlayer(args[0]);
  27.                 final String rank = args[1];
  28.                 String durationInMinutes = args[2];
  29.  
  30.                 if (!ArtemisCorePlugin.instance.ranks.containsKey(rank))
  31.                 {
  32.                     sender.sendMessage(CC.RED + "Le grade " + rank + " n'a pas pu être trouvé.");
  33.                     return false;
  34.                 }
  35.  
  36.                 if (target == null || !target.hasPlayedBefore())
  37.                 {
  38.                     sender.sendMessage(CC.RED + "Le joueur " + args[0] + " n'existe pas ou ne s'est jamais connecté.");
  39.                     return false;
  40.                 }
  41.  
  42.                 final int duration;
  43.  
  44.                 if (durationInMinutes.equalsIgnoreCase("perm"))
  45.                     duration = 5241600;
  46.                 else
  47.                 {
  48.                     try
  49.                     {
  50.                         duration = Integer.valueOf(durationInMinutes).intValue();
  51.                     }
  52.                     catch(Exception exception)
  53.                     {
  54.                         sender.sendMessage(CC.RED + durationInMinutes + " n'est pas un nombre de minutes valable.");
  55.                         return false;
  56.                     }
  57.                 }
  58.  
  59.                 sender.sendMessage(CC.GREEN + "Le grade du joueur va changer d'ici quelques secondes...");
  60.  
  61.                 new BukkitRunnable()
  62.                 {
  63.                     @Override
  64.                     public void run()
  65.                     {
  66.                         String uuid = target.getUniqueId().toString();
  67.                         int started = Long.valueOf(System.currentTimeMillis()).intValue();
  68.                         long exists = ArtemisCorePlugin.instance.mySQL.getObject("SELECT COUNT(*) AS exsts FROM ranks WHERE uuid='" + uuid + "';", "exsts");
  69.  
  70.                         if (exists == 0)
  71.                             ArtemisCorePlugin.instance.mySQL.executeQuery("INSERT INTO ranks VALUES('" + uuid + "', '" + rank + "'," + duration + "," + started + ");");
  72.                         else
  73.                             ArtemisCorePlugin.instance.mySQL.executeQuery("UPDATE ranks SET rank='" + rank + "',duration=" + duration + ",started=" + started + " WHERE uuid='" + uuid + "';");
  74.  
  75.                         if (target.isOnline())
  76.                         {
  77.                             Player onlineTarget = target.getPlayer();
  78.  
  79.                             ArtemisCorePlugin.instance.playerRanks.put(onlineTarget, rank);
  80.                             ArtemisCorePlugin.instance.update(onlineTarget, false);
  81.  
  82.                             onlineTarget.sendMessage(CC.GREEN + "Ton grade a changé ! Tu es maintenant " + rank);
  83.                             sender.sendMessage(CC.GREEN + "Le grade de " + CC.DARK_RED + onlineTarget.getDisplayName() + CC.GREEN + " est maintenant " + rank);
  84.                         }
  85.                     }
  86.                 }.runTaskAsynchronously(ArtemisCorePlugin.instance);
  87.  
  88.                 return true;
  89.             }
  90.  
  91.             sender.sendMessage(CC.RED + "Usage : /rank [player] [rank] [perm/minutes]");
  92.             return false;
  93.  
  94.         }).build(ArtemisCorePlugin.getInstance());
  95.     }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement