Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.ensemplix.enAfk;
- import java.util.HashMap;
- import java.util.logging.Logger;
- import org.bukkit.ChatColor;
- import org.bukkit.Location;
- import org.bukkit.Server;
- import org.bukkit.entity.Player;
- import org.bukkit.plugin.PluginDescriptionFile;
- import org.bukkit.plugin.PluginManager;
- import org.bukkit.plugin.java.JavaPlugin;
- import org.bukkit.scheduler.BukkitScheduler;
- public class enAfk extends JavaPlugin
- {
- public static Logger log = Logger.getLogger("Minecraft");
- public static PluginDescriptionFile pdfFile;
- public static HashMap<String, Long> playerLastActivity = new HashMap();
- public static HashMap<String, Location> playerLastPosition = new HashMap();
- public void onEnable()
- {
- pdfFile = getDescription();
- PluginDescriptionFile pdfFile = getDescription();
- PluginManager pm = getServer().getPluginManager();
- pm.registerEvents(new enPlayerListener(), this);
- log.info("[" + pdfFile.getName() + "]" + " v " + pdfFile.getVersion() + " is enabled!");
- getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable()
- {
- public void run()
- {
- for (Player player : enAfk.this.getServer().getOnlinePlayers())
- {
- if (enAfk.playerLastActivity.get(player.getName()) == null) {
- enAfk.playerLastActivity.put(player.getName(), Long.valueOf(System.currentTimeMillis() / 1000L));
- }
- Location loc = (Location)enAfk.playerLastPosition.get(player.getName());
- Location newloc = player.getLocation();
- if (loc == null) {
- enAfk.playerLastPosition.put(player.getName(), newloc);
- }
- else if ((loc.getWorld() != newloc.getWorld()) || (loc.distance(newloc) > 5.0D)) {
- enAfk.playerLastPosition.put(player.getName(), newloc);
- enAfk.playerLastActivity.put(player.getName(), Long.valueOf(System.currentTimeMillis() / 1000L));
- }
- if (System.currentTimeMillis() / 1000L > ((Long)enAfk.playerLastActivity.get(player.getName())).longValue() + 600L)
- player.kickPlayer(ChatColor.YELLOW + "Вы были в АФК слишком долго");
- }
- }
- }
- , 60L, 2000L);
- }
- public void onDisable()
- {
- getServer().getScheduler().cancelTasks(this);
- playerLastActivity.clear();
- playerLastPosition.clear();
- log.info("[" + pdfFile.getName() + "]" + " v " + pdfFile.getVersion() + " is disabled!");
- }
- }
Add Comment
Please, Sign In to add comment