Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.aberdeener.minecraftiacore;
- import java.util.concurrent.TimeUnit;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Statistic;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandExecutor;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.event.Listener;
- public class PlayTime implements Listener,
- CommandExecutor {
- private static PlayTime INSTANCE;
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
- if (command.getName().equalsIgnoreCase("playtime")) {
- if (args.length == 0) {
- if (!sender.hasPermission("playtime.self")) {
- sender.sendMessage(ChatColor.RED + "You don't have permission to check your Play time!");
- return true;
- }
- if (! (sender instanceof Player)) {
- sender.sendMessage(ChatColor.RED + "You can't get the playtime of the console...");
- sender.sendMessage("Try adding a name after the command ;)");
- return true;
- }
- printPlayTime((Player) sender, sender);
- return true;
- } else {
- if (!sender.hasPermission("playtime.other")) {
- sender.sendMessage(ChatColor.RED + "You don't have permission to check your the Play time of " + args[0] + "!");
- return true;
- }
- Player player = Bukkit.getPlayer(args[0]);
- if (player == null) {
- sender.sendMessage(ChatColor.RED + "That player is offline. ");
- return true;
- }
- printPlayTime(player, sender);
- return true;
- }
- }
- return false;
- }
- private void printPlayTime(Player player, CommandSender sender) {
- long t = (long)(player.getStatistic(Statistic.PLAY_ONE_MINUTE) * 0.05 * 1000);
- long[] time = formatDuration(t);
- String message = String.format("The player *player* has played on the server for *days* days, *hours* hours, *minutes* mintues and *seconds* seconds.", player, time);
- sender.sendMessage(message);
- }
- private String format(String message, long[] time, Player player) {
- return (message.replace("*days*", time[0] + "").replace("*hours*", time[1] + "").replace("*minutes*", time[2] + "").replace("*seconds*", time[3] + "").replace("*player*", player.getDisplayName()));
- }
- private long[] formatDuration(long millis) {
- long days = TimeUnit.MILLISECONDS.toDays(millis);
- millis -= TimeUnit.DAYS.toMillis(days);
- long hours = TimeUnit.MILLISECONDS.toHours(millis);
- millis -= TimeUnit.HOURS.toMillis(hours);
- long minutes = TimeUnit.MILLISECONDS.toMinutes(millis);
- millis -= TimeUnit.MINUTES.toMillis(minutes);
- long seconds = TimeUnit.MILLISECONDS.toSeconds(millis);
- return new long[] {
- days,
- hours,
- minutes,
- seconds
- };
- }
- public static PlayTime getInstance() {
- return INSTANCE;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement