From 7f388e6c6bcaa7c709773fb1f72e3b43d32c789b Mon Sep 17 00:00:00 2001 From: RonanCraft Date: Mon, 27 Sep 2021 20:02:47 -0400 Subject: [PATCH] cooldowns handling --- pom.xml | 2 +- .../SuperRonanCraft/BetterRTP/BetterRTP.java | 6 ++ .../BetterRTP/player/PlayerInfo.java | 37 ++------ .../BetterRTP/player/commands/Commands.java | 14 +-- .../player/commands/types/CmdEdit.java | 5 +- .../player/commands/types/CmdInfo.java | 6 +- .../player/commands/types/CmdLocation.java | 6 +- .../BetterRTP/player/rtp/RTP.java | 2 +- .../BetterRTP/player/rtp/RTPDelay.java | 2 +- .../BetterRTP/player/rtp/RTPLoader.java | 1 + .../BetterRTP/player/rtp/RTPPlayer.java | 2 +- .../player/rtp/RTPSetupInformation.java | 3 +- .../BetterRTP/player/rtp/RTPTeleport.java | 2 +- .../BetterRTP/player/rtp/queue/RTPQueue.java | 3 +- .../customEvents/RTP_FindLocationEvent.java | 2 +- .../customEvents/RTP_TeleportEvent.java | 2 +- .../database/DatabaseCooldowns.java | 14 +-- .../references/depends/DepEconomy.java | 2 +- .../references/rtpinfo/CooldownData.java | 18 ++++ .../rtpinfo/CooldownHandler.java} | 93 +++++++++---------- .../{ => rtpinfo}/worlds/RTPWorld.java | 2 +- .../worlds/RTPWorld_Defaulted.java | 3 +- .../{ => rtpinfo}/worlds/WORLD_TYPE.java | 2 +- .../{ => rtpinfo}/worlds/WorldCustom.java | 2 +- .../{ => rtpinfo}/worlds/WorldDefault.java | 3 +- .../{ => rtpinfo}/worlds/WorldLocations.java | 2 +- .../{ => rtpinfo}/worlds/WorldPlayer.java | 3 +- 27 files changed, 113 insertions(+), 126 deletions(-) create mode 100644 src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/CooldownData.java rename src/main/java/me/SuperRonanCraft/BetterRTP/{player/rtp/RTPCooldown.java => references/rtpinfo/CooldownHandler.java} (74%) rename src/main/java/me/SuperRonanCraft/BetterRTP/references/{ => rtpinfo}/worlds/RTPWorld.java (85%) rename src/main/java/me/SuperRonanCraft/BetterRTP/references/{ => rtpinfo}/worlds/RTPWorld_Defaulted.java (92%) rename src/main/java/me/SuperRonanCraft/BetterRTP/references/{ => rtpinfo}/worlds/WORLD_TYPE.java (69%) rename src/main/java/me/SuperRonanCraft/BetterRTP/references/{ => rtpinfo}/worlds/WorldCustom.java (99%) rename src/main/java/me/SuperRonanCraft/BetterRTP/references/{ => rtpinfo}/worlds/WorldDefault.java (98%) rename src/main/java/me/SuperRonanCraft/BetterRTP/references/{ => rtpinfo}/worlds/WorldLocations.java (99%) rename src/main/java/me/SuperRonanCraft/BetterRTP/references/{ => rtpinfo}/worlds/WorldPlayer.java (98%) diff --git a/pom.xml b/pom.xml index 91dc1c8..e14dd66 100644 --- a/pom.xml +++ b/pom.xml @@ -256,7 +256,7 @@ com.github.cryptomorin kingdoms - 1.10.5.3 + 1.11.4 provided diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/BetterRTP.java b/src/main/java/me/SuperRonanCraft/BetterRTP/BetterRTP.java index 0ea6446..a2ab655 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/BetterRTP.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/BetterRTP.java @@ -1,14 +1,17 @@ package me.SuperRonanCraft.BetterRTP; +import lombok.Getter; import me.SuperRonanCraft.BetterRTP.player.PlayerInfo; import me.SuperRonanCraft.BetterRTP.player.commands.Commands; import me.SuperRonanCraft.BetterRTP.player.events.Listener; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP; import me.SuperRonanCraft.BetterRTP.references.Permissions; +import me.SuperRonanCraft.BetterRTP.references.database.DatabaseCooldowns; import me.SuperRonanCraft.BetterRTP.references.depends.DepEconomy; import me.SuperRonanCraft.BetterRTP.references.file.Files; import me.SuperRonanCraft.BetterRTP.references.file.Messages; import me.SuperRonanCraft.BetterRTP.references.invs.RTPInventories; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownHandler; import me.SuperRonanCraft.BetterRTP.references.settings.Settings; import me.SuperRonanCraft.BetterRTP.references.web.Metrics; import me.SuperRonanCraft.BetterRTP.references.Updater; @@ -32,6 +35,8 @@ public class BetterRTP extends JavaPlugin { private final RTPInventories invs = new RTPInventories(); private final PlayerInfo pInfo = new PlayerInfo(); private final Settings settings = new Settings(); + @Getter private final DatabaseCooldowns database = new DatabaseCooldowns(); + @Getter private final CooldownHandler cooldowns = new CooldownHandler(); public void onEnable() { instance = this; @@ -113,6 +118,7 @@ public class BetterRTP extends JavaPlugin { settings.load(); invs.load(); rtp.load(); + cooldowns.load(); cmd.load(); listener.load(); eco.load(); diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/PlayerInfo.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/PlayerInfo.java index d78eb4b..7b91505 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/PlayerInfo.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/PlayerInfo.java @@ -1,7 +1,9 @@ package me.SuperRonanCraft.BetterRTP.player; -import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; +import lombok.Getter; +import lombok.Setter; import me.SuperRonanCraft.BetterRTP.references.invs.RTP_INV_SETTINGS; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData; import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; @@ -10,32 +12,13 @@ import java.util.HashMap; public class PlayerInfo { - private final HashMap invs = new HashMap<>(); - private final HashMap invType = new HashMap<>(); - private final HashMap invWorld = new HashMap<>(); - private final HashMap invNextInv = new HashMap<>(); + @Getter private final HashMap invs = new HashMap<>(); + @Getter private final HashMap invType = new HashMap<>(); + @Getter private final HashMap invWorld = new HashMap<>(); + @Getter private final HashMap invNextInv = new HashMap<>(); + @Getter private final HashMap cooldown = new HashMap<>(); //private final HashMap rtpType = new HashMap<>(); - public Inventory getInv(Player p) { - return invs.get(p); - } - - public RTP_INV_SETTINGS getInvType(Player p) { - return invType.get(p); - } - - public World getInvWorld(Player p) { - return invWorld.get(p); - } - - public RTP_INV_SETTINGS getNextInv(Player p) { - return invNextInv.get(p); - } - - //public RTP_TYPE getRTPType(Player p) { - // return rtpType.getOrDefault(p, RTP_TYPE.COMMAND); - //} - public void setInv(Player p, Inventory inv) { invs.put(p, inv); } @@ -52,10 +35,6 @@ public class PlayerInfo { invNextInv.put(p, type); } - //public void setRTPType(Player p, RTP_TYPE rtpType) { - // this.rtpType.put(p, rtpType); - //} - //--Logic-- public Boolean playerExists(Player p) { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java index 48474d7..f9da630 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java @@ -1,12 +1,12 @@ package me.SuperRonanCraft.BetterRTP.player.commands; import me.SuperRonanCraft.BetterRTP.BetterRTP; -import me.SuperRonanCraft.BetterRTP.player.rtp.RTPCooldown; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownHandler; import me.SuperRonanCraft.BetterRTP.player.rtp.RTPSetupInformation; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CommandEvent; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; -import me.SuperRonanCraft.BetterRTP.references.worlds.WorldLocations; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldLocations; import org.bukkit.Bukkit; import org.bukkit.block.Biome; import org.bukkit.command.CommandSender; @@ -21,7 +21,6 @@ public class Commands { private final BetterRTP pl; public HashMap rtping = new HashMap<>(); - public RTPCooldown cooldowns = new RTPCooldown(); private int delayTimer; public List commands = new ArrayList<>(); @@ -32,7 +31,6 @@ public class Commands { public void load() { FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG; delayTimer = config.getInt("Settings.Delay.Time"); - cooldowns.load(); rtping.clear(); commands.clear(); for (RTPCommandType cmd : RTPCommandType.values()) @@ -173,8 +171,8 @@ public class Commands { private boolean checkCooldown(CommandSender sendi, Player player) { if (sendi != player || pl.getPerms().getBypassCooldown(player)) { //Bypassing/Forced? return true; - } else if (cooldowns.isEnabled()) { //Cooling down? - if (!cooldowns.database.isLoaded()) //Cooldowns have yet to download + } else if (getPl().getCo.isEnabled()) { //Cooling down? + if (!.database.isLoaded()) //Cooldowns have yet to download return false; UUID id = player.getUniqueId(); if (cooldowns.exists(id)) { @@ -200,4 +198,8 @@ public class Commands { } return true; } + + private BetterRTP getPl() { + return BetterRTP.getInstance(); + } } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdEdit.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdEdit.java index 25a10bf..0b79d64 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdEdit.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdEdit.java @@ -1,17 +1,14 @@ package me.SuperRonanCraft.BetterRTP.player.commands.types; -import com.bekvon.bukkit.residence.containers.cmd; import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; -import me.SuperRonanCraft.BetterRTP.references.worlds.WORLD_TYPE; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WORLD_TYPE; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.World; -import org.bukkit.block.Biome; -import org.bukkit.block.Block; import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdInfo.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdInfo.java index 5f01cb0..413a175 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdInfo.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdInfo.java @@ -5,11 +5,9 @@ import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.player.commands.RTP_SETUP_TYPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTPParticles; import me.SuperRonanCraft.BetterRTP.player.rtp.RTPSetupInformation; -import me.SuperRonanCraft.BetterRTP.references.worlds.WorldDefault; -import me.SuperRonanCraft.BetterRTP.references.worlds.WorldLocations; -import me.SuperRonanCraft.BetterRTP.references.worlds.WorldPlayer; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldDefault; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; -import me.SuperRonanCraft.BetterRTP.references.worlds.WORLD_TYPE; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.command.CommandSender; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdLocation.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdLocation.java index 46a4bd4..4f4b0ec 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdLocation.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdLocation.java @@ -4,12 +4,10 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.commands.Commands; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; -import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandType; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; -import me.SuperRonanCraft.BetterRTP.references.worlds.RTPWorld; -import me.SuperRonanCraft.BetterRTP.references.worlds.WorldLocations; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldLocations; import org.bukkit.Bukkit; -import org.bukkit.World; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java index 7f89bf6..bbb90af 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java @@ -3,9 +3,9 @@ package me.SuperRonanCraft.BetterRTP.player.rtp; import lombok.Getter; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.BetterRTP; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.*; import me.SuperRonanCraft.BetterRTP.references.worlds.*; import org.bukkit.Bukkit; -import org.bukkit.Location; import org.bukkit.World; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPDelay.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPDelay.java index b633d10..720977c 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPDelay.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPDelay.java @@ -60,7 +60,7 @@ class RTPDelay implements Listener { HandlerList.unregisterAll(this); getPl().getRTP().getTeleport().cancelledTeleport(rtp.getPlayer()); //getPl().getEco().unCharge(rtp.getPlayer(), rtp.pWorld); - getPl().getCmd().cooldowns.removeCooldown(rtp.getPlayer().getUniqueId()); + getPl().getCooldowns().removeCooldown(rtp.getPlayer()); getPl().getCmd().rtping.put(rtp.getPlayer().getUniqueId(), false); Bukkit.getServer().getPluginManager().callEvent(new RTP_CancelledEvent(rtp.getPlayer())); } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPLoader.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPLoader.java index f0365c7..c06c2d3 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPLoader.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPLoader.java @@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTP.player.rtp; import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.*; import me.SuperRonanCraft.BetterRTP.references.worlds.*; import org.bukkit.Bukkit; import org.bukkit.World; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPlayer.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPlayer.java index 7477faa..f8de9ec 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPlayer.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPlayer.java @@ -1,7 +1,7 @@ package me.SuperRonanCraft.BetterRTP.player.rtp; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_FindLocationEvent; -import me.SuperRonanCraft.BetterRTP.references.worlds.WorldPlayer; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer; import io.papermc.lib.PaperLib; import me.SuperRonanCraft.BetterRTP.BetterRTP; import org.bukkit.Chunk; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPSetupInformation.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPSetupInformation.java index a567e88..16cf528 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPSetupInformation.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPSetupInformation.java @@ -1,7 +1,6 @@ package me.SuperRonanCraft.BetterRTP.player.rtp; -import me.SuperRonanCraft.BetterRTP.references.worlds.WorldLocations; -import org.bukkit.Bukkit; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldLocations; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPTeleport.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPTeleport.java index 0179508..cd22295 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPTeleport.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPTeleport.java @@ -3,7 +3,7 @@ package me.SuperRonanCraft.BetterRTP.player.rtp; import io.papermc.lib.PaperLib; import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.references.customEvents.*; -import me.SuperRonanCraft.BetterRTP.references.worlds.WORLD_TYPE; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WORLD_TYPE; import org.bukkit.Chunk; import org.bukkit.Location; import org.bukkit.command.CommandSender; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/queue/RTPQueue.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/queue/RTPQueue.java index 9496dba..8ab9aa6 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/queue/RTPQueue.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/queue/RTPQueue.java @@ -2,10 +2,9 @@ package me.SuperRonanCraft.BetterRTP.player.rtp.queue; import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_FindLocationEvent; -import me.SuperRonanCraft.BetterRTP.references.worlds.RTPWorld; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.World; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_FindLocationEvent.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_FindLocationEvent.java index f97b06f..eed9879 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_FindLocationEvent.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_FindLocationEvent.java @@ -1,6 +1,6 @@ package me.SuperRonanCraft.BetterRTP.references.customEvents; -import me.SuperRonanCraft.BetterRTP.references.worlds.RTPWorld; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld; import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.event.Event; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_TeleportEvent.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_TeleportEvent.java index 75aa9cb..d4d8547 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_TeleportEvent.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_TeleportEvent.java @@ -1,6 +1,6 @@ package me.SuperRonanCraft.BetterRTP.references.customEvents; -import me.SuperRonanCraft.BetterRTP.references.worlds.WORLD_TYPE; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WORLD_TYPE; import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.event.Event; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/database/DatabaseCooldowns.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/database/DatabaseCooldowns.java index 79e1e1f..0d059c9 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/database/DatabaseCooldowns.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/database/DatabaseCooldowns.java @@ -1,7 +1,7 @@ package me.SuperRonanCraft.BetterRTP.references.database; import me.SuperRonanCraft.BetterRTP.BetterRTP; -import me.SuperRonanCraft.BetterRTP.player.rtp.RTPCooldown; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData; import java.sql.Connection; import java.sql.PreparedStatement; @@ -68,7 +68,7 @@ public class DatabaseCooldowns extends SQLite { } //Set a player Cooldown - public void setCooldown(UUID uuid, Long time, int uses) { + public void setCooldown(CooldownData data) { String pre = "INSERT OR REPLACE INTO "; String sql = pre + table + " (" + COLUMNS.UUID.name + ", " @@ -76,22 +76,22 @@ public class DatabaseCooldowns extends SQLite { + COLUMNS.USES.name + " " + ") VALUES(?, ?, ?)"; List params = new ArrayList<>() {{ - add(uuid.toString()); - add(time); - add(uses); + add(data.getUuid().toString()); + add(data.getTime()); + add(data.getUses()); }}; sqlUpdate(sql, params); } //Update multiple players cooldowns - public void setCooldown(List cooldownData) { + public void setCooldown(List cooldownData) { String pre = "INSERT OR REPLACE INTO "; String sql = pre + table + " (" + COLUMNS.UUID.name + ", " + COLUMNS.COOLDOWN_DATE.name + ", " + COLUMNS.USES.name + " " + ") VALUES(?, ?, ?)"; - for (RTPCooldown.CooldownData data : cooldownData) { + for (CooldownData data : cooldownData) { List param = new ArrayList<>() {{ add(data.uuid.toString()); add(data.time); diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/DepEconomy.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/DepEconomy.java index 49607eb..45d9dd7 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/DepEconomy.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/DepEconomy.java @@ -2,7 +2,7 @@ package me.SuperRonanCraft.BetterRTP.references.depends; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.BetterRTP; -import me.SuperRonanCraft.BetterRTP.references.worlds.WorldPlayer; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer; import net.milkbowl.vault.economy.Economy; import net.milkbowl.vault.economy.EconomyResponse; import org.bukkit.GameMode; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/CooldownData.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/CooldownData.java new file mode 100644 index 0000000..7579937 --- /dev/null +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/CooldownData.java @@ -0,0 +1,18 @@ +package me.SuperRonanCraft.BetterRTP.references.rtpinfo; + +import lombok.Getter; +import lombok.Setter; + +import java.util.UUID; + +public class CooldownData { + @Getter private final UUID uuid; + @Getter @Setter private Long time; + @Getter @Setter int uses; + + public CooldownData(UUID uuid, Long time, int uses) { + this.uuid = uuid; + this.time = time; + this.uses = uses; + } +} diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPCooldown.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/CooldownHandler.java similarity index 74% rename from src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPCooldown.java rename to src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/CooldownHandler.java index 5fff548..2533699 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPCooldown.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/CooldownHandler.java @@ -1,9 +1,11 @@ -package me.SuperRonanCraft.BetterRTP.player.rtp; +package me.SuperRonanCraft.BetterRTP.references.rtpinfo; import lombok.Getter; +import me.SuperRonanCraft.BetterRTP.player.PlayerInfo; import me.SuperRonanCraft.BetterRTP.references.database.DatabaseCooldowns; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.BetterRTP; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData; import org.bukkit.Bukkit; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.YamlConfiguration; @@ -16,11 +18,10 @@ import java.util.HashMap; import java.util.List; import java.util.UUID; -public class RTPCooldown { +public class CooldownHandler { - private final HashMap cooldowns = new HashMap<>(); //Cooldown timer for each player - private HashMap uses = null; //Players locked from rtp'ing ever again - public final DatabaseCooldowns database = new DatabaseCooldowns(); + //private final HashMap cooldowns = new HashMap<>(); //Cooldown timer for each player + //private HashMap uses = null; //Players locked from rtp'ing ever again @Getter boolean enabled; private int timer, //Cooldown timer @@ -28,37 +29,31 @@ public class RTPCooldown { public void load() { //configfile = new File(BetterRTP.getInstance().getDataFolder(), "data/cooldowns.yml"); - cooldowns.clear(); - if (uses != null) - uses.clear(); + getPInfo().getCooldown().clear(); FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG; enabled = config.getBoolean("Settings.Cooldown.Enabled"); if (enabled) { timer = config.getInt("Settings.Cooldown.Time"); lockedAfter = config.getInt("Settings.Cooldown.LockAfter"); - if (lockedAfter > 0) - uses = new HashMap<>(); + //if (lockedAfter > 0) + // uses = new HashMap<>(); } Bukkit.getScheduler().runTaskAsynchronously(BetterRTP.getInstance(), () -> { - database.load(); - OldCooldownConverter.loadOldCooldowns(database); + getDatabase().load(); + OldCooldownConverter.loadOldCooldowns(); //Load any online players cooldowns (mostly after a reload) for (Player p : Bukkit.getOnlinePlayers()) loadPlayer(p.getUniqueId()); }); } - public void add(UUID id) { + public void add(Player player) { if (!enabled) return; - cooldowns.put(id, System.currentTimeMillis()); - if (lockedAfter > 0) { - if (uses.containsKey(id)) - uses.put(id, uses.get(id) + 1); - else - uses.put(id, 1); - savePlayer(id, true, cooldowns.get(id), uses.get(id)); - } else - savePlayer(id, true, cooldowns.get(id), 0); + CooldownData data = getPInfo().getCooldown().getOrDefault(player, + new CooldownData(player.getUniqueId(), System.currentTimeMillis(), 0)); + if (lockedAfter > 0) + data.setUses(data.getUses() + 1); + savePlayer(data); } public boolean exists(UUID id) { @@ -76,27 +71,29 @@ public class RTPCooldown { return false; } - public void removeCooldown(UUID id) { + public void removeCooldown(Player player) { if (!enabled) return; - if (lockedAfter > 0) { - uses.put(id, uses.getOrDefault(id, 1) - 1); - if (uses.get(id) <= 0) { //Remove from file as well - savePlayer(id, false, 0L, 0); - } else { //Keep the player cached - savePlayer(id, false, cooldowns.get(id), uses.get(id)); + CooldownData data = getPInfo().getCooldown().get(player); + if (data != null) + if (lockedAfter > 0) { + //uses.put(id, uses.getOrDefault(id, 1) - 1); + if (data.getUses() <= 0) { //Remove from file as well + savePlayer(data, true); + getPInfo().getCooldown().remove(player); + } else { //Keep the player cached + savePlayer(data, false); + } + } else { //Remove completely + getPInfo().getCooldown().remove(player); + savePlayer(data, true); } - cooldowns.remove(id); - } else { //Remove completely - cooldowns.remove(id); - savePlayer(id, false, 0L, 0); - } } - private void savePlayer(UUID uuid, boolean adding, long time, int attempts) { - if (adding) { - database.setCooldown(uuid, time, attempts); + private void savePlayer(CooldownData data, boolean remove) { + if (!remove) { + getDatabase().setCooldown(data); } else { - database.removePlayer(uuid); + getDatabase().removePlayer(data.getUuid()); } /*YamlConfiguration config = getFile(); if (config == null) { @@ -141,7 +138,7 @@ public class RTPCooldown { public void loadPlayer(UUID uuid) { if (isEnabled()) { - List data = database.getCooldown(uuid); + List data = getDatabase().getCooldown(uuid); if (data != null) { cooldowns.put(uuid, (Long) data.get(0)); uses.put(uuid, (int) data.get(1)); @@ -171,7 +168,7 @@ public class RTPCooldown { static class OldCooldownConverter { - static void loadOldCooldowns(DatabaseCooldowns database) { + static void loadOldCooldowns() { File file = new File(BetterRTP.getInstance().getDataFolder(), "data/cooldowns.yml"); YamlConfiguration config = getFile(file); if (config == null) return; @@ -195,7 +192,7 @@ public class RTPCooldown { } BetterRTP.getInstance().getLogger().info("Cooldowns converting to new database..."); Bukkit.getScheduler().runTaskAsynchronously(BetterRTP.getInstance(), () -> { - database.setCooldown(cooldownData); + BetterRTP.getInstance().getDatabase().setCooldown(cooldownData); BetterRTP.getInstance().getLogger().info("Cooldowns have been converted to the new database!"); }); } @@ -221,15 +218,11 @@ public class RTPCooldown { } } - public static class CooldownData { - public UUID uuid; - public Long time; - public int uses; + private DatabaseCooldowns getDatabase() { + return BetterRTP.getInstance().getDatabase(); + } - CooldownData(UUID uuid, Long time, int uses) { - this.uuid = uuid; - this.time = time; - this.uses = uses; - } + private PlayerInfo getPInfo() { + return BetterRTP.getInstance().getpInfo(); } } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/RTPWorld.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld.java similarity index 85% rename from src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/RTPWorld.java rename to src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld.java index d2fc69e..ea10bf9 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/RTPWorld.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld.java @@ -1,4 +1,4 @@ -package me.SuperRonanCraft.BetterRTP.references.worlds; +package me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE; import org.bukkit.World; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/RTPWorld_Defaulted.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld_Defaulted.java similarity index 92% rename from src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/RTPWorld_Defaulted.java rename to src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld_Defaulted.java index fc54e52..a5ad285 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/RTPWorld_Defaulted.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld_Defaulted.java @@ -1,8 +1,7 @@ -package me.SuperRonanCraft.BetterRTP.references.worlds; +package me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds; import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE; -import org.bukkit.World; import java.util.List; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WORLD_TYPE.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WORLD_TYPE.java similarity index 69% rename from src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WORLD_TYPE.java rename to src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WORLD_TYPE.java index d76314d..e800a81 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WORLD_TYPE.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WORLD_TYPE.java @@ -1,4 +1,4 @@ -package me.SuperRonanCraft.BetterRTP.references.worlds; +package me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds; public enum WORLD_TYPE { NORMAL, //Normal world type finds the tallest safe block diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldCustom.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldCustom.java similarity index 99% rename from src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldCustom.java rename to src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldCustom.java index db513cc..a79a55d 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldCustom.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldCustom.java @@ -1,4 +1,4 @@ -package me.SuperRonanCraft.BetterRTP.references.worlds; +package me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldDefault.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldDefault.java similarity index 98% rename from src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldDefault.java rename to src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldDefault.java index b852526..b9e1ea7 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldDefault.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldDefault.java @@ -1,4 +1,4 @@ -package me.SuperRonanCraft.BetterRTP.references.worlds; +package me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE; @@ -6,7 +6,6 @@ import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.BetterRTP; import org.bukkit.Bukkit; import org.bukkit.World; -import scala.Int; import java.util.HashMap; import java.util.List; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldLocations.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldLocations.java similarity index 99% rename from src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldLocations.java rename to src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldLocations.java index 5655003..a9a5e49 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldLocations.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldLocations.java @@ -1,4 +1,4 @@ -package me.SuperRonanCraft.BetterRTP.references.worlds; +package me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds; import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldPlayer.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldPlayer.java similarity index 98% rename from src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldPlayer.java rename to src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldPlayer.java index 6cfa5df..8310d1c 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldPlayer.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldPlayer.java @@ -1,4 +1,4 @@ -package me.SuperRonanCraft.BetterRTP.references.worlds; +package me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds; import me.SuperRonanCraft.BetterRTP.player.commands.RTP_SETUP_TYPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTPPermissionGroup; @@ -7,7 +7,6 @@ import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.WorldBorder; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import java.util.ArrayList;