Cleanup CustomDataManager

This commit is contained in:
Sam 2017-09-19 14:51:37 +01:00
parent e392b65c68
commit 5ec2307cc9
11 changed files with 93 additions and 97 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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