Player data memory improvements

This commit is contained in:
RonanCraft 2021-10-07 12:06:35 -04:00
parent f0c219c52e
commit 9c27e30c10
27 changed files with 247 additions and 189 deletions

View File

@ -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;
}

View File

@ -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) {
}
}

View File

@ -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

View File

@ -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]

View File

@ -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-----'

View File

@ -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();

View File

@ -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) {

View File

@ -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;
}

View File

@ -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);
}
}

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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;

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}
}

View File

@ -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) {

View File

@ -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);
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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);
}
}

View File

@ -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;
}