From 5abf99cd6c1db3f1a0e3bb2d390b830fef105176 Mon Sep 17 00:00:00 2001 From: YouHaveTrouble Date: Sat, 31 Dec 2022 16:44:50 +0100 Subject: [PATCH] semi-major api changes, javadocs --- .../api/event/PlayerTogglePvpEvent.java | 6 +++ .../hooks/PlacoholderApiHook.java | 2 +- .../preventstabby/players/PlayerData.java | 53 ++++++++++++++----- .../PlayerDeathListener.java | 3 +- .../PlayerJoinAndLeaveListener.java | 4 +- .../preventstabby/players/PlayerManager.java | 2 +- .../PlayerTeleportListener.java | 4 +- .../preventstabby/util/CombatTimer.java | 7 ++- 8 files changed, 55 insertions(+), 26 deletions(-) rename src/main/java/me/youhavetrouble/preventstabby/{listeners/player => players}/PlayerDeathListener.java (87%) rename src/main/java/me/youhavetrouble/preventstabby/{listeners/player => players}/PlayerJoinAndLeaveListener.java (96%) rename src/main/java/me/youhavetrouble/preventstabby/{listeners/player => players}/PlayerTeleportListener.java (82%) diff --git a/src/main/java/me/youhavetrouble/preventstabby/api/event/PlayerTogglePvpEvent.java b/src/main/java/me/youhavetrouble/preventstabby/api/event/PlayerTogglePvpEvent.java index a2aaa86..c256aa3 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/api/event/PlayerTogglePvpEvent.java +++ b/src/main/java/me/youhavetrouble/preventstabby/api/event/PlayerTogglePvpEvent.java @@ -1,5 +1,7 @@ package me.youhavetrouble.preventstabby.api.event; +import me.youhavetrouble.preventstabby.PreventStabby; +import me.youhavetrouble.preventstabby.players.PlayerData; import org.bukkit.OfflinePlayer; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; @@ -25,6 +27,10 @@ public class PlayerTogglePvpEvent extends Event { return player; } + public PlayerData getPlayerData() { + return PreventStabby.getPlugin().getPlayerManager().getPlayer(player.getUniqueId()); + } + /** * Returns the state player's pvp state was toggled to. * @return The state player's pvp state was toggled to. diff --git a/src/main/java/me/youhavetrouble/preventstabby/hooks/PlacoholderApiHook.java b/src/main/java/me/youhavetrouble/preventstabby/hooks/PlacoholderApiHook.java index 722daf5..c11c4db 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/hooks/PlacoholderApiHook.java +++ b/src/main/java/me/youhavetrouble/preventstabby/hooks/PlacoholderApiHook.java @@ -55,7 +55,7 @@ public class PlacoholderApiHook extends PlaceholderExpansion { if (!player.isOnline()) { return legacyComponentSerializer.serialize(PluginMessages.parseMessage(plugin.getConfigCache().getPlaceholder_not_in_combat())); } - long seconds = plugin.getPlayerManager().getPlayer(uuid).getCombattime() - Instant.now().getEpochSecond(); + long seconds = plugin.getPlayerManager().getPlayer(uuid).getCombatTime(); if (seconds > 0) { String msg = plugin.getConfigCache().getPlaceholder_combat_time(); msg = msg.replaceAll("%time%", String.valueOf(seconds)); diff --git a/src/main/java/me/youhavetrouble/preventstabby/players/PlayerData.java b/src/main/java/me/youhavetrouble/preventstabby/players/PlayerData.java index d580d2d..29a0296 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/players/PlayerData.java +++ b/src/main/java/me/youhavetrouble/preventstabby/players/PlayerData.java @@ -5,6 +5,9 @@ import me.youhavetrouble.preventstabby.PreventStabby; import java.time.Instant; import java.util.UUID; +/** + * PreventStabby player data keeper.
+ */ public class PlayerData { private final UUID playerUuid; @@ -18,13 +21,17 @@ public class PlayerData { this.loginTimestamp = Instant.now().getEpochSecond()-1; this.teleportTimestamp = Instant.now().getEpochSecond()-1; this.inCombat = false; - refreshCachetime(); + refreshCacheTime(); } public UUID getPlayerUuid() { return playerUuid; } + /** + * Returns true if player has personal pvp enabled, false otherwise. + * @return True if player has personal pvp enabled, false otherwise. + */ public boolean isPvpEnabled() { return pvpEnabled; } @@ -33,55 +40,75 @@ public class PlayerData { this.pvpEnabled = pvpEnabled; } - public long getCachetime() { + protected long getCachetime() { return cachetime; } - public void refreshCachetime() { - this.cachetime = Instant.now().getEpochSecond()+ PreventStabby.getPlugin().getConfigCache().getCache_time(); + /** + * Lets player cache system know that data should not be removed for the next cache time peroid.
+ * Use with caution, may cause memory leaks if used inappropriately. + */ + public void refreshCacheTime() { + this.cachetime = Instant.now().getEpochSecond() + PreventStabby.getPlugin().getConfigCache().getCache_time(); } - public long getCombattime() { - return combattime; + /** + * Time left until the end of combat in seconds. + * @return Time left until the end of combat in seconds.
+ * Return of 0 means out of combat or about to be out of combat. + */ + public long getCombatTime() { + return Math.max(combattime - Instant.now().getEpochSecond(), 0); } + /** + * Sets timestamp for combat expiry + * @param combattime Timestamp for when combat should expire + */ public void setCombattime(long combattime) { this.combattime = combattime; } + /** + * Sets player combat time to the interval set in config. + */ public void refreshCombatTime() { this.combattime = Instant.now().getEpochSecond()+ PreventStabby.getPlugin().getConfigCache().getCombat_time(); } - public boolean getLastCombatCheck() { + protected boolean getLastCombatCheck() { return lastCombatCheck; } - public void setLastCombatCheck(boolean bool) { + protected void setLastCombatCheck(boolean bool) { lastCombatCheck = bool; } - public void setLoginTimestamp(long loginTimestamp) { + protected void setLoginTimestamp(long loginTimestamp) { this.loginTimestamp = loginTimestamp + PreventStabby.getPlugin().getConfigCache().getLogin_protection_time()-1; } - public long getLoginTimestamp() { + protected long getLoginTimestamp() { return loginTimestamp; } - public void setTeleportTimestamp(long teleportTimestamp) { + protected void setTeleportTimestamp(long teleportTimestamp) { this.teleportTimestamp = teleportTimestamp + PreventStabby.getPlugin().getConfigCache().getTeleport_protection_time()-1; } - public long getTeleportTimestamp() { + protected long getTeleportTimestamp() { return teleportTimestamp; } + /** + * Returns player's current combat state. + * @return Player's current combat state. + */ public boolean isInCombat() { return inCombat; } - public void setInCombat(boolean inCombat) { + protected void setInCombat(boolean inCombat) { this.inCombat = inCombat; } } diff --git a/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerDeathListener.java b/src/main/java/me/youhavetrouble/preventstabby/players/PlayerDeathListener.java similarity index 87% rename from src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerDeathListener.java rename to src/main/java/me/youhavetrouble/preventstabby/players/PlayerDeathListener.java index d506f9a..5e177da 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerDeathListener.java +++ b/src/main/java/me/youhavetrouble/preventstabby/players/PlayerDeathListener.java @@ -1,7 +1,6 @@ -package me.youhavetrouble.preventstabby.listeners.player; +package me.youhavetrouble.preventstabby.players; import me.youhavetrouble.preventstabby.PreventStabby; -import me.youhavetrouble.preventstabby.players.PlayerData; import me.youhavetrouble.preventstabby.util.PreventStabbyListener; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerJoinAndLeaveListener.java b/src/main/java/me/youhavetrouble/preventstabby/players/PlayerJoinAndLeaveListener.java similarity index 96% rename from src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerJoinAndLeaveListener.java rename to src/main/java/me/youhavetrouble/preventstabby/players/PlayerJoinAndLeaveListener.java index 8e8463f..416691c 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerJoinAndLeaveListener.java +++ b/src/main/java/me/youhavetrouble/preventstabby/players/PlayerJoinAndLeaveListener.java @@ -1,4 +1,4 @@ -package me.youhavetrouble.preventstabby.listeners.player; +package me.youhavetrouble.preventstabby.players; import me.youhavetrouble.preventstabby.PreventStabby; import me.youhavetrouble.preventstabby.players.PlayerData; @@ -34,7 +34,7 @@ public class PlayerJoinAndLeaveListener implements Listener { }); return; } - playerData.refreshCachetime(); + playerData.refreshCacheTime(); playerData.setLoginTimestamp(time); } diff --git a/src/main/java/me/youhavetrouble/preventstabby/players/PlayerManager.java b/src/main/java/me/youhavetrouble/preventstabby/players/PlayerManager.java index 788716a..e8e2a75 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/players/PlayerManager.java +++ b/src/main/java/me/youhavetrouble/preventstabby/players/PlayerManager.java @@ -60,7 +60,7 @@ public class PlayerManager { } public void refreshPlayersCacheTime(UUID uuid) { - playerList.get(uuid).refreshCachetime(); + playerList.get(uuid).refreshCacheTime(); } public void refreshPlayersCombatTime(UUID uuid) { diff --git a/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerTeleportListener.java b/src/main/java/me/youhavetrouble/preventstabby/players/PlayerTeleportListener.java similarity index 82% rename from src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerTeleportListener.java rename to src/main/java/me/youhavetrouble/preventstabby/players/PlayerTeleportListener.java index a76ecb7..ab6ad56 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerTeleportListener.java +++ b/src/main/java/me/youhavetrouble/preventstabby/players/PlayerTeleportListener.java @@ -1,8 +1,6 @@ -package me.youhavetrouble.preventstabby.listeners.player; +package me.youhavetrouble.preventstabby.players; import me.youhavetrouble.preventstabby.PreventStabby; -import me.youhavetrouble.preventstabby.players.PlayerData; -import me.youhavetrouble.preventstabby.players.SmartCache; import me.youhavetrouble.preventstabby.util.PreventStabbyListener; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/src/main/java/me/youhavetrouble/preventstabby/util/CombatTimer.java b/src/main/java/me/youhavetrouble/preventstabby/util/CombatTimer.java index 854535f..ce1eba5 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/util/CombatTimer.java +++ b/src/main/java/me/youhavetrouble/preventstabby/util/CombatTimer.java @@ -11,8 +11,7 @@ public class CombatTimer { public static void refreshPlayersCombatTime(UUID uuid) { try { - long now = Instant.now().getEpochSecond(); - long combattime = PreventStabby.getPlugin().getSmartCache().getPlayerData(uuid).getCombattime(); + long combattime = PreventStabby.getPlugin().getSmartCache().getPlayerData(uuid).getCombatTime(); Player player = Bukkit.getPlayer(uuid); if (player == null || !player.isOnline()) return; @@ -22,7 +21,7 @@ public class CombatTimer { if (playerEnterCombatEvent.isCancelled()) return; PreventStabby.getPlugin().getPlayerManager().refreshPlayersCombatTime(uuid); - if (combattime <= now) { + if (combattime <= 0) { PluginMessages.sendActionBar(uuid, PreventStabby.getPlugin().getConfigCache().getEntering_combat()); } }); @@ -38,7 +37,7 @@ public class CombatTimer { public static boolean isInCombat(UUID uuid) { try { - return PreventStabby.getPlugin().getPlayerManager().getPlayer(uuid).getCombattime() >= Instant.now().getEpochSecond(); + return PreventStabby.getPlugin().getPlayerManager().getPlayer(uuid).getCombatTime() >= Instant.now().getEpochSecond(); } catch (Exception e) { return false; }