From 19ac8f0c3b61c7c543e8391d5cbc3015a15c733c Mon Sep 17 00:00:00 2001 From: samczsun Date: Fri, 6 Jan 2017 21:05:09 -0500 Subject: [PATCH] Create framework for proper test network --- .../mineplex/core/common/util/UtilServer.java | 9 +- .../src/mineplex/core/Constants.java | 7 + .../core/account/CoreClientManager.java | 10 +- .../account/repository/AccountRepository.java | 75 ++++------ .../antihack/banwave/BanWaveRepository.java | 3 +- .../antihack/logging/AnticheatDatabase.java | 3 +- .../benefit/BenefitManagerRepository.java | 3 +- .../core/bonuses/BonusRepository.java | 3 +- .../boosters/tips/BoosterThankRepository.java | 3 +- .../botspam/repository/BotSpamRepository.java | 3 +- .../storage/CommunityRepository.java | 3 +- .../repository/CustomDataRepository.java | 3 +- .../core/database/BasicMSSQLProvider.java | 131 +++++++++++++++++ .../mineplex/core/database/MSSQLProvider.java | 22 +++ .../core/database/MinecraftRepository.java | 137 +++++------------- .../repository/DonationRepository.java | 5 - .../src/mineplex/core/elo/EloRepository.java | 34 +++-- .../core/facebook/FacebookRepository.java | 3 +- .../core/friend/data/FriendRepository.java | 3 +- .../core/giveaway/GiveawayRepository.java | 3 +- .../core/ignore/data/IgnoreRepository.java | 3 +- .../repository/IncognitoRepository.java | 3 +- .../inventory/data/InventoryRepository.java | 3 +- .../leaderboard/StatEventsRepository.java | 3 +- .../src/mineplex/core/pet/PetManager.java | 4 +- .../core/pet/repository/PetRepository.java | 29 +--- .../mineplex/core/poll/PollRepository.java | 3 +- .../preferences/PreferencesRepository.java | 5 +- .../progression/KitProgressionRepository.java | 11 +- .../src/mineplex/core/punish/Punish.java | 9 +- .../core/punish/PunishRepository.java | 49 ++----- .../eternal/EternalGiveawayRepository.java | 3 +- .../TitanGiveawayRepository.java | 3 +- .../server/remotecall/AsyncJsonWebCall.java | 63 -------- .../mineplex/core/spawn/SpawnRepository.java | 3 +- .../mineplex/core/stats/StatsRepository.java | 3 +- .../src/mineplex/core/task/TaskManager.java | 2 +- .../core/task/repository/TaskRepository.java | 3 +- .../src/mineplex/core/thank/ThankManager.java | 2 +- .../mineplex/core/thank/ThankRepository.java | 5 +- .../core/tournament/TournamentRepository.java | 3 +- .../mineplex/core/utils/UtilScheduler.java | 9 +- .../valentines/ValentinesGiftRepository.java | 3 +- .../src/mineplex/enjinTranslator/Enjin.java | 2 +- .../enjinTranslator/EnjinTranslator.java | 12 +- .../enjinTranslator/TempRepository.java | 3 +- .../purchase/data/PurchaseRepository.java | 3 +- .../clans/core/repository/ClanRepository.java | 3 +- .../src/mineplex/game/clans/Clans.java | 14 +- .../game/clans/clans/ClansManager.java | 10 +- .../clans/clans/ban/ClansBanRepository.java | 3 +- .../clans/clans/banners/BannerRepository.java | 3 +- .../ClanNameBlacklistRepository.java | 3 +- .../clans/clans/nether/PortalRepository.java | 3 +- .../siege/repository/OutpostRepository.java | 3 +- .../repository/SiegeWeaponRepository.java | 3 +- .../fields/repository/FieldRepository.java | 3 +- .../clans/repository/TutorialRepository.java | 3 +- .../src/mineplex/clanshub/ClansHub.java | 17 +-- .../SalesAnnouncementRepository.java | 3 +- .../Mineplex.Hub/src/mineplex/hub/Hub.java | 23 ++- .../src/mineplex/hub/mail/MailRepository.java | 3 +- .../SalesAnnouncementRepository.java | 3 +- .../game/classcombat/Class/ClassManager.java | 8 +- .../Class/repository/ClassRepository.java | 26 +--- .../game/classcombat/Skill/SkillFactory.java | 9 +- .../Skill/repository/SkillRepository.java | 17 +-- .../game/classcombat/item/ItemFactory.java | 10 +- .../item/repository/ItemRepository.java | 22 --- .../item/repository/ItemToken.java | 11 -- Plugins/Mineplex.ServerData/pom.xml | 5 + .../mineplex/serverdata/database/DBPool.java | 11 ++ .../serverdata/database/RepositoryBase.java | 9 ++ .../src/mineplex/staffServer/StaffServer.java | 16 +- .../CustomerSupportRepository.java | 3 +- .../password/PasswordRepository.java | 3 +- .../salespackage/SalesPackageManager.java | 2 +- .../src/nautilus/game/arcade/Arcade.java | 19 +-- .../nautilus/game/arcade/ArcadeManager.java | 12 +- .../TitanGiveawayRepository.java | 3 +- .../src/mineplex/mavericks/review/Hub.java | 17 +-- 81 files changed, 490 insertions(+), 520 deletions(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/Constants.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/database/BasicMSSQLProvider.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/database/MSSQLProvider.java delete mode 100644 Plugins/Mineplex.Core/src/mineplex/core/server/remotecall/AsyncJsonWebCall.java delete mode 100644 Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/item/repository/ItemRepository.java delete mode 100644 Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/item/repository/ItemToken.java diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilServer.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilServer.java index c6e1edcdc..6d77ec221 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilServer.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilServer.java @@ -18,11 +18,18 @@ import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitTask; +import java.io.File; import java.lang.reflect.Field; import java.util.*; public class UtilServer { + private static boolean TEST_OVERRIDE = false; + + static { + TEST_OVERRIDE = new File("TEST_OVERRIDE.dat").exists(); + } + public static Player[] getPlayers() { return getServer().getOnlinePlayers().toArray(new Player[0]); @@ -151,7 +158,7 @@ public class UtilServer public static boolean isTestServer() { - return getPlugin().getConfig().getString("serverstatus.group").equalsIgnoreCase("Testing"); + return getPlugin().getConfig().getString("serverstatus.group").equalsIgnoreCase("Testing") || TEST_OVERRIDE; } public static boolean isDevServer() diff --git a/Plugins/Mineplex.Core/src/mineplex/core/Constants.java b/Plugins/Mineplex.Core/src/mineplex/core/Constants.java new file mode 100644 index 000000000..749e45968 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/Constants.java @@ -0,0 +1,7 @@ +package mineplex.core; + +public class Constants +{ + public static final String WEB_ADDRESS = "http://accounts.mineplex.com/"; + public static final String WEB_CONFIG_KEY = "webServer"; +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/account/CoreClientManager.java b/Plugins/Mineplex.Core/src/mineplex/core/account/CoreClientManager.java index 271f6d0e9..13828828f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/account/CoreClientManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/account/CoreClientManager.java @@ -69,17 +69,17 @@ public class CoreClientManager extends MiniPlugin private final Set _reservedSlots = Sets.newConcurrentHashSet(); - public CoreClientManager(JavaPlugin plugin, String webServer) + public CoreClientManager(JavaPlugin plugin) { - this(plugin, webServer, Rank.MODERATOR); + this(plugin, Rank.MODERATOR); } - public CoreClientManager(JavaPlugin plugin, String webServer, Rank whitelistBypass) + public CoreClientManager(JavaPlugin plugin, Rank whitelistBypass) { super("Client Manager", plugin); _plugin = plugin; - _repository = new AccountRepository(plugin, webServer); + _repository = new AccountRepository(); WHITELIST_BYPASS = whitelistBypass; } @@ -702,4 +702,4 @@ public class CoreClientManager extends MiniPlugin return client.GetRank().has(rank); } -} \ No newline at end of file +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/account/repository/AccountRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/account/repository/AccountRepository.java index 2db750b6c..ac5d9bba0 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/account/repository/AccountRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/account/repository/AccountRepository.java @@ -4,7 +4,6 @@ import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; -import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; import java.util.UUID; @@ -13,45 +12,39 @@ import java.util.stream.Collectors; import org.apache.commons.dbcp2.BasicDataSource; import org.bukkit.Bukkit; -import com.google.gson.reflect.TypeToken; import org.bukkit.plugin.java.JavaPlugin; +import com.google.gson.reflect.TypeToken; + import mineplex.cache.player.PlayerCache; import mineplex.core.account.ILoginProcessor; import mineplex.core.account.repository.token.LoginToken; import mineplex.core.account.repository.token.RankUpdateToken; import mineplex.core.common.Rank; import mineplex.core.common.util.Callback; +import mineplex.core.common.util.UtilServer; import mineplex.core.database.MinecraftRepository; -import mineplex.core.server.remotecall.JsonWebCall; import mineplex.serverdata.database.DBPool; -import mineplex.serverdata.database.DatabaseRunnable; import mineplex.serverdata.database.ResultSetCallable; -import mineplex.serverdata.database.column.ColumnBoolean; -import mineplex.serverdata.database.column.ColumnTimestamp; import mineplex.serverdata.database.column.ColumnVarChar; public class AccountRepository extends MinecraftRepository -{ +{ private static String CREATE_ACCOUNT_TABLE = "CREATE TABLE IF NOT EXISTS accounts (id INT NOT NULL AUTO_INCREMENT, uuid VARCHAR(100), name VARCHAR(40), gems INT, rank VARCHAR(40), rankPerm BOOL, rankExpire LONG, lastLogin LONG, totalPlayTime LONG, PRIMARY KEY (id), UNIQUE INDEX uuidIndex (uuid), UNIQUE INDEX nameIndex (name), INDEX rankIndex (rank));"; - private static String ACCOUNT_LOGIN_NEW = "INSERT INTO accounts (uuid, name, lastLogin) values(?, ?, now());"; + private static String ACCOUNT_LOGIN_NEW = "INSERT INTO accounts (uuid, name, lastLogin) values(?, ?, now());"; private static String UPDATE_ACCOUNT_RANK = "UPDATE accounts SET rank=?, rankPerm=false, rankExpire=now() + INTERVAL 1 MONTH WHERE uuid = ?;"; private static String UPDATE_ACCOUNT_RANK_DONOR = "UPDATE accounts SET rank=?, donorRank=?, rankPerm=false, rankExpire=now() + INTERVAL 1 MONTH WHERE uuid = ?;"; private static String UPDATE_ACCOUNT_RANK_PERM = "UPDATE accounts SET rank=?, rankPerm=true WHERE uuid = ?;"; private static String UPDATE_ACCOUNT_RANK_DONOR_PERM = "UPDATE accounts SET rank=?, donorRank=?, rankPerm=true WHERE uuid = ?;"; - + private static String SELECT_ACCOUNT_UUID_BY_NAME = "SELECT uuid FROM accounts WHERE name = ? ORDER BY lastLogin DESC;"; private static String SELECT_ACCOUNT_ID_BY_UUID = "SELECT id FROM accounts WHERE accounts.uuid = ? LIMIT 1"; - - private String _webAddress; - - public AccountRepository(JavaPlugin plugin, String webAddress) + + public AccountRepository() { super(DBPool.getAccount()); - - _webAddress = webAddress; } - + public int login(final List loginProcessors, final UUID uuid, final String name) throws SQLException { // First we try to grab the account id from cache - this saves an extra trip to database @@ -105,7 +98,7 @@ public class AccountRepository extends MinecraftRepository statement.execute(loginString); System.out.println("EXECUTE COMPLETE - " + accountId); - + statement.getUpdateCount(); statement.getMoreResults(); @@ -126,20 +119,21 @@ public class AccountRepository extends MinecraftRepository } } } - - + + return accountId; } public void getAccountId(UUID uuid, Callback callback) { - executeQuery(SELECT_ACCOUNT_ID_BY_UUID, resultSet -> { + executeQuery(SELECT_ACCOUNT_ID_BY_UUID, resultSet -> + { int accountId = -1; while (resultSet.next()) accountId = resultSet.getInt(1); callback.run(accountId); }, new ColumnVarChar("uuid", 100, uuid.toString())); } - + public String GetClient(String name, UUID uuid, String ipAddress) { LoginToken token = new LoginToken(); @@ -147,18 +141,18 @@ public class AccountRepository extends MinecraftRepository token.Uuid = uuid.toString(); token.IpAddress = ipAddress; - return new JsonWebCall(_webAddress + "PlayerAccount/Login").ExecuteReturnStream(token); + return handleSyncMSSQLCallStream("PlayerAccount/Login", token); } - + public String getClientByUUID(UUID uuid) { - return new JsonWebCall(_webAddress + "PlayerAccount/GetAccountByUUID").ExecuteReturnStream(uuid.toString()); + return handleSyncMSSQLCallStream("PlayerAccount/GetAccountByUUID", uuid.toString()); } public UUID getClientUUID(String name) { final List uuids = new ArrayList(); - + executeQuery(SELECT_ACCOUNT_UUID_BY_NAME, new ResultSetCallable() { @Override @@ -170,20 +164,20 @@ public class AccountRepository extends MinecraftRepository } } }, new ColumnVarChar("name", 100, name)); - + if (uuids.size() > 0) return uuids.get(0); else return null; } - + public void saveRank(final Callback callback, final String name, final UUID uuid, final Rank rank, final boolean perm) { final RankUpdateToken token = new RankUpdateToken(); token.Name = name; token.Rank = rank.toString(); token.Perm = perm; - + final Consumer extraCallback = response -> { if (rank == Rank.ULTRA || rank == Rank.HERO || rank == Rank.LEGEND || rank == Rank.TITAN) @@ -208,36 +202,23 @@ public class AccountRepository extends MinecraftRepository executeUpdate(UPDATE_ACCOUNT_RANK, new ColumnVarChar("rank", 100, rank.toString()), new ColumnVarChar("uuid", 100, uuid.toString())); } - Bukkit.getServer().getScheduler().runTask(getPlugin(), new Runnable() + UtilServer.runSync(() -> { - @Override - public void run() - { - if (callback != null) - callback.run(response); - } + if (callback != null) + callback.run(response); }); }; handleMSSQLCall("PlayerAccount/RankUpdate", String.format("Error saving %s's rank: ", token.Name), token, Rank.class, extraCallback); } - + public void matchPlayerName(final Callback> callback, final String userName) { - Thread asyncThread = new Thread(new Runnable() - { - public void run() - { - List tokenList = new JsonWebCall(_webAddress + "PlayerAccount/GetMatches").Execute(new TypeToken>(){}.getType(), userName); - callback.run(tokenList); - } - }); - - asyncThread.start(); + handleMSSQLCall("PlayerAccount/GetMatches", userName, new TypeToken>(){}.getType(), callback::run); } public String getClientByName(String playerName) { - return new JsonWebCall(_webAddress + "PlayerAccount/GetAccount").ExecuteReturnStream(playerName); + return handleSyncMSSQLCallStream("PlayerAccount/GetAccount", playerName); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/antihack/banwave/BanWaveRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/antihack/banwave/BanWaveRepository.java index baf39fe4e..6e987061f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/antihack/banwave/BanWaveRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/antihack/banwave/BanWaveRepository.java @@ -3,11 +3,12 @@ package mineplex.core.antihack.banwave; import mineplex.core.common.util.Callback; import mineplex.core.database.MinecraftRepository; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnInt; import mineplex.serverdata.database.column.ColumnLong; import mineplex.serverdata.database.column.ColumnVarChar; -public class BanWaveRepository extends MinecraftRepository +public class BanWaveRepository extends RepositoryBase { private static final String INITIALIZE_PENDING_TABLE = "CREATE TABLE IF NOT EXISTS banwavePending (" + "accountId INT(11) NOT NULL, " + diff --git a/Plugins/Mineplex.Core/src/mineplex/core/antihack/logging/AnticheatDatabase.java b/Plugins/Mineplex.Core/src/mineplex/core/antihack/logging/AnticheatDatabase.java index d366a548a..e89dd893c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/antihack/logging/AnticheatDatabase.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/antihack/logging/AnticheatDatabase.java @@ -6,8 +6,9 @@ import java.sql.SQLException; import mineplex.core.database.MinecraftRepository; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; -public class AnticheatDatabase extends MinecraftRepository +public class AnticheatDatabase extends RepositoryBase { /* CREATE TABLE IF NOT EXISTS anticheat_ban_metadata (id INT NOT NULL AUTO_INCREMENT, accountId INT, banId CHAR(10) NOT NULL, data MEDIUMTEXT NOT NULL, PRIMARY KEY(id)); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/benefit/BenefitManagerRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/benefit/BenefitManagerRepository.java index 163648792..bcb93096c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/benefit/BenefitManagerRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/benefit/BenefitManagerRepository.java @@ -5,12 +5,13 @@ import java.sql.SQLException; import mineplex.core.database.MinecraftRepository; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnInt; import mineplex.serverdata.database.column.ColumnVarChar; import org.bukkit.plugin.java.JavaPlugin; -public class BenefitManagerRepository extends MinecraftRepository +public class BenefitManagerRepository extends RepositoryBase { private static String CREATE_BENEFIT_TABLE = "CREATE TABLE IF NOT EXISTS rankBenefits (id INT NOT NULL AUTO_INCREMENT, accountId INT, benefit VARCHAR(100), PRIMARY KEY (id), FOREIGN KEY (accountId) REFERENCES accounts(id));"; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusRepository.java index 125fcead9..241544a1d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusRepository.java @@ -12,6 +12,7 @@ import mineplex.core.common.Pair; import mineplex.core.common.util.Callback; import mineplex.core.database.MinecraftRepository; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.ResultSetCallable; import mineplex.core.donation.DonationManager; import mineplex.core.recharge.Recharge; @@ -28,7 +29,7 @@ import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; -public class BonusRepository extends MinecraftRepository +public class BonusRepository extends RepositoryBase { private static String CREATE_BONUS_TABLE = "CREATE TABLE IF NOT EXISTS bonus (accountId INT NOT NULL AUTO_INCREMENT, dailytime TIMESTAMP NULL DEFAULT NULL, ranktime DATE NULL DEFAULT NULL, PRIMARY KEY (accountId), FOREIGN KEY (accountId) REFERENCES accounts(id));"; private BonusManager _manager; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/boosters/tips/BoosterThankRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/boosters/tips/BoosterThankRepository.java index a8674e464..c2f02d7d3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/boosters/tips/BoosterThankRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/boosters/tips/BoosterThankRepository.java @@ -3,13 +3,14 @@ package mineplex.core.boosters.tips; import mineplex.core.database.MinecraftRepository; import mineplex.database.routines.CheckAmplifierThank; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import org.bukkit.plugin.java.JavaPlugin; /** * @author Shaun Bennett */ -public class BoosterThankRepository extends MinecraftRepository +public class BoosterThankRepository extends RepositoryBase { public BoosterThankRepository(JavaPlugin plugin) { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/botspam/repository/BotSpamRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/botspam/repository/BotSpamRepository.java index 2d9c227c8..cdaede58c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/botspam/repository/BotSpamRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/botspam/repository/BotSpamRepository.java @@ -9,11 +9,12 @@ import org.bukkit.plugin.java.JavaPlugin; import mineplex.serverdata.database.DBPool; import mineplex.core.botspam.SpamText; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.ResultSetCallable; import mineplex.serverdata.database.column.ColumnInt; import mineplex.serverdata.database.column.ColumnVarChar; -public class BotSpamRepository extends MinecraftRepository +public class BotSpamRepository extends RepositoryBase { private static final String GET_SPAM_TEXT = "SELECT * FROM botSpam"; private static final String ADD_SPAM_TEXT = "INSERT INTO botSpam (text, createdBy, enabledBy) VALUES (?, ?, ?)"; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/communities/storage/CommunityRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/communities/storage/CommunityRepository.java index 0e4844cf3..abba4f955 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/communities/storage/CommunityRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/communities/storage/CommunityRepository.java @@ -23,11 +23,12 @@ import mineplex.core.database.MinecraftRepository; import mineplex.serverdata.data.DataRepository; import mineplex.serverdata.data.PlayerStatus; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnBoolean; import mineplex.serverdata.database.column.ColumnInt; import mineplex.serverdata.database.column.ColumnVarChar; -public class CommunityRepository extends MinecraftRepository +public class CommunityRepository extends RepositoryBase { private static final String GET_ALL_COMMUNITIES = "SELECT * FROM communities WHERE region=?;"; private static final String GET_COMMUNITY_BY_ID = "SELECT * FROM communities WHERE id=?;"; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/customdata/repository/CustomDataRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/customdata/repository/CustomDataRepository.java index a26974964..2a0a1d4be 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/customdata/repository/CustomDataRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/customdata/repository/CustomDataRepository.java @@ -14,6 +14,7 @@ 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; @@ -22,7 +23,7 @@ import mineplex.serverdata.database.column.ColumnVarChar; * Created by William (WilliamTiger). * 16/12/15 */ -public class CustomDataRepository extends MinecraftRepository +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 (?);"; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/database/BasicMSSQLProvider.java b/Plugins/Mineplex.Core/src/mineplex/core/database/BasicMSSQLProvider.java new file mode 100644 index 000000000..45f4b7b03 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/database/BasicMSSQLProvider.java @@ -0,0 +1,131 @@ +package mineplex.core.database; + +import java.lang.reflect.Type; +import java.util.HashSet; +import java.util.Set; +import java.util.function.Consumer; + +import org.bukkit.scheduler.BukkitTask; + +import mineplex.core.common.util.UtilServer; +import mineplex.core.server.remotecall.JsonWebCall; +import mineplex.core.thread.ThreadPool; +import mineplex.core.updater.UpdateType; +import mineplex.core.utils.UtilScheduler; +import mineplex.serverdata.database.DatabaseRunnable; + +@Deprecated +public class BasicMSSQLProvider implements MSSQLProvider +{ + private final String _webAddress = UtilServer.getWebServerURL(); + + // Queue for failed processes + private final Object QUEUE_LOCK = new Object(); + private Set _failedQueue = new HashSet<>(); + + private final BukkitTask _task; + private volatile boolean _shutdown = false; + + public BasicMSSQLProvider() + { + _task = UtilScheduler.runEvery(UpdateType.MIN_01, this::processDatabaseQueue); + } + + public T handleSyncMSSQLCall(String uri, Object param, Type responseType) + { + return new JsonWebCall(_webAddress + uri).Execute(responseType, param); + } + + public String handleSyncMSSQLCallStream(String uri, Object param) + { + return new JsonWebCall(_webAddress + uri).ExecuteReturnStream(param); + } + + public void handleMSSQLCall(String uri, String error, Object param, Class responseType, Consumer consumer) + { + handleDatabaseCall(new DatabaseRunnable(() -> + { + new JsonWebCall(_webAddress + uri).Execute(responseType, consumer::accept, param); + }, error)); + } + + public void handleMSSQLCall(String uri, Object param, Class responseType, Consumer consumer) + { + handleDatabaseCall(new DatabaseRunnable(() -> + { + new JsonWebCall(_webAddress + uri).Execute(responseType, consumer::accept, param); + }, "Handling MSSQL Call " + uri)); + } + + public void handleMSSQLCall(String uri, Object param, Type responseType, Consumer consumer) + { + handleDatabaseCall(new DatabaseRunnable(() -> + { + T t = new JsonWebCall(_webAddress + uri).Execute(responseType, param); + consumer.accept(t); + }, "Handling MSSQL Call " + uri)); + } + + public void handleMSSQLCall(String uri, Object param) + { + handleDatabaseCall(new DatabaseRunnable(() -> + { + new JsonWebCall(_webAddress + uri).Execute(param); + }, "Handling MSSQL Call " + uri)); + } + + @Override + public void deregister() + { + _shutdown = true; + } + + private void handleDatabaseCall(DatabaseRunnable databaseRunnable) + { + ThreadPool.ASYNC.submit(() -> + { + try + { + databaseRunnable.run(); + } + catch (Exception exception) + { + processFailedDatabaseCall(databaseRunnable, exception); + } + }); + } + + private void processFailedDatabaseCall(DatabaseRunnable databaseRunnable, Exception exception) + { + System.err.println(databaseRunnable.getErrorMessage()); + exception.printStackTrace(); + + if (databaseRunnable.getFailedCounts() < 4) + { + databaseRunnable.incrementFailCount(); + + synchronized (QUEUE_LOCK) + { + _failedQueue.add(databaseRunnable); + } + } + } + + private void processDatabaseQueue() + { + Set clone; + + synchronized (QUEUE_LOCK) + { + clone = new HashSet<>(_failedQueue); + _failedQueue.clear(); + } + + clone.forEach(this::handleDatabaseCall); + + if (_shutdown && _failedQueue.isEmpty()) + { + _task.cancel(); + } + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/database/MSSQLProvider.java b/Plugins/Mineplex.Core/src/mineplex/core/database/MSSQLProvider.java new file mode 100644 index 000000000..e3f5c35a9 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/database/MSSQLProvider.java @@ -0,0 +1,22 @@ +package mineplex.core.database; + +import java.lang.reflect.Type; +import java.util.function.Consumer; + +@Deprecated +public interface MSSQLProvider +{ + T handleSyncMSSQLCall(String uri, Object param, Type responseType); + + String handleSyncMSSQLCallStream(String uri, Object param); + + void handleMSSQLCall(String uri, String error, Object param, Class responseType, Consumer consumer); + + void handleMSSQLCall(String uri, Object param, Class responseType, Consumer consumer); + + void handleMSSQLCall(String uri, Object param, Type responseType, Consumer consumer); + + void handleMSSQLCall(String uri, Object param); + + void deregister(); +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/database/MinecraftRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/database/MinecraftRepository.java index 22523a1a8..60a8d39c3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/database/MinecraftRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/database/MinecraftRepository.java @@ -1,136 +1,69 @@ package mineplex.core.database; -import java.util.HashSet; -import java.util.Set; +import javax.sql.DataSource; +import java.lang.reflect.Type; +import java.util.concurrent.atomic.AtomicReference; import java.util.function.Consumer; -import javax.rmi.CORBA.Util; -import javax.sql.DataSource; - -import mineplex.core.common.util.UtilServer; -import mineplex.core.server.remotecall.AsyncJsonWebCall; -import mineplex.core.server.remotecall.JsonWebCall; -import mineplex.core.thread.ThreadPool; -import mineplex.core.utils.UtilScheduler; -import mineplex.serverdata.database.DBPool; -import mineplex.serverdata.database.DatabaseRunnable; -import mineplex.serverdata.database.RepositoryBase; -import mineplex.core.updater.UpdateType; - +import org.bukkit.event.Listener; import org.jooq.DSLContext; import org.jooq.SQLDialect; import org.jooq.impl.DSL; -import org.bukkit.event.Listener; -import org.bukkit.plugin.java.JavaPlugin; +import mineplex.core.common.util.UtilServer; +import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; +/** + * Do not extend this class unless you are doing MSSQL calls (which you shouldn't be) + * + * @deprecated don't use mssql thx + */ +@Deprecated public abstract class MinecraftRepository extends RepositoryBase implements Listener { - // Queue for failed processes - private final Object QUEUE_LOCK = new Object(); - private Set _failedQueue = new HashSet<>(); + private static AtomicReference PROVIDER = new AtomicReference<>(new BasicMSSQLProvider()); - protected JavaPlugin _plugin; // Plugin responsible for this repository + public static void setMSSQLProvider(MSSQLProvider provider) + { + MSSQLProvider oldProvider = PROVIDER.getAndSet(provider); + oldProvider.deregister(); + } - private final String _webAddress = UtilServer.getWebServerURL(); - - /** - * Constructor - * - * @param dataSource - the {@link DataSource} responsible for providing the connection pool to this repository. - */ public MinecraftRepository(DataSource dataSource) { super(dataSource); - _plugin = UtilServer.getPlugin(); - UtilServer.RegisterEvents(this); - - UtilScheduler.runEvery(UpdateType.MIN_01, this::processDatabaseQueue); } - protected DSLContext jooq() + protected T handleSyncMSSQLCall(String uri, Object param, Type responseType) { - return DSL.using(DBPool.getAccount(), SQLDialect.MYSQL); + return PROVIDER.get().handleSyncMSSQLCall(uri, param, responseType); + } + + protected String handleSyncMSSQLCallStream(String uri, Object param) + { + return PROVIDER.get().handleSyncMSSQLCallStream(uri, param); } - /** - * One day, the stars will align, and we can get rid of this - */ - @Deprecated protected void handleMSSQLCall(String uri, String error, Object param, Class responseType, Consumer consumer) { - handleDatabaseCall(new DatabaseRunnable(() -> - { - new JsonWebCall(_webAddress + uri).Execute(responseType, consumer::accept, param); - }, error)); + PROVIDER.get().handleMSSQLCall(uri, error, param, responseType, consumer); } - /** - * One day, the stars will align, and we can get rid of this - */ - @Deprecated - protected void handleAsyncMSSQLCall(String uri, Object param, Class responseType, Consumer consumer) + protected void handleMSSQLCall(String uri, Object param, Class responseType, Consumer consumer) { - new AsyncJsonWebCall(_webAddress + uri).Execute(responseType, consumer::accept, param); + PROVIDER.get().handleMSSQLCall(uri, param, responseType, consumer); + } + + protected void handleMSSQLCall(String uri, Object param, Type responseType, Consumer consumer) + { + PROVIDER.get().handleMSSQLCall(uri, param, responseType, consumer); } - /** - * One day, the stars will align, and we can get rid of this - */ - @Deprecated protected void handleAsyncMSSQLCall(String uri, Object param) { - new AsyncJsonWebCall(_webAddress + uri).Execute(param); - } - - private void handleDatabaseCall(DatabaseRunnable databaseRunnable) - { - ThreadPool.ASYNC.submit(() -> - { - try - { - databaseRunnable.run(); - } - catch (Exception exception) - { - processFailedDatabaseCall(databaseRunnable, exception); - } - }); - } - - private void processFailedDatabaseCall(DatabaseRunnable databaseRunnable, Exception exception) - { - System.err.println(databaseRunnable.getErrorMessage()); - exception.printStackTrace(); - - if (databaseRunnable.getFailedCounts() < 4) - { - databaseRunnable.incrementFailCount(); - - synchronized (QUEUE_LOCK) - { - _failedQueue.add(databaseRunnable); - } - } - } - - private void processDatabaseQueue() - { - Set clone; - - synchronized (QUEUE_LOCK) - { - clone = new HashSet<>(_failedQueue); - _failedQueue.clear(); - } - - clone.forEach(this::handleDatabaseCall); - } - - public JavaPlugin getPlugin() - { - return _plugin; + PROVIDER.get().handleMSSQLCall(uri, param); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/donation/repository/DonationRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/donation/repository/DonationRepository.java index 6363d018b..834d6cb10 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/donation/repository/DonationRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/donation/repository/DonationRepository.java @@ -11,13 +11,8 @@ import mineplex.core.database.MinecraftRepository; import mineplex.core.donation.repository.token.GemRewardToken; import mineplex.core.donation.repository.token.PurchaseToken; import mineplex.core.donation.repository.token.UnknownPurchaseToken; -import mineplex.core.server.remotecall.AsyncJsonWebCall; -import mineplex.core.server.remotecall.JsonWebCall; import mineplex.core.server.util.TransactionResponse; import mineplex.serverdata.database.DBPool; -import mineplex.serverdata.database.DatabaseRunnable; - -import org.bukkit.plugin.java.JavaPlugin; public class DonationRepository extends MinecraftRepository { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/elo/EloRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/elo/EloRepository.java index 7f622784e..5d8617a4a 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/elo/EloRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/elo/EloRepository.java @@ -9,10 +9,12 @@ import java.util.LinkedList; import java.util.List; import mineplex.core.common.util.Callback; +import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilTime; import mineplex.core.common.util.UtilTime.TimeUnit; import mineplex.core.database.MinecraftRepository; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnInt; import mineplex.serverdata.database.column.ColumnLong; @@ -22,7 +24,7 @@ import org.bukkit.scheduler.BukkitRunnable; import com.google.common.collect.Lists; -public class EloRepository extends MinecraftRepository +public class EloRepository extends RepositoryBase { private static String INSERT_ELO = "INSERT INTO eloRating (accountId, gameType, elo) VALUES (?, ?, ?);"; @@ -43,7 +45,7 @@ public class EloRepository extends MinecraftRepository public boolean saveElo(int accountId, int gameType, int oldElo, int elo) throws SQLException { List ret = Lists.newArrayList(); - Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> { + UtilServer.runAsync(() -> { boolean updateSucceeded = false; // If we're increasing in elo we verify the server version matches the database version (prevent d/c and double wins with concurrent matches) @@ -60,7 +62,7 @@ public class EloRepository extends MinecraftRepository updateSucceeded = true; } } - + ret.add(updateSucceeded); }); @@ -86,14 +88,14 @@ public class EloRepository extends MinecraftRepository public void getStrikeExpiry(int accountId, Callback call) { - Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> executeQuery(GRAB_STRIKE_EXPIRY, resultSet -> { + UtilServer.runAsync(() -> executeQuery(GRAB_STRIKE_EXPIRY, resultSet -> { boolean called = false; while (resultSet.next()) { called = true; call.run(resultSet.getLong(1)); } - + if (!called) { call.run(0L); @@ -103,21 +105,21 @@ public class EloRepository extends MinecraftRepository public void getBanExpiryAsync(int accountId, Callback call) { - Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> executeQuery(GRAB_BAN_EXPIRY, resultSet -> { + UtilServer.runAsync(() -> executeQuery(GRAB_BAN_EXPIRY, resultSet -> { boolean called = false; while (resultSet.next()) { called = true; call.run(resultSet.getLong(1)); } - + if (!called) { call.run(0L); } }, new ColumnInt("accountId", accountId))); } - + public long getBanExpiry(int accountId) { List expiry = new ArrayList(); @@ -127,23 +129,23 @@ public class EloRepository extends MinecraftRepository expiry.add(resultSet.getLong(1)); } }, new ColumnInt("accountId", accountId)); - + if (expiry.isEmpty()) expiry.add(System.currentTimeMillis() - 5000); - + return expiry.get(0); } public void getStrikes(int accountId, Callback call) { - Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> executeQuery(GRAB_STRIKES, resultSet -> { + UtilServer.runAsync(() -> executeQuery(GRAB_STRIKES, resultSet -> { boolean called = false; while (resultSet.next()) { called = true; call.run(resultSet.getInt(1)); } - + if (!called) { call.run(0); @@ -188,14 +190,14 @@ public class EloRepository extends MinecraftRepository long banEnd = System.currentTimeMillis() + UtilTime.convert(minutes, TimeUnit.MINUTES, TimeUnit.MILLISECONDS); long strikesExpire = System.currentTimeMillis() + UtilTime.convert(1, TimeUnit.DAYS, TimeUnit.MILLISECONDS); int newStrikes = Math.min(strikes + 1, 8); - - Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> executeUpdate(UPDATE_BAN, new ColumnInt("accountId", accountId), new ColumnInt("strikes", newStrikes), new ColumnLong("strikesExpire", strikesExpire), new ColumnLong("banEnd", banEnd))); + + UtilServer.runAsync(() -> executeUpdate(UPDATE_BAN, new ColumnInt("accountId", accountId), new ColumnInt("strikes", newStrikes), new ColumnLong("strikesExpire", strikesExpire), new ColumnLong("banEnd", banEnd))); }); } public void resetStrikes(int accountId) { - Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> executeUpdate(DELETE_STRIKES, new ColumnInt("accountId", accountId))); + UtilServer.runAsync(() -> executeUpdate(DELETE_STRIKES, new ColumnInt("accountId", accountId))); } public void getTopElo(int limit, Callback> callback) @@ -255,6 +257,6 @@ public class EloRepository extends MinecraftRepository } } } - }.runTaskAsynchronously(_plugin); + }.runTaskAsynchronously(UtilServer.getPlugin()); } } \ No newline at end of file diff --git a/Plugins/Mineplex.Core/src/mineplex/core/facebook/FacebookRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/facebook/FacebookRepository.java index 1a9f32c25..19674d595 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/facebook/FacebookRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/facebook/FacebookRepository.java @@ -8,11 +8,12 @@ import org.bukkit.plugin.java.JavaPlugin; import mineplex.core.common.util.Callback; 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; -public class FacebookRepository extends MinecraftRepository +public class FacebookRepository extends RepositoryBase { private static final String GET_CODE = "SELECT code, activated FROM facebook WHERE code = ?"; private static final String ACTIVATE_CODE = "UPDATE facebook SET activated = 1, accountId = ?, activationTime = NOW() WHERE code = ?"; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/friend/data/FriendRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/friend/data/FriendRepository.java index 12432b50e..c2bc5b608 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/friend/data/FriendRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/friend/data/FriendRepository.java @@ -15,6 +15,7 @@ import org.bukkit.plugin.java.JavaPlugin; import mineplex.core.common.util.NautHashMap; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.ResultSetCallable; import mineplex.serverdata.database.column.ColumnVarChar; import mineplex.core.friend.FriendStatusType; @@ -24,7 +25,7 @@ import mineplex.serverdata.data.PlayerStatus; import mineplex.serverdata.redis.RedisDataRepository; import mineplex.serverdata.servers.ServerManager; -public class FriendRepository extends MinecraftRepository +public class FriendRepository extends RepositoryBase { private static String CREATE_FRIEND_TABLE = "CREATE TABLE IF NOT EXISTS accountFriend (id INT NOT NULL AUTO_INCREMENT, uuidSource VARCHAR(100), uuidTarget VARCHAR(100), status VARCHAR(100), PRIMARY KEY (id), UNIQUE INDEX uuidIndex (uuidSource, uuidTarget));"; private static String RETRIEVE_MULTIPLE_FRIEND_RECORDS = "SELECT uuidSource, tA.Name, status, tA.lastLogin, now(), uuidTarget FROM accountFriend INNER Join accounts AS fA ON fA.uuid = uuidSource INNER JOIN accounts AS tA ON tA.uuid = uuidTarget WHERE uuidSource IN "; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/giveaway/GiveawayRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/giveaway/GiveawayRepository.java index 01b07bc7e..a88efc3fd 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/giveaway/GiveawayRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/giveaway/GiveawayRepository.java @@ -12,12 +12,13 @@ import mineplex.core.database.MinecraftRepository; import org.bukkit.plugin.java.JavaPlugin; 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; import mineplex.serverdata.Region; -public class GiveawayRepository extends MinecraftRepository +public class GiveawayRepository extends RepositoryBase { private static final String INSERT_GIVEAWAY = "INSERT INTO Account.accountGiveaway (giveawayId, accountId, cooldownId, region, serverName, time, uuid) VALUES (?, ?, ?, ?, ?, now(), ?)"; private static final String LOAD_GIVEAWAY = "SELECT id, name, prettyName, header, message, max, notifyNetwork, notifyCooldown, canWinTwice FROM Account.giveaway WHERE enabled = TRUE"; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/ignore/data/IgnoreRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/ignore/data/IgnoreRepository.java index 14ea9c2e5..d69fa55b1 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/ignore/data/IgnoreRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/ignore/data/IgnoreRepository.java @@ -5,12 +5,13 @@ import java.sql.SQLException; import mineplex.core.database.MinecraftRepository; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnVarChar; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; -public class IgnoreRepository extends MinecraftRepository +public class IgnoreRepository extends RepositoryBase { private static String ADD_IGNORE_RECORD = "INSERT INTO accountIgnore (uuidIgnorer, uuidIgnored) SELECT fA.uuid AS uuidIgnorer, tA.uuid AS uuidIgnored FROM accounts as fA LEFT JOIN accounts AS tA ON tA.name = ? WHERE fA.name = ?;"; private static String DELETE_IGNORE_RECORD = "DELETE aF FROM accountIgnore AS aF INNER JOIN accounts as fA ON aF.uuidIgnorer = fA.uuid INNER JOIN accounts AS tA ON aF.uuidIgnored = tA.uuid WHERE fA.name = ? AND tA.name = ?;"; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/incognito/repository/IncognitoRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/incognito/repository/IncognitoRepository.java index fbb8243b7..adebcf4cf 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/incognito/repository/IncognitoRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/incognito/repository/IncognitoRepository.java @@ -3,9 +3,10 @@ package mineplex.core.incognito.repository; import mineplex.core.database.MinecraftRepository; import mineplex.core.incognito.IncognitoManager; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnInt; -public class IncognitoRepository extends MinecraftRepository +public class IncognitoRepository extends RepositoryBase { private static final String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS incognitoStaff (accountId INT NOT NULL, status TINYINT(1) DEFAULT '0', PRIMARY KEY (accountId));"; private static final String INSERT_STATUS = "INSERT INTO incognitoStaff (accountId, status) VALUES (?, ?);"; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/inventory/data/InventoryRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/inventory/data/InventoryRepository.java index b679ab62c..6bf7de0f5 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/inventory/data/InventoryRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/inventory/data/InventoryRepository.java @@ -10,13 +10,14 @@ import org.bukkit.plugin.java.JavaPlugin; import mineplex.core.common.util.NautHashMap; 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; import mineplex.core.inventory.ClientInventory; import mineplex.core.inventory.ClientItem; -public class InventoryRepository extends MinecraftRepository +public class InventoryRepository extends RepositoryBase { private static String CREATE_INVENTORY_TABLE = "CREATE TABLE IF NOT EXISTS items (id INT NOT NULL AUTO_INCREMENT, name VARCHAR(100), rarity INT, PRIMARY KEY (id), INDEX mameIndex (name));"; private static String CREATE_INVENTORY_RELATION_TABLE = "CREATE TABLE IF NOT EXISTS accountInventory (id INT NOT NULL AUTO_INCREMENT, accountId INT NOT NULL, itemId INT NOT NULL, count INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (accountId) REFERENCES accounts(id), FOREIGN KEY (itemId) REFERENCES items(id), UNIQUE INDEX accountItemIndex (accountId, itemId));"; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/leaderboard/StatEventsRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/leaderboard/StatEventsRepository.java index c4b129df4..3acf6a2f8 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/leaderboard/StatEventsRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/leaderboard/StatEventsRepository.java @@ -2,6 +2,7 @@ package mineplex.core.leaderboard; import mineplex.core.database.MinecraftRepository; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnInt; import mineplex.serverdata.database.column.ColumnVarChar; @@ -15,7 +16,7 @@ import org.bukkit.plugin.java.JavaPlugin; * @author MrTwiggy * */ -public class StatEventsRepository extends MinecraftRepository +public class StatEventsRepository extends RepositoryBase { // Insert or update stat events query diff --git a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java index ce38025e4..c88da63c7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/pet/PetManager.java @@ -101,13 +101,13 @@ public class PetManager extends MiniClientPlugin private ShapeWings _wingsEdge = new ShapeWings(ParticleType.RED_DUST.particleName, new org.bukkit.util.Vector(0.1,0.1,0.1), 1, 0, true, ShapeWings.DEFAULT_ROTATION, ShapeWings.SMALL_ANGEL_WING_PATTERN); public PetManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager - , InventoryManager inventoryManager, DisguiseManager disguiseManager, mineplex.core.creature.Creature creatureModule, BlockRestore restore, String webAddress) + , InventoryManager inventoryManager, DisguiseManager disguiseManager, mineplex.core.creature.Creature creatureModule, BlockRestore restore) { super("Pet Manager", plugin); _creatureModule = creatureModule; _disguiseManager = disguiseManager; - _repository = new PetRepository(plugin, webAddress); + _repository = new PetRepository(); _blockRestore = restore; _donationManager = donationManager; _clientManager = clientManager; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/pet/repository/PetRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/pet/repository/PetRepository.java index 2454ff60a..c373aef52 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/pet/repository/PetRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/pet/repository/PetRepository.java @@ -1,46 +1,23 @@ package mineplex.core.pet.repository; -import java.util.List; - -import org.bukkit.plugin.java.JavaPlugin; - -import com.google.gson.reflect.TypeToken; - import mineplex.core.database.MinecraftRepository; import mineplex.core.pet.repository.token.PetChangeToken; -import mineplex.core.pet.repository.token.PetExtraToken; -import mineplex.core.server.remotecall.AsyncJsonWebCall; -import mineplex.core.server.remotecall.JsonWebCall; import mineplex.serverdata.database.DBPool; public class PetRepository extends MinecraftRepository { - private String _webAddress; - - public PetRepository(JavaPlugin plugin, String webAddress) + public PetRepository() { super(DBPool.getAccount()); - - _webAddress = webAddress; } public void AddPet(final PetChangeToken token) { - new AsyncJsonWebCall(_webAddress + "Pets/AddPet").Execute(token); - } - - public void RemovePet(final PetChangeToken token) - { - new AsyncJsonWebCall(_webAddress + "Pets/RemovePet").Execute(token); - } - - public List GetPetExtras(List petExtraTokens) - { - return new JsonWebCall(_webAddress + "Pets/GetPetExtras").Execute(new TypeToken>(){}.getType(), petExtraTokens); + handleAsyncMSSQLCall("Pets/AddPet", token); } public void UpdatePet(final PetChangeToken token) { - new AsyncJsonWebCall(_webAddress + "Pets/UpdatePet").Execute(token); + handleAsyncMSSQLCall("Pets/UpdatePet", token); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/poll/PollRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/poll/PollRepository.java index 850d006c9..b65345cf4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/poll/PollRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/poll/PollRepository.java @@ -10,6 +10,7 @@ import mineplex.core.database.MinecraftRepository; import org.bukkit.plugin.java.JavaPlugin; 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; @@ -17,7 +18,7 @@ import mineplex.serverdata.database.column.ColumnVarChar; /** * Created by Shaun on 8/16/2014. */ -public class PollRepository extends MinecraftRepository +public class PollRepository extends RepositoryBase { private static String CREATE_POLL_TABLE = "CREATE TABLE IF NOT EXISTS polls (id INT NOT NULL AUTO_INCREMENT, enabled BIT(1), question VARCHAR(256) NOT NULL, answerA VARCHAR(256) NOT NULL, answerB VARCHAR(256), answerC VARCHAR(256), answerD VARCHAR(256), coinReward INT NOT NULL, displayType INT DEFAULT 0 NOT NULL, PRIMARY KEY (id));"; private static String CREATE_RELATION_TABLE = "CREATE TABLE IF NOT EXISTS accountPolls (id INT NOT NULL AUTO_INCREMENT, accountId INT NOT NULL, pollId INT NOT NULL, value TINYINT(1) NOT NULL, PRIMARY KEY (id), FOREIGN KEY (accountId) REFERENCES accounts(id), FOREIGN KEY (pollId) REFERENCES polls(id), UNIQUE INDEX accountPollIndex (accountId, pollId));"; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/preferences/PreferencesRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/preferences/PreferencesRepository.java index c3f280d65..a1b7c422e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/preferences/PreferencesRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/preferences/PreferencesRepository.java @@ -3,13 +3,14 @@ package mineplex.core.preferences; import mineplex.core.database.MinecraftRepository; import mineplex.core.progression.util.SQLStatement; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnInt; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; -public class PreferencesRepository extends MinecraftRepository +public class PreferencesRepository extends RepositoryBase { private static String UPSERT_ACCOUNT = "INSERT INTO `preferences` VALUES(?, ?, ?) ON DUPLICATE KEY UPDATE `value`= ?"; @@ -91,7 +92,7 @@ public class PreferencesRepository extends MinecraftRepository public void async(Runnable runnable) { - getPlugin().getServer().getScheduler().runTaskAsynchronously(getPlugin(), runnable); + _manager.runAsync(runnable); } /** diff --git a/Plugins/Mineplex.Core/src/mineplex/core/progression/KitProgressionRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/progression/KitProgressionRepository.java index 6eb391bfb..8683a5cfa 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/progression/KitProgressionRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/progression/KitProgressionRepository.java @@ -1,9 +1,12 @@ package mineplex.core.progression; +import mineplex.core.common.util.UtilServer; import mineplex.core.database.MinecraftRepository; import mineplex.core.progression.data.PlayerKit; import mineplex.core.progression.util.SQLStatement; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; + import org.bukkit.Bukkit; import java.sql.Connection; @@ -15,7 +18,7 @@ import java.util.UUID; /** * Handles all things database related. */ -public class KitProgressionRepository extends MinecraftRepository +public class KitProgressionRepository extends RepositoryBase { private final String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS `kitProgression` (" + @@ -72,7 +75,7 @@ public class KitProgressionRepository extends MinecraftRepository if (effect == -1) { //Something went wrong uh oh - this.getPlugin().getLogger().severe("Inserting new Kit Data for " + playerKit.getUuid() + " failed!"); + _kitProgressionManager.getPlugin().getLogger().severe("Inserting new Kit Data for " + playerKit.getUuid() + " failed!"); } } catch (SQLException e) { @@ -117,7 +120,7 @@ public class KitProgressionRepository extends MinecraftRepository int effect = executeUpdate(statement); if (effect == -1) { - this.getPlugin().getLogger().severe("Updating default value for" + playerKit.getUuid().toString() + "'s kit failed!"); + _kitProgressionManager.getPlugin().getLogger().severe("Updating default value for" + playerKit.getUuid().toString() + "'s kit failed!"); } } catch (SQLException e) { @@ -236,7 +239,7 @@ public class KitProgressionRepository extends MinecraftRepository private void async(Runnable runnable) { - Bukkit.getScheduler().runTaskAsynchronously(_plugin, runnable); + UtilServer.runAsync(runnable); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/punish/Punish.java b/Plugins/Mineplex.Core/src/mineplex/core/punish/Punish.java index 560cd293d..f72bd4747 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/punish/Punish.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/punish/Punish.java @@ -46,13 +46,13 @@ public class Punish extends MiniPlugin private PunishRepository _repository; private CoreClientManager _clientManager; - public Punish(JavaPlugin plugin, String webServerAddress, CoreClientManager clientManager) + public Punish(JavaPlugin plugin, CoreClientManager clientManager) { super("Punish", plugin); _punishClients = new HashMap(); _clientManager = clientManager; - _repository = new PunishRepository(webServerAddress); + _repository = new PunishRepository(); ServerCommandManager.getInstance().registerCommandType("PunishCommand", mineplex.serverdata.commands.PunishCommand.class, new PunishmentHandler(this)); } @@ -416,11 +416,6 @@ public class Punish extends MiniPlugin }, punishmentId, target, reason, client.getName()); } - public void RemoveBan(String name, String reason) - { - _repository.RemoveBan(name, reason); - } - public CoreClientManager GetClients() { return _clientManager; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/punish/PunishRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/punish/PunishRepository.java index 3ed3d380d..01fe48342 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/punish/PunishRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/punish/PunishRepository.java @@ -3,25 +3,24 @@ package mineplex.core.punish; import java.util.List; import com.google.gson.reflect.TypeToken; + import mineplex.core.common.util.Callback; +import mineplex.core.database.MinecraftRepository; import mineplex.core.punish.Tokens.PunishClientToken; import mineplex.core.punish.Tokens.PunishToken; import mineplex.core.punish.Tokens.RemovePunishToken; -import mineplex.core.server.remotecall.AsyncJsonWebCall; -import mineplex.core.server.remotecall.JsonWebCall; +import mineplex.serverdata.database.DBPool; -public class PunishRepository +public class PunishRepository extends MinecraftRepository { - private String _webAddress; - - public PunishRepository(String webServerAddress) + public PunishRepository() { - _webAddress = webServerAddress; + super(DBPool.getAccount()); } - + public void Punish(Callback callback, String target, String category, PunishmentSentence punishment, String reason, double duration, String admin, int severity) { - PunishToken token = new PunishToken(); + PunishToken token = new PunishToken(); token.Target = target; token.Category = category; token.Sentence = punishment.toString(); @@ -30,7 +29,7 @@ public class PunishRepository token.Admin = admin; token.Severity = severity; - new AsyncJsonWebCall(_webAddress + "PlayerAccount/Punish").Execute(String.class, callback, token); + handleMSSQLCall("PlayerAccount/Punish", token, String.class, callback::run); } public void RemovePunishment(Callback callback, int id, String target, String reason, String admin) @@ -41,34 +40,16 @@ public class PunishRepository token.Reason = reason; token.Admin = admin; - new AsyncJsonWebCall(_webAddress + "PlayerAccount/RemovePunishment").Execute(String.class, callback, token); + handleMSSQLCall("PlayerAccount/RemovePunishment", token, String.class, callback::run); } - - public void LoadPunishClient(String target, Callback callback) + + public void LoadPunishClient(String target, Callback callback) { - new AsyncJsonWebCall(_webAddress + "PlayerAccount/GetPunishClient").Execute(PunishClientToken.class, callback, target); + handleMSSQLCall("PlayerAccount/GetPunishClient", target, PunishClientToken.class, callback::run); } - + public void MatchPlayerName(final Callback> callback, final String userName) { - Thread asyncThread = new Thread(new Runnable() - { - public void run() - { - List tokenList = new JsonWebCall(_webAddress + "PlayerAccount/GetMatches").Execute(new TypeToken>(){}.getType(), userName); - callback.run(tokenList); - } - }); - - asyncThread.start(); - } - - public void RemoveBan(String name, String reason) - { - RemovePunishToken token = new RemovePunishToken(); - token.Target = name; - token.Reason = reason; - - new JsonWebCall(_webAddress + "PlayerAccount/RemoveBan").Execute(String.class, token); + handleMSSQLCall("PlayerAccount/GetMatches", userName, new TypeToken>(){}.getType(), callback::run); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/rankGiveaway/eternal/EternalGiveawayRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/rankGiveaway/eternal/EternalGiveawayRepository.java index ab8ce45f3..867d5d5c6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/rankGiveaway/eternal/EternalGiveawayRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/rankGiveaway/eternal/EternalGiveawayRepository.java @@ -9,10 +9,11 @@ import org.bukkit.plugin.java.JavaPlugin; import mineplex.core.database.MinecraftRepository; import mineplex.serverdata.Region; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnInt; import mineplex.serverdata.database.column.ColumnVarChar; -public class EternalGiveawayRepository extends MinecraftRepository +public class EternalGiveawayRepository extends RepositoryBase { private static final String ADD_ETERNAL = "INSERT INTO eternalGiveaway (accountId, region, serverName) VALUES (?, ?, ?)"; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/rankGiveaway/titangiveaway/TitanGiveawayRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/rankGiveaway/titangiveaway/TitanGiveawayRepository.java index e50c6be44..bc8201eae 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/rankGiveaway/titangiveaway/TitanGiveawayRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/rankGiveaway/titangiveaway/TitanGiveawayRepository.java @@ -8,11 +8,12 @@ import mineplex.core.database.MinecraftRepository; import org.bukkit.plugin.java.JavaPlugin; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnInt; import mineplex.serverdata.database.column.ColumnVarChar; import mineplex.serverdata.Region; -public class TitanGiveawayRepository extends MinecraftRepository +public class TitanGiveawayRepository extends RepositoryBase { private static final String ADD_TITAN = "INSERT INTO titanGiveaway (accountId, region, serverName) VALUES (?, ?, ?)"; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/server/remotecall/AsyncJsonWebCall.java b/Plugins/Mineplex.Core/src/mineplex/core/server/remotecall/AsyncJsonWebCall.java deleted file mode 100644 index 3c2676c69..000000000 --- a/Plugins/Mineplex.Core/src/mineplex/core/server/remotecall/AsyncJsonWebCall.java +++ /dev/null @@ -1,63 +0,0 @@ -package mineplex.core.server.remotecall; - -import mineplex.core.common.util.Callback; - -public class AsyncJsonWebCall extends JsonWebCall -{ - public AsyncJsonWebCall(String url) - { - super(url); - } - - public void Execute() - { - Thread asyncThread = new Thread(new Runnable() - { - public void run() - { - AsyncJsonWebCall.super.Execute(); - } - }); - - asyncThread.start(); - } - - public void Execute(final Object argument) - { - Thread asyncThread = new Thread(new Runnable() - { - public void run() - { - AsyncJsonWebCall.super.Execute(argument); - } - }); - - asyncThread.start(); - } - - public void Execute(final Class callbackClass, final Callback callback) - { - Thread asyncThread = new Thread(new Runnable() - { - public void run() - { - AsyncJsonWebCall.super.Execute(callbackClass, callback); - } - }); - - asyncThread.start(); - } - - public void Execute(final Class callbackClass, final Callback callback, final Object argument) - { - Thread asyncThread = new Thread(new Runnable() - { - public void run() - { - AsyncJsonWebCall.super.Execute(callbackClass, callback, argument); - } - }); - - asyncThread.start(); - } -} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/spawn/SpawnRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/spawn/SpawnRepository.java index 7e0b5c48f..393a68e1b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/spawn/SpawnRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/spawn/SpawnRepository.java @@ -9,10 +9,11 @@ import mineplex.core.database.MinecraftRepository; import org.bukkit.plugin.java.JavaPlugin; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.ResultSetCallable; import mineplex.serverdata.database.column.ColumnVarChar; -public class SpawnRepository extends MinecraftRepository +public class SpawnRepository extends RepositoryBase { private static String CREATE_SPAWN_TABLE = "CREATE TABLE IF NOT EXISTS spawns (id INT NOT NULL AUTO_INCREMENT, serverName VARCHAR(100), location VARCHAR(100), PRIMARY KEY (id), INDEX serverNameIndex (serverName));"; private static String RETRIEVE_SPAWNS = "SELECT location FROM spawns WHERE serverName = ?;"; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/stats/StatsRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/stats/StatsRepository.java index b9984dde5..518021120 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/stats/StatsRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/stats/StatsRepository.java @@ -18,9 +18,10 @@ import org.jooq.types.ULong; import mineplex.core.database.MinecraftRepository; import mineplex.database.Tables; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnVarChar; -public class StatsRepository extends MinecraftRepository +public class StatsRepository extends RepositoryBase { private static final String RETRIEVE_STATS = "SELECT id, name FROM stats;"; private static final String INSERT_STAT = "INSERT INTO stats (name) VALUES (?);"; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/task/TaskManager.java b/Plugins/Mineplex.Core/src/mineplex/core/task/TaskManager.java index a5dc99212..2d7d41fc3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/task/TaskManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/task/TaskManager.java @@ -25,7 +25,7 @@ public class TaskManager extends MiniDbClientPlugin private NautHashMap _tasks = new NautHashMap(); - public TaskManager(JavaPlugin plugin, CoreClientManager clientManager, String webServerAddress) + public TaskManager(JavaPlugin plugin, CoreClientManager clientManager) { super("Task Manager", plugin, clientManager); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/task/repository/TaskRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/task/repository/TaskRepository.java index 27e314049..429e2874d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/task/repository/TaskRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/task/repository/TaskRepository.java @@ -9,13 +9,14 @@ import mineplex.core.database.MinecraftRepository; import org.bukkit.plugin.java.JavaPlugin; 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; import mineplex.core.task.Task; import mineplex.core.task.TaskClient; -public class TaskRepository extends MinecraftRepository +public class TaskRepository extends RepositoryBase { private static String ADD_ACCOUNT_TASK = "INSERT INTO accountTasks (accountId, taskId) VALUES (?, ?);"; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/thank/ThankManager.java b/Plugins/Mineplex.Core/src/mineplex/core/thank/ThankManager.java index 900a3f4f7..44291ba7f 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/thank/ThankManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/thank/ThankManager.java @@ -35,7 +35,7 @@ public class ThankManager extends MiniDbClientPlugin _donationManager = donationManager; - _thankRepository = new ThankRepository(plugin); + _thankRepository = new ThankRepository(); } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/thank/ThankRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/thank/ThankRepository.java index 67d26ef6a..1e2d752e6 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/thank/ThankRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/thank/ThankRepository.java @@ -4,16 +4,17 @@ import mineplex.core.database.MinecraftRepository; import mineplex.database.routines.AddThank; import mineplex.database.routines.ClaimThank; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnInt; import org.bukkit.plugin.java.JavaPlugin; import java.sql.SQLException; -public class ThankRepository extends MinecraftRepository +public class ThankRepository extends RepositoryBase { private static final String GET_THANK_DATA = "SELECT SUM(thankAmount) FROM accountThankTransactions WHERE receiverId = ? AND claimed = FALSE"; - public ThankRepository(JavaPlugin plugin) + public ThankRepository() { super(DBPool.getAccount()); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/tournament/TournamentRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/tournament/TournamentRepository.java index 00783c52d..97382390b 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/tournament/TournamentRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/tournament/TournamentRepository.java @@ -12,11 +12,12 @@ import mineplex.core.database.MinecraftRepository; import mineplex.core.tournament.data.Tournament; import mineplex.core.tournament.data.TournamentInviteStatus; 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; -public class TournamentRepository extends MinecraftRepository +public class TournamentRepository extends RepositoryBase { private static String REGISTER_FOR_TOURNAMENT = "INSERT INTO tournamentTeams(accountId, tournamentId, status) VALUES (?, ?, ?);"; private static String UNREGISTER_FOR_TOURNAMENT = "DELETE FROM TTI FROM tournamentTeamInvites AS TTI INNER JOIN tournamentTeams AS TT ON TT.id = TTI.teamId WHERE TTI.accountId = ? AND TT.tournamentId = ?;"; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/utils/UtilScheduler.java b/Plugins/Mineplex.Core/src/mineplex/core/utils/UtilScheduler.java index d83cda20f..c0c9ff0e3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/utils/UtilScheduler.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/utils/UtilScheduler.java @@ -1,21 +1,22 @@ package mineplex.core.utils; import org.bukkit.plugin.Plugin; +import org.bukkit.scheduler.BukkitTask; import mineplex.core.common.util.UtilServer; import mineplex.core.updater.UpdateType; public class UtilScheduler { - public static void runEvery(UpdateType speed, Runnable action) + public static BukkitTask runEvery(UpdateType speed, Runnable action) { Plugin plugin = UtilServer.getPlugin(); - plugin.getServer().getScheduler().runTaskTimer(plugin, action, 0, (int) Math.ceil(speed.getMilliseconds() / 50.0)); + return plugin.getServer().getScheduler().runTaskTimer(plugin, action, 0, (int) Math.ceil(speed.getMilliseconds() / 50.0)); } - public static void runAsyncEvery(UpdateType speed, Runnable action) + public static BukkitTask runAsyncEvery(UpdateType speed, Runnable action) { Plugin plugin = UtilServer.getPlugin(); - plugin.getServer().getScheduler().runTaskTimerAsynchronously(plugin, action, 0, (int) Math.ceil(speed.getMilliseconds() / 50.0)); + return plugin.getServer().getScheduler().runTaskTimerAsynchronously(plugin, action, 0, (int) Math.ceil(speed.getMilliseconds() / 50.0)); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/valentines/ValentinesGiftRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/valentines/ValentinesGiftRepository.java index 16c5e85c5..99fdd9cc3 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/valentines/ValentinesGiftRepository.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/valentines/ValentinesGiftRepository.java @@ -2,10 +2,11 @@ package mineplex.core.valentines; import mineplex.core.database.MinecraftRepository; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnInt; import org.bukkit.plugin.java.JavaPlugin; -public class ValentinesGiftRepository extends MinecraftRepository +public class ValentinesGiftRepository extends RepositoryBase { private String GIVE_GIFT = "INSERT INTO accountValentinesGift (senderId, targetId) VALUES (?, ?);"; diff --git a/Plugins/Mineplex.EnjinTranslator/src/mineplex/enjinTranslator/Enjin.java b/Plugins/Mineplex.EnjinTranslator/src/mineplex/enjinTranslator/Enjin.java index 178f4bbf0..f9bf43da3 100644 --- a/Plugins/Mineplex.EnjinTranslator/src/mineplex/enjinTranslator/Enjin.java +++ b/Plugins/Mineplex.EnjinTranslator/src/mineplex/enjinTranslator/Enjin.java @@ -54,7 +54,7 @@ public class Enjin extends MiniPlugin implements CommandExecutor _clientManager = clientManager; _donationManager = donationManager; _inventoryManager = inventoryManager; - _punish = new Punish(plugin, plugin.GetWebServerAddress(), clientManager); + _punish = new Punish(plugin, clientManager); _purchaseManager = new PurchaseManager(plugin); _powerPlayClubRepository = new PowerPlayClubRepository(plugin, clientManager, donationManager); diff --git a/Plugins/Mineplex.EnjinTranslator/src/mineplex/enjinTranslator/EnjinTranslator.java b/Plugins/Mineplex.EnjinTranslator/src/mineplex/enjinTranslator/EnjinTranslator.java index bdfb4cac3..0f4a6950c 100644 --- a/Plugins/Mineplex.EnjinTranslator/src/mineplex/enjinTranslator/EnjinTranslator.java +++ b/Plugins/Mineplex.EnjinTranslator/src/mineplex/enjinTranslator/EnjinTranslator.java @@ -1,5 +1,6 @@ package mineplex.enjinTranslator; +import mineplex.core.Constants; import mineplex.core.account.CoreClientManager; import mineplex.core.command.CommandCenter; import mineplex.core.donation.DonationManager; @@ -11,20 +12,18 @@ import static mineplex.core.Managers.require; public class EnjinTranslator extends JavaPlugin { - private String WEB_CONFIG = "webServer"; - @Override public void onEnable() { - getConfig().addDefault(WEB_CONFIG, "http://accounts.mineplex.com/"); - getConfig().set(WEB_CONFIG, getConfig().getString(WEB_CONFIG)); + getConfig().addDefault(Constants.WEB_CONFIG_KEY, Constants.WEB_ADDRESS); + getConfig().set(Constants.WEB_CONFIG_KEY, getConfig().getString(Constants.WEB_CONFIG_KEY)); saveConfig(); //Static Modules CommandCenter.Initialize(this); //Core Modules - CoreClientManager clientManager = new CoreClientManager(this, GetWebServerAddress()); + CoreClientManager clientManager = new CoreClientManager(this); CommandCenter.Instance.setClientManager(clientManager); DonationManager donationManager = require(DonationManager.class); @@ -37,8 +36,7 @@ public class EnjinTranslator extends JavaPlugin public String GetWebServerAddress() { - String webServerAddress = getConfig().getString(WEB_CONFIG); - return webServerAddress; + return getConfig().getString(Constants.WEB_CONFIG_KEY); } } diff --git a/Plugins/Mineplex.EnjinTranslator/src/mineplex/enjinTranslator/TempRepository.java b/Plugins/Mineplex.EnjinTranslator/src/mineplex/enjinTranslator/TempRepository.java index 12c20bcff..91ddd00c9 100644 --- a/Plugins/Mineplex.EnjinTranslator/src/mineplex/enjinTranslator/TempRepository.java +++ b/Plugins/Mineplex.EnjinTranslator/src/mineplex/enjinTranslator/TempRepository.java @@ -4,10 +4,11 @@ import mineplex.core.database.MinecraftRepository; import org.bukkit.plugin.java.JavaPlugin; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnInt; import mineplex.serverdata.database.column.ColumnVarChar; -public class TempRepository extends MinecraftRepository +public class TempRepository extends RepositoryBase { private static String INSERT_CLIENT_INVENTORY = "INSERT INTO accountInventory (accountId, itemId, count) SELECT accounts.id, 5, ? FROM accounts WHERE accounts.name = ? ON DUPLICATE KEY UPDATE count=count + VALUES(count);"; diff --git a/Plugins/Mineplex.EnjinTranslator/src/mineplex/enjinTranslator/purchase/data/PurchaseRepository.java b/Plugins/Mineplex.EnjinTranslator/src/mineplex/enjinTranslator/purchase/data/PurchaseRepository.java index 946b00303..ba90e4807 100644 --- a/Plugins/Mineplex.EnjinTranslator/src/mineplex/enjinTranslator/purchase/data/PurchaseRepository.java +++ b/Plugins/Mineplex.EnjinTranslator/src/mineplex/enjinTranslator/purchase/data/PurchaseRepository.java @@ -9,12 +9,13 @@ import mineplex.core.database.MinecraftRepository; import org.bukkit.plugin.java.JavaPlugin; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.ResultSetCallable; import mineplex.serverdata.database.column.ColumnBoolean; import mineplex.serverdata.database.column.ColumnInt; import mineplex.serverdata.database.column.ColumnVarChar; -public class PurchaseRepository extends MinecraftRepository +public class PurchaseRepository extends RepositoryBase { private static String INSERT_ACCOUNT_PURCHASE = "INSERT INTO accountPurchases (accountId, packageId, amount, date, success) VALUES (?, ?, ?, now(), ?);"; diff --git a/Plugins/Mineplex.Game.Clans.Core/src/mineplex/game/clans/core/repository/ClanRepository.java b/Plugins/Mineplex.Game.Clans.Core/src/mineplex/game/clans/core/repository/ClanRepository.java index 26b4e0926..f0078e3d7 100644 --- a/Plugins/Mineplex.Game.Clans.Core/src/mineplex/game/clans/core/repository/ClanRepository.java +++ b/Plugins/Mineplex.Game.Clans.Core/src/mineplex/game/clans/core/repository/ClanRepository.java @@ -13,6 +13,7 @@ import mineplex.core.common.util.Callback; import mineplex.core.common.util.NautHashMap; import mineplex.core.database.MinecraftRepository; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.ResultSetCallable; import mineplex.serverdata.database.column.Column; import mineplex.serverdata.database.column.ColumnBoolean; @@ -36,7 +37,7 @@ import org.jooq.DSLContext; import static mineplex.database.Tables.*; import static org.jooq.impl.DSL.*; -public class ClanRepository extends MinecraftRepository +public class ClanRepository extends RepositoryBase { private static String CREATE_CLAN_TABLE = "CREATE TABLE IF NOT EXISTS clans (id INT NOT NULL AUTO_INCREMENT, serverId INT NOT NULL, name VARCHAR(100), description VARCHAR(140), home VARCHAR(140), admin BIT(1), dateCreated DATETIME, lastOnline DATETIME, energy INT, PRIMARY KEY (id), INDEX clanName (name));"; private static String CREATE_ACCOUNT_CLAN_TABLE = "CREATE TABLE IF NOT EXISTS accountClan (id INT NOT NULL AUTO_INCREMENT, accountId INT, clanId INT, clanRole VARCHAR(140), PRIMARY KEY (id), FOREIGN KEY (accountId) REFERENCES accounts(id), FOREIGN KEY (clanId) REFERENCES clans(id), INDEX clanIdIndex (clanId));"; diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Clans.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Clans.java index 7c31c9180..e4379a1aa 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Clans.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Clans.java @@ -10,6 +10,7 @@ import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; import org.bukkit.plugin.java.JavaPlugin; import org.spigotmc.SpigotConfig; +import mineplex.core.Constants; import mineplex.core.CustomTagFix; import mineplex.core.FoodDupeFix; import mineplex.core.TimingsFix; @@ -77,7 +78,6 @@ import static mineplex.core.Managers.require; public class Clans extends JavaPlugin { public static final String MAP = "Season 2"; - private String WEB_CONFIG = "webServer"; // Modules private CoreClientManager _clientManager; @@ -90,17 +90,15 @@ public class Clans extends JavaPlugin Bukkit.setSpawnRadius(0); // Configs - getConfig().addDefault(WEB_CONFIG, "http://accounts.mineplex.com/"); - getConfig().set(WEB_CONFIG, getConfig().getString(WEB_CONFIG)); + getConfig().addDefault(Constants.WEB_CONFIG_KEY, Constants.WEB_ADDRESS); + getConfig().set(Constants.WEB_CONFIG_KEY, getConfig().getString(Constants.WEB_CONFIG_KEY)); saveConfig(); - String webServerAddress = getConfig().getString(WEB_CONFIG); - // Logger.initialize(this); // Static Modules CommandCenter.Initialize(this); - _clientManager = new CoreClientManager(this, webServerAddress); + _clientManager = new CoreClientManager(this); CommandCenter.Instance.setClientManager(_clientManager); require(TimingsFix.class); @@ -137,7 +135,7 @@ public class Clans extends JavaPlugin ClansBanManager clansBans = new ClansBanManager(this, _clientManager, _donationManager); - Punish punish = new Punish(this, webServerAddress, _clientManager); + Punish punish = new Punish(this, _clientManager); DisguiseManager disguiseManager = require(DisguiseManager.class); Creature creature = new Creature(this); @@ -254,7 +252,7 @@ public class Clans extends JavaPlugin GearManager customGear = new GearManager(this, packetHandler, _clientManager, _donationManager); HologramManager hologram = new HologramManager(this, packetHandler); - _clansManager = new ClansManager(this, clansBans, serverStatusManager.getCurrentServerName(), incognito, packetHandler, punish, _clientManager, _donationManager, preferenceManager, blockRestore, statsManager, teleport, chat, customGear, hologram, inventory, webServerAddress); + _clansManager = new ClansManager(this, clansBans, serverStatusManager.getCurrentServerName(), incognito, packetHandler, punish, _clientManager, _donationManager, preferenceManager, blockRestore, statsManager, teleport, chat, customGear, hologram, inventory); new Recipes(this); new Farming(this); new BuildingShop(_clansManager, _clientManager, _donationManager); diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansManager.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansManager.java index d78744a35..864afce86 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansManager.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ClansManager.java @@ -252,7 +252,7 @@ public class ClansManager extends MiniClientPluginimplements IRelati // Spawn area - public ClansManager(JavaPlugin plugin, ClansBanManager clansBans, String serverName, IncognitoManager incognitoManager, PacketHandler packetHandler, Punish punish, CoreClientManager clientManager, DonationManager donationManager, PreferencesManager preferencesManager, BlockRestore blockRestore, StatsManager statsManager, Teleport teleport, Chat chat, GearManager gearManager, HologramManager hologramManager, InventoryManager inventoryManager, String webServerAddress) + public ClansManager(JavaPlugin plugin, ClansBanManager clansBans, String serverName, IncognitoManager incognitoManager, PacketHandler packetHandler, Punish punish, CoreClientManager clientManager, DonationManager donationManager, PreferencesManager preferencesManager, BlockRestore blockRestore, StatsManager statsManager, Teleport teleport, Chat chat, GearManager gearManager, HologramManager hologramManager, InventoryManager inventoryManager) { super("Clans Manager", plugin); @@ -288,7 +288,7 @@ public class ClansManager extends MiniClientPluginimplements IRelati _worldEvent = new WorldEventManager(plugin, this, _damageManager, _lootManager, blockRestore, _clanRegions, null); - _taskManager = new TaskManager(plugin, _clientManager, webServerAddress); + _taskManager = new TaskManager(plugin, _clientManager); ClanTips = new ClanTips(plugin, this, preferencesManager); @@ -341,8 +341,8 @@ public class ClansManager extends MiniClientPluginimplements IRelati itemIgnore.add("Proximity Explosive"); itemIgnore.add("Proximity Zapper"); - ItemFactory itemFactory = new ItemFactory(plugin, blockRestore, _condition, _damageManager, energy, fire, _projectileManager, webServerAddress, itemIgnore); - SkillFactory skillManager = new SkillFactory(plugin, _damageManager, this, _combatManager, _condition, _projectileManager, _disguiseManager, blockRestore, fire, new Movement(plugin), teleport, energy, webServerAddress); + ItemFactory itemFactory = new ItemFactory(plugin, blockRestore, _condition, _damageManager, energy, fire, _projectileManager, itemIgnore); + SkillFactory skillManager = new SkillFactory(plugin, _damageManager, this, _combatManager, _condition, _projectileManager, _disguiseManager, blockRestore, fire, new Movement(plugin), teleport, energy); skillManager.RemoveSkill("Dwarf Toss", "Block Toss"); skillManager.removeSkill("Whirlwind Axe"); skillManager.removeSkill("Shield Smash"); @@ -380,7 +380,7 @@ public class ClansManager extends MiniClientPluginimplements IRelati }); _worldEvent.setFactory(skillManager); - _classManager = new ClassManager(plugin, _clientManager, donationManager, skillManager, itemFactory, webServerAddress); + _classManager = new ClassManager(plugin, _clientManager, donationManager, skillManager, itemFactory); // Register redis based server commands ServerCommandManager.getInstance().registerCommandType(ClanDeleteCommand.class, new ClanDeleteCommandHandler()); diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ban/ClansBanRepository.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ban/ClansBanRepository.java index 5360b625c..3d5c798cc 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ban/ClansBanRepository.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/ban/ClansBanRepository.java @@ -4,6 +4,7 @@ import mineplex.core.Managers; import mineplex.core.account.CoreClientManager; import mineplex.core.database.MinecraftRepository; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnInt; import org.bukkit.plugin.java.JavaPlugin; @@ -14,7 +15,7 @@ import java.util.Optional; import java.util.UUID; import java.util.concurrent.CompletableFuture; -public class ClansBanRepository extends MinecraftRepository +public class ClansBanRepository extends RepositoryBase { private static final String BAN_PLAYER = "INSERT INTO clanBans (uuid, admin, reason, banTime, unbanTime, permanent, removed) VALUES (?, ?, ?, ?, ?, ?, ?);"; private static final String REMOVE_BAN = "UPDATE clanBans SET removed = 1 WHERE id = ?;"; diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/banners/BannerRepository.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/banners/BannerRepository.java index 8f3eec8f2..8d236bcd9 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/banners/BannerRepository.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/banners/BannerRepository.java @@ -13,13 +13,14 @@ import mineplex.core.database.MinecraftRepository; import mineplex.game.clans.clans.ClanInfo; import mineplex.game.clans.clans.ClansManager; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnInt; import mineplex.serverdata.database.column.ColumnVarChar; /** * Database repository class for banners */ -public class BannerRepository extends MinecraftRepository +public class BannerRepository extends RepositoryBase { private static final String CREATE = "CREATE TABLE IF NOT EXISTS clanBanners (clanId INT NOT NULL," + "baseColor VARCHAR(15)," diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/nameblacklist/repository/ClanNameBlacklistRepository.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/nameblacklist/repository/ClanNameBlacklistRepository.java index 979b90e03..662900a31 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/nameblacklist/repository/ClanNameBlacklistRepository.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/nameblacklist/repository/ClanNameBlacklistRepository.java @@ -10,10 +10,11 @@ import mineplex.core.common.util.Callback; import mineplex.core.database.MinecraftRepository; import mineplex.game.clans.clans.nameblacklist.ClansBlacklist; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnTimestamp; import mineplex.serverdata.database.column.ColumnVarChar; -public class ClanNameBlacklistRepository extends MinecraftRepository +public class ClanNameBlacklistRepository extends RepositoryBase { private static final String CREATE = "CREATE TABLE IF NOT EXISTS clanNameBlacklist (" + "clanName VARCHAR(20) NOT NULL, " diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/nether/PortalRepository.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/nether/PortalRepository.java index 852ee779a..789de1e55 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/nether/PortalRepository.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/nether/PortalRepository.java @@ -3,6 +3,7 @@ package mineplex.game.clans.clans.nether; import mineplex.core.common.util.UtilWorld; import mineplex.core.database.MinecraftRepository; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnBoolean; import mineplex.serverdata.database.column.ColumnInt; import mineplex.serverdata.database.column.ColumnVarChar; @@ -12,7 +13,7 @@ import org.bukkit.plugin.java.JavaPlugin; /** * Database repository class for nether portals */ -public class PortalRepository extends MinecraftRepository +public class PortalRepository extends RepositoryBase { private static final String CREATE = "CREATE TABLE IF NOT EXISTS clansNetherPortals (id INT NOT NULL AUTO_INCREMENT," + "cornerOne VARCHAR(30)," diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/repository/OutpostRepository.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/repository/OutpostRepository.java index 1b4f57a41..e6b53a15d 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/repository/OutpostRepository.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/repository/OutpostRepository.java @@ -18,12 +18,13 @@ import mineplex.game.clans.clans.siege.outpost.OutpostState; import mineplex.game.clans.clans.siege.outpost.OutpostType; import mineplex.game.clans.clans.siege.repository.tokens.OutpostToken; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnByte; import mineplex.serverdata.database.column.ColumnInt; import mineplex.serverdata.database.column.ColumnTimestamp; import mineplex.serverdata.database.column.ColumnVarChar; -public class OutpostRepository extends MinecraftRepository +public class OutpostRepository extends RepositoryBase { private OutpostManager _manager; diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/repository/SiegeWeaponRepository.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/repository/SiegeWeaponRepository.java index ac68d6ef9..8f69a596d 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/repository/SiegeWeaponRepository.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/repository/SiegeWeaponRepository.java @@ -16,11 +16,12 @@ import mineplex.game.clans.clans.ClanInfo; import mineplex.game.clans.clans.siege.SiegeManager; import mineplex.game.clans.clans.siege.repository.tokens.SiegeWeaponToken; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnInt; import mineplex.serverdata.database.column.ColumnTimestamp; import mineplex.serverdata.database.column.ColumnVarChar; -public class SiegeWeaponRepository extends MinecraftRepository +public class SiegeWeaponRepository extends RepositoryBase { private static final String CREATE = "CREATE TABLE IF NOT EXISTS clansSiegeWeapons (uniqueId INT NOT NULL," + "serverId INT NOT NULL," diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/fields/repository/FieldRepository.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/fields/repository/FieldRepository.java index 131f591fd..5b4de59bd 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/fields/repository/FieldRepository.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/fields/repository/FieldRepository.java @@ -9,13 +9,14 @@ import mineplex.core.database.MinecraftRepository; import org.bukkit.plugin.java.JavaPlugin; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.ResultSetCallable; import mineplex.serverdata.database.column.ColumnByte; import mineplex.serverdata.database.column.ColumnDouble; import mineplex.serverdata.database.column.ColumnInt; import mineplex.serverdata.database.column.ColumnVarChar; -public class FieldRepository extends MinecraftRepository +public class FieldRepository extends RepositoryBase { private static String ALL_STRING = "ALL"; diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/repository/TutorialRepository.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/repository/TutorialRepository.java index fa25b8465..a81ababe2 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/repository/TutorialRepository.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/tutorial/tutorials/clans/repository/TutorialRepository.java @@ -7,10 +7,11 @@ import mineplex.core.common.util.EnclosedObject; import mineplex.core.common.util.UUIDFetcher; import mineplex.core.database.MinecraftRepository; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnInt; import mineplex.serverdata.database.column.ColumnVarChar; -public class TutorialRepository extends MinecraftRepository +public class TutorialRepository extends RepositoryBase { private static final String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS clansTutorial (uuid VARCHAR(36), timesPlayed INT, PRIMARY KEY (uuid));"; private static final String GET = "SELECT * FROM clansTutorial WHERE uuid = ?;"; diff --git a/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/ClansHub.java b/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/ClansHub.java index f5311ff87..c4ed11a41 100644 --- a/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/ClansHub.java +++ b/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/ClansHub.java @@ -4,6 +4,7 @@ import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.plugin.java.JavaPlugin; +import mineplex.core.Constants; import mineplex.core.CustomTagFix; import mineplex.core.PacketsInteractionFix; import mineplex.core.account.CoreClientManager; @@ -70,18 +71,14 @@ import static mineplex.core.Managers.require; */ public class ClansHub extends JavaPlugin { - private String WEB_CONFIG = "webServer"; - @Override public void onEnable() { Bukkit.setSpawnRadius(0); - getConfig().addDefault(WEB_CONFIG, "http://accounts.mineplex.com/"); - getConfig().set(WEB_CONFIG, getConfig().getString(WEB_CONFIG)); + getConfig().addDefault(Constants.WEB_CONFIG_KEY, Constants.WEB_ADDRESS); + getConfig().set(Constants.WEB_CONFIG_KEY, getConfig().getString(Constants.WEB_CONFIG_KEY)); saveConfig(); - String webServerAddress = getConfig().getString(WEB_CONFIG); - //Logger.initialize(this); //Velocity Fix @@ -90,14 +87,14 @@ public class ClansHub extends JavaPlugin //Static Modules require(ProfileCacheManager.class); CommandCenter.Initialize(this); - CoreClientManager clientManager = new CoreClientManager(this, webServerAddress); + CoreClientManager clientManager = new CoreClientManager(this); CommandCenter.Instance.setClientManager(clientManager); // new ProfileCacheManager(this); ItemStackFactory.Initialize(this, false); Recharge.Initialize(this); VisibilityManager.Initialize(this); Give.Initialize(this); - Punish punish = new Punish(this, webServerAddress, clientManager); + Punish punish = new Punish(this, clientManager); BlockRestore blockRestore = new BlockRestore(this); DonationManager donationManager = require(DonationManager.class); @@ -115,7 +112,7 @@ public class ClansHub extends JavaPlugin Creature creature = new Creature(this); NpcManager npcManager = new NpcManager(this, creature); InventoryManager inventoryManager = new InventoryManager(this, clientManager); - PetManager petManager = new PetManager(this, clientManager, donationManager, inventoryManager, disguiseManager, creature, blockRestore, webServerAddress); + PetManager petManager = new PetManager(this, clientManager, donationManager, inventoryManager, disguiseManager, creature, blockRestore); PollManager pollManager = new PollManager(this, clientManager, donationManager); //Main Modules @@ -147,7 +144,7 @@ public class ClansHub extends JavaPlugin ConditionManager condition = new ConditionManager(this); ThankManager thankManager = new ThankManager(this, clientManager, donationManager); BoosterManager boosterManager = new BoosterManager(this, "", clientManager, donationManager, inventoryManager, thankManager); - HubManager hubManager = new HubManager(this, blockRestore, clientManager, incognito, donationManager, inventoryManager, condition, disguiseManager, new TaskManager(this, clientManager, webServerAddress), portal, partyManager, preferenceManager, petManager, pollManager, statsManager, achievementManager, new HologramManager(this, packetHandler), npcManager, packetHandler, punish, serverStatusManager, customDataManager, thankManager, boosterManager); + HubManager hubManager = new HubManager(this, blockRestore, clientManager, incognito, donationManager, inventoryManager, condition, disguiseManager, new TaskManager(this, clientManager), portal, partyManager, preferenceManager, petManager, pollManager, statsManager, achievementManager, new HologramManager(this, packetHandler), npcManager, packetHandler, punish, serverStatusManager, customDataManager, thankManager, boosterManager); HologramManager hologramManager = new HologramManager(this, packetHandler); diff --git a/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/salesannouncements/SalesAnnouncementRepository.java b/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/salesannouncements/SalesAnnouncementRepository.java index 3ff006b7a..6876ba6f2 100644 --- a/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/salesannouncements/SalesAnnouncementRepository.java +++ b/Plugins/Mineplex.Hub.Clans/src/mineplex/clanshub/salesannouncements/SalesAnnouncementRepository.java @@ -11,11 +11,12 @@ import mineplex.core.common.Rank; import mineplex.core.common.util.Callback; import mineplex.core.database.MinecraftRepository; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnBoolean; import mineplex.serverdata.database.column.ColumnInt; import mineplex.serverdata.database.column.ColumnVarChar; -public class SalesAnnouncementRepository extends MinecraftRepository +public class SalesAnnouncementRepository extends RepositoryBase { private static final String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS salesAnnouncements (id INT NOT NULL AUTO_INCREMENT, ranks VARCHAR(250), message VARCHAR(256), enabled BOOL, PRIMARY KEY (id));"; diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java b/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java index f76331e2f..b6d772184 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java @@ -5,6 +5,7 @@ import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; +import mineplex.core.Constants; import mineplex.core.CustomTagFix; import mineplex.core.PacketsInteractionFix; import mineplex.core.account.CoreClientManager; @@ -89,20 +90,16 @@ import static mineplex.core.Managers.require; public class Hub extends JavaPlugin implements IRelation { - private String WEB_CONFIG = "webServer"; - private NpcManager _npcManager; @Override public void onEnable() { Bukkit.setSpawnRadius(0); - getConfig().addDefault(WEB_CONFIG, "http://accounts.mineplex.com/"); - getConfig().set(WEB_CONFIG, getConfig().getString(WEB_CONFIG)); + getConfig().addDefault(Constants.WEB_CONFIG_KEY, Constants.WEB_ADDRESS); + getConfig().set(Constants.WEB_CONFIG_KEY, getConfig().getString(Constants.WEB_CONFIG_KEY)); saveConfig(); - String webServerAddress = getConfig().getString(WEB_CONFIG); - //Logger.initialize(this); //Velocity Fix @@ -111,14 +108,14 @@ public class Hub extends JavaPlugin implements IRelation //Static Modules require(ProfileCacheManager.class); CommandCenter.Initialize(this); - CoreClientManager clientManager = new CoreClientManager(this, webServerAddress); + CoreClientManager clientManager = new CoreClientManager(this); CommandCenter.Instance.setClientManager(clientManager); // new ProfileCacheManager(this); ItemStackFactory.Initialize(this, false); Recharge.Initialize(this); VisibilityManager.Initialize(this); Give.Initialize(this); - Punish punish = new Punish(this, webServerAddress, clientManager); + Punish punish = new Punish(this, clientManager); BlockRestore blockRestore = new BlockRestore(this); DonationManager donationManager = require(DonationManager.class); @@ -137,7 +134,7 @@ public class Hub extends JavaPlugin implements IRelation NpcManager npcManager = new NpcManager(this, creature); _npcManager = npcManager; InventoryManager inventoryManager = new InventoryManager(this, clientManager); - PetManager petManager = new PetManager(this, clientManager, donationManager, inventoryManager, disguiseManager, creature, blockRestore, webServerAddress); + PetManager petManager = new PetManager(this, clientManager, donationManager, inventoryManager, disguiseManager, creature, blockRestore); PollManager pollManager = new PollManager(this, clientManager, donationManager); //new TournamentManager(this, clientManager, donationManager); @@ -175,7 +172,7 @@ public class Hub extends JavaPlugin implements IRelation String boosterGroup = serverConfiguration.getServerGroup().getBoosterGroup(); ThankManager thankManager = new ThankManager(this, clientManager, donationManager); BoosterManager boosterManager = new BoosterManager(this, boosterGroup, clientManager, donationManager, inventoryManager, thankManager); - HubManager hubManager = new HubManager(this, blockRestore, clientManager, incognito, donationManager, inventoryManager, conditionManager, disguiseManager, new TaskManager(this, clientManager, webServerAddress), portal, partyManager, preferenceManager, petManager, pollManager, statsManager, achievementManager, new HologramManager(this, packetHandler), npcManager, personalServerManager, packetHandler, punish, serverStatusManager, customDataManager, thankManager, boosterManager); + HubManager hubManager = new HubManager(this, blockRestore, clientManager, incognito, donationManager, inventoryManager, conditionManager, disguiseManager, new TaskManager(this, clientManager), portal, partyManager, preferenceManager, petManager, pollManager, statsManager, achievementManager, new HologramManager(this, packetHandler), npcManager, personalServerManager, packetHandler, punish, serverStatusManager, customDataManager, thankManager, boosterManager); HologramManager hologramManager = new HologramManager(this, packetHandler); QueueManager queueManager = new QueueManager(this, clientManager, donationManager, eloManager, partyManager); @@ -213,9 +210,9 @@ public class Hub extends JavaPlugin implements IRelation Energy energy = new Energy(this); energy.setEnabled(false); - ItemFactory itemFactory = new ItemFactory(this, blockRestore, conditionManager, damage, energy, fire, throwManager, webServerAddress); - SkillFactory skillManager = new SkillFactory(this, damage, this, combatManager, conditionManager, throwManager, disguiseManager, blockRestore, fire, new Movement(this), teleport, energy, webServerAddress); - ClassManager classManager = new ClassManager(this, clientManager, donationManager, hubManager.GetGadget(), skillManager, itemFactory, webServerAddress); + ItemFactory itemFactory = new ItemFactory(this, blockRestore, conditionManager, damage, energy, fire, throwManager); + SkillFactory skillManager = new SkillFactory(this, damage, this, combatManager, conditionManager, throwManager, disguiseManager, blockRestore, fire, new Movement(this), teleport, energy); + ClassManager classManager = new ClassManager(this, clientManager, donationManager, hubManager.GetGadget(), skillManager, itemFactory); ClassShopManager shopManager = new ClassShopManager(this, classManager, skillManager, itemFactory, achievementManager, clientManager); diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/mail/MailRepository.java b/Plugins/Mineplex.Hub/src/mineplex/hub/mail/MailRepository.java index 5668be269..e4440d29c 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/mail/MailRepository.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/mail/MailRepository.java @@ -10,12 +10,13 @@ import org.bukkit.plugin.java.JavaPlugin; import mineplex.serverdata.database.DBPool; import mineplex.database.Tables; import mineplex.database.tables.records.MailRecord; +import mineplex.serverdata.database.RepositoryBase; import org.jooq.DSLContext; import org.jooq.Result; import org.jooq.impl.DSL; -public class MailRepository extends MinecraftRepository +public class MailRepository extends RepositoryBase { private MailManager _manager; diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/salesannouncements/SalesAnnouncementRepository.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/salesannouncements/SalesAnnouncementRepository.java index ffe83b83a..844a3b5ee 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/salesannouncements/SalesAnnouncementRepository.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/salesannouncements/SalesAnnouncementRepository.java @@ -11,11 +11,12 @@ import mineplex.core.common.Rank; import mineplex.core.common.util.Callback; import mineplex.core.database.MinecraftRepository; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.column.ColumnBoolean; import mineplex.serverdata.database.column.ColumnInt; import mineplex.serverdata.database.column.ColumnVarChar; -public class SalesAnnouncementRepository extends MinecraftRepository +public class SalesAnnouncementRepository extends RepositoryBase { private static final String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS salesAnnouncements (id INT NOT NULL AUTO_INCREMENT, ranks VARCHAR(250), message VARCHAR(256), enabled BOOL, PRIMARY KEY (id));"; diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/ClassManager.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/ClassManager.java index 4afa557f3..d54b4149b 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/ClassManager.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/ClassManager.java @@ -49,7 +49,7 @@ public class ClassManager extends MiniClientPlugin implements IClas private ConcurrentHashMap> _messageSuppressed; public ClassManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, - SkillFactory skillFactory, ItemFactory itemFactory, String webAddress) + SkillFactory skillFactory, ItemFactory itemFactory) { super("Class Manager", plugin); @@ -58,7 +58,7 @@ public class ClassManager extends MiniClientPlugin implements IClas _donationManager = donationManager; _skillFactory = skillFactory; _itemFactory = itemFactory; - _repository = new ClassRepository(webAddress); + _repository = new ClassRepository(); _classes = new HashMap(); _classSalesPackageIdMap = new HashMap(); _messageSuppressed = new ConcurrentHashMap>(); @@ -67,7 +67,7 @@ public class ClassManager extends MiniClientPlugin implements IClas } public ClassManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, GadgetManager gadgetManager, - SkillFactory skillFactory, ItemFactory itemFactory, String webAddress) + SkillFactory skillFactory, ItemFactory itemFactory) { super("Class Manager", plugin); @@ -77,7 +77,7 @@ public class ClassManager extends MiniClientPlugin implements IClas _gadgetManager = gadgetManager; _skillFactory = skillFactory; _itemFactory = itemFactory; - _repository = new ClassRepository(webAddress); + _repository = new ClassRepository(); _classes = new HashMap(); _classSalesPackageIdMap = new HashMap(); _messageSuppressed = new ConcurrentHashMap>(); diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/repository/ClassRepository.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/repository/ClassRepository.java index 829315b8a..5de148ac0 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/repository/ClassRepository.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Class/repository/ClassRepository.java @@ -1,32 +1,18 @@ package mineplex.minecraft.game.classcombat.Class.repository; -import java.util.List; - -import com.google.gson.reflect.TypeToken; - -import mineplex.core.server.remotecall.AsyncJsonWebCall; -import mineplex.core.server.remotecall.JsonWebCall; -import mineplex.minecraft.game.classcombat.Class.repository.token.ClassToken; +import mineplex.core.database.MinecraftRepository; import mineplex.minecraft.game.classcombat.Class.repository.token.CustomBuildToken; +import mineplex.serverdata.database.DBPool; -public class ClassRepository +public class ClassRepository extends MinecraftRepository { - private String _webAddress; - - public ClassRepository(String webAddress) + public ClassRepository() { - _webAddress = webAddress; - } - - public List GetClasses(List pvpClasses) - { - return new JsonWebCall(_webAddress + "Dominate/GetClasses").Execute(new TypeToken>() - { - }.getType(), pvpClasses); + super(DBPool.getAccount()); } public void SaveCustomBuild(CustomBuildToken token) { - new AsyncJsonWebCall(_webAddress + "PlayerAccount/SaveCustomBuild").Execute(token); + handleAsyncMSSQLCall("PlayerAccount/SaveCustomBuild", token); } } diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/SkillFactory.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/SkillFactory.java index 8bc9f565b..ffc77893f 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/SkillFactory.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/SkillFactory.java @@ -98,7 +98,6 @@ import mineplex.minecraft.game.classcombat.Skill.Ranger.WolfsFury; import mineplex.minecraft.game.classcombat.Skill.Ranger.WolfsPounce; import mineplex.minecraft.game.classcombat.Skill.repository.SkillRepository; import mineplex.minecraft.game.classcombat.Skill.repository.token.SkillToken; -import mineplex.minecraft.game.classcombat.item.Throwable.ProximityManager; import mineplex.minecraft.game.core.IRelation; import mineplex.minecraft.game.core.combat.CombatManager; import mineplex.minecraft.game.core.condition.ConditionManager; @@ -128,13 +127,13 @@ public class SkillFactory extends MiniPlugin implements ISkillFactory private HashMap _skillMap; private HashMap _skillSalesPackageMap; - public SkillFactory(JavaPlugin plugin, DamageManager damageManager, IRelation relation, - CombatManager combatManager, ConditionManager conditionManager, ProjectileManager projectileManager, DisguiseManager disguiseManager, - BlockRestore blockRestore, Fire fire, Movement movement, Teleport teleport, Energy energy, String webAddress) + public SkillFactory(JavaPlugin plugin, DamageManager damageManager, IRelation relation, + CombatManager combatManager, ConditionManager conditionManager, ProjectileManager projectileManager, DisguiseManager disguiseManager, + BlockRestore blockRestore, Fire fire, Movement movement, Teleport teleport, Energy energy) { super("Skill Factory", plugin); - _repository = new SkillRepository(webAddress); + _repository = new SkillRepository(); _damageManager = damageManager; _relation = relation; _combatManager = combatManager; diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/repository/SkillRepository.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/repository/SkillRepository.java index 1d923bfe9..b9f244dc8 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/repository/SkillRepository.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/repository/SkillRepository.java @@ -4,20 +4,19 @@ import java.util.List; import com.google.gson.reflect.TypeToken; -import mineplex.core.server.remotecall.JsonWebCall; import mineplex.minecraft.game.classcombat.Skill.repository.token.SkillToken; +import mineplex.core.database.MinecraftRepository; +import mineplex.serverdata.database.DBPool; -public class SkillRepository +public class SkillRepository extends MinecraftRepository { - private String _webAddress; - - public SkillRepository(String webAddress) + public SkillRepository() { - _webAddress = webAddress; + super(DBPool.getAccount()); } - - public List GetSkills(List skills) + + public List GetSkills(List skills) { - return new JsonWebCall(_webAddress + "Dominate/GetSkills").Execute(new TypeToken>(){}.getType(), skills); + return handleSyncMSSQLCall("Dominate/GetSkills", skills, new TypeToken>(){}.getType()); } } diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/item/ItemFactory.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/item/ItemFactory.java index d6c49bf34..4351a0801 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/item/ItemFactory.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/item/ItemFactory.java @@ -33,12 +33,12 @@ public class ItemFactory extends MiniPlugin implements IItemFactory private HashMap _items; private HashSet _ignore; - public ItemFactory(JavaPlugin plugin, BlockRestore blockRestore, ConditionManager condition, DamageManager damage, Energy energy, Fire fire, ProjectileManager projectileManager, String webAddress) + public ItemFactory(JavaPlugin plugin, BlockRestore blockRestore, ConditionManager condition, DamageManager damage, Energy energy, Fire fire, ProjectileManager projectileManager) { - this(plugin, blockRestore, condition, damage, energy, fire, projectileManager, webAddress, new HashSet()); + this(plugin, blockRestore, condition, damage, energy, fire, projectileManager, new HashSet()); } - public ItemFactory(JavaPlugin plugin, BlockRestore blockRestore, ConditionManager condition, DamageManager damage, Energy energy, Fire fire, ProjectileManager projectileManager, String webAddress, HashSet ignore) + public ItemFactory(JavaPlugin plugin, BlockRestore blockRestore, ConditionManager condition, DamageManager damage, Energy energy, Fire fire, ProjectileManager projectileManager, HashSet ignore) { super("Item Factory", plugin); @@ -67,10 +67,10 @@ public class ItemFactory extends MiniPlugin implements IItemFactory e.printStackTrace(); } - PopulateFactory(webAddress); + PopulateFactory(); } - private void PopulateFactory(String webAddress) + private void PopulateFactory() { _items.clear(); diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/item/repository/ItemRepository.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/item/repository/ItemRepository.java deleted file mode 100644 index 16ff6926d..000000000 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/item/repository/ItemRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -package mineplex.minecraft.game.classcombat.item.repository; - -import java.util.List; - -import com.google.gson.reflect.TypeToken; - -import mineplex.core.server.remotecall.JsonWebCall; - -public class ItemRepository -{ - private String _webAddress; - - public ItemRepository(String webAddress) - { - _webAddress = webAddress; - } - - public List GetItems(List items) - { - return new JsonWebCall(_webAddress + "Dominate/GetItems").Execute(new TypeToken>(){}.getType(), items); - } -} diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/item/repository/ItemToken.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/item/repository/ItemToken.java deleted file mode 100644 index 9a819d4b0..000000000 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/item/repository/ItemToken.java +++ /dev/null @@ -1,11 +0,0 @@ -package mineplex.minecraft.game.classcombat.item.repository; - -import mineplex.core.donation.repository.GameSalesPackageToken; - -public class ItemToken -{ - public String Name; - public String Material; - - public GameSalesPackageToken SalesPackage; -} diff --git a/Plugins/Mineplex.ServerData/pom.xml b/Plugins/Mineplex.ServerData/pom.xml index 7122bb0ee..a407f6de4 100644 --- a/Plugins/Mineplex.ServerData/pom.xml +++ b/Plugins/Mineplex.ServerData/pom.xml @@ -32,5 +32,10 @@ com.mineplex spigot + + org.jooq + jooq + 3.5.2 + diff --git a/Plugins/Mineplex.ServerData/src/mineplex/serverdata/database/DBPool.java b/Plugins/Mineplex.ServerData/src/mineplex/serverdata/database/DBPool.java index be17d13f2..d948b6e73 100644 --- a/Plugins/Mineplex.ServerData/src/mineplex/serverdata/database/DBPool.java +++ b/Plugins/Mineplex.ServerData/src/mineplex/serverdata/database/DBPool.java @@ -18,6 +18,7 @@ public final class DBPool private static DataSource MINEPLEX_STATS; private static DataSource PLAYER_STATS; private static DataSource SERVER_STATS; + private static DataSource MSSQL_MOCK; private static DataSource openDataSource(String url, String username, String password) { @@ -38,6 +39,14 @@ public final class DBPool return source; } + public static DataSource getMssqlMock() + { + if (MSSQL_MOCK == null) + loadDataSources(); + + return MSSQL_MOCK; + } + public static DataSource getAccount() { if (ACCOUNT == null) @@ -138,6 +147,8 @@ public final class DBPool PLAYER_STATS = openDataSource("jdbc:mysql://" + dbHost, userName, password); else if (dbSource.toUpperCase().equalsIgnoreCase("SERVER_STATS")) SERVER_STATS = openDataSource("jdbc:mysql://" + dbHost, userName, password); + else if (dbSource.toUpperCase().equalsIgnoreCase("MSSQL_MOCK")) + MSSQL_MOCK = openDataSource("jdbc:mysql://" + dbHost, userName, password); } } } diff --git a/Plugins/Mineplex.ServerData/src/mineplex/serverdata/database/RepositoryBase.java b/Plugins/Mineplex.ServerData/src/mineplex/serverdata/database/RepositoryBase.java index 8a175212d..f5066fea9 100644 --- a/Plugins/Mineplex.ServerData/src/mineplex/serverdata/database/RepositoryBase.java +++ b/Plugins/Mineplex.ServerData/src/mineplex/serverdata/database/RepositoryBase.java @@ -8,6 +8,10 @@ import java.sql.Statement; import javax.sql.DataSource; +import org.jooq.DSLContext; +import org.jooq.SQLDialect; +import org.jooq.impl.DSL; + import mineplex.serverdata.database.column.Column; public abstract class RepositoryBase @@ -291,4 +295,9 @@ public abstract class RepositoryBase exception.printStackTrace(); } } + + protected DSLContext jooq() + { + return DSL.using(DBPool.getAccount(), SQLDialect.MYSQL); + } } \ No newline at end of file diff --git a/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/StaffServer.java b/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/StaffServer.java index d2db47478..2661aa5d3 100644 --- a/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/StaffServer.java +++ b/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/StaffServer.java @@ -1,6 +1,8 @@ package mineplex.staffServer; import com.mojang.authlib.GameProfile; + +import mineplex.core.Constants; import mineplex.core.account.CoreClientManager; import mineplex.core.achievement.AchievementManager; import mineplex.core.chat.Chat; @@ -39,26 +41,22 @@ import static mineplex.core.Managers.require; public class StaffServer extends JavaPlugin { - private String WEB_CONFIG = "webServer"; - @Override public void onEnable() { - getConfig().addDefault(WEB_CONFIG, "http://accounts.mineplex.com/"); - getConfig().set(WEB_CONFIG, getConfig().getString(WEB_CONFIG)); + getConfig().addDefault(Constants.WEB_CONFIG_KEY, Constants.WEB_ADDRESS); + getConfig().set(Constants.WEB_CONFIG_KEY, getConfig().getString(Constants.WEB_CONFIG_KEY)); saveConfig(); - - String webServerAddress = getConfig().getString(WEB_CONFIG); - + //Static Modules CommandCenter.Initialize(this); - CoreClientManager clientManager = new CoreClientManager(this, webServerAddress, Rank.DEVELOPER); + CoreClientManager clientManager = new CoreClientManager(this, Rank.DEVELOPER); CommandCenter.Instance.setClientManager(clientManager); Recharge.Initialize(this); DonationManager donationManager = require(DonationManager.class); - Punish punish = new Punish(this, webServerAddress, clientManager); + Punish punish = new Punish(this, clientManager); new NpcManager(this, new Creature(this)); ServerStatusManager serverStatusManager = new ServerStatusManager(this, clientManager, new LagMeter(this, clientManager)); PreferencesManager preferenceManager = new PreferencesManager(this, null, clientManager); diff --git a/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/customerSupport/CustomerSupportRepository.java b/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/customerSupport/CustomerSupportRepository.java index b8fdcd27d..286c3ac9c 100644 --- a/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/customerSupport/CustomerSupportRepository.java +++ b/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/customerSupport/CustomerSupportRepository.java @@ -4,8 +4,9 @@ import org.bukkit.plugin.java.JavaPlugin; import mineplex.core.database.MinecraftRepository; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; -public class CustomerSupportRepository extends MinecraftRepository +public class CustomerSupportRepository extends RepositoryBase { public CustomerSupportRepository(JavaPlugin plugin) { diff --git a/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/password/PasswordRepository.java b/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/password/PasswordRepository.java index a751ca133..b3d1986f1 100644 --- a/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/password/PasswordRepository.java +++ b/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/password/PasswordRepository.java @@ -9,10 +9,11 @@ import mineplex.core.database.MinecraftRepository; import org.bukkit.plugin.java.JavaPlugin; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import mineplex.serverdata.database.ResultSetCallable; import mineplex.serverdata.database.column.ColumnVarChar; -public class PasswordRepository extends MinecraftRepository +public class PasswordRepository extends RepositoryBase { private static String CREATE_SERVER_PASSWORD_TABLE = "CREATE TABLE IF NOT EXISTS serverPassword (id INT NOT NULL AUTO_INCREMENT, server VARCHAR(100), password VARCHAR(100), PRIMARY KEY (id));"; private static String RETRIEVE_SERVER_PASSWORD = "SELECT password FROM serverPassword WHERE server = ?;"; diff --git a/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/salespackage/SalesPackageManager.java b/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/salespackage/SalesPackageManager.java index 1f26eaad6..352fe54a3 100644 --- a/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/salespackage/SalesPackageManager.java +++ b/Plugins/Mineplex.StaffServer/src/mineplex/staffServer/salespackage/SalesPackageManager.java @@ -61,7 +61,7 @@ public class SalesPackageManager extends MiniPlugin _statsManager = statsManager; _powerPlayRepo = powerPlayRepo; - _petRepo = new PetRepository(plugin, plugin.getConfig().getString("webServer")); + _petRepo = new PetRepository(); //Strutt20 asked me to remove some of the stuff from the menu diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java index 541733818..0e63fe59e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java @@ -10,6 +10,7 @@ import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; import org.spigotmc.SpigotConfig; +import mineplex.core.Constants; import mineplex.core.CustomTagFix; import mineplex.core.FoodDupeFix; import mineplex.core.PacketsInteractionFix; @@ -80,9 +81,7 @@ import nautilus.game.arcade.game.GameServerConfig; import static mineplex.core.Managers.require; public class Arcade extends JavaPlugin -{ - private String WEB_CONFIG = "webServer"; - +{ //Modules private CoreClientManager _clientManager; private DonationManager _donationManager; @@ -100,17 +99,15 @@ public class Arcade extends JavaPlugin DeleteFolders(); //Configs - getConfig().addDefault(WEB_CONFIG, "http://accounts.mineplex.com/"); - getConfig().set(WEB_CONFIG, getConfig().getString(WEB_CONFIG)); + getConfig().addDefault(Constants.WEB_CONFIG_KEY, Constants.WEB_ADDRESS); + getConfig().set(Constants.WEB_CONFIG_KEY, getConfig().getString(Constants.WEB_CONFIG_KEY)); saveConfig(); - - String webServerAddress = getConfig().getString(WEB_CONFIG); //Logger.initialize(this); //Static Modules CommandCenter.Initialize(this); - _clientManager = new CoreClientManager(this, webServerAddress); + _clientManager = new CoreClientManager(this); CommandCenter.Instance.setClientManager(_clientManager); require(ProfileCacheManager.class); @@ -148,7 +145,7 @@ public class Arcade extends JavaPlugin NpcManager npcmanager = new NpcManager(this, creature); _damageManager = new DamageManager(this, new CombatManager(this), npcmanager, disguiseManager, null); - Punish punish = new Punish(this, webServerAddress, _clientManager); + Punish punish = new Punish(this, _clientManager); require(AntiHack.class); @@ -172,7 +169,7 @@ public class Arcade extends JavaPlugin //Inventory InventoryManager inventoryManager = new InventoryManager(this, _clientManager); - PetManager petManager = new PetManager(this, _clientManager, _donationManager, inventoryManager, disguiseManager, creature, blockRestore, webServerAddress); + PetManager petManager = new PetManager(this, _clientManager, _donationManager, inventoryManager, disguiseManager, creature, blockRestore); MountManager mountManager = new MountManager(this, _clientManager, _donationManager, blockRestore, disguiseManager); GadgetManager gadgetManager = new GadgetManager(this, _clientManager, _donationManager, inventoryManager, mountManager, petManager, preferenceManager, disguiseManager, blockRestore, projectileManager, achievementManager, packetHandler, hologramManager, incognito); ThankManager thankManager = new ThankManager(this, _clientManager, _donationManager); @@ -186,7 +183,7 @@ public class Arcade extends JavaPlugin //Arcade Manager PollManager pollManager = new PollManager(this, _clientManager, _donationManager); - _gameManager = new ArcadeManager(this, serverStatusManager, ReadServerConfig(), _clientManager, _donationManager, _damageManager, statsManager, incognito, achievementManager, disguiseManager, creature, teleport, new Blood(this), chat, portal, preferenceManager, inventoryManager, packetHandler, cosmeticManager, projectileManager, petManager, hologramManager, webServerAddress, pollManager, npcmanager, customDataManager, punish, eloManager, thankManager, boosterManager); + _gameManager = new ArcadeManager(this, serverStatusManager, ReadServerConfig(), _clientManager, _donationManager, _damageManager, statsManager, incognito, achievementManager, disguiseManager, creature, teleport, new Blood(this), chat, portal, preferenceManager, inventoryManager, packetHandler, cosmeticManager, projectileManager, petManager, hologramManager, pollManager, npcmanager, customDataManager, punish, eloManager, thankManager, boosterManager); require(AntihackLogger.class).registerMetadata(new GameInfoMetadata()); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java index 61befa719..f055e2677 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java @@ -268,7 +268,7 @@ public class ArcadeManager extends MiniPlugin implements IRelation CoreClientManager clientManager, DonationManager donationManager, DamageManager damageManager, StatsManager statsManager, IncognitoManager incognitoManager, AchievementManager achievementManager, DisguiseManager disguiseManager, Creature creature, Teleport teleport, Blood blood, Chat chat, Portal portal, PreferencesManager preferences, InventoryManager inventoryManager, PacketHandler packetHandler, - CosmeticManager cosmeticManager, ProjectileManager projectileManager, PetManager petManager, HologramManager hologramManager, String webAddress, PollManager pollManager, + CosmeticManager cosmeticManager, ProjectileManager projectileManager, PetManager petManager, HologramManager hologramManager, PollManager pollManager, NpcManager npcManager, CustomDataManager customDataManager, Punish punish, EloManager eloManager, ThankManager thankManager, BoosterManager boosterManager) { super("Game Manager", plugin); @@ -314,7 +314,7 @@ public class ArcadeManager extends MiniPlugin implements IRelation _partyManager = new PartyManager(); _statsManager = statsManager; - _taskManager = new TaskManager(plugin, clientManager, webAddress); + _taskManager = new TaskManager(plugin, clientManager); _achievementManager = achievementManager; _inventoryManager = inventoryManager; _cosmeticManager = cosmeticManager; @@ -371,14 +371,14 @@ public class ArcadeManager extends MiniPlugin implements IRelation _energy = new Energy(plugin); _itemFactory = new ItemFactory(_plugin, _blockRestore, _conditionManager, damageManager, _energy, - _fire, _projectileManager, webAddress); + _fire, _projectileManager); _skillFactory = new SkillFactory(plugin, damageManager, this, _damageManager.GetCombatManager(), _conditionManager, _projectileManager, _disguiseManager, _blockRestore, _fire, new Movement(plugin), teleport, - _energy, webAddress); + _energy); - _classManager = new ClassManager(plugin, clientManager, donationManager, _cosmeticManager.getGadgetManager(), _skillFactory, _itemFactory, - webAddress); + _classManager = new ClassManager(plugin, clientManager, donationManager, _cosmeticManager.getGadgetManager(), _skillFactory, _itemFactory + ); _classShopManager = new ClassShopManager(_plugin, _classManager, _skillFactory, _itemFactory, _achievementManager, clientManager); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/titangiveaway/TitanGiveawayRepository.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/titangiveaway/TitanGiveawayRepository.java index b3caa8475..a66043121 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/titangiveaway/TitanGiveawayRepository.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/titangiveaway/TitanGiveawayRepository.java @@ -6,10 +6,11 @@ import java.sql.Types; import mineplex.core.database.MinecraftRepository; import mineplex.serverdata.database.DBPool; +import mineplex.serverdata.database.RepositoryBase; import org.bukkit.plugin.java.JavaPlugin; -public class TitanGiveawayRepository extends MinecraftRepository +public class TitanGiveawayRepository extends RepositoryBase { private int _titanGiveawayCount; diff --git a/Plugins/mavericks-review-hub/src/mineplex/mavericks/review/Hub.java b/Plugins/mavericks-review-hub/src/mineplex/mavericks/review/Hub.java index 9e1298672..c8817ee8a 100644 --- a/Plugins/mavericks-review-hub/src/mineplex/mavericks/review/Hub.java +++ b/Plugins/mavericks-review-hub/src/mineplex/mavericks/review/Hub.java @@ -3,6 +3,7 @@ package mineplex.mavericks.review; import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; +import mineplex.core.Constants; import mineplex.core.CustomTagFix; import mineplex.core.FoodDupeFix; import mineplex.core.PacketsInteractionFix; @@ -60,9 +61,6 @@ import static mineplex.core.Managers.require; */ public class Hub extends JavaPlugin { - - private String WEB_CONFIG = "webServer"; - // Modules private CoreClientManager _clientManager; private DonationManager _donationManager; @@ -74,15 +72,13 @@ public class Hub extends JavaPlugin // Delete Old Games Folders // Configs - getConfig().addDefault(WEB_CONFIG, "http://accounts.mineplex.com/"); - getConfig().set(WEB_CONFIG, getConfig().getString(WEB_CONFIG)); + getConfig().addDefault(Constants.WEB_CONFIG_KEY, Constants.WEB_ADDRESS); + getConfig().set(Constants.WEB_CONFIG_KEY, getConfig().getString(Constants.WEB_CONFIG_KEY)); saveConfig(); - String webServerAddress = getConfig().getString(WEB_CONFIG); - // Static Modules CommandCenter.Initialize(this); - _clientManager = new CoreClientManager(this, webServerAddress); + _clientManager = new CoreClientManager(this); CommandCenter.Instance.setClientManager(_clientManager); ItemStackFactory.Initialize(this, false); @@ -109,7 +105,7 @@ public class Hub extends JavaPlugin DisguiseManager disguiseManager = require(DisguiseManager.class); - Punish punish = new Punish(this, webServerAddress, _clientManager); + Punish punish = new Punish(this, _clientManager); require(AntiHack.class); IgnoreManager ignoreManager = new IgnoreManager(this, _clientManager, preferenceManager, portal); @@ -129,8 +125,7 @@ public class Hub extends JavaPlugin // Inventory InventoryManager inventoryManager = new InventoryManager(this, _clientManager); - PetManager petManager = new PetManager(this, _clientManager, _donationManager, inventoryManager, disguiseManager, creature, blockRestore, - webServerAddress); + PetManager petManager = new PetManager(this, _clientManager, _donationManager, inventoryManager, disguiseManager, creature, blockRestore); MountManager mountManager = new MountManager(this, _clientManager, _donationManager, blockRestore, disguiseManager); GadgetManager gadgetManager = new GadgetManager(this, _clientManager, _donationManager, inventoryManager, mountManager, petManager, preferenceManager, disguiseManager, blockRestore, projectileManager, achievementManager, packetHandler, hologramManager, incognito);