Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.lol.mpt;
- import java.util.Collections;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Set;
- import java.util.logging.Logger;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.configuration.ConfigurationSection;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerJoinEvent;
- import org.bukkit.event.player.PlayerQuitEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- import java.util.Calendar;
- import java.util.ArrayList;
- public class MonthlyPlayTime extends JavaPlugin implements Listener
- {
- Logger log;
- HashMap<Player, Long> starttimes = new HashMap<Player, Long>();
- HashMap<Player, Integer> totaltimes = new HashMap<Player, Integer>();
- HashMap<Integer, String> ordering = new HashMap<Integer, String>();
- public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
- if(cmd.getName().equalsIgnoreCase("mtreload"))
- {
- this.reloadConfig();
- }
- if(cmd.getName().equalsIgnoreCase("playtimeself"))
- {
- if (sender.hasPermission("playtime.check.own"))
- {
- long l = System.currentTimeMillis();
- long t = starttimes.get(sender);
- long f = starttimes.get(sender);
- f = l - f;
- //Bukkit.broadcastMessage("NOW is " + Long.toString(l));
- //Bukkit.broadcastMessage("THEN was " + Long.toString(t));
- t = l - t;
- t = t + this.getConfig().getLong("times.total." + sender.getName());
- double a = 0;
- a = f / 1000;
- a = a / 60;
- double b = 0;
- a = t / 1000;
- a = b / 60;
- sender.sendMessage("Your playtime this session is: " + f + "ms or " + a + " mins");
- sender.sendMessage("Your playtime in total is: " + t + "ms or " + b + " mins");
- }
- else
- {
- sender.sendMessage(ChatColor.RED + "Need permission -- playtime.check.own");
- }
- }
- if(cmd.getName().equalsIgnoreCase("playtimeother"))
- {
- if (sender.hasPermission("playtime.check.others"))
- {
- long l = System.currentTimeMillis();
- long t = starttimes.get(Bukkit.getPlayer(args[0]));
- long f = starttimes.get(Bukkit.getPlayer(args[0]));
- f = l - f;
- //Bukkit.broadcastMessage("NOW is " + Long.toString(l));
- //Bukkit.broadcastMessage("THEN was " + Long.toString(t));
- t = l - t;
- t = t + this.getConfig().getLong("times.total." + args[0]);
- long mta = t = t + this.getConfig().getLong("times.monthly." + args[0]);
- mta = mta + (l - starttimes.get(Bukkit.getPlayer(args[0])));
- double a = 0;
- a = f / 1000;
- a = a / 60;
- double b = 0;
- a = t / 1000;
- a = b / 60;
- double mtas = 0;
- mtas = mta / 1000;
- mtas = mtas / 60;
- sender.sendMessage("Player's playtime this session is: " + f + "ms or " + a + " mins");
- sender.sendMessage("Player's playtime this month is: " + mta + "ms or " + mtas + " mins");
- sender.sendMessage("Player's playtime in total is: " + t + "ms or " + b + " mins");
- }
- else
- {
- sender.sendMessage(ChatColor.RED + "Need permission -- playtime.check.others");
- }
- }
- if(cmd.getName().equalsIgnoreCase("toptimes"))
- {
- if (sender.hasPermission("playtime.top"))
- {
- ConfigurationSection sec = getConfig().getConfigurationSection("times.monthly");
- int highest = 0;
- String best = "null";
- if (sec != null)
- {
- Set<String> s = sec.getKeys(false);
- List<Long> mvals = new ArrayList();
- List<String> myList = new ArrayList(s);
- Collections.sort(myList);
- for (int i = 0; i < myList.size(); i++) {
- if (i < Integer.parseInt(args[0]))
- {
- mvals.add(this.getConfig().getLong("times.total." + myList.get(i)));
- ordering.put((int) this.getConfig().getLong("times.total." + myList.get(i)), myList.get(i));
- }
- }
- Collections.sort(mvals);
- Collections.reverse(mvals);
- int a = 0;
- while (a < Integer.parseInt(args[0]) && a < mvals.size())
- {
- sender.sendMessage(mvals.get(a) + " -- " + ordering.get(mvals.get(a)));
- }
- }
- }
- else
- {
- sender.sendMessage(ChatColor.RED + "Need permission -- playtime.top");
- }
- }
- return true;
- }
- public void onEnable()
- {
- log = this.getLogger();
- log.info("Monthly Play Time enabled");
- getServer().getPluginManager().registerEvents(this, this);
- if (this.getConfig().getString("general.winnerCmd") == null)
- {
- this.getConfig().set("general.winnerCmd", "\"give #n dirt 64\"");
- }
- }
- public void onDisable()
- {
- this.saveConfig();
- log = this.getLogger();
- log.info("Plugin disabled");
- }
- @EventHandler
- public void onJoinEvent(PlayerJoinEvent event)
- {
- Long l = System.currentTimeMillis();
- starttimes.put(event.getPlayer(), l);
- //event.getPlayer().sendMessage("NOW is " + l.toString());
- //this.getConfig().set("times.total." + event.getPlayer().getName(), 0);
- if (event.getPlayer().getName().equals(this.getConfig().getString("general.monthWinner")))
- {
- event.getPlayer().sendMessage("You spent the longest here last month. You get a prize!");
- CommandSender console=Bukkit.getConsoleSender();
- String cmd = this.getConfig().getString("general.winnerCmd");
- cmd = cmd.replace("#n", event.getPlayer().getName());
- cmd = cmd.replace("#n", event.getPlayer().getName());
- cmd = cmd.replace("#n", event.getPlayer().getName());
- cmd = cmd.replace("#n", event.getPlayer().getName());
- cmd = cmd.replace("#n", event.getPlayer().getName());
- cmd = cmd.replace("#n", event.getPlayer().getName());
- cmd = cmd.replace("#n", event.getPlayer().getName());
- cmd = cmd.replace("#n", event.getPlayer().getName());
- cmd = cmd.replace("#n", event.getPlayer().getName());
- //event.getPlayer().sendMessage(cmd);
- Bukkit.getServer().dispatchCommand(console,cmd);
- //Bukkit.getServer().dispatchCommand(console,"say " + cmd);#
- this.getConfig().set("general.monthWinner", "null");
- }
- }
- @EventHandler
- public void onQuitEvent(PlayerQuitEvent event)
- {
- long l = System.currentTimeMillis();
- long t = starttimes.get(event.getPlayer());
- //Bukkit.broadcastMessage("NOW is " + Long.toString(l));
- //Bukkit.broadcastMessage("THEN was " + Long.toString(t));
- t = l - t;
- t = t + this.getConfig().getLong("times.total." + event.getPlayer().getName());
- this.getConfig().set("times.total." + event.getPlayer().getName(), t);
- t = t / 1000;
- double secs = t;
- double mins = t / 60;
- //Bukkit.broadcastMessage("Played for " + t);
- this.getConfig().set("times.total." + event.getPlayer().getName(), t);
- Calendar cal = Calendar.getInstance();
- int month = cal.get(Calendar.MONTH);
- if (this.getConfig().getInt("general.currentMonth") == month)
- {
- Bukkit.broadcastMessage("E Months");
- long mt = l - starttimes.get(event.getPlayer());
- mt = mt + this.getConfig().getLong("times.monthly." + event.getPlayer().getName());
- this.getConfig().set("times.monthly." + event.getPlayer().getName(), mt);
- }
- else
- {
- Bukkit.broadcastMessage("NE Months");
- long mt = l - starttimes.get(event.getPlayer());
- this.getConfig().set("general.currentMonth", month);
- ConfigurationSection sec = getConfig().getConfigurationSection("times.monthly");
- int highest = 0;
- String best = "null";
- if (sec != null) {
- for (String key : sec.getKeys(false)) {
- //Bukkit.broadcastMessage(key);
- if (this.getConfig().getLong("times.monthly." + key) > highest)
- {
- best = key;
- }
- this.getConfig().set("times.monthly." + key, 0);
- log = this.getLogger();
- log.info("Month is out of date. Collating info...");
- }
- this.getConfig().set("general.monthWinner", best);
- }
- this.getConfig().set("times.monthly." + event.getPlayer().getName(), mt);
- }
- starttimes.remove(event.getPlayer());
- this.saveConfig();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement