mirror of
https://github.com/RonanPlugins/BetterRTP.git
synced 2025-08-17 09:05:47 +00:00
Player data memory improvements
This commit is contained in:
parent
f0c219c52e
commit
9c27e30c10
@ -10,7 +10,7 @@ public class PartyData {
|
||||
final Player leader;
|
||||
List<Player> members = new ArrayList<>();
|
||||
|
||||
PartyData(Player leader) {
|
||||
public PartyData(Player leader) {
|
||||
this.leader = leader;
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,14 @@
|
||||
package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_SettingUpEvent;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
public class PartyHandler implements Listener {
|
||||
|
||||
//Dissallow players from teleporting unless all party members are ready
|
||||
@EventHandler
|
||||
public void onRTP(RTP_SettingUpEvent e) {
|
||||
|
||||
}
|
||||
}
|
@ -5,7 +5,7 @@ import org.bukkit.Location;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class PartyMessages implements AddonsMessages {
|
||||
private static final String preM = "Portals.";
|
||||
private static final String preM = "Party.";
|
||||
|
||||
public void getWarning(CommandSender sendi) {
|
||||
sms(sendi, getLang().getString(preM + "Warning"));
|
||||
@ -15,70 +15,10 @@ public class PartyMessages implements AddonsMessages {
|
||||
return getLang().getString("Help.Portals");
|
||||
}
|
||||
|
||||
//Create
|
||||
//Invite
|
||||
|
||||
public void getCreateConfirm(CommandSender sendi, String name) {
|
||||
sms(sendi, getLang().getString(preM + "Created.Confirmation.Default").replace("%name%", name));
|
||||
}
|
||||
|
||||
public void getCreateConfirmWorld(CommandSender sendi, String name, String world) {
|
||||
sms(sendi, getLang().getString(preM + "Created.Confirmation.Destination").replace("%name%", name).replace("%world%", world));
|
||||
}
|
||||
|
||||
public void getCreateInvalid(CommandSender sendi) {
|
||||
sms(sendi, getLang().getString(preM + "Created.Invalid"));
|
||||
}
|
||||
|
||||
public void getCreateName(CommandSender sendi) {
|
||||
sms(sendi, getLang().getString(preM + "Created.Name"));
|
||||
}
|
||||
|
||||
public void getCreateDuplicate(CommandSender sendi) {
|
||||
sms(sendi, getLang().getString(preM + "Created.Duplicate"));
|
||||
}
|
||||
|
||||
//Location
|
||||
|
||||
public void getLocation_1(CommandSender sendi, Location loc) {
|
||||
sms(sendi, getLang().getString(preM + "Location.1")
|
||||
.replace("%location%", "x:" + loc.getBlockX() + ", y:" + loc.getBlockY() + ", z:" + loc.getBlockZ()));
|
||||
}
|
||||
|
||||
public void getLocation_2(CommandSender sendi, Location loc) {
|
||||
sms(sendi, getLang().getString(preM + "Location.2")
|
||||
.replace("%location%", "x:" + loc.getBlockX() + ", y:" + loc.getBlockY() + ", z:" + loc.getBlockZ()));
|
||||
}
|
||||
|
||||
public void getLocation_Look(CommandSender sendi) {
|
||||
sms(sendi, getLang().getString(preM + "Location.Look"));
|
||||
}
|
||||
|
||||
public void getLocation_Ready(CommandSender sendi) {
|
||||
sms(sendi, getLang().getString(preM + "Location.Ready").replace("%command%", "rtp"));
|
||||
}
|
||||
|
||||
//Remove
|
||||
|
||||
public void getRemoveConfirm(CommandSender sendi, String name) {
|
||||
sms(sendi, getLang().getString(preM + "Remove.Confirm").replace("%name%", name));
|
||||
}
|
||||
|
||||
public void getRemoveNone(CommandSender sendi, String name) {
|
||||
sms(sendi, getLang().getString(preM + "Remove.None").replace("%name%", name));
|
||||
}
|
||||
|
||||
//List
|
||||
|
||||
public String getListPrefix() {
|
||||
return getLang().getString(preM + "List.Prefix");
|
||||
}
|
||||
|
||||
public String getListPortal() {
|
||||
return getLang().getString(preM + "List.Portal");
|
||||
}
|
||||
|
||||
public void getListNone(CommandSender sendi) {
|
||||
sms(sendi, getLang().getString(preM + "List.None"));
|
||||
public void getInvite(CommandSender sendi, String name) {
|
||||
sms(sendi, getLang().getString(preM + "Invite").replace("%name%", name));
|
||||
}
|
||||
|
||||
//Usages
|
||||
|
@ -20,7 +20,8 @@ public class PartyCommand_Invite implements PartyCommands, PartyCommandsTabable
|
||||
if (HelperParty.isInParty(p))
|
||||
party = HelperParty.getParty(p);
|
||||
else
|
||||
party = new PartyData()
|
||||
party = new PartyData(p);
|
||||
|
||||
}
|
||||
|
||||
//rtp party invite [args]
|
||||
|
@ -27,6 +27,9 @@ MagicStick:
|
||||
Give: '&dMagic Stick&7 has been given to &a%player%'
|
||||
Given: '&7A &dMagic Stick&7 has been given to you'
|
||||
Player: '&cWhoops! &7Seems like their is no player by the name of &a%player% &7online!'
|
||||
Party:
|
||||
Invite: '&f%player_name% has been invited to an rtp party!'
|
||||
Invited: '&f%player_name% has invited you to join their rtp party!'
|
||||
Addons:
|
||||
List:
|
||||
Prefix: '&e&m-----&6&l BetterRTP &7&lAddons &8| Addons Info &e&m-----'
|
||||
|
@ -14,6 +14,7 @@ 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.systems.playerdata.PlayerDataManager;
|
||||
import me.SuperRonanCraft.BetterRTP.references.web.Metrics;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@ -32,6 +33,7 @@ public class BetterRTP extends JavaPlugin {
|
||||
private final Files files = new Files();
|
||||
private final RTPInventories invs = new RTPInventories();
|
||||
private final PlayerInfo pInfo = new PlayerInfo();
|
||||
@Getter private final PlayerDataManager playerDataManager = new PlayerDataManager();
|
||||
private final Settings settings = new Settings();
|
||||
@Getter private final DatabaseCooldowns databaseCooldowns = new DatabaseCooldowns();
|
||||
@Getter private final CooldownHandler cooldowns = new CooldownHandler();
|
||||
@ -112,7 +114,7 @@ public class BetterRTP extends JavaPlugin {
|
||||
|
||||
//(Re)Load all plugin systems/files/cache
|
||||
private void loadAll() {
|
||||
pInfo.unloadAll();
|
||||
playerDataManager.clear();
|
||||
files.loadAll();
|
||||
settings.load();
|
||||
invs.load();
|
||||
|
@ -4,58 +4,63 @@ 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.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class PlayerInfo {
|
||||
|
||||
@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<>();
|
||||
@Getter private final HashMap<Player, Boolean> rtping = new HashMap<>();
|
||||
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<>();
|
||||
private final HashMap<Player, CooldownData> cooldown = new HashMap<>();
|
||||
private final HashMap<Player, Boolean> rtping = new HashMap<>();
|
||||
private final HashMap<Player, List<Location>> previousLocations = new HashMap<>();
|
||||
//private final HashMap<Player, RTP_TYPE> rtpType = new HashMap<>();
|
||||
|
||||
public void setInv(Player p, Inventory inv) {
|
||||
private void setInv(Player p, Inventory inv) {
|
||||
invs.put(p, inv);
|
||||
}
|
||||
|
||||
public void setInvType(Player p, RTP_INV_SETTINGS type) {
|
||||
private void setInvType(Player p, RTP_INV_SETTINGS type) {
|
||||
invType.put(p, type);
|
||||
}
|
||||
|
||||
public void setInvWorld(Player p, World type) {
|
||||
private void setInvWorld(Player p, World type) {
|
||||
invWorld.put(p, type);
|
||||
}
|
||||
|
||||
public void setNextInv(Player p, RTP_INV_SETTINGS type) {
|
||||
private void setNextInv(Player p, RTP_INV_SETTINGS type) {
|
||||
invNextInv.put(p, type);
|
||||
}
|
||||
|
||||
//--Logic--
|
||||
|
||||
public Boolean playerExists(Player p) {
|
||||
private Boolean playerExists(Player p) {
|
||||
return invs.containsKey(p);
|
||||
}
|
||||
|
||||
public void unloadAll() {
|
||||
private void unloadAll() {
|
||||
invs.clear();
|
||||
invType.clear();
|
||||
invWorld.clear();
|
||||
invNextInv.clear();
|
||||
cooldown.clear();
|
||||
rtping.clear();
|
||||
previousLocations.clear();
|
||||
}
|
||||
|
||||
public void unload(Player p) {
|
||||
private void unload(Player p) {
|
||||
clearInvs(p);
|
||||
cooldown.remove(p);
|
||||
rtping.remove(p);
|
||||
previousLocations.remove(p);
|
||||
}
|
||||
|
||||
public void clearInvs(Player p) {
|
||||
|
@ -3,6 +3,8 @@ package me.SuperRonanCraft.BetterRTP.player.events;
|
||||
import me.SuperRonanCraft.BetterRTP.references.invs.RTPInventories;
|
||||
import me.SuperRonanCraft.BetterRTP.BetterRTP;
|
||||
import me.SuperRonanCraft.BetterRTP.player.PlayerInfo;
|
||||
import me.SuperRonanCraft.BetterRTP.references.systems.HelperPlayer;
|
||||
import me.SuperRonanCraft.BetterRTP.references.systems.playerdata.PlayerData;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
@ -18,10 +20,10 @@ public class Click {
|
||||
|
||||
private void handler(InventoryClickEvent e) {
|
||||
try {
|
||||
PlayerInfo pInfo = BetterRTP.getInstance().getpInfo();
|
||||
Player p = (Player) e.getWhoClicked();
|
||||
PlayerData data = HelperPlayer.getData(p);
|
||||
RTPInventories menu = BetterRTP.getInstance().getInvs();
|
||||
menu.getInv(pInfo.getInvType().get(p)).clickEvent(e);
|
||||
menu.getInv(data.getMenu().getInvType()).clickEvent(e);
|
||||
} catch (NullPointerException ex) {
|
||||
//ex.printStackTrace();
|
||||
}
|
||||
@ -36,11 +38,11 @@ public class Click {
|
||||
return false;
|
||||
else if (e.getWhoClicked() instanceof Player) {
|
||||
// Clicks the inventory
|
||||
if (!e.getInventory().equals(BetterRTP.getInstance().getpInfo().getInvs().get((Player) e.getWhoClicked())))
|
||||
PlayerData data = HelperPlayer.getData((Player) e.getWhoClicked());
|
||||
if (!e.getInventory().equals(data.getMenu().getInv()))
|
||||
return false;
|
||||
// Clicks their own inventory
|
||||
else if (!e.getClickedInventory().equals(BetterRTP.getInstance().getpInfo().getInvs().get((Player) e
|
||||
.getWhoClicked()))) {
|
||||
else if (!e.getClickedInventory().equals(data.getMenu().getInv())) {
|
||||
e.setCancelled(true);
|
||||
return false;
|
||||
}
|
||||
|
@ -1,17 +1,13 @@
|
||||
package me.SuperRonanCraft.BetterRTP.player.events;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.BetterRTP;
|
||||
import me.SuperRonanCraft.BetterRTP.references.systems.HelperPlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
class Leave {
|
||||
|
||||
void event(PlayerQuitEvent e) {
|
||||
BetterRTP pl = BetterRTP.getInstance();
|
||||
Player p = e.getPlayer();
|
||||
pl.getpInfo().getRtping().remove(p);
|
||||
pl.getpInfo().unload(p);
|
||||
HelperPlayer.unload(p);
|
||||
}
|
||||
}
|
||||
|
@ -7,6 +7,7 @@ import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
|
||||
public class Listener implements org.bukkit.event.Listener {
|
||||
@ -55,6 +56,11 @@ public class Listener implements org.bukkit.event.Listener {
|
||||
click.click(e);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
private void teleport(PlayerTeleportEvent e) {
|
||||
Teleport.tpEvent(e);
|
||||
}
|
||||
|
||||
/*@EventHandler
|
||||
private void enablePlugin(PluginEnableEvent e) {
|
||||
pEnable.enabled(e);
|
||||
|
@ -0,0 +1,14 @@
|
||||
package me.SuperRonanCraft.BetterRTP.player.events;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.references.systems.HelperPlayer;
|
||||
import me.SuperRonanCraft.BetterRTP.references.systems.playerdata.PlayerData;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
|
||||
public class Teleport {
|
||||
|
||||
static void tpEvent(PlayerTeleportEvent e) {
|
||||
Player p = e.getPlayer();
|
||||
PlayerData data = HelperPlayer.getData(p);
|
||||
}
|
||||
}
|
@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTP.player.rtp;
|
||||
|
||||
import lombok.Getter;
|
||||
import me.SuperRonanCraft.BetterRTP.BetterRTP;
|
||||
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_SettingUpEvent;
|
||||
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
|
||||
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.*;
|
||||
import org.bukkit.Bukkit;
|
||||
@ -111,6 +112,11 @@ public class RTP {
|
||||
}
|
||||
|
||||
public void start(RTPSetupInformation setup_info) {
|
||||
|
||||
if (new RTP_SettingUpEvent(setup_info.player).isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
String world_name = setup_info.world;
|
||||
Player p = setup_info.player;
|
||||
CommandSender sendi = setup_info.sender;
|
||||
|
@ -1,5 +1,18 @@
|
||||
package me.SuperRonanCraft.BetterRTP.references.customEvents;
|
||||
|
||||
public interface RTPEvent {
|
||||
//Used purely to grab these classes during runtime without distinct class reference
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
public class RTPEvent extends Event {
|
||||
|
||||
private static final HandlerList handler = new HandlerList();
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handler;
|
||||
}
|
||||
|
||||
public static HandlerList getHandlerList() {
|
||||
return handler;
|
||||
}
|
||||
}
|
||||
|
@ -1,16 +0,0 @@
|
||||
package me.SuperRonanCraft.BetterRTP.references.customEvents;
|
||||
|
||||
public enum RTPEvents {
|
||||
CANCELLED(RTP_CancelledEvent.class),
|
||||
COMMAND(RTP_CommandEvent.class),
|
||||
FINDLOCATION(RTP_FindLocationEvent.class),
|
||||
TELEPORT(RTP_TeleportEvent.class),
|
||||
TELEPORTPOST(RTP_TeleportPostEvent.class),
|
||||
TELEPORTPRE(RTP_TeleportPreEvent.class);
|
||||
|
||||
public Class cl;
|
||||
|
||||
RTPEvents(Class cl) {
|
||||
this.cl = cl;
|
||||
}
|
||||
}
|
@ -4,7 +4,7 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
public class RTP_CancelledEvent extends Event implements RTPEvent { //Called when a delayed rtp is cancelled cause player moved
|
||||
public class RTP_CancelledEvent extends RTPEvent { //Called when a delayed rtp is cancelled cause player moved
|
||||
|
||||
Player p;
|
||||
private static final HandlerList handler = new HandlerList();
|
||||
@ -16,13 +16,4 @@ public class RTP_CancelledEvent extends Event implements RTPEvent { //Called whe
|
||||
public Player getPlayer() {
|
||||
return p;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handler;
|
||||
}
|
||||
|
||||
public static HandlerList getHandlerList() {
|
||||
return handler;
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
public class RTP_CommandEvent extends Event implements RTPEvent {
|
||||
public class RTP_CommandEvent extends RTPEvent {
|
||||
|
||||
CommandSender sendi;
|
||||
RTPCommand cmd;
|
||||
@ -24,13 +24,4 @@ public class RTP_CommandEvent extends Event implements RTPEvent {
|
||||
public RTPCommand getCmd() {
|
||||
return cmd;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handler;
|
||||
}
|
||||
|
||||
public static HandlerList getHandlerList() {
|
||||
return handler;
|
||||
}
|
||||
}
|
||||
|
@ -6,12 +6,11 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
public class RTP_FindLocationEvent extends Event implements RTPEvent {
|
||||
public class RTP_FindLocationEvent extends RTPEvent {
|
||||
|
||||
Player p;
|
||||
RTPWorld world;
|
||||
Location loc = null;
|
||||
private static final HandlerList handler = new HandlerList();
|
||||
|
||||
public RTP_FindLocationEvent(Player p, RTPWorld world) {
|
||||
this.p = p;
|
||||
@ -33,13 +32,4 @@ public class RTP_FindLocationEvent extends Event implements RTPEvent {
|
||||
public Player getPlayer() {
|
||||
return p;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handler;
|
||||
}
|
||||
|
||||
public static HandlerList getHandlerList() {
|
||||
return handler;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,28 @@
|
||||
package me.SuperRonanCraft.BetterRTP.references.customEvents;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Cancellable;
|
||||
|
||||
public class RTP_SettingUpEvent extends RTPEvent implements Cancellable {
|
||||
|
||||
Player p;
|
||||
boolean cancelled = false;
|
||||
|
||||
public RTP_SettingUpEvent(Player p) {
|
||||
this.p = p;
|
||||
}
|
||||
|
||||
public Player getPlayer() {
|
||||
return p;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCancelled(boolean b) {
|
||||
cancelled = b;
|
||||
}
|
||||
}
|
@ -6,12 +6,11 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
public class RTP_TeleportEvent extends Event implements RTPEvent {
|
||||
public class RTP_TeleportEvent extends RTPEvent {
|
||||
|
||||
Player p;
|
||||
Location loc;
|
||||
WORLD_TYPE worldType;
|
||||
private static final HandlerList handler = new HandlerList();
|
||||
|
||||
public RTP_TeleportEvent(Player p, Location loc, WORLD_TYPE worldType) {
|
||||
this.p = p;
|
||||
@ -27,15 +26,6 @@ public class RTP_TeleportEvent extends Event implements RTPEvent {
|
||||
return loc;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handler;
|
||||
}
|
||||
|
||||
public static HandlerList getHandlerList() {
|
||||
return handler;
|
||||
}
|
||||
|
||||
public void changeLocation(Location loc) {
|
||||
this.loc = loc;
|
||||
}
|
||||
|
@ -6,13 +6,12 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
public class RTP_TeleportPostEvent extends Event implements RTPEvent {
|
||||
public class RTP_TeleportPostEvent extends RTPEvent {
|
||||
|
||||
Player p;
|
||||
Location loc;
|
||||
Location oldLoc;
|
||||
RTP_TYPE type;
|
||||
private static final HandlerList handler = new HandlerList();
|
||||
|
||||
public RTP_TeleportPostEvent(Player p, Location loc, Location oldLoc, RTP_TYPE type) {
|
||||
this.p = p;
|
||||
@ -33,15 +32,6 @@ public class RTP_TeleportPostEvent extends Event implements RTPEvent {
|
||||
return oldLoc;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handler;
|
||||
}
|
||||
|
||||
public static HandlerList getHandlerList() {
|
||||
return handler;
|
||||
}
|
||||
|
||||
public RTP_TYPE getType() {
|
||||
return type;
|
||||
}
|
||||
|
@ -4,10 +4,9 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
public class RTP_TeleportPreEvent extends Event implements RTPEvent { //Called upon every rtp call, does not mean player will be teleported
|
||||
public class RTP_TeleportPreEvent extends RTPEvent { //Called upon every rtp call, does not mean player will be teleported
|
||||
|
||||
Player p;
|
||||
private static final HandlerList handler = new HandlerList();
|
||||
|
||||
public RTP_TeleportPreEvent(Player p) {
|
||||
this.p = p;
|
||||
@ -17,12 +16,4 @@ public class RTP_TeleportPreEvent extends Event implements RTPEvent { //Called u
|
||||
return p;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handler;
|
||||
}
|
||||
|
||||
public static HandlerList getHandlerList() {
|
||||
return handler;
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package me.SuperRonanCraft.BetterRTP.references.invs.enums;
|
||||
import me.SuperRonanCraft.BetterRTP.references.invs.RTP_INV_SETTINGS;
|
||||
import me.SuperRonanCraft.BetterRTP.BetterRTP;
|
||||
import me.SuperRonanCraft.BetterRTP.player.PlayerInfo;
|
||||
import me.SuperRonanCraft.BetterRTP.references.systems.HelperPlayer;
|
||||
import me.SuperRonanCraft.BetterRTP.references.systems.playerdata.PlayerData;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -34,9 +36,9 @@ public interface RTPInventory_Defaults {
|
||||
}
|
||||
|
||||
default void cacheInv(Player p, Inventory inv, RTP_INV_SETTINGS type) {
|
||||
PlayerInfo info = BetterRTP.getInstance().getpInfo();
|
||||
info.setInv(p, inv);
|
||||
info.setInvType(p, type);
|
||||
PlayerData info = HelperPlayer.getData(p);
|
||||
info.getMenu().setInv(inv);
|
||||
info.getMenu().setInvType(type);
|
||||
}
|
||||
|
||||
default Inventory createInv(int size, String title) {
|
||||
|
@ -5,6 +5,8 @@ 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.systems.HelperPlayer;
|
||||
import me.SuperRonanCraft.BetterRTP.references.systems.playerdata.PlayerData;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.configuration.InvalidConfigurationException;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
@ -28,7 +30,6 @@ public class CooldownHandler {
|
||||
|
||||
public void load() {
|
||||
//configfile = new File(BetterRTP.getInstance().getDataFolder(), "data/cooldowns.yml");
|
||||
getPInfo().getCooldown().clear();
|
||||
FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG;
|
||||
enabled = config.getBoolean("Settings.Cooldown.Enabled");
|
||||
downloading.clear();
|
||||
@ -58,22 +59,23 @@ public class CooldownHandler {
|
||||
|
||||
public void add(Player player) {
|
||||
if (!enabled) return;
|
||||
CooldownData data = getPInfo().getCooldown().getOrDefault(player,
|
||||
new CooldownData(player.getUniqueId(), 0L, 0));
|
||||
CooldownData data = getData(player).getCooldown();
|
||||
if (data == null)
|
||||
data = new CooldownData(player.getUniqueId(), 0L, 0);
|
||||
if (lockedAfter > 0)
|
||||
data.setUses(data.getUses() + 1);
|
||||
data.setTime(System.currentTimeMillis());
|
||||
getPInfo().getCooldown().put(player, data);
|
||||
getData(player).setCooldown(data);
|
||||
savePlayer(data, false);
|
||||
}
|
||||
|
||||
public boolean exists(Player p) {
|
||||
return getPInfo().getCooldown().containsKey(p);
|
||||
return getData(p).getCooldown() != null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public CooldownData getPlayer(Player p) {
|
||||
return getPInfo().getCooldown().getOrDefault(p, null);
|
||||
return getData(p).getCooldown();
|
||||
}
|
||||
|
||||
public long timeLeft(CooldownData data) {
|
||||
@ -87,18 +89,18 @@ public class CooldownHandler {
|
||||
|
||||
public void removeCooldown(Player player) {
|
||||
if (!enabled) return;
|
||||
CooldownData data = getPInfo().getCooldown().get(player);
|
||||
CooldownData data = getData(player).getCooldown();
|
||||
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);
|
||||
getData(player).setCooldown(null);
|
||||
} else { //Keep the player cached
|
||||
savePlayer(data, false);
|
||||
}
|
||||
} else { //Remove completely
|
||||
getPInfo().getCooldown().remove(player);
|
||||
getData(player).setCooldown(null);
|
||||
savePlayer(data, true);
|
||||
}
|
||||
}
|
||||
@ -116,9 +118,9 @@ public class CooldownHandler {
|
||||
public void loadPlayer(Player player) {
|
||||
downloading.add(player);
|
||||
if (isEnabled()) {
|
||||
CooldownData data = getDatabase().getCooldown(player.getUniqueId());
|
||||
if (data != null)
|
||||
getPInfo().getCooldown().put(player, data);
|
||||
CooldownData cooldown = getDatabase().getCooldown(player.getUniqueId());
|
||||
if (cooldown != null)
|
||||
getData(player).setCooldown(cooldown);
|
||||
}
|
||||
downloading.remove(player);
|
||||
}
|
||||
@ -184,7 +186,7 @@ public class CooldownHandler {
|
||||
return BetterRTP.getInstance().getDatabaseCooldowns();
|
||||
}
|
||||
|
||||
private PlayerInfo getPInfo() {
|
||||
return BetterRTP.getInstance().getpInfo();
|
||||
private PlayerData getData(Player p) {
|
||||
return HelperPlayer.getData(p);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,20 @@
|
||||
package me.SuperRonanCraft.BetterRTP.references.systems;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.BetterRTP;
|
||||
import me.SuperRonanCraft.BetterRTP.references.systems.playerdata.PlayerData;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class HelperPlayer {
|
||||
|
||||
public static PlayerData getData(Player p) {
|
||||
return getPl().getPlayerDataManager().getData(p);
|
||||
}
|
||||
|
||||
public static void unload(Player p) {
|
||||
getPl().getPlayerDataManager().clear(p);
|
||||
}
|
||||
|
||||
private static BetterRTP getPl() {
|
||||
return BetterRTP.getInstance();
|
||||
}
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
package me.SuperRonanCraft.BetterRTP.references.systems.playerdata;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PlayerData {
|
||||
|
||||
public boolean loading; //Is this players data loading?
|
||||
public final Player player;
|
||||
//Menus
|
||||
@Getter final PlayerData_Menus menu = new PlayerData_Menus();
|
||||
//Player Data
|
||||
@Getter @Setter CooldownData cooldown;
|
||||
@Getter @Setter boolean rtping;
|
||||
|
||||
PlayerData(Player player) {
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
public void load(boolean joined) {
|
||||
//Setup Defaults
|
||||
//new TaskDownloadPlayerData(this, joined).start();
|
||||
}
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
package me.SuperRonanCraft.BetterRTP.references.systems.playerdata;
|
||||
|
||||
import lombok.NonNull;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.UUID;
|
||||
|
||||
public class PlayerDataManager {
|
||||
|
||||
private final HashMap<Player, PlayerData> playerData = new HashMap<>();
|
||||
|
||||
public PlayerData getData(@NonNull Player p) {
|
||||
if (!playerData.containsKey(p))
|
||||
playerData.put(p, new PlayerData(p));
|
||||
return playerData.get(p);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PlayerData getData(UUID id) {
|
||||
for (Player p : playerData.keySet())
|
||||
if (p.getUniqueId().equals(id))
|
||||
return playerData.get(p);
|
||||
return null;
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
playerData.clear();
|
||||
}
|
||||
|
||||
public void clear(Player p) {
|
||||
playerData.remove(p);
|
||||
}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package me.SuperRonanCraft.BetterRTP.references.systems.playerdata;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import me.SuperRonanCraft.BetterRTP.references.invs.RTP_INV_SETTINGS;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
public class PlayerData_Menus {
|
||||
|
||||
@Getter @Setter private Inventory inv;
|
||||
@Getter @Setter RTP_INV_SETTINGS invType;
|
||||
@Getter @Setter World invWorld;
|
||||
@Getter @Setter RTP_INV_SETTINGS invNextInv;
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user