mirror of
https://github.com/RonanPlugins/BetterRTP.git
synced 2025-08-17 09:05:47 +00:00
cooldowns handling
This commit is contained in:
parent
141e857ed8
commit
7f388e6c6b
2
pom.xml
2
pom.xml
@ -256,7 +256,7 @@
|
||||
<dependency>
|
||||
<groupId>com.github.cryptomorin</groupId>
|
||||
<artifactId>kingdoms</artifactId>
|
||||
<version>1.10.5.3</version>
|
||||
<version>1.11.4</version>
|
||||
<scope>provided</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
|
@ -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();
|
||||
|
@ -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<Player, Inventory> invs = new HashMap<>();
|
||||
private final HashMap<Player, RTP_INV_SETTINGS> invType = new HashMap<>();
|
||||
private final HashMap<Player, World> invWorld = new HashMap<>();
|
||||
private final HashMap<Player, RTP_INV_SETTINGS> invNextInv = new HashMap<>();
|
||||
@Getter private final HashMap<Player, Inventory> invs = new HashMap<>();
|
||||
@Getter private final HashMap<Player, RTP_INV_SETTINGS> invType = new HashMap<>();
|
||||
@Getter private final HashMap<Player, World> invWorld = new HashMap<>();
|
||||
@Getter private final HashMap<Player, RTP_INV_SETTINGS> invNextInv = new HashMap<>();
|
||||
@Getter private final HashMap<Player, CooldownData> cooldown = new HashMap<>();
|
||||
//private final HashMap<Player, RTP_TYPE> 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) {
|
||||
|
@ -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<UUID, Boolean> rtping = new HashMap<>();
|
||||
public RTPCooldown cooldowns = new RTPCooldown();
|
||||
private int delayTimer;
|
||||
public List<RTPCommand> 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();
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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()));
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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<Object> 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<RTPCooldown.CooldownData> cooldownData) {
|
||||
public void setCooldown(List<CooldownData> 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<Object> param = new ArrayList<>() {{
|
||||
add(data.uuid.toString());
|
||||
add(data.time);
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
@ -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<UUID, Long> cooldowns = new HashMap<>(); //Cooldown timer for each player
|
||||
private HashMap<UUID, Integer> uses = null; //Players locked from rtp'ing ever again
|
||||
public final DatabaseCooldowns database = new DatabaseCooldowns();
|
||||
//private final HashMap<UUID, Long> cooldowns = new HashMap<>(); //Cooldown timer for each player
|
||||
//private HashMap<UUID, Integer> 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<Object> data = database.getCooldown(uuid);
|
||||
List<Object> 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();
|
||||
}
|
||||
}
|
@ -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;
|
@ -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;
|
||||
|
@ -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
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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;
|
Loading…
x
Reference in New Issue
Block a user