Cleanup CustomDataManager
This commit is contained in:
parent
e392b65c68
commit
5ec2307cc9
|
@ -2,13 +2,10 @@ package mineplex.core.customdata;
|
|||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
* Created by William (WilliamTiger).
|
||||
* 17/12/15
|
||||
*/
|
||||
public class CorePlayer extends MineplexPlayer
|
||||
{
|
||||
public CorePlayer(Player player, CustomDataManager customDataManager)
|
||||
|
||||
CorePlayer(Player player, CustomDataManager customDataManager)
|
||||
{
|
||||
super(player, customDataManager);
|
||||
}
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
package mineplex.core.customdata;
|
||||
|
||||
/**
|
||||
* Created by William (WilliamTiger).
|
||||
* 16/12/15
|
||||
*/
|
||||
public class CustomData
|
||||
{
|
||||
private int _id;
|
||||
private String _key;
|
||||
|
||||
private final int _id;
|
||||
private final String _key;
|
||||
|
||||
public CustomData(int id, String key)
|
||||
{
|
||||
|
@ -24,4 +21,5 @@ public class CustomData
|
|||
{
|
||||
return _key;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,32 +8,33 @@ import org.bukkit.entity.Player;
|
|||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import mineplex.core.MiniDbClientPlugin;
|
||||
import mineplex.core.ReflectivelyCreateMiniPlugin;
|
||||
import mineplex.core.account.CoreClientManager;
|
||||
import mineplex.core.customdata.repository.CustomDataRepository;
|
||||
|
||||
/**
|
||||
* Created by William (WilliamTiger).
|
||||
* 16/12/15
|
||||
*/
|
||||
@ReflectivelyCreateMiniPlugin
|
||||
public class CustomDataManager extends MiniDbClientPlugin<PlayerCustomData>
|
||||
{
|
||||
private CustomDataRepository _repository;
|
||||
|
||||
public CustomDataManager(JavaPlugin plugin, CoreClientManager clientManager)
|
||||
private final CustomDataRepository _repository;
|
||||
|
||||
private CustomDataManager()
|
||||
{
|
||||
super("Custom Data Manager", plugin, clientManager);
|
||||
super("Custom Data");
|
||||
|
||||
_repository = new CustomDataRepository(plugin, clientManager, this);
|
||||
_repository = new CustomDataRepository(ClientManager, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processLoginResultSet(String playerName, UUID uuid, int accountId, ResultSet resultSet) throws SQLException
|
||||
{
|
||||
PlayerCustomData data = new PlayerCustomData(_repository);
|
||||
|
||||
while (resultSet.next())
|
||||
{
|
||||
data.setData(_repository.getKey(resultSet.getInt("customDataId")), resultSet.getInt("data"));
|
||||
}
|
||||
|
||||
Set(uuid, data);
|
||||
}
|
||||
|
||||
|
@ -49,15 +50,16 @@ public class CustomDataManager extends MiniDbClientPlugin<PlayerCustomData>
|
|||
return new PlayerCustomData(_repository);
|
||||
}
|
||||
|
||||
public void saveAsync(Player player)
|
||||
void saveAsync(Player player)
|
||||
{
|
||||
final int accountId = getClientManager().getAccountId(player);
|
||||
final String name = player.getName();
|
||||
|
||||
if (accountId == -1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
runAsync(() -> _repository.saveData(name, player.getUniqueId(), accountId));
|
||||
runAsync(() -> _repository.saveData(player.getUniqueId(), accountId));
|
||||
}
|
||||
|
||||
public CorePlayer getCorePlayer(Player player)
|
||||
|
|
|
@ -2,14 +2,11 @@ package mineplex.core.customdata;
|
|||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
* Created by William (WilliamTiger).
|
||||
* 16/12/15
|
||||
*/
|
||||
public abstract class MineplexPlayer
|
||||
{
|
||||
private Player _player;
|
||||
private CustomDataManager _customDataManager;
|
||||
|
||||
private final Player _player;
|
||||
private final CustomDataManager _customDataManager;
|
||||
|
||||
public MineplexPlayer(Player player, CustomDataManager customDataManager)
|
||||
{
|
||||
|
@ -31,7 +28,10 @@ public abstract class MineplexPlayer
|
|||
{
|
||||
key = getKeyPrefix() + key;
|
||||
_customDataManager.Get(getPlayer()).setData(key, data);
|
||||
if (save) _customDataManager.saveAsync(_player);
|
||||
if (save)
|
||||
{
|
||||
_customDataManager.saveAsync(_player);
|
||||
}
|
||||
}
|
||||
|
||||
public int get(String key)
|
||||
|
|
|
@ -1,25 +1,23 @@
|
|||
package mineplex.core.customdata;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import mineplex.core.customdata.repository.CustomDataRepository;
|
||||
|
||||
/**
|
||||
* Created by William (WilliamTiger).
|
||||
* 16/12/15
|
||||
*/
|
||||
public class PlayerCustomData
|
||||
{
|
||||
private HashMap<CustomData, Integer> _data;
|
||||
private CustomDataRepository _repository;
|
||||
|
||||
public PlayerCustomData(CustomDataRepository repository)
|
||||
private final Map<CustomData, Integer> _data;
|
||||
private final CustomDataRepository _repository;
|
||||
|
||||
PlayerCustomData(CustomDataRepository repository)
|
||||
{
|
||||
_data = new HashMap<>();
|
||||
_repository = repository;
|
||||
}
|
||||
|
||||
public HashMap<CustomData, Integer> getDataMap()
|
||||
public Map<CustomData, Integer> getDataMap()
|
||||
{
|
||||
return _data;
|
||||
}
|
||||
|
@ -37,24 +35,20 @@ public class PlayerCustomData
|
|||
return;
|
||||
}
|
||||
|
||||
_repository.getClientManager().getScheduler().runTaskAsynchronously(
|
||||
_repository.getClientManager().getPlugin(),
|
||||
new Runnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
_repository.registerKey(key); // Make sure it's in the DB.
|
||||
_repository.getCustomDataManager().runAsync(() ->
|
||||
{
|
||||
_repository.registerKey(key); // Make sure it's in the DB.
|
||||
|
||||
setData(_repository.getKey(key), amount); // Input
|
||||
}
|
||||
});
|
||||
setData(_repository.getKey(key), amount); // Input
|
||||
});
|
||||
}
|
||||
|
||||
public int getData(String key)
|
||||
{
|
||||
if (_data.containsKey(_repository.getKey(key)))
|
||||
{
|
||||
return _data.get(_repository.getKey(key));
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -1,46 +1,40 @@
|
|||
package mineplex.core.customdata.repository;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import mineplex.core.database.MinecraftRepository;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import mineplex.core.account.CoreClientManager;
|
||||
import mineplex.core.customdata.CustomData;
|
||||
import mineplex.core.customdata.CustomDataManager;
|
||||
import mineplex.core.customdata.PlayerCustomData;
|
||||
import mineplex.serverdata.database.DBPool;
|
||||
import mineplex.serverdata.database.RepositoryBase;
|
||||
import mineplex.serverdata.database.ResultSetCallable;
|
||||
import mineplex.serverdata.database.column.ColumnInt;
|
||||
import mineplex.serverdata.database.column.ColumnVarChar;
|
||||
|
||||
/**
|
||||
* Created by William (WilliamTiger).
|
||||
* 16/12/15
|
||||
*/
|
||||
public class CustomDataRepository extends RepositoryBase
|
||||
{
|
||||
|
||||
private static final String SELECT_KEYS = "SELECT id, name FROM customData;";
|
||||
private static final String INSERT_KEY = "INSERT INTO customData (name) VALUES (?);";
|
||||
private static final String UPDATE_DATA = "UPDATE accountCustomData SET data = ? WHERE accountId = ? AND customDataId = ?;";
|
||||
private static final String INSERT_DATA = "INSERT INTO accountCustomData (accountId, customDataId, data) VALUES (?, ?, ?);";
|
||||
|
||||
private ArrayList<CustomData> _dataKeys;
|
||||
private final CoreClientManager _clientManager;
|
||||
private final CustomDataManager _customDataManager;
|
||||
|
||||
private CoreClientManager _clientManager;
|
||||
private CustomDataManager _customDataManager;
|
||||
private final List<CustomData> _dataKeys;
|
||||
|
||||
public CustomDataRepository(JavaPlugin plugin, CoreClientManager clientManager, CustomDataManager customDataManager)
|
||||
public CustomDataRepository(CoreClientManager clientManager, CustomDataManager customDataManager)
|
||||
{
|
||||
super(DBPool.getAccount());
|
||||
|
||||
_clientManager = clientManager;
|
||||
_customDataManager = customDataManager;
|
||||
|
||||
_dataKeys = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -51,22 +45,18 @@ public class CustomDataRepository extends RepositoryBase
|
|||
|
||||
private void downloadDataKeys()
|
||||
{
|
||||
_dataKeys = new ArrayList<>();
|
||||
|
||||
executeQuery(SELECT_KEYS, new ResultSetCallable()
|
||||
executeQuery(SELECT_KEYS, resultSet ->
|
||||
{
|
||||
@Override
|
||||
public void processResultSet(ResultSet resultSet) throws SQLException
|
||||
_dataKeys.clear();
|
||||
|
||||
while (resultSet.next())
|
||||
{
|
||||
while (resultSet.next())
|
||||
{
|
||||
_dataKeys.add(new CustomData(resultSet.getInt("id"), resultSet.getString("name")));
|
||||
}
|
||||
_dataKeys.add(new CustomData(resultSet.getInt("id"), resultSet.getString("name")));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void saveData(String name, UUID uuid, int accountId)
|
||||
public void saveData(UUID uuid, int accountId)
|
||||
{
|
||||
PlayerCustomData data = _customDataManager.Get(uuid);
|
||||
|
||||
|
@ -92,22 +82,23 @@ public class CustomDataRepository extends RepositoryBase
|
|||
public void registerKey(String key)
|
||||
{
|
||||
if (doesKeyExist(key))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
executeUpdate(INSERT_KEY, new ColumnVarChar("name", 100, key));
|
||||
downloadDataKeys();
|
||||
}
|
||||
|
||||
public ArrayList<CustomData> getDataKeys()
|
||||
{
|
||||
return _dataKeys;
|
||||
}
|
||||
|
||||
public boolean doesKeyExist(String key)
|
||||
{
|
||||
for (CustomData cur : _dataKeys)
|
||||
{
|
||||
if (cur.getKey().equals(key))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
@ -115,8 +106,12 @@ public class CustomDataRepository extends RepositoryBase
|
|||
public CustomData getKey(int id)
|
||||
{
|
||||
for (CustomData cur : _dataKeys)
|
||||
{
|
||||
if (cur.getId() == id)
|
||||
{
|
||||
return cur;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
@ -124,8 +119,12 @@ public class CustomDataRepository extends RepositoryBase
|
|||
public CustomData getKey(String key)
|
||||
{
|
||||
for (CustomData cur : _dataKeys)
|
||||
{
|
||||
if (cur.getKey().equals(key))
|
||||
{
|
||||
return cur;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
@ -134,4 +133,9 @@ public class CustomDataRepository extends RepositoryBase
|
|||
{
|
||||
return _clientManager;
|
||||
}
|
||||
|
||||
public CustomDataManager getCustomDataManager()
|
||||
{
|
||||
return _customDataManager;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -148,7 +148,7 @@ public class ClansHub extends JavaPlugin
|
|||
|
||||
PartyManager partyManager = new PartyManager();
|
||||
|
||||
CustomDataManager customDataManager = new CustomDataManager(this, clientManager);
|
||||
CustomDataManager customDataManager = require(CustomDataManager.class);
|
||||
|
||||
ConditionManager condition = new ConditionManager(this);
|
||||
ThankManager thankManager = new ThankManager(this, clientManager, donationManager);
|
||||
|
|
|
@ -50,7 +50,6 @@ import mineplex.core.common.util.UtilPlayer;
|
|||
import mineplex.core.common.util.UtilServer;
|
||||
import mineplex.core.communities.CommunityManager;
|
||||
import mineplex.core.cosmetic.CosmeticManager;
|
||||
import mineplex.core.customdata.CustomDataManager;
|
||||
import mineplex.core.disguise.DisguiseManager;
|
||||
import mineplex.core.disguise.playerdisguise.PlayerDisguiseManager;
|
||||
import mineplex.core.donation.DonationManager;
|
||||
|
@ -64,7 +63,6 @@ import mineplex.core.interactions.NewInteractionsManager;
|
|||
import mineplex.core.inventory.InventoryManager;
|
||||
import mineplex.core.menu.MenuManager;
|
||||
import mineplex.core.message.PrivateMessageEvent;
|
||||
import mineplex.core.treasure.TreasureManager;
|
||||
import mineplex.core.noteblock.MusicManager;
|
||||
import mineplex.core.notifier.NotificationManager;
|
||||
import mineplex.core.npc.NpcManager;
|
||||
|
@ -86,6 +84,7 @@ import mineplex.core.scoreboard.TabListSorter;
|
|||
import mineplex.core.stats.StatsManager;
|
||||
import mineplex.core.status.ServerStatusManager;
|
||||
import mineplex.core.thank.ThankManager;
|
||||
import mineplex.core.treasure.TreasureManager;
|
||||
import mineplex.core.twofactor.TwoFactorAuth;
|
||||
import mineplex.core.updater.UpdateType;
|
||||
import mineplex.core.updater.event.UpdateEvent;
|
||||
|
@ -104,8 +103,7 @@ import mineplex.hub.modules.TemporaryGemHuntersServerSender;
|
|||
import mineplex.hub.modules.salesannouncements.SalesAnnouncementManager;
|
||||
import mineplex.hub.news.NewsManager;
|
||||
import mineplex.hub.parkour.ParkourManager;
|
||||
import mineplex.hub.player.HotbarManager;
|
||||
import mineplex.hub.player.HubPlayer;
|
||||
import mineplex.hub.player.HubPlayerManager;
|
||||
import mineplex.hub.scoreboard.HubScoreboard;
|
||||
import mineplex.hub.world.HubWorldManager;
|
||||
import mineplex.hub.world.WorldDataModule;
|
||||
|
@ -127,7 +125,6 @@ public class HubManager extends MiniClientPlugin<HubClient> implements IChatMess
|
|||
// ☃❅ Snowman!
|
||||
|
||||
private final CoreClientManager _clientManager;
|
||||
private final CustomDataManager _customDataManager;
|
||||
private final DonationManager _donationManager;
|
||||
private final DisguiseManager _disguiseManager;
|
||||
private final PartyManager _partyManager;
|
||||
|
@ -151,7 +148,6 @@ public class HubManager extends MiniClientPlugin<HubClient> implements IChatMess
|
|||
super("Hub Manager");
|
||||
|
||||
_clientManager = clientManager;
|
||||
_customDataManager = new CustomDataManager(_plugin, clientManager);
|
||||
_donationManager = donationManager;
|
||||
_disguiseManager = disguiseManager;
|
||||
|
||||
|
@ -233,7 +229,7 @@ public class HubManager extends MiniClientPlugin<HubClient> implements IChatMess
|
|||
require(TwoFactorAuth.class);
|
||||
require(HubGameManager.class);
|
||||
require(ProfileManager.class);
|
||||
require(HotbarManager.class);
|
||||
require(HubPlayerManager.class);
|
||||
|
||||
new HubType();
|
||||
|
||||
|
@ -480,11 +476,6 @@ public class HubManager extends MiniClientPlugin<HubClient> implements IChatMess
|
|||
return new HubClient(Bukkit.getPlayer(uuid).getName());
|
||||
}
|
||||
|
||||
public HubPlayer getHubPlayer(Player player)
|
||||
{
|
||||
return new HubPlayer(player, _customDataManager);
|
||||
}
|
||||
|
||||
public CoreClientManager GetClients()
|
||||
{
|
||||
return _clientManager;
|
||||
|
|
|
@ -30,7 +30,7 @@ import mineplex.core.updater.event.UpdateEvent;
|
|||
import mineplex.hub.hubgame.CycledGame.GameState;
|
||||
import mineplex.hub.hubgame.event.HubGamePlayerDeathEvent;
|
||||
import mineplex.hub.hubgame.ui.HubGameShop;
|
||||
import mineplex.hub.player.HotbarManager;
|
||||
import mineplex.hub.player.HubPlayerManager;
|
||||
import mineplex.hub.world.WorldDataModule;
|
||||
|
||||
@ReflectivelyCreateMiniPlugin
|
||||
|
@ -51,7 +51,7 @@ public class HubGameManager extends MiniPlugin
|
|||
private final DonationManager _donationManager;
|
||||
private final GadgetManager _gadgetManager;
|
||||
private final HologramManager _hologramManager;
|
||||
private final HotbarManager _hotbarManager;
|
||||
private final HubPlayerManager _hotbarManager;
|
||||
private final NewNPCManager _npcManager;
|
||||
private final WorldDataModule _worldData;
|
||||
|
||||
|
@ -66,7 +66,7 @@ public class HubGameManager extends MiniPlugin
|
|||
_donationManager = require(DonationManager.class);
|
||||
_gadgetManager = require(GadgetManager.class);
|
||||
_hologramManager = require(HologramManager.class);
|
||||
_hotbarManager = require(HotbarManager.class);
|
||||
_hotbarManager = require(HubPlayerManager.class);
|
||||
_npcManager = require(NewNPCManager.class);
|
||||
_worldData = require(WorldDataModule.class);
|
||||
|
||||
|
|
|
@ -11,11 +11,13 @@ import mineplex.core.MiniPlugin;
|
|||
import mineplex.core.ReflectivelyCreateMiniPlugin;
|
||||
import mineplex.core.common.util.C;
|
||||
import mineplex.core.cosmetic.CosmeticManager;
|
||||
import mineplex.core.customdata.CustomDataManager;
|
||||
import mineplex.core.itemstack.ItemBuilder;
|
||||
import mineplex.core.titles.Titles;
|
||||
import mineplex.hub.HubManager;
|
||||
|
||||
@ReflectivelyCreateMiniPlugin
|
||||
public class HotbarManager extends MiniPlugin
|
||||
public class HubPlayerManager extends MiniPlugin
|
||||
{
|
||||
|
||||
private static final ItemStack GAME_MENU = new ItemBuilder(Material.COMPASS)
|
||||
|
@ -27,17 +29,24 @@ public class HotbarManager extends MiniPlugin
|
|||
.addLore("Click to open the Game Menu.")
|
||||
.build();
|
||||
|
||||
private final CustomDataManager _customDataManager;
|
||||
private final CosmeticManager _cosmeticManager;
|
||||
private final Titles _titles;
|
||||
|
||||
private HotbarManager()
|
||||
private HubPlayerManager()
|
||||
{
|
||||
super("Hotbar");
|
||||
super("Hub Player");
|
||||
|
||||
_customDataManager = require(CustomDataManager.class);
|
||||
_cosmeticManager = require(CosmeticManager.class);
|
||||
_titles = require(Titles.class);
|
||||
}
|
||||
|
||||
public HubPlayer getHubPlayer(Player player)
|
||||
{
|
||||
return new HubPlayer(player, _customDataManager);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void playerJoin(PlayerJoinEvent event)
|
||||
{
|
|
@ -3,6 +3,7 @@ package nautilus.game.arcade;
|
|||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
|
||||
import mineplex.core.customdata.CustomData;
|
||||
import mineplex.core.imagemap.CustomItemFrames;
|
||||
import net.minecraft.server.v1_8_R3.MinecraftServer;
|
||||
|
||||
|
@ -204,7 +205,7 @@ public class Arcade extends JavaPlugin
|
|||
gadgetManager.setActiveItemSlot(3);
|
||||
cosmeticManager.disableTeamArmor();
|
||||
|
||||
CustomDataManager customDataManager = new CustomDataManager(this, _clientManager);
|
||||
CustomDataManager customDataManager = require(CustomDataManager.class);
|
||||
|
||||
//Arcade Manager
|
||||
PollManager pollManager = new PollManager(this, _clientManager, _donationManager);
|
||||
|
|
Loading…
Reference in New Issue