Auto formatting spacing

This commit is contained in:
Teriuihi 2023-03-30 02:28:13 +02:00
parent ce798fcefa
commit 91a492b87f
8 changed files with 141 additions and 139 deletions

View File

@ -54,13 +54,13 @@ public class AFKCheckTimer extends BukkitRunnable {
} }
} }
private boolean playerMovedOutOfSphere(Player player, Location pastLocation) { private boolean playerMovedOutOfSphere(Player player, Location pastLocation) {
return player.getLocation().distanceSquared(pastLocation) > Config.RADIUS * Config.RADIUS; return player.getLocation().distanceSquared(pastLocation) > Config.RADIUS * Config.RADIUS;
} }
private boolean playerHeadMoved(Location playerLocation, Location pastLocation) { private boolean playerHeadMoved(Location playerLocation, Location pastLocation) {
return playerLocation.getYaw() != pastLocation.getYaw() && playerLocation.getPitch() != pastLocation.getPitch(); return playerLocation.getYaw() != pastLocation.getYaw() && playerLocation.getPitch() != pastLocation.getPitch();
} }
private void resetAFKPlayer(Location pastLocation, Player player, AFKPlayer afkPlayer) { private void resetAFKPlayer(Location pastLocation, Player player, AFKPlayer afkPlayer) {
afkPlayer.setPlayerToSphereCenter(pastLocation); afkPlayer.setPlayerToSphereCenter(pastLocation);

View File

@ -34,13 +34,13 @@ import java.util.HashMap;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.TimeUnit; 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<UUID, AFKPlayer> players = new HashMap<>(); public HashMap<UUID, AFKPlayer> players = new HashMap<>();
public HashMap<UUID, MessageTimer> messageTimers = new HashMap<>(); public HashMap<UUID, MessageTimer> messageTimers = new HashMap<>();
public HashMap<UUID, Integer> PlayerAfkTime = new HashMap<>(); public HashMap<UUID, Integer> PlayerAfkTime = new HashMap<>();
public boolean fullOverride; public boolean fullOverride;
@ -52,18 +52,18 @@ public class AFKDetector extends JavaPlugin implements Listener{
@Override @Override
public void onEnable() { public void onEnable() {
try { try {
instance = this; instance = this;
miniMessage = MiniMessage.miniMessage(); miniMessage = MiniMessage.miniMessage();
loadConfig(null); loadConfig(null);
setupAFKStats(); setupAFKStats();
getServer().getPluginManager().registerEvents(this, this); getServer().getPluginManager().registerEvents(this, this);
//getCommand("afk").setExecutor(new AFKCommand(this)); //getCommand("afk").setExecutor(new AFKCommand(this));
getCommand("afklist").setExecutor(new AFKListCommand(this)); getCommand("afklist").setExecutor(new AFKListCommand(this));
getCommand("afkcheck").setExecutor(new AFKCheckCommand(this)); getCommand("afkcheck").setExecutor(new AFKCheckCommand(this));
getCommand("reloadafkdetector").setExecutor(new ReloadCommand(this)); getCommand("reloadafkdetector").setExecutor(new ReloadCommand(this));
new AFKCheckTimer(this).init(); new AFKCheckTimer(this).init();
} catch (Throwable t) { } catch (Throwable t) {
getLogger().severe("An error has occured while loading AFKDetector"); getLogger().severe("An error has occured while loading AFKDetector");
if (!(t instanceof ExceptionInInitializerError)) { if (!(t instanceof ExceptionInInitializerError)) {
t.printStackTrace(); t.printStackTrace();
@ -71,66 +71,66 @@ public class AFKDetector extends JavaPlugin implements Listener{
getServer().getPluginManager().disablePlugin(this); getServer().getPluginManager().disablePlugin(this);
} }
} }
@Override @Override
public void onDisable() { public void onDisable() {
ScoreboardManager manager = Bukkit.getScoreboardManager(); ScoreboardManager manager = Bukkit.getScoreboardManager();
Scoreboard board = manager.getMainScoreboard(); Scoreboard board = manager.getMainScoreboard();
board.getTeam("AFKPlayers").unregister(); board.getTeam("AFKPlayers").unregister();
this.getServer().getScheduler().cancelTasks(this); this.getServer().getScheduler().cancelTasks(this);
} }
public AFKPlayer getPlayer(Player player) { public AFKPlayer getPlayer(Player player) {
if (!players.containsKey(player.getUniqueId())) { if (!players.containsKey(player.getUniqueId())) {
players.put(player.getUniqueId(), new AFKPlayer(player, this)); players.put(player.getUniqueId(), new AFKPlayer(player, this));
} }
return players.get(player.getUniqueId()); return players.get(player.getUniqueId());
} }
private void setupAFKStats() { private void setupAFKStats() {
if (Bukkit.getScoreboardManager().getMainScoreboard().getTeam("AFKPlayers") == null) { if (Bukkit.getScoreboardManager().getMainScoreboard().getTeam("AFKPlayers") == null) {
AFKPlayers = Bukkit.getScoreboardManager().getMainScoreboard().registerNewTeam("AFKPlayers"); AFKPlayers = Bukkit.getScoreboardManager().getMainScoreboard().registerNewTeam("AFKPlayers");
} else { } else {
AFKPlayers = Bukkit.getScoreboardManager().getMainScoreboard().getTeam("AFKPlayers"); AFKPlayers = Bukkit.getScoreboardManager().getMainScoreboard().getTeam("AFKPlayers");
} }
if (AFKPlayers == null) { if (AFKPlayers == null) {
Logger.warn("Could not find scoreboard AFKPlayers"); Logger.warn("Could not find scoreboard AFKPlayers");
return; return;
} }
AFKPlayers.setOption(Team.Option.COLLISION_RULE, Team.OptionStatus.NEVER); AFKPlayers.setOption(Team.Option.COLLISION_RULE, Team.OptionStatus.NEVER);
//AFKPlayers.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.NEVER); //AFKPlayers.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.NEVER);
} }
/** /**
* Get the afk time for a player * Get the afk time for a player
*/ */
public int getAllowedAFKTime(Player player) { public int getAllowedAFKTime(Player player) {
if(Config.SERVER_FULL) { if (Config.SERVER_FULL) {
return Config.DEFAULT_AFK_TIME; return Config.DEFAULT_AFK_TIME;
} }
return PlayerAfkTime.get(player.getUniqueId()); return PlayerAfkTime.get(player.getUniqueId());
} }
public int getPlayerAFKTime(Player player) { public int getPlayerAFKTime(Player player) {
String permissionPrefix = "afkdetector.afktime."; String permissionPrefix = "afkdetector.afktime.";
for (PermissionAttachmentInfo attachmentInfo : player.getEffectivePermissions()) { for (PermissionAttachmentInfo attachmentInfo : player.getEffectivePermissions()) {
if (attachmentInfo.getPermission().startsWith(permissionPrefix)) { if (attachmentInfo.getPermission().startsWith(permissionPrefix)) {
String perm = attachmentInfo.getPermission(); String perm = attachmentInfo.getPermission();
int Time = Integer.parseInt(perm.substring(perm.lastIndexOf(".") + 1)); int Time = Integer.parseInt(perm.substring(perm.lastIndexOf(".") + 1));
return Math.min(Time, Config.MAX_AFK_TIME); return Math.min(Time, Config.MAX_AFK_TIME);
} }
} }
return Config.DEFAULT_AFK_TIME; return Config.DEFAULT_AFK_TIME;
} }
@EventHandler @EventHandler
public void onJoin(PlayerJoinEvent event) { public void onJoin(PlayerJoinEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
UUID uuid = player.getUniqueId(); UUID uuid = player.getUniqueId();
PlayerAfkTime.put(uuid, getPlayerAFKTime(player)); PlayerAfkTime.put(uuid, getPlayerAFKTime(player));
players.put(uuid, new AFKPlayer(player, this)); players.put(uuid, new AFKPlayer(player, this));
if(Bukkit.getOnlinePlayers().size() >= Config.PLAYER_LIMIT && !Config.SERVER_FULL) { if (Bukkit.getOnlinePlayers().size() >= Config.PLAYER_LIMIT && !Config.SERVER_FULL) {
fullOverride = true; fullOverride = true;
} }
long lastKick = AutoJoinTracker.getInstance().getLastKick(uuid); long lastKick = AutoJoinTracker.getInstance().getLastKick(uuid);
@ -147,26 +147,26 @@ public class AFKDetector extends JavaPlugin implements Listener{
Bukkit.broadcast(component, "afkdetector.notify"); Bukkit.broadcast(component, "afkdetector.notify");
} }
} }
@EventHandler @EventHandler
public void onQuit(PlayerQuitEvent event) { public void onQuit(PlayerQuitEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
// Remove the players from the timer if they logout // Remove the players from the timer if they logout
players.remove(player.getUniqueId()); players.remove(player.getUniqueId());
if(Bukkit.getOnlinePlayers().size() < Config.PLAYER_LIMIT && fullOverride){ if (Bukkit.getOnlinePlayers().size() < Config.PLAYER_LIMIT && fullOverride) {
fullOverride = false; fullOverride = false;
} }
} }
@EventHandler @EventHandler
public void onTalkCancel(AsyncChatEvent event) { public void onTalkCancel(AsyncChatEvent event) {
if (!Config.CHAT_WILL_CANCEL) { if (!Config.CHAT_WILL_CANCEL) {
return; return;
} }
Player player = event.getPlayer(); Player player = event.getPlayer();
getPlayer(player).ResetAFK(); getPlayer(player).ResetAFK();
} }
@EventHandler @EventHandler
public void onCommandCancel(PlayerCommandPreprocessEvent event) { public void onCommandCancel(PlayerCommandPreprocessEvent event) {
if (!Config.COMMAND_WILL_CANCEL) { if (!Config.COMMAND_WILL_CANCEL) {
@ -192,14 +192,14 @@ public class AFKDetector extends JavaPlugin implements Listener{
} }
}*/ }*/
public static AFKDetector getInstance() { public static AFKDetector getInstance() {
return instance; return instance;
} }
public void loadConfig(CommandSender sender) { public void loadConfig(CommandSender sender) {
Config.reload(); Config.reload();
MessagesConfig.reload(); MessagesConfig.reload();
if(sender != null) { if (sender != null) {
sender.sendMessage("Configuration reloaded"); sender.sendMessage("Configuration reloaded");
} }
} }

View File

@ -1,9 +1,5 @@
package com.alttd.afkdectector; 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.afkplayer.AFKPlayer;
import com.alttd.afkdectector.config.Config; import com.alttd.afkdectector.config.Config;
import com.alttd.afkdectector.config.Messages; import com.alttd.afkdectector.config.Messages;
@ -17,75 +13,79 @@ import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
import java.util.Date;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
public class MessageTimer extends BukkitRunnable { public class MessageTimer extends BukkitRunnable {
private final AFKDetector plugin; private final AFKDetector plugin;
private final UUID uuid; private final UUID uuid;
private final AFKPlayer afkPlayer; private final AFKPlayer afkPlayer;
private int repeats; private int repeats;
public MessageTimer(AFKDetector plugin, AFKPlayer afkPlayer, int repeats) { public MessageTimer(AFKDetector plugin, AFKPlayer afkPlayer, int repeats) {
this.plugin = plugin; this.plugin = plugin;
this.afkPlayer = afkPlayer; this.afkPlayer = afkPlayer;
this.repeats = repeats; this.repeats = repeats;
this.uuid = afkPlayer.getPlayerUuid(); this.uuid = afkPlayer.getPlayerUuid();
} }
public void init() { public void init() {
runTaskTimer(plugin, 0, Config.MESSAGE_DELAY * 20L); runTaskTimer(plugin, 0, Config.MESSAGE_DELAY * 20L);
} }
// TODO get a better string builder // TODO get a better string builder
/* /*
private String return_placeholders(Param String ... string) private String return_placeholders(Param String ... string)
*/ */
private String return_placeholders(String s, Player p) { private String return_placeholders(String s, Player p) {
int afkTime = (int) TimeUnit.MILLISECONDS.toMinutes((long) Math.floor(System.currentTimeMillis() - plugin.getPlayer(p).getStandingTime())); int afkTime = (int) TimeUnit.MILLISECONDS.toMinutes((long) Math.floor(System.currentTimeMillis() - plugin.getPlayer(p).getStandingTime()));
s = s.replaceAll("%player%", p.getName()).replaceAll("%afktime%", afkTime + ""); s = s.replaceAll("%player%", p.getName()).replaceAll("%afktime%", afkTime + "");
return s; return s;
} }
@Override @Override
public void run() { public void run() {
Player player = Bukkit.getPlayer(uuid); Player player = Bukkit.getPlayer(uuid);
if(plugin.messageTimers.containsKey(uuid)) { if (plugin.messageTimers.containsKey(uuid)) {
if (player == null || player.hasPermission("afkdetector.kickexempt")) { if (player == null || player.hasPermission("afkdetector.kickexempt")) {
cancel(); cancel();
return; return;
} }
if(Config.COUNT_DOWN_ENABLED) { if (Config.COUNT_DOWN_ENABLED) {
MiniMessage miniMessage = AFKDetector.miniMessage; MiniMessage miniMessage = AFKDetector.miniMessage;
Title title = Title.title(miniMessage.deserialize(Messages.COUNT_DOWN_TITLE_1.getMessage()), Title title = Title.title(miniMessage.deserialize(Messages.COUNT_DOWN_TITLE_1.getMessage()),
miniMessage.deserialize(Messages.COUNT_DOWN_TITLE_2.getMessage())); miniMessage.deserialize(Messages.COUNT_DOWN_TITLE_2.getMessage()));
//Title.Times.of(Config.FADEIN, Config.STAY, Config.STAY); //Title.Times.of(Config.FADEIN, Config.STAY, Config.STAY);
player.showTitle(title); player.showTitle(title);
player.sendMessage(miniMessage.deserialize(Messages.COUNT_DOWN_MESSAGE.getMessage())); player.sendMessage(miniMessage.deserialize(Messages.COUNT_DOWN_MESSAGE.getMessage()));
} }
repeats = repeats - 1; repeats = repeats - 1;
if (repeats <= 0) { if (repeats <= 0) {
if(player.isInsideVehicle()) { if (player.isInsideVehicle()) {
player.leaveVehicle(); player.leaveVehicle();
} }
//Bukkit.dispatchCommand(Bukkit.getConsoleSender(), plugin.kickCommand.replace("%player%", player.getName())); //Bukkit.dispatchCommand(Bukkit.getConsoleSender(), plugin.kickCommand.replace("%player%", player.getName()));
plugin.messageTimers.remove(player.getUniqueId()); plugin.messageTimers.remove(player.getUniqueId());
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), return_placeholders(Config.KICK_COMMAND, player)); Bukkit.dispatchCommand(Bukkit.getConsoleSender(), return_placeholders(Config.KICK_COMMAND, player));
AutoJoinTracker.getInstance().setLastKick(player.getUniqueId(), new Date().getTime()); AutoJoinTracker.getInstance().setLastKick(player.getUniqueId(), new Date().getTime());
TagResolver templates = TagResolver.resolver( TagResolver templates = TagResolver.resolver(
Placeholder.unparsed("player", player.getName()), Placeholder.unparsed("player", player.getName()),
Placeholder.unparsed("afk_time", "" + (int) Math.floor((System.currentTimeMillis() - plugin.getPlayer(player).getStandingTime()) / 60f / 1000)) 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); Component message = MiniMessage.miniMessage().deserialize(Messages.AFK_KICK_STAFF_MESSAGE.getMessage(), templates);
Bukkit.broadcast(message, "afkdetector.notify"); Bukkit.broadcast(message, "afkdetector.notify");
cancel(); cancel();
} }
} else { } else {
if(player != null) { if (player != null) {
if(!plugin.messageTimers.isEmpty()) { if (!plugin.messageTimers.isEmpty()) {
plugin.messageTimers.remove(player.getUniqueId()); plugin.messageTimers.remove(player.getUniqueId());
} }
cancel(); cancel();
} }
} }
} }
} }

View File

@ -83,8 +83,8 @@ public class AFKPlayer {
Bukkit.broadcast(component, "afkdetector.notify"); Bukkit.broadcast(component, "afkdetector.notify");
} }
standingTime = System.currentTimeMillis(); standingTime = System.currentTimeMillis();
Player player = Bukkit.getPlayer(getPlayerUuid()); Player player = Bukkit.getPlayer(getPlayerUuid());
playerToSphereCenter = (player == null) ? null : player.getLocation(); playerToSphereCenter = (player == null) ? null : player.getLocation();
isAFK = false; isAFK = false;
} }

View File

@ -32,19 +32,19 @@ public class AFKListCommand implements CommandExecutor, TabCompleter {
MiniMessage miniMessage = AFKDetector.miniMessage; MiniMessage miniMessage = AFKDetector.miniMessage;
for (AFKPlayer afkplayer : plugin.players.values()) { for (AFKPlayer afkplayer : plugin.players.values()) {
long standingTime = afkplayer.getStandingTime(); long standingTime = afkplayer.getStandingTime();
if (System.currentTimeMillis() - standingTime <= TimeUnit.MINUTES.toMillis(Config.TOGGLE_TIME)) { if (System.currentTimeMillis() - standingTime <= TimeUnit.MINUTES.toMillis(Config.TOGGLE_TIME)) {
continue; continue;
} }
afkPlayers += 1; afkPlayers += 1;
message = message.append(Component.newline()); message = message.append(Component.newline());
TagResolver templates = TagResolver.resolver( TagResolver templates = TagResolver.resolver(
Placeholder.parsed("player", afkplayer.getPlayerName()), Placeholder.parsed("player", afkplayer.getPlayerName()),
Placeholder.parsed("afktime", (System.currentTimeMillis() - standingTime) / 1000 + "") Placeholder.parsed("afktime", (System.currentTimeMillis() - standingTime) / 1000 + "")
); );
Component userinfo = miniMessage.deserialize(Messages.AFK_LIST_ENTRY.getMessage(), templates); Component userinfo = miniMessage.deserialize(Messages.AFK_LIST_ENTRY.getMessage(), templates);
message = message.append(userinfo); message = message.append(userinfo);
} }
TagResolver templates = TagResolver.resolver( TagResolver templates = TagResolver.resolver(
Placeholder.parsed("afkplayers", Integer.toString(afkPlayers)) Placeholder.parsed("afkplayers", Integer.toString(afkPlayers))

View File

@ -4,7 +4,7 @@ public enum Messages {
TITLE("title-name", "<red>[<white>AFKDetector</white>]</red> "), TITLE("title-name", "<red>[<white>AFKDetector</white>]</red> "),
COOL_DOWN("cooldown-message", "You need to wait <timeleft> seconds before using this command."), COOL_DOWN("cooldown-message", "You need to wait <timeleft> seconds before using this command."),
INVALID_PLAYER("invalid-args", "<red>Invalid args!usage: -p:playername"), INVALID_PLAYER("invalid-args", "<red>Invalid args!usage: -p:playername"),
INVALID_REASON("invalid-reason" , "<red>Invalid args! usage: -r:reason"), INVALID_REASON("invalid-reason", "<red>Invalid args! usage: -r:reason"),
NOT_ONLINE("player-notonline", "<red>Invalid args! player not online"), NOT_ONLINE("player-notonline", "<red>Invalid args! player not online"),
PLAYER_ONLY("player-only", "Teri have you ever seen an afk console?"), PLAYER_ONLY("player-only", "Teri have you ever seen an afk console?"),
NO_PERMS("no-permissions", "<red>You don''t have permission for that!"), NO_PERMS("no-permissions", "<red>You don''t have permission for that!"),

View File

@ -24,6 +24,7 @@ public class MessagesConfig extends AbstractConfiguration {
} }
public static boolean DEBUG_MODE = false; public static boolean DEBUG_MODE = false;
private static void settings() { private static void settings() {
DEBUG_MODE = config.getBoolean("debug-mode", DEBUG_MODE); DEBUG_MODE = config.getBoolean("debug-mode", DEBUG_MODE);
} }

View File

@ -4,18 +4,19 @@ import net.md_5.bungee.api.ChatColor;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import java.util.logging.Level; import java.util.logging.Level;
public class Logger { public class Logger {
public static void info(String str) { public static void info(String str) {
log(Level.INFO,"&e" + str); log(Level.INFO, "&e" + str);
} }
public static void warn(String str) { public static void warn(String str) {
log(Level.SEVERE,"&6" + str); log(Level.SEVERE, "&6" + str);
} }
public static void severe(String 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) { public static void log(Level level, String str) {