diff --git a/src/main/java/com/alttd/afkdectector/AFKCheckTimer.java b/src/main/java/com/alttd/afkdectector/AFKCheckTimer.java index 96520e0..8f95259 100755 --- a/src/main/java/com/alttd/afkdectector/AFKCheckTimer.java +++ b/src/main/java/com/alttd/afkdectector/AFKCheckTimer.java @@ -54,13 +54,13 @@ public class AFKCheckTimer extends BukkitRunnable { } } - private boolean playerMovedOutOfSphere(Player player, Location pastLocation) { - return player.getLocation().distanceSquared(pastLocation) > Config.RADIUS * Config.RADIUS; - } + private boolean playerMovedOutOfSphere(Player player, Location pastLocation) { + return player.getLocation().distanceSquared(pastLocation) > Config.RADIUS * Config.RADIUS; + } - private boolean playerHeadMoved(Location playerLocation, Location pastLocation) { - return playerLocation.getYaw() != pastLocation.getYaw() && playerLocation.getPitch() != pastLocation.getPitch(); - } + private boolean playerHeadMoved(Location playerLocation, Location pastLocation) { + return playerLocation.getYaw() != pastLocation.getYaw() && playerLocation.getPitch() != pastLocation.getPitch(); + } private void resetAFKPlayer(Location pastLocation, Player player, AFKPlayer afkPlayer) { afkPlayer.setPlayerToSphereCenter(pastLocation); diff --git a/src/main/java/com/alttd/afkdectector/AFKDetector.java b/src/main/java/com/alttd/afkdectector/AFKDetector.java index bca6ae0..894b6e6 100755 --- a/src/main/java/com/alttd/afkdectector/AFKDetector.java +++ b/src/main/java/com/alttd/afkdectector/AFKDetector.java @@ -34,13 +34,13 @@ import java.util.HashMap; import java.util.UUID; import java.util.concurrent.TimeUnit; -public class AFKDetector extends JavaPlugin implements Listener{ +public class AFKDetector extends JavaPlugin implements Listener { - public static AFKDetector instance; + public static AFKDetector instance; - public HashMap players = new HashMap<>(); - public HashMap messageTimers = new HashMap<>(); - public HashMap PlayerAfkTime = new HashMap<>(); + public HashMap players = new HashMap<>(); + public HashMap messageTimers = new HashMap<>(); + public HashMap PlayerAfkTime = new HashMap<>(); public boolean fullOverride; @@ -52,18 +52,18 @@ public class AFKDetector extends JavaPlugin implements Listener{ @Override public void onEnable() { - try { - instance = this; + try { + instance = this; miniMessage = MiniMessage.miniMessage(); - loadConfig(null); - setupAFKStats(); - getServer().getPluginManager().registerEvents(this, this); - //getCommand("afk").setExecutor(new AFKCommand(this)); - getCommand("afklist").setExecutor(new AFKListCommand(this)); - getCommand("afkcheck").setExecutor(new AFKCheckCommand(this)); - getCommand("reloadafkdetector").setExecutor(new ReloadCommand(this)); - new AFKCheckTimer(this).init(); - } catch (Throwable t) { + loadConfig(null); + setupAFKStats(); + getServer().getPluginManager().registerEvents(this, this); + //getCommand("afk").setExecutor(new AFKCommand(this)); + getCommand("afklist").setExecutor(new AFKListCommand(this)); + getCommand("afkcheck").setExecutor(new AFKCheckCommand(this)); + getCommand("reloadafkdetector").setExecutor(new ReloadCommand(this)); + new AFKCheckTimer(this).init(); + } catch (Throwable t) { getLogger().severe("An error has occured while loading AFKDetector"); if (!(t instanceof ExceptionInInitializerError)) { t.printStackTrace(); @@ -71,66 +71,66 @@ public class AFKDetector extends JavaPlugin implements Listener{ getServer().getPluginManager().disablePlugin(this); } } - + @Override public void onDisable() { - ScoreboardManager manager = Bukkit.getScoreboardManager(); - Scoreboard board = manager.getMainScoreboard(); - board.getTeam("AFKPlayers").unregister(); - this.getServer().getScheduler().cancelTasks(this); + ScoreboardManager manager = Bukkit.getScoreboardManager(); + Scoreboard board = manager.getMainScoreboard(); + board.getTeam("AFKPlayers").unregister(); + this.getServer().getScheduler().cancelTasks(this); } - + public AFKPlayer getPlayer(Player player) { if (!players.containsKey(player.getUniqueId())) { players.put(player.getUniqueId(), new AFKPlayer(player, this)); } return players.get(player.getUniqueId()); } - + private void setupAFKStats() { - if (Bukkit.getScoreboardManager().getMainScoreboard().getTeam("AFKPlayers") == null) { - AFKPlayers = Bukkit.getScoreboardManager().getMainScoreboard().registerNewTeam("AFKPlayers"); - } else { - AFKPlayers = Bukkit.getScoreboardManager().getMainScoreboard().getTeam("AFKPlayers"); - } + if (Bukkit.getScoreboardManager().getMainScoreboard().getTeam("AFKPlayers") == null) { + AFKPlayers = Bukkit.getScoreboardManager().getMainScoreboard().registerNewTeam("AFKPlayers"); + } else { + AFKPlayers = Bukkit.getScoreboardManager().getMainScoreboard().getTeam("AFKPlayers"); + } if (AFKPlayers == null) { Logger.warn("Could not find scoreboard AFKPlayers"); return; } - AFKPlayers.setOption(Team.Option.COLLISION_RULE, Team.OptionStatus.NEVER); - //AFKPlayers.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.NEVER); - } - + AFKPlayers.setOption(Team.Option.COLLISION_RULE, Team.OptionStatus.NEVER); + //AFKPlayers.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.NEVER); + } + /** * Get the afk time for a player */ public int getAllowedAFKTime(Player player) { - if(Config.SERVER_FULL) { - return Config.DEFAULT_AFK_TIME; - } - return PlayerAfkTime.get(player.getUniqueId()); + if (Config.SERVER_FULL) { + return Config.DEFAULT_AFK_TIME; + } + return PlayerAfkTime.get(player.getUniqueId()); } - - public int getPlayerAFKTime(Player player) { - String permissionPrefix = "afkdetector.afktime."; - for (PermissionAttachmentInfo attachmentInfo : player.getEffectivePermissions()) { - if (attachmentInfo.getPermission().startsWith(permissionPrefix)) { - String perm = attachmentInfo.getPermission(); - int Time = Integer.parseInt(perm.substring(perm.lastIndexOf(".") + 1)); + + public int getPlayerAFKTime(Player player) { + String permissionPrefix = "afkdetector.afktime."; + for (PermissionAttachmentInfo attachmentInfo : player.getEffectivePermissions()) { + if (attachmentInfo.getPermission().startsWith(permissionPrefix)) { + String perm = attachmentInfo.getPermission(); + int Time = Integer.parseInt(perm.substring(perm.lastIndexOf(".") + 1)); return Math.min(Time, Config.MAX_AFK_TIME); - } - } - return Config.DEFAULT_AFK_TIME; - } - + } + } + return Config.DEFAULT_AFK_TIME; + } + @EventHandler public void onJoin(PlayerJoinEvent event) { Player player = event.getPlayer(); UUID uuid = player.getUniqueId(); PlayerAfkTime.put(uuid, getPlayerAFKTime(player)); players.put(uuid, new AFKPlayer(player, this)); - if(Bukkit.getOnlinePlayers().size() >= Config.PLAYER_LIMIT && !Config.SERVER_FULL) { - fullOverride = true; + if (Bukkit.getOnlinePlayers().size() >= Config.PLAYER_LIMIT && !Config.SERVER_FULL) { + fullOverride = true; } long lastKick = AutoJoinTracker.getInstance().getLastKick(uuid); @@ -147,26 +147,26 @@ public class AFKDetector extends JavaPlugin implements Listener{ Bukkit.broadcast(component, "afkdetector.notify"); } } - + @EventHandler public void onQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); // Remove the players from the timer if they logout players.remove(player.getUniqueId()); - if(Bukkit.getOnlinePlayers().size() < Config.PLAYER_LIMIT && fullOverride){ - fullOverride = false; + if (Bukkit.getOnlinePlayers().size() < Config.PLAYER_LIMIT && fullOverride) { + fullOverride = false; } } - + @EventHandler public void onTalkCancel(AsyncChatEvent event) { if (!Config.CHAT_WILL_CANCEL) { - return; + return; } Player player = event.getPlayer(); getPlayer(player).ResetAFK(); } - + @EventHandler public void onCommandCancel(PlayerCommandPreprocessEvent event) { if (!Config.COMMAND_WILL_CANCEL) { @@ -192,14 +192,14 @@ public class AFKDetector extends JavaPlugin implements Listener{ } }*/ - public static AFKDetector getInstance() { - return instance; - } + public static AFKDetector getInstance() { + return instance; + } - public void loadConfig(CommandSender sender) { + public void loadConfig(CommandSender sender) { Config.reload(); MessagesConfig.reload(); - if(sender != null) { + if (sender != null) { sender.sendMessage("Configuration reloaded"); } } diff --git a/src/main/java/com/alttd/afkdectector/MessageTimer.java b/src/main/java/com/alttd/afkdectector/MessageTimer.java index 6d86c1b..5484579 100755 --- a/src/main/java/com/alttd/afkdectector/MessageTimer.java +++ b/src/main/java/com/alttd/afkdectector/MessageTimer.java @@ -1,9 +1,5 @@ package com.alttd.afkdectector; -import java.util.Date; -import java.util.UUID; -import java.util.concurrent.TimeUnit; - import com.alttd.afkdectector.afkplayer.AFKPlayer; import com.alttd.afkdectector.config.Config; import com.alttd.afkdectector.config.Messages; @@ -17,75 +13,79 @@ import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; +import java.util.Date; +import java.util.UUID; +import java.util.concurrent.TimeUnit; + public class MessageTimer extends BukkitRunnable { - private final AFKDetector plugin; - private final UUID uuid; - private final AFKPlayer afkPlayer; - private int repeats; - + private final AFKDetector plugin; + private final UUID uuid; + private final AFKPlayer afkPlayer; + private int repeats; + public MessageTimer(AFKDetector plugin, AFKPlayer afkPlayer, int repeats) { this.plugin = plugin; this.afkPlayer = afkPlayer; this.repeats = repeats; this.uuid = afkPlayer.getPlayerUuid(); } - + public void init() { - runTaskTimer(plugin, 0, Config.MESSAGE_DELAY * 20L); + runTaskTimer(plugin, 0, Config.MESSAGE_DELAY * 20L); } - + // TODO get a better string builder /* private String return_placeholders(Param String ... string) */ private String return_placeholders(String s, Player p) { - int afkTime = (int) TimeUnit.MILLISECONDS.toMinutes((long) Math.floor(System.currentTimeMillis() - plugin.getPlayer(p).getStandingTime())); - s = s.replaceAll("%player%", p.getName()).replaceAll("%afktime%", afkTime + ""); + int afkTime = (int) TimeUnit.MILLISECONDS.toMinutes((long) Math.floor(System.currentTimeMillis() - plugin.getPlayer(p).getStandingTime())); + s = s.replaceAll("%player%", p.getName()).replaceAll("%afktime%", afkTime + ""); return s; } - + @Override public void run() { - Player player = Bukkit.getPlayer(uuid); - if(plugin.messageTimers.containsKey(uuid)) { - if (player == null || player.hasPermission("afkdetector.kickexempt")) { - cancel(); - return; - } - if(Config.COUNT_DOWN_ENABLED) { - MiniMessage miniMessage = AFKDetector.miniMessage; - Title title = Title.title(miniMessage.deserialize(Messages.COUNT_DOWN_TITLE_1.getMessage()), - miniMessage.deserialize(Messages.COUNT_DOWN_TITLE_2.getMessage())); - //Title.Times.of(Config.FADEIN, Config.STAY, Config.STAY); - player.showTitle(title); - player.sendMessage(miniMessage.deserialize(Messages.COUNT_DOWN_MESSAGE.getMessage())); - } - repeats = repeats - 1; + Player player = Bukkit.getPlayer(uuid); + if (plugin.messageTimers.containsKey(uuid)) { + if (player == null || player.hasPermission("afkdetector.kickexempt")) { + cancel(); + return; + } + if (Config.COUNT_DOWN_ENABLED) { + MiniMessage miniMessage = AFKDetector.miniMessage; + Title title = Title.title(miniMessage.deserialize(Messages.COUNT_DOWN_TITLE_1.getMessage()), + miniMessage.deserialize(Messages.COUNT_DOWN_TITLE_2.getMessage())); + //Title.Times.of(Config.FADEIN, Config.STAY, Config.STAY); + player.showTitle(title); + player.sendMessage(miniMessage.deserialize(Messages.COUNT_DOWN_MESSAGE.getMessage())); + } + repeats = repeats - 1; - if (repeats <= 0) { - if(player.isInsideVehicle()) { - player.leaveVehicle(); - } - //Bukkit.dispatchCommand(Bukkit.getConsoleSender(), plugin.kickCommand.replace("%player%", player.getName())); - plugin.messageTimers.remove(player.getUniqueId()); - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), return_placeholders(Config.KICK_COMMAND, player)); - AutoJoinTracker.getInstance().setLastKick(player.getUniqueId(), new Date().getTime()); - TagResolver templates = TagResolver.resolver( - Placeholder.unparsed("player", player.getName()), - Placeholder.unparsed("afk_time", "" + (int) Math.floor((System.currentTimeMillis() - plugin.getPlayer(player).getStandingTime()) / 60f / 1000)) - ); - Component message = MiniMessage.miniMessage().deserialize(Messages.AFK_KICK_STAFF_MESSAGE.getMessage(), templates); - Bukkit.broadcast(message, "afkdetector.notify"); - cancel(); - } - } else { - if(player != null) { - if(!plugin.messageTimers.isEmpty()) { - plugin.messageTimers.remove(player.getUniqueId()); - } - cancel(); - } - } + if (repeats <= 0) { + if (player.isInsideVehicle()) { + player.leaveVehicle(); + } + //Bukkit.dispatchCommand(Bukkit.getConsoleSender(), plugin.kickCommand.replace("%player%", player.getName())); + plugin.messageTimers.remove(player.getUniqueId()); + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), return_placeholders(Config.KICK_COMMAND, player)); + AutoJoinTracker.getInstance().setLastKick(player.getUniqueId(), new Date().getTime()); + TagResolver templates = TagResolver.resolver( + Placeholder.unparsed("player", player.getName()), + Placeholder.unparsed("afk_time", "" + (int) Math.floor((System.currentTimeMillis() - plugin.getPlayer(player).getStandingTime()) / 60f / 1000)) + ); + Component message = MiniMessage.miniMessage().deserialize(Messages.AFK_KICK_STAFF_MESSAGE.getMessage(), templates); + Bukkit.broadcast(message, "afkdetector.notify"); + cancel(); + } + } else { + if (player != null) { + if (!plugin.messageTimers.isEmpty()) { + plugin.messageTimers.remove(player.getUniqueId()); + } + cancel(); + } + } } } diff --git a/src/main/java/com/alttd/afkdectector/afkplayer/AFKPlayer.java b/src/main/java/com/alttd/afkdectector/afkplayer/AFKPlayer.java index 671775c..020f9e0 100755 --- a/src/main/java/com/alttd/afkdectector/afkplayer/AFKPlayer.java +++ b/src/main/java/com/alttd/afkdectector/afkplayer/AFKPlayer.java @@ -83,8 +83,8 @@ public class AFKPlayer { Bukkit.broadcast(component, "afkdetector.notify"); } standingTime = System.currentTimeMillis(); - Player player = Bukkit.getPlayer(getPlayerUuid()); - playerToSphereCenter = (player == null) ? null : player.getLocation(); + Player player = Bukkit.getPlayer(getPlayerUuid()); + playerToSphereCenter = (player == null) ? null : player.getLocation(); isAFK = false; } diff --git a/src/main/java/com/alttd/afkdectector/command/AFKListCommand.java b/src/main/java/com/alttd/afkdectector/command/AFKListCommand.java index 004338b..51ba6dc 100755 --- a/src/main/java/com/alttd/afkdectector/command/AFKListCommand.java +++ b/src/main/java/com/alttd/afkdectector/command/AFKListCommand.java @@ -32,19 +32,19 @@ public class AFKListCommand implements CommandExecutor, TabCompleter { MiniMessage miniMessage = AFKDetector.miniMessage; for (AFKPlayer afkplayer : plugin.players.values()) { long standingTime = afkplayer.getStandingTime(); - if (System.currentTimeMillis() - standingTime <= TimeUnit.MINUTES.toMillis(Config.TOGGLE_TIME)) { - continue; - } + if (System.currentTimeMillis() - standingTime <= TimeUnit.MINUTES.toMillis(Config.TOGGLE_TIME)) { + continue; + } - afkPlayers += 1; - message = message.append(Component.newline()); - TagResolver templates = TagResolver.resolver( - Placeholder.parsed("player", afkplayer.getPlayerName()), - Placeholder.parsed("afktime", (System.currentTimeMillis() - standingTime) / 1000 + "") - ); - Component userinfo = miniMessage.deserialize(Messages.AFK_LIST_ENTRY.getMessage(), templates); - message = message.append(userinfo); - } + afkPlayers += 1; + message = message.append(Component.newline()); + TagResolver templates = TagResolver.resolver( + Placeholder.parsed("player", afkplayer.getPlayerName()), + Placeholder.parsed("afktime", (System.currentTimeMillis() - standingTime) / 1000 + "") + ); + Component userinfo = miniMessage.deserialize(Messages.AFK_LIST_ENTRY.getMessage(), templates); + message = message.append(userinfo); + } TagResolver templates = TagResolver.resolver( Placeholder.parsed("afkplayers", Integer.toString(afkPlayers)) diff --git a/src/main/java/com/alttd/afkdectector/config/Messages.java b/src/main/java/com/alttd/afkdectector/config/Messages.java index 06a1ed4..4fa79c1 100644 --- a/src/main/java/com/alttd/afkdectector/config/Messages.java +++ b/src/main/java/com/alttd/afkdectector/config/Messages.java @@ -4,7 +4,7 @@ public enum Messages { TITLE("title-name", "[AFKDetector] "), COOL_DOWN("cooldown-message", "You need to wait seconds before using this command."), INVALID_PLAYER("invalid-args", "Invalid args!usage: -p:playername"), - INVALID_REASON("invalid-reason" , "Invalid args! usage: -r:reason"), + INVALID_REASON("invalid-reason", "Invalid args! usage: -r:reason"), NOT_ONLINE("player-notonline", "Invalid args! player not online"), PLAYER_ONLY("player-only", "Teri have you ever seen an afk console?"), NO_PERMS("no-permissions", "You don''t have permission for that!"), diff --git a/src/main/java/com/alttd/afkdectector/config/MessagesConfig.java b/src/main/java/com/alttd/afkdectector/config/MessagesConfig.java index 553eee1..3a4a244 100644 --- a/src/main/java/com/alttd/afkdectector/config/MessagesConfig.java +++ b/src/main/java/com/alttd/afkdectector/config/MessagesConfig.java @@ -24,6 +24,7 @@ public class MessagesConfig extends AbstractConfiguration { } public static boolean DEBUG_MODE = false; + private static void settings() { DEBUG_MODE = config.getBoolean("debug-mode", DEBUG_MODE); } diff --git a/src/main/java/com/alttd/afkdectector/util/Logger.java b/src/main/java/com/alttd/afkdectector/util/Logger.java index 5288fe5..e91127b 100644 --- a/src/main/java/com/alttd/afkdectector/util/Logger.java +++ b/src/main/java/com/alttd/afkdectector/util/Logger.java @@ -4,18 +4,19 @@ import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; import java.util.logging.Level; + public class Logger { public static void info(String str) { - log(Level.INFO,"&e" + str); + log(Level.INFO, "&e" + str); } public static void warn(String str) { - log(Level.SEVERE,"&6" + str); + log(Level.SEVERE, "&6" + str); } public static void severe(String str) { - log(Level.SEVERE,"&c" + str); + log(Level.SEVERE, "&c" + str); } public static void log(Level level, String str) {