Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.75 KB | None | 0 0
  1. package me.aberdeener.minecraftiacore;
  2.  
  3. import java.util.concurrent.TimeUnit;
  4.  
  5. import org.bukkit.Bukkit;
  6. import org.bukkit.ChatColor;
  7. import org.bukkit.Statistic;
  8. import org.bukkit.command.Command;
  9. import org.bukkit.command.CommandExecutor;
  10. import org.bukkit.command.CommandSender;
  11. import org.bukkit.entity.Player;
  12. import org.bukkit.event.Listener;
  13.  
  14. public class PlayTime implements Listener,
  15. CommandExecutor {
  16.  
  17.     private static PlayTime INSTANCE;
  18.  
  19.     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  20.         if (command.getName().equalsIgnoreCase("playtime")) {
  21.             if (args.length == 0) {
  22.                 if (!sender.hasPermission("playtime.self")) {
  23.                     sender.sendMessage(ChatColor.RED + "You don't have permission to check your Play time!");
  24.                     return true;
  25.                 }
  26.  
  27.                 if (! (sender instanceof Player)) {
  28.                     sender.sendMessage(ChatColor.RED + "You can't get the playtime of the console...");
  29.                     sender.sendMessage("Try adding a name after the command ;)");
  30.                     return true;
  31.                 }
  32.  
  33.                 printPlayTime((Player) sender, sender);
  34.                 return true;
  35.             } else {
  36.                 if (!sender.hasPermission("playtime.other")) {
  37.                     sender.sendMessage(ChatColor.RED + "You don't have permission to check your the Play time of " + args[0] + "!");
  38.                     return true;
  39.                 }
  40.  
  41.                 Player player = Bukkit.getPlayer(args[0]);
  42.                 if (player == null) {
  43.                     sender.sendMessage(ChatColor.RED + "That player is offline. ");
  44.                     return true;
  45.                 }
  46.  
  47.                 printPlayTime(player, sender);
  48.                 return true;
  49.             }
  50.         }
  51.  
  52.         return false;
  53.     }
  54.  
  55.     private void printPlayTime(Player player, CommandSender sender) {
  56.         long t = (long)(player.getStatistic(Statistic.PLAY_ONE_MINUTE) * 0.05 * 1000);
  57.         long[] time = formatDuration(t);
  58.         String message = String.format("The player *player* has played on the server for *days* days, *hours* hours, *minutes* mintues and *seconds* seconds.", player, time);
  59.         sender.sendMessage(message);
  60.     }
  61.  
  62.     private String format(String message, long[] time, Player player) {
  63.         return (message.replace("*days*", time[0] + "").replace("*hours*", time[1] + "").replace("*minutes*", time[2] + "").replace("*seconds*", time[3] + "").replace("*player*", player.getDisplayName()));
  64.     }
  65.  
  66.     private long[] formatDuration(long millis) {
  67.         long days = TimeUnit.MILLISECONDS.toDays(millis);
  68.         millis -= TimeUnit.DAYS.toMillis(days);
  69.         long hours = TimeUnit.MILLISECONDS.toHours(millis);
  70.         millis -= TimeUnit.HOURS.toMillis(hours);
  71.         long minutes = TimeUnit.MILLISECONDS.toMinutes(millis);
  72.         millis -= TimeUnit.MINUTES.toMillis(minutes);
  73.         long seconds = TimeUnit.MILLISECONDS.toSeconds(millis);
  74.  
  75.         return new long[] {
  76.             days,
  77.             hours,
  78.             minutes,
  79.             seconds
  80.         };
  81.     }
  82.  
  83.     public static PlayTime getInstance() {
  84.         return INSTANCE;
  85.     }
  86.  
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement