From 861477f5aefb3f6103fe2bf2bd69c867a9ace96f Mon Sep 17 00:00:00 2001 From: William Date: Wed, 20 Oct 2021 16:59:02 +0100 Subject: [PATCH] Finish initial implementation of plan --- .gitignore | 2 +- .../bukkit/BukkitRedisListener.java | 50 ---- .../bukkit/CrossServerSyncBukkit.java | 15 ++ .../bukkit/InventorySerializer.java | 7 +- .../bukkit/data/LastDataUpdateUUIDCache.java | 25 ++ .../bukkit/listener/BukkitRedisListener.java | 69 +++++ .../bukkit/listener/EventListener.java | 67 +++++ bungeecord/build.gradle | 2 + .../bungeecord/BungeeRedisListener.java | 41 --- .../bungeecord/CrossServerSyncBungeeCord.java | 35 ++- .../bungeecord/PlayerDataCache.java | 51 ---- .../bungeecord/data/DataManager.java | 243 ++++++++++++++++++ .../bungeecord/data/sql/Database.java | 33 +++ .../bungeecord/data/sql/MySQL.java | 99 +++++++ .../bungeecord/data/sql/SQLite.java | 133 ++++++++++ .../listener/BungeeEventListener.java | 35 +++ .../listener/BungeeRedisListener.java | 102 ++++++++ .../crossserversync/PlayerData.java | 21 +- .../crossserversync/redis/RedisListener.java | 7 +- .../crossserversync/redis/RedisMessage.java | 53 ++-- images/flow-chart.png | Bin 172316 -> 178017 bytes 21 files changed, 921 insertions(+), 169 deletions(-) delete mode 100644 bukkit/src/main/java/me/william278/crossserversync/bukkit/BukkitRedisListener.java create mode 100644 bukkit/src/main/java/me/william278/crossserversync/bukkit/data/LastDataUpdateUUIDCache.java create mode 100644 bukkit/src/main/java/me/william278/crossserversync/bukkit/listener/BukkitRedisListener.java create mode 100644 bukkit/src/main/java/me/william278/crossserversync/bukkit/listener/EventListener.java delete mode 100644 bungeecord/src/main/java/me/william278/crossserversync/bungeecord/BungeeRedisListener.java delete mode 100644 bungeecord/src/main/java/me/william278/crossserversync/bungeecord/PlayerDataCache.java create mode 100644 bungeecord/src/main/java/me/william278/crossserversync/bungeecord/data/DataManager.java create mode 100644 bungeecord/src/main/java/me/william278/crossserversync/bungeecord/data/sql/Database.java create mode 100644 bungeecord/src/main/java/me/william278/crossserversync/bungeecord/data/sql/MySQL.java create mode 100644 bungeecord/src/main/java/me/william278/crossserversync/bungeecord/data/sql/SQLite.java create mode 100644 bungeecord/src/main/java/me/william278/crossserversync/bungeecord/listener/BungeeEventListener.java create mode 100644 bungeecord/src/main/java/me/william278/crossserversync/bungeecord/listener/BungeeRedisListener.java diff --git a/.gitignore b/.gitignore index d7b144fa..b1946b65 100644 --- a/.gitignore +++ b/.gitignore @@ -106,7 +106,7 @@ build/ # Ignore Gradle GUI config gradle-app.setting -# me.william278.crossserversync.bungeecord.PlayerDataCache of project +# me.william278.crossserversync.bungeecord.data.DataManager.PlayerDataCache of project .gradletasknamecache **/build/ diff --git a/bukkit/src/main/java/me/william278/crossserversync/bukkit/BukkitRedisListener.java b/bukkit/src/main/java/me/william278/crossserversync/bukkit/BukkitRedisListener.java deleted file mode 100644 index a0315e04..00000000 --- a/bukkit/src/main/java/me/william278/crossserversync/bukkit/BukkitRedisListener.java +++ /dev/null @@ -1,50 +0,0 @@ -package me.william278.crossserversync.bukkit; - -import me.william278.crossserversync.Settings; -import me.william278.crossserversync.redis.RedisListener; -import me.william278.crossserversync.redis.RedisMessage; -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; - -import java.util.logging.Level; - -public class BukkitRedisListener extends RedisListener { - - private static final CrossServerSyncBukkit plugin = CrossServerSyncBukkit.getInstance(); - - // Initialize the listener on the bukkit server - public BukkitRedisListener() { - listen(); - } - - /** - * Handle an incoming {@link RedisMessage} - * - * @param message The {@link RedisMessage} to handle - */ - @Override - public void handleMessage(RedisMessage message) { - // Ignore messages for proxy servers - if (message.getMessageTarget().targetServerType() != Settings.ServerType.BUKKIT) { - return; - } - // Handle the message for the player - for (Player player : Bukkit.getOnlinePlayers()) { - if (player.getUniqueId() == message.getMessageTarget().targetPlayerName()) { - - return; - } - } - } - - /** - * Log to console - * - * @param level The {@link Level} to log - * @param message Message to log - */ - @Override - public void log(Level level, String message) { - plugin.getLogger().log(level, message); - } -} diff --git a/bukkit/src/main/java/me/william278/crossserversync/bukkit/CrossServerSyncBukkit.java b/bukkit/src/main/java/me/william278/crossserversync/bukkit/CrossServerSyncBukkit.java index a4cd3f88..4c7fbd7b 100644 --- a/bukkit/src/main/java/me/william278/crossserversync/bukkit/CrossServerSyncBukkit.java +++ b/bukkit/src/main/java/me/william278/crossserversync/bukkit/CrossServerSyncBukkit.java @@ -1,6 +1,9 @@ package me.william278.crossserversync.bukkit; import me.william278.crossserversync.bukkit.config.ConfigLoader; +import me.william278.crossserversync.bukkit.data.LastDataUpdateUUIDCache; +import me.william278.crossserversync.bukkit.listener.BukkitRedisListener; +import me.william278.crossserversync.bukkit.listener.EventListener; import org.bukkit.plugin.java.JavaPlugin; public final class CrossServerSyncBukkit extends JavaPlugin { @@ -10,6 +13,8 @@ public final class CrossServerSyncBukkit extends JavaPlugin { return instance; } + public static LastDataUpdateUUIDCache lastDataUpdateUUIDCache; + @Override public void onLoad() { instance = this; @@ -26,12 +31,22 @@ public final class CrossServerSyncBukkit extends JavaPlugin { reloadConfig(); ConfigLoader.loadSettings(getConfig()); + // Initialize last data update UUID cache + lastDataUpdateUUIDCache = new LastDataUpdateUUIDCache(); + // Initialize the redis listener new BukkitRedisListener(); + + // Initialize event listener + getServer().getPluginManager().registerEvents(new EventListener(), this); + + // Log to console + getLogger().info("Enabled CrossServerSync (" + getServer().getName() + ") v" + getDescription().getVersion()); } @Override public void onDisable() { // Plugin shutdown logic + getLogger().info("Disabled CrossServerSync (" + getServer().getName() + ") v" + getDescription().getVersion()); } } diff --git a/bukkit/src/main/java/me/william278/crossserversync/bukkit/InventorySerializer.java b/bukkit/src/main/java/me/william278/crossserversync/bukkit/InventorySerializer.java index ae00c954..eec8f1eb 100644 --- a/bukkit/src/main/java/me/william278/crossserversync/bukkit/InventorySerializer.java +++ b/bukkit/src/main/java/me/william278/crossserversync/bukkit/InventorySerializer.java @@ -3,7 +3,6 @@ package me.william278.crossserversync.bukkit; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.PlayerInventory; import org.bukkit.util.io.BukkitObjectInputStream; import org.bukkit.util.io.BukkitObjectOutputStream; import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder; @@ -107,13 +106,17 @@ public final class InventorySerializer { } /** - * Gets an array of ItemStacks from Base64 string. + * Gets an array of ItemStacks from a Base64 string. * * @param data Base64 string to convert to ItemStack array. * @return ItemStack array created from the Base64 string. * @throws IOException in the event the class type cannot be decoded */ public static ItemStack[] itemStackArrayFromBase64(String data) throws IOException { + // Return an empty ItemStack[] if the data is empty + if (data.isEmpty()) { + return new ItemStack[0]; + } try (ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(data))) { BukkitObjectInputStream dataInput = new BukkitObjectInputStream(inputStream); ItemStack[] items = new ItemStack[dataInput.readInt()]; diff --git a/bukkit/src/main/java/me/william278/crossserversync/bukkit/data/LastDataUpdateUUIDCache.java b/bukkit/src/main/java/me/william278/crossserversync/bukkit/data/LastDataUpdateUUIDCache.java new file mode 100644 index 00000000..c1247000 --- /dev/null +++ b/bukkit/src/main/java/me/william278/crossserversync/bukkit/data/LastDataUpdateUUIDCache.java @@ -0,0 +1,25 @@ +package me.william278.crossserversync.bukkit.data; + +import java.util.HashMap; +import java.util.UUID; + +public class LastDataUpdateUUIDCache { + + /** + * Map of Player UUIDs to last-updated PlayerData version UUIDs + */ + private static HashMap lastUpdatedPlayerDataUUIDs; + + public LastDataUpdateUUIDCache() { + lastUpdatedPlayerDataUUIDs = new HashMap<>(); + } + + public UUID getVersionUUID(UUID playerUUID) { + return lastUpdatedPlayerDataUUIDs.get(playerUUID); + } + + public void setVersionUUID(UUID playerUUID, UUID dataVersionUUID) { + lastUpdatedPlayerDataUUIDs.put(playerUUID, dataVersionUUID); + } + +} diff --git a/bukkit/src/main/java/me/william278/crossserversync/bukkit/listener/BukkitRedisListener.java b/bukkit/src/main/java/me/william278/crossserversync/bukkit/listener/BukkitRedisListener.java new file mode 100644 index 00000000..8bef6f34 --- /dev/null +++ b/bukkit/src/main/java/me/william278/crossserversync/bukkit/listener/BukkitRedisListener.java @@ -0,0 +1,69 @@ +package me.william278.crossserversync.bukkit.listener; + +import me.william278.crossserversync.bukkit.InventorySerializer; +import me.william278.crossserversync.PlayerData; +import me.william278.crossserversync.Settings; +import me.william278.crossserversync.bukkit.CrossServerSyncBukkit; +import me.william278.crossserversync.redis.RedisListener; +import me.william278.crossserversync.redis.RedisMessage; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; + +import java.io.IOException; +import java.util.logging.Level; + +public class BukkitRedisListener extends RedisListener { + + private static final CrossServerSyncBukkit plugin = CrossServerSyncBukkit.getInstance(); + + // Initialize the listener on the bukkit server + public BukkitRedisListener() { + listen(); + } + + /** + * Handle an incoming {@link RedisMessage} + * + * @param message The {@link RedisMessage} to handle + */ + @Override + public void handleMessage(RedisMessage message) { + // Ignore messages for proxy servers + if (message.getMessageTarget().targetServerType() != Settings.ServerType.BUKKIT) { + return; + } + // Handle the message for the player + for (Player player : Bukkit.getOnlinePlayers()) { + if (player.getUniqueId() == message.getMessageTarget().targetPlayerName()) { + if (message.getMessageType() == RedisMessage.MessageType.PLAYER_DATA_REPLY) { + try { + // Deserialize the received PlayerData + PlayerData data = (PlayerData) RedisMessage.deserialize(message.getMessageData()); + + // Set the player's data //todo do more stuff like health etc + InventorySerializer.setPlayerItems(player, InventorySerializer.itemStackArrayFromBase64(data.getSerializedInventory())); + InventorySerializer.setPlayerEnderChest(player, InventorySerializer.itemStackArrayFromBase64(data.getSerializedEnderChest())); + + // Update last loaded data UUID + CrossServerSyncBukkit.lastDataUpdateUUIDCache.setVersionUUID(player.getUniqueId(), data.getDataVersionUUID()); + } catch (IOException | ClassNotFoundException e) { + log(Level.SEVERE, "Failed to deserialize PlayerData when handling a reply from the proxy with PlayerData"); + e.printStackTrace(); + } + } + return; + } + } + } + + /** + * Log to console + * + * @param level The {@link Level} to log + * @param message Message to log + */ + @Override + public void log(Level level, String message) { + plugin.getLogger().log(level, message); + } +} diff --git a/bukkit/src/main/java/me/william278/crossserversync/bukkit/listener/EventListener.java b/bukkit/src/main/java/me/william278/crossserversync/bukkit/listener/EventListener.java new file mode 100644 index 00000000..a2a00cec --- /dev/null +++ b/bukkit/src/main/java/me/william278/crossserversync/bukkit/listener/EventListener.java @@ -0,0 +1,67 @@ +package me.william278.crossserversync.bukkit.listener; + +import me.william278.crossserversync.PlayerData; +import me.william278.crossserversync.Settings; +import me.william278.crossserversync.bukkit.CrossServerSyncBukkit; +import me.william278.crossserversync.bukkit.InventorySerializer; +import me.william278.crossserversync.redis.RedisMessage; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerQuitEvent; + +import java.io.IOException; +import java.util.UUID; +import java.util.logging.Level; + +public class EventListener implements Listener { + + private static final CrossServerSyncBukkit plugin = CrossServerSyncBukkit.getInstance(); + + /** + * Returns the new serialized PlayerData for a player. + * @param player The {@link Player} to get the new serialized PlayerData for + * @return The {@link PlayerData}, serialized as a {@link String} + * @throws IOException If the serialization fails + */ + private static String getNewSerializedPlayerData(Player player) throws IOException { + return RedisMessage.serialize(new PlayerData(player.getUniqueId(), + InventorySerializer.getSerializedInventoryContents(player), + InventorySerializer.getSerializedEnderChestContents(player))); + } + + @EventHandler + public void onPlayerQuit(PlayerQuitEvent event) { + // When a player leaves a Bukkit server + final Player player = event.getPlayer(); + + try { + // Get the player's last updated PlayerData version UUID + final UUID lastUpdatedDataVersion = CrossServerSyncBukkit.lastDataUpdateUUIDCache.getVersionUUID(player.getUniqueId()); + if (lastUpdatedDataVersion == null) return; // Return if the player has not been properly updated. + + // Send a redis message with the player's last updated PlayerData version UUID and their new PlayerData + new RedisMessage(RedisMessage.MessageType.PLAYER_DATA_UPDATE, + new RedisMessage.MessageTarget(Settings.ServerType.BUNGEECORD, null), + lastUpdatedDataVersion.toString(), getNewSerializedPlayerData(player)).send(); + } catch (IOException e) { + plugin.getLogger().log(Level.SEVERE, "Failed to send a PlayerData update to the proxy", e); + } + } + + @EventHandler + public void onPlayerJoin(PlayerJoinEvent event) { + // When a player joins a Bukkit server + final Player player = event.getPlayer(); + + try { + // Send a redis message requesting the player data + new RedisMessage(RedisMessage.MessageType.PLAYER_DATA_REQUEST, + new RedisMessage.MessageTarget(Settings.ServerType.BUNGEECORD, null), + player.getUniqueId().toString()).send(); + } catch (IOException e) { + plugin.getLogger().log(Level.SEVERE, "Failed to send a PlayerData fetch request", e); + } + } +} diff --git a/bungeecord/build.gradle b/bungeecord/build.gradle index 93b05103..76e401ec 100644 --- a/bungeecord/build.gradle +++ b/bungeecord/build.gradle @@ -3,12 +3,14 @@ dependencies { implementation project(path: ':common', configuration: 'shadow') implementation 'redis.clients:jedis:3.7.0' + implementation 'com.zaxxer:HikariCP:5.0.0' compileOnly 'net.md-5:bungeecord-api:1.16-R0.5-SNAPSHOT' } shadowJar { relocate 'redis.clients', 'me.William278.crossserversync.libraries.jedis' + relocate 'com.zaxxer', 'me.William278.crossserversync.libraries.hikari' relocate 'org.bstats', 'me.William278.crossserversync.libraries.plan' relocate 'org.apache.commons', 'me.William278.crossserversync.libraries.apache-commons' relocate 'org.slf4j', 'me.William278.crossserversync.libraries.slf4j' diff --git a/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/BungeeRedisListener.java b/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/BungeeRedisListener.java deleted file mode 100644 index 6edf42b5..00000000 --- a/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/BungeeRedisListener.java +++ /dev/null @@ -1,41 +0,0 @@ -package me.william278.crossserversync.bungeecord; - -import me.william278.crossserversync.Settings; -import me.william278.crossserversync.redis.RedisListener; -import me.william278.crossserversync.redis.RedisMessage; - -import java.util.logging.Level; - -public class BungeeRedisListener extends RedisListener { - - private static final CrossServerSyncBungeeCord plugin = CrossServerSyncBungeeCord.getInstance(); - - // Initialize the listener on the bungee - public BungeeRedisListener() { - listen(); - } - - /** - * Handle an incoming {@link RedisMessage} - * - * @param message The {@link RedisMessage} to handle - */ - @Override - public void handleMessage(RedisMessage message) { - // Ignore messages destined for Bukkit servers - if (message.getMessageTarget().targetServerType() != Settings.ServerType.BUNGEECORD) { - return; - } - } - - /** - * Log to console - * - * @param level The {@link Level} to log - * @param message Message to log - */ - @Override - public void log(Level level, String message) { - plugin.getLogger().log(level, message); - } -} diff --git a/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/CrossServerSyncBungeeCord.java b/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/CrossServerSyncBungeeCord.java index 93ed42e5..0d387493 100644 --- a/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/CrossServerSyncBungeeCord.java +++ b/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/CrossServerSyncBungeeCord.java @@ -1,9 +1,18 @@ package me.william278.crossserversync.bungeecord; +import me.william278.crossserversync.Settings; import me.william278.crossserversync.bungeecord.config.ConfigLoader; import me.william278.crossserversync.bungeecord.config.ConfigManager; +import me.william278.crossserversync.bungeecord.data.DataManager; +import me.william278.crossserversync.bungeecord.data.sql.Database; +import me.william278.crossserversync.bungeecord.data.sql.MySQL; +import me.william278.crossserversync.bungeecord.data.sql.SQLite; +import me.william278.crossserversync.bungeecord.listener.BungeeEventListener; +import me.william278.crossserversync.bungeecord.listener.BungeeRedisListener; import net.md_5.bungee.api.plugin.Plugin; +import java.sql.Connection; +import java.sql.SQLException; import java.util.Objects; public final class CrossServerSyncBungeeCord extends Plugin { @@ -13,7 +22,10 @@ public final class CrossServerSyncBungeeCord extends Plugin { return instance; } - public PlayerDataCache cache; + private static Database database; + public static Connection getConnection() throws SQLException { + return database.getConnection(); + } @Override public void onLoad() { @@ -30,15 +42,34 @@ public final class CrossServerSyncBungeeCord extends Plugin { // Load settings from config ConfigLoader.loadSettings(Objects.requireNonNull(ConfigManager.getConfig())); + // Initialize the database + database = switch (Settings.dataStorageType) { + case SQLITE -> new SQLite(this); + case MYSQL -> new MySQL(this); + }; + database.load(); + // Setup player data cache - cache = new PlayerDataCache(); + DataManager.setupCache(); + + // Initialize PreLoginEvent listener + getProxy().getPluginManager().registerListener(this, new BungeeEventListener()); // Initialize the redis listener new BungeeRedisListener(); + + // Log to console + getLogger().info("Enabled CrossServerSync (" + getProxy().getName() + ") v" + getDescription().getVersion()); } @Override public void onDisable() { // Plugin shutdown logic + + // Close the database + database.close(); + + // Log to console + getLogger().info("Disabled CrossServerSync (" + getProxy().getName() + ") v" + getDescription().getVersion()); } } diff --git a/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/PlayerDataCache.java b/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/PlayerDataCache.java deleted file mode 100644 index 27a5bf8a..00000000 --- a/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/PlayerDataCache.java +++ /dev/null @@ -1,51 +0,0 @@ -package me.william278.crossserversync.bungeecord; - -import me.william278.crossserversync.PlayerData; - -import java.util.HashSet; -import java.util.UUID; - -public class PlayerDataCache { - - // The cached player data - public HashSet playerData; - - public PlayerDataCache() { - playerData = new HashSet<>(); - } - - /** - * Update ar add data for a player to the cache - * @param newData The player's new/updated {@link PlayerData} - */ - public void updatePlayer(PlayerData newData) { - // Remove the old data if it exists - PlayerData oldData = null; - for (PlayerData data : playerData) { - if (data.getPlayerUUID() == newData.getPlayerUUID()) { - oldData = data; - } - } - if (oldData != null) { - playerData.remove(oldData); - } - - // Add the new data - playerData.add(newData); - } - - /** - * Get a player's {@link PlayerData} by their {@link UUID} - * @param playerUUID The {@link UUID} of the player to check - * @return The player's {@link PlayerData} - */ - public PlayerData getPlayer(UUID playerUUID) { - for (PlayerData data : playerData) { - if (data.getPlayerUUID() == playerUUID) { - return data; - } - } - return null; - } - -} diff --git a/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/data/DataManager.java b/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/data/DataManager.java new file mode 100644 index 00000000..7d811fa3 --- /dev/null +++ b/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/data/DataManager.java @@ -0,0 +1,243 @@ +package me.william278.crossserversync.bungeecord.data; + +import me.william278.crossserversync.PlayerData; +import me.william278.crossserversync.bungeecord.CrossServerSyncBungeeCord; +import me.william278.crossserversync.bungeecord.data.sql.Database; + +import java.sql.*; +import java.time.Instant; +import java.util.HashSet; +import java.util.UUID; +import java.util.logging.Level; + +public class DataManager { + + private static final CrossServerSyncBungeeCord plugin = CrossServerSyncBungeeCord.getInstance(); + public static PlayerDataCache playerDataCache; + + public static void setupCache() { + playerDataCache = new PlayerDataCache(); + } + + /** + * Checks if the player is registered on the database; register them if not. + * + * @param playerUUID The UUID of the player to register + */ + public static void ensurePlayerExists(UUID playerUUID) { + if (!playerExists(playerUUID)) { + createPlayerEntry(playerUUID); + } + } + + /** + * Returns whether the player is registered in SQL (an entry in the PLAYER_TABLE) + * + * @param playerUUID The UUID of the player + * @return {@code true} if the player is on the player table + */ + private static boolean playerExists(UUID playerUUID) { + try (Connection connection = CrossServerSyncBungeeCord.getConnection()) { + try (PreparedStatement statement = connection.prepareStatement( + "SELECT * FROM " + Database.PLAYER_TABLE_NAME + " WHERE `uuid`=?;")) { + statement.setString(1, playerUUID.toString()); + ResultSet resultSet = statement.executeQuery(); + return resultSet.next(); + } + } catch (SQLException e) { + plugin.getLogger().log(Level.SEVERE, "An SQL exception occurred", e); + return false; + } + } + + private static void createPlayerEntry(UUID playerUUID) { + try (Connection connection = CrossServerSyncBungeeCord.getConnection()) { + try (PreparedStatement statement = connection.prepareStatement( + "INSERT INTO " + Database.PLAYER_TABLE_NAME + " (`uuid`) VALUES(?);")) { + statement.setString(1, playerUUID.toString()); + statement.executeUpdate(); + } + } catch (SQLException e) { + plugin.getLogger().log(Level.SEVERE, "An SQL exception occurred", e); + } + } + + public static PlayerData getPlayerData(UUID playerUUID) { + try (Connection connection = CrossServerSyncBungeeCord.getConnection()) { + try (PreparedStatement statement = connection.prepareStatement( + "SELECT * FROM " + Database.DATA_TABLE_NAME + " WHERE `player_id`=(SELECT `id` FROM " + Database.PLAYER_TABLE_NAME + " WHERE `uuid`=?);")) { + statement.setString(1, playerUUID.toString()); + ResultSet resultSet = statement.executeQuery(); + if (resultSet.next()) { + final UUID dataVersionUUID = UUID.fromString(resultSet.getString("version_uuid")); + final Timestamp dataSaveTimestamp = resultSet.getTimestamp("timestamp"); + final String serializedInventory = resultSet.getString("inventory"); + final String serializedEnderChest = resultSet.getString("ender_chest"); + final double health = resultSet.getDouble("health"); + final double maxHealth = resultSet.getDouble("max_health"); + final double hunger = resultSet.getDouble("hunger"); + final double saturation = resultSet.getDouble("saturation"); + final String serializedStatusEffects = resultSet.getString("status_effects"); + + return new PlayerData(playerUUID, dataVersionUUID, serializedInventory, serializedEnderChest, health, maxHealth, hunger, saturation, serializedStatusEffects); + } else { + return PlayerData.EMPTY_PLAYER_DATA(playerUUID); + } + } + } catch (SQLException e) { + plugin.getLogger().log(Level.SEVERE, "An SQL exception occurred", e); + return null; + } + } + + public static void updatePlayerData(PlayerData playerData, UUID lastDataUUID) { + // Ignore if the Spigot server didn't properly sync the previous data + PlayerData oldPlayerData = playerDataCache.getPlayer(playerData.getPlayerUUID()); + if (oldPlayerData != null) { + if (oldPlayerData.getDataVersionUUID() != lastDataUUID) { + return; + } + } + + // Add the new player data to the cache + playerDataCache.updatePlayer(playerData); + + // SQL: If the player has cached data, update it, otherwise insert new data. + if (playerHasCachedData(playerData.getPlayerUUID())) { + updatePlayerData(playerData); + } else { + insertPlayerData(playerData); + } + } + + private static void updatePlayerData(PlayerData playerData) { + try (Connection connection = CrossServerSyncBungeeCord.getConnection()) { + try (PreparedStatement statement = connection.prepareStatement( + "UPDATE " + Database.DATA_TABLE_NAME + " SET `version_uuid`=?, `timestamp`=?, `inventory`=?, `ender_chest`=?, `health`=?, `max_health`=?, `hunger`=?, `saturation`=?, `status_effects`=? WHERE `player_id`=(SELECT `id` FROM " + Database.PLAYER_TABLE_NAME + " WHERE `uuid`=?);")) { + statement.setString(1, playerData.getDataVersionUUID().toString()); + statement.setTimestamp(2, new Timestamp(Instant.now().getEpochSecond())); + statement.setString(3, playerData.getSerializedInventory()); + statement.setString(4, playerData.getSerializedEnderChest()); + statement.setDouble(5, 20D); // Health + statement.setDouble(6, 20D); // Max health + statement.setDouble(7, 20D); // Hunger + statement.setDouble(8, 20D); // Saturation + statement.setString(9, ""); // Status effects + + statement.setString(10, playerData.getPlayerUUID().toString()); + statement.executeUpdate(); + } + } catch (SQLException e) { + plugin.getLogger().log(Level.SEVERE, "An SQL exception occurred", e); + } + } + + private static void insertPlayerData(PlayerData playerData) { + try (Connection connection = CrossServerSyncBungeeCord.getConnection()) { + try (PreparedStatement statement = connection.prepareStatement( + "INSERT INTO " + Database.DATA_TABLE_NAME + " (`player_id`,`version_uuid`,`timestamp`,`inventory`,`ender_chest`,`health`,`max_health`,`hunger`,`saturation`,`status_effects`) VALUES((SELECT `id` FROM " + Database.PLAYER_TABLE_NAME + " WHERE `uuid`=?),?,?,?,?,?,?,?,?,?);")) { + statement.setString(1, playerData.getPlayerUUID().toString()); + statement.setString(2, playerData.getDataVersionUUID().toString()); + statement.setTimestamp(3, new Timestamp(Instant.now().getEpochSecond())); + statement.setString(4, playerData.getSerializedInventory()); + statement.setString(5, playerData.getSerializedEnderChest()); + statement.setDouble(6, 20D); // Health + statement.setDouble(7, 20D); // Max health + statement.setDouble(8, 20D); // Hunger + statement.setDouble(9, 20D); // Saturation + statement.setString(10, ""); // Status effects + + statement.executeUpdate(); + } + } catch (SQLException e) { + plugin.getLogger().log(Level.SEVERE, "An SQL exception occurred", e); + } + } + + /** + * Returns whether the player has cached data saved in SQL (an entry in the DATA_TABLE) + * + * @param playerUUID The UUID of the player + * @return {@code true} if the player has an entry in the data table + */ + private static boolean playerHasCachedData(UUID playerUUID) { + try (Connection connection = CrossServerSyncBungeeCord.getConnection()) { + try (PreparedStatement statement = connection.prepareStatement( + "SELECT * FROM " + Database.DATA_TABLE_NAME + " WHERE `player_id`=(SELECT `id` FROM " + Database.PLAYER_TABLE_NAME + " WHERE `uuid`=?);")) { + statement.setString(1, playerUUID.toString()); + ResultSet resultSet = statement.executeQuery(); + return resultSet.next(); + } + } catch (SQLException e) { + plugin.getLogger().log(Level.SEVERE, "An SQL exception occurred", e); + return false; + } + } + + /** + * A cache of PlayerData + */ + public static class PlayerDataCache { + + // The cached player data + public HashSet playerData; + + public PlayerDataCache() { + playerData = new HashSet<>(); + } + + /** + * Update ar add data for a player to the cache + * + * @param newData The player's new/updated {@link PlayerData} + */ + public void updatePlayer(PlayerData newData) { + // Remove the old data if it exists + PlayerData oldData = null; + for (PlayerData data : playerData) { + if (data.getPlayerUUID() == newData.getPlayerUUID()) { + oldData = data; + } + } + if (oldData != null) { + playerData.remove(oldData); + } + + // Add the new data + playerData.add(newData); + } + + /** + * Get a player's {@link PlayerData} by their {@link UUID} + * + * @param playerUUID The {@link UUID} of the player to check + * @return The player's {@link PlayerData} + */ + public PlayerData getPlayer(UUID playerUUID) { + for (PlayerData data : playerData) { + if (data.getPlayerUUID() == playerUUID) { + return data; + } + } + return null; + } + + /** + * Remove a player's {@link PlayerData} from the cache + * @param playerUUID The UUID of the player to remove + */ + public void removePlayer(UUID playerUUID) { + PlayerData dataToRemove = null; + for (PlayerData data : playerData) { + if (data.getPlayerUUID() == playerUUID) { + dataToRemove = data; + break; + } + } + if (dataToRemove != null) { + playerData.remove(dataToRemove); + } + } + + } +} diff --git a/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/data/sql/Database.java b/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/data/sql/Database.java new file mode 100644 index 00000000..9db43303 --- /dev/null +++ b/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/data/sql/Database.java @@ -0,0 +1,33 @@ +package me.william278.crossserversync.bungeecord.data.sql; + +import me.william278.crossserversync.Settings; +import me.william278.crossserversync.bungeecord.CrossServerSyncBungeeCord; + +import java.sql.Connection; +import java.sql.SQLException; + +public abstract class Database { + protected CrossServerSyncBungeeCord plugin; + + public final static String DATA_POOL_NAME = "CrossServerSyncHikariPool"; + public final static String PLAYER_TABLE_NAME = "crossserversync_players"; + public final static String DATA_TABLE_NAME = "crossserversync_data"; + + public Database(CrossServerSyncBungeeCord instance) { + plugin = instance; + } + + public abstract Connection getConnection() throws SQLException; + + public abstract void load(); + + public abstract void backup(); + + public abstract void close(); + + public final int hikariMaximumPoolSize = Settings.hikariMaximumPoolSize; + public final int hikariMinimumIdle = Settings.hikariMinimumIdle; + public final long hikariMaximumLifetime = Settings.hikariMaximumLifetime; + public final long hikariKeepAliveTime = Settings.hikariKeepAliveTime; + public final long hikariConnectionTimeOut = Settings.hikariConnectionTimeOut; +} diff --git a/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/data/sql/MySQL.java b/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/data/sql/MySQL.java new file mode 100644 index 00000000..8842b19b --- /dev/null +++ b/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/data/sql/MySQL.java @@ -0,0 +1,99 @@ +package me.william278.crossserversync.bungeecord.data.sql; + +import com.zaxxer.hikari.HikariDataSource; +import me.william278.crossserversync.Settings; +import me.william278.crossserversync.bungeecord.CrossServerSyncBungeeCord; + +import java.sql.Connection; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.logging.Level; + +public class MySQL extends Database { + + final static String[] SQL_SETUP_STATEMENTS = { + "CREATE TABLE IF NOT EXISTS " + PLAYER_TABLE_NAME + " (" + + "`id` integer NOT NULL AUTO_INCREMENT," + + "`uuid` char(36) NOT NULL UNIQUE," + + + "PRIMARY KEY (`id`)" + + ");", + + "CREATE TABLE IF NOT EXISTS " + DATA_TABLE_NAME + " (" + + "`player_id` integer NOT NULL," + + "`version_uuid` char(36) NOT NULL UNIQUE," + + "`timestamp` datetime NOT NULL," + + "`inventory` longtext NOT NULL," + + "`ender_chest` longtext NOT NULL," + + "`health` double NOT NULL," + + "`max_health` double NOT NULL," + + "`hunger` double NOT NULL," + + "`saturation` double NOT NULL," + + "`status_effects` longtext NOT NULL," + + + "PRIMARY KEY (`player_id`,`uuid`)," + + "FOREIGN KEY (`player_id`) REFERENCES " + PLAYER_TABLE_NAME + " (`id`)" + + ");" + + }; + + final String host = Settings.mySQLHost; + final int port = Settings.mySQLPort; + final String database = Settings.mySQLDatabase; + final String username = Settings.mySQLUsername; + final String password = Settings.mySQLPassword; + final String params = Settings.mySQLParams; + + private HikariDataSource dataSource; + + public MySQL(CrossServerSyncBungeeCord instance) { + super(instance); + } + + @Override + public Connection getConnection() throws SQLException { + return dataSource.getConnection(); + } + + @Override + public void load() { + // Create new HikariCP data source + final String jdbcUrl = "jdbc:mysql://" + host + ":" + port + "/" + database + params; + dataSource = new HikariDataSource(); + dataSource.setJdbcUrl(jdbcUrl); + + dataSource.setUsername(username); + dataSource.setPassword(password); + + // Set various additional parameters + dataSource.setMaximumPoolSize(hikariMaximumPoolSize); + dataSource.setMinimumIdle(hikariMinimumIdle); + dataSource.setMaxLifetime(hikariMaximumLifetime); + dataSource.setKeepaliveTime(hikariKeepAliveTime); + dataSource.setConnectionTimeout(hikariConnectionTimeOut); + dataSource.setPoolName(DATA_POOL_NAME); + + // Create tables + try (Connection connection = dataSource.getConnection()) { + try (Statement statement = connection.createStatement()) { + for (String tableCreationStatement : SQL_SETUP_STATEMENTS) { + statement.execute(tableCreationStatement); + } + } + } catch (SQLException e) { + plugin.getLogger().log(Level.SEVERE, "An error occurred creating tables on the MySQL database: ", e); + } + } + + @Override + public void close() { + if (dataSource != null) { + dataSource.close(); + } + } + + @Override + public void backup() { + plugin.getLogger().info("Remember to make backups of your HuskHomes Database before updating the plugin!"); + } +} diff --git a/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/data/sql/SQLite.java b/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/data/sql/SQLite.java new file mode 100644 index 00000000..2e89e1aa --- /dev/null +++ b/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/data/sql/SQLite.java @@ -0,0 +1,133 @@ +package me.william278.crossserversync.bungeecord.data.sql; + +import com.zaxxer.hikari.HikariDataSource; +import me.william278.crossserversync.bungeecord.CrossServerSyncBungeeCord; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.StandardCopyOption; +import java.sql.Connection; +import java.sql.SQLException; +import java.sql.Statement; +import java.time.Instant; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.Locale; +import java.util.logging.Level; + +public class SQLite extends Database { + + final static String[] SQL_SETUP_STATEMENTS = { + "PRAGMA foreign_keys = ON;", + "PRAGMA encoding = 'UTF-8';", + + "CREATE TABLE IF NOT EXISTS " + PLAYER_TABLE_NAME + " (" + + "`id` integer NOT NULL AUTO_INCREMENT," + + "`uuid` char(36) NOT NULL UNIQUE," + + + "PRIMARY KEY (`id`)" + + ");", + + "CREATE TABLE IF NOT EXISTS " + DATA_TABLE_NAME + " (" + + "`player_id` integer NOT NULL," + + "`version_uuid` char(36) NOT NULL UNIQUE," + + "`timestamp` datetime NOT NULL," + + "`inventory` longtext NOT NULL," + + "`ender_chest` longtext NOT NULL," + + "`health` double NOT NULL," + + "`max_health` double NOT NULL," + + "`hunger` double NOT NULL," + + "`saturation` double NOT NULL," + + "`status_effects` longtext NOT NULL," + + + "PRIMARY KEY (`player_id`,`uuid`)," + + "FOREIGN KEY (`player_id`) REFERENCES " + PLAYER_TABLE_NAME + "(`id`)" + + ");" + + }; + + private static final String DATABASE_NAME = "CrossServerSyncData"; + + private HikariDataSource dataSource; + + public SQLite(CrossServerSyncBungeeCord instance) { + super(instance); + } + + // Create the database file if it does not exist yet + private void createDatabaseFileIfNotExist() { + File databaseFile = new File(plugin.getDataFolder(), DATABASE_NAME + ".db"); + if (!databaseFile.exists()) { + try { + if (!databaseFile.createNewFile()) { + plugin.getLogger().log(Level.SEVERE, "Failed to write new file: " + DATABASE_NAME + ".db (file already exists)"); + } + } catch (IOException e) { + plugin.getLogger().log(Level.SEVERE, "An error occurred writing a file: " + DATABASE_NAME + ".db (" + e.getCause() + ")"); + } + } + } + + @Override + public Connection getConnection() throws SQLException { + return dataSource.getConnection(); + } + + @Override + public void load() { + // Make SQLite database file + createDatabaseFileIfNotExist(); + + // Create new HikariCP data source + final String jdbcUrl = "jdbc:sqlite:" + plugin.getDataFolder().getAbsolutePath() + "/" + DATABASE_NAME + ".db"; + dataSource = new HikariDataSource(); + dataSource.setJdbcUrl(jdbcUrl); + + // Set various additional parameters + dataSource.setMaximumPoolSize(hikariMaximumPoolSize); + dataSource.setMinimumIdle(hikariMinimumIdle); + dataSource.setMaxLifetime(hikariMaximumLifetime); + dataSource.setKeepaliveTime(hikariKeepAliveTime); + dataSource.setConnectionTimeout(hikariConnectionTimeOut); + dataSource.setPoolName(DATA_POOL_NAME); + + // Create tables + try (Connection connection = dataSource.getConnection()) { + try (Statement statement = connection.createStatement()) { + for (String tableCreationStatement : SQL_SETUP_STATEMENTS) { + statement.execute(tableCreationStatement); + } + } + } catch (SQLException e) { + plugin.getLogger().log(Level.SEVERE, "An error occurred creating tables on the SQLite database: ", e); + } + } + + @Override + public void close() { + if (dataSource != null) { + dataSource.close(); + } + } + + @Override + public void backup() { + final String BACKUPS_FOLDER_NAME = "database-backups"; + final String backupFileName = DATABASE_NAME + "Backup_" + DateTimeFormatter.ofPattern("yyyy-MM-dd_HH-mm-ss-SS") + .withLocale(Locale.getDefault()) + .withZone(ZoneId.systemDefault()) + .format(Instant.now()).replaceAll(" ", "-") + ".db"; + final File databaseFile = new File(plugin.getDataFolder(), DATABASE_NAME + ".db"); + if (new File(plugin.getDataFolder(), BACKUPS_FOLDER_NAME).mkdirs()) { + plugin.getLogger().info("Created backups directory in CrossServerSync plugin data folder."); + } + final File backUpFile = new File(plugin.getDataFolder(), BACKUPS_FOLDER_NAME + File.separator + backupFileName); + try { + Files.copy(databaseFile.toPath(), backUpFile.toPath(), StandardCopyOption.REPLACE_EXISTING); + plugin.getLogger().info("Created a backup of your database."); + } catch (IOException iox) { + plugin.getLogger().log(Level.WARNING, "An error occurred making a database backup", iox); + } + } +} diff --git a/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/listener/BungeeEventListener.java b/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/listener/BungeeEventListener.java new file mode 100644 index 00000000..24ba7ec8 --- /dev/null +++ b/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/listener/BungeeEventListener.java @@ -0,0 +1,35 @@ +package me.william278.crossserversync.bungeecord.listener; + +import me.william278.crossserversync.bungeecord.CrossServerSyncBungeeCord; +import me.william278.crossserversync.bungeecord.data.DataManager; +import net.md_5.bungee.api.ProxyServer; +import net.md_5.bungee.api.connection.ProxiedPlayer; +import net.md_5.bungee.api.event.PlayerDisconnectEvent; +import net.md_5.bungee.api.event.PostLoginEvent; +import net.md_5.bungee.api.plugin.Listener; +import net.md_5.bungee.event.EventHandler; + +public class BungeeEventListener implements Listener { + + private static final CrossServerSyncBungeeCord plugin = CrossServerSyncBungeeCord.getInstance(); + + @EventHandler + public void onPostLogin(PostLoginEvent event) { + final ProxiedPlayer player = event.getPlayer(); + ProxyServer.getInstance().getScheduler().runAsync(plugin, () -> { + // Ensure the player has data on SQL + DataManager.ensurePlayerExists(player.getUniqueId()); + + // Update the player's data from SQL onto the cache + DataManager.playerDataCache.updatePlayer(DataManager.getPlayerData(player.getUniqueId())); + }); + } + + @EventHandler + public void onDisconnect(PlayerDisconnectEvent event) { + final ProxiedPlayer player = event.getPlayer(); + + // Remove the player's data from the cache + DataManager.playerDataCache.removePlayer(player.getUniqueId()); + } +} diff --git a/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/listener/BungeeRedisListener.java b/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/listener/BungeeRedisListener.java new file mode 100644 index 00000000..12faaeb4 --- /dev/null +++ b/bungeecord/src/main/java/me/william278/crossserversync/bungeecord/listener/BungeeRedisListener.java @@ -0,0 +1,102 @@ +package me.william278.crossserversync.bungeecord.listener; + +import me.william278.crossserversync.PlayerData; +import me.william278.crossserversync.Settings; +import me.william278.crossserversync.bungeecord.CrossServerSyncBungeeCord; +import me.william278.crossserversync.bungeecord.data.DataManager; +import me.william278.crossserversync.redis.RedisListener; +import me.william278.crossserversync.redis.RedisMessage; +import net.md_5.bungee.api.ProxyServer; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.util.UUID; +import java.util.logging.Level; + +public class BungeeRedisListener extends RedisListener { + + private static final CrossServerSyncBungeeCord plugin = CrossServerSyncBungeeCord.getInstance(); + + // Initialize the listener on the bungee + public BungeeRedisListener() { + listen(); + } + + private PlayerData getPlayerCachedData(UUID uuid) { + for (PlayerData data : DataManager.playerDataCache.playerData) { + if (data.getPlayerUUID() == uuid) { + return data; + } + } + // If the cache does not contain player data: + DataManager.ensurePlayerExists(uuid); // Make sure the player is registered on MySQL + + final PlayerData data = DataManager.getPlayerData(uuid); // Get their player data from MySQL + DataManager.playerDataCache.updatePlayer(data); // Update the cache + return data; // Return the data + } + + /** + * Handle an incoming {@link RedisMessage} + * + * @param message The {@link RedisMessage} to handle + */ + @Override + public void handleMessage(RedisMessage message) { + // Ignore messages destined for Bukkit servers + if (message.getMessageTarget().targetServerType() != Settings.ServerType.BUNGEECORD) { + return; + } + + switch (message.getMessageType()) { + case PLAYER_DATA_REQUEST -> { + // Get the UUID of the requesting player + final UUID requestingPlayerUUID = UUID.fromString(message.getMessageData()); + ProxyServer.getInstance().getScheduler().runAsync(plugin, () -> { + try { + // Send the reply, serializing the message data + new RedisMessage(RedisMessage.MessageType.PLAYER_DATA_REPLY, + new RedisMessage.MessageTarget(Settings.ServerType.BUKKIT, requestingPlayerUUID), + RedisMessage.serialize(getPlayerCachedData(requestingPlayerUUID))).send(); + } catch (IOException e) { + log(Level.SEVERE, "Failed to serialize data when replying to a data request"); + e.printStackTrace(); + } + }); + } + case PLAYER_DATA_UPDATE -> { + // Get the update data + final String[] updateData = message.getMessageDataSeparated(); + + // Get UUID of the last-updated data on the spigot + final UUID lastDataUpdateUUID = UUID.fromString(updateData[0]); + + // Deserialize the PlayerData + PlayerData playerData; + final String serializedPlayerData = updateData[1]; + try (ObjectInputStream stream = new ObjectInputStream(new ByteArrayInputStream(serializedPlayerData.getBytes()))) { + playerData = (PlayerData) stream.readObject(); + } catch (IOException | ClassNotFoundException e) { + log(Level.SEVERE, "Failed to deserialize PlayerData when handling a player update request"); + e.printStackTrace(); + return; + } + + // Update the data in the cache and SQL + DataManager.updatePlayerData(playerData, lastDataUpdateUUID); + } + } + } + + /** + * Log to console + * + * @param level The {@link Level} to log + * @param message Message to log + */ + @Override + public void log(Level level, String message) { + plugin.getLogger().log(level, message); + } +} \ No newline at end of file diff --git a/common/src/main/java/me/william278/crossserversync/PlayerData.java b/common/src/main/java/me/william278/crossserversync/PlayerData.java index fccba6b4..5ef72469 100644 --- a/common/src/main/java/me/william278/crossserversync/PlayerData.java +++ b/common/src/main/java/me/william278/crossserversync/PlayerData.java @@ -1,6 +1,6 @@ package me.william278.crossserversync; -import java.io.Serializable; +import java.io.*; import java.util.UUID; public class PlayerData implements Serializable { @@ -25,13 +25,13 @@ public class PlayerData implements Serializable { */ private final String serializedEnderChest; - //todo add more stuff, like ender chest, player health, max health, hunger and status effects, et cetera - /** * Create a new PlayerData object; a random data version UUID will be selected. - * @param playerUUID The UUID of the player + * + * @param playerUUID The UUID of the player * @param serializedInventory The player's serialized inventory data */ + //todo add more stuff, like player health, max health, hunger, saturation and status effects public PlayerData(UUID playerUUID, String serializedInventory, String serializedEnderChest) { this.dataVersionUUID = UUID.randomUUID(); this.playerUUID = playerUUID; @@ -39,6 +39,19 @@ public class PlayerData implements Serializable { this.serializedEnderChest = serializedEnderChest; } + public PlayerData(UUID playerUUID, UUID dataVersionUUID, String serializedInventory, String serializedEnderChest, double health, double maxHealth, double hunger, double saturation, String serializedStatusEffects) { + this.playerUUID = playerUUID; + this.dataVersionUUID = dataVersionUUID; + this.serializedInventory = serializedInventory; + this.serializedEnderChest = serializedEnderChest; + + //todo Incorporate more of these + } + + public static PlayerData EMPTY_PLAYER_DATA(UUID playerUUID) { + return new PlayerData(playerUUID, "", ""); + } + public UUID getPlayerUUID() { return playerUUID; } diff --git a/common/src/main/java/me/william278/crossserversync/redis/RedisListener.java b/common/src/main/java/me/william278/crossserversync/redis/RedisListener.java index 077e08b1..3ae2ebcb 100644 --- a/common/src/main/java/me/william278/crossserversync/redis/RedisListener.java +++ b/common/src/main/java/me/william278/crossserversync/redis/RedisListener.java @@ -4,6 +4,7 @@ import me.william278.crossserversync.Settings; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPubSub; +import java.io.IOException; import java.util.logging.Level; public abstract class RedisListener { @@ -42,7 +43,11 @@ public abstract class RedisListener { } // Handle the message - handleMessage(new RedisMessage(message)); + try { + handleMessage(new RedisMessage(message)); + } catch (IOException | ClassNotFoundException e) { + log(Level.SEVERE, "Failed to deserialize message target"); + } } }, RedisMessage.REDIS_CHANNEL), "Redis Subscriber").start(); } else { diff --git a/common/src/main/java/me/william278/crossserversync/redis/RedisMessage.java b/common/src/main/java/me/william278/crossserversync/redis/RedisMessage.java index 60896796..8a74a584 100644 --- a/common/src/main/java/me/william278/crossserversync/redis/RedisMessage.java +++ b/common/src/main/java/me/william278/crossserversync/redis/RedisMessage.java @@ -1,12 +1,11 @@ package me.william278.crossserversync.redis; +import me.william278.crossserversync.PlayerData; import me.william278.crossserversync.Settings; import redis.clients.jedis.Jedis; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.Serializable; +import java.io.*; +import java.util.Base64; import java.util.StringJoiner; import java.util.UUID; @@ -41,32 +40,27 @@ public class RedisMessage { * Get a new RedisMessage from an incoming message string * @param messageString The message string to parse */ - public RedisMessage(String messageString) { + public RedisMessage(String messageString) throws IOException, ClassNotFoundException { String[] messageMetaElements = messageString.split(MESSAGE_META_SEPARATOR); messageType = MessageType.valueOf(messageMetaElements[0]); + messageTarget = (MessageTarget) RedisMessage.deserialize(messageMetaElements[1]); messageData = messageMetaElements[2]; - - try (ObjectInputStream stream = new ObjectInputStream(new ByteArrayInputStream(messageMetaElements[1].getBytes()))) { - messageTarget = (MessageTarget) stream.readObject(); - } catch (IOException | ClassNotFoundException e) { - e.printStackTrace(); - } } /** * Returns the full, formatted message string with type, target & data * @return The fully formatted message */ - private String getFullMessage() { + private String getFullMessage() throws IOException { return new StringJoiner(MESSAGE_META_SEPARATOR) - .add(messageType.toString()).add(messageTarget.toString()).add(messageData) + .add(messageType.toString()).add(RedisMessage.serialize(messageTarget)).add(messageData) .toString(); } /** * Send the redis message */ - public void send() { + public void send() throws IOException { try (Jedis publisher = new Jedis(Settings.redisHost, Settings.redisPort)) { final String jedisPassword = Settings.redisPassword; if (!jedisPassword.equals("")) { @@ -77,6 +71,10 @@ public class RedisMessage { } } + public String[] getMessageDataSeparated() { + return messageData.split(MESSAGE_DATA_SEPARATOR); + } + public String getMessageData() { return messageData; } @@ -94,17 +92,17 @@ public class RedisMessage { */ public enum MessageType { /** - * Sent by Bukkit servers to proxy when a player disconnects with a player's updated data, alongside the UUID of the last loaded {@link me.william278.crossserversync.PlayerData} for the user + * Sent by Bukkit servers to proxy when a player disconnects with a player's updated data, alongside the UUID of the last loaded {@link PlayerData} for the user */ PLAYER_DATA_UPDATE, /** - * Sent by Bukkit servers to proxy to request {@link me.william278.crossserversync.PlayerData} from the proxy. + * Sent by Bukkit servers to proxy to request {@link PlayerData} from the proxy. */ PLAYER_DATA_REQUEST, /** - * Sent by the Proxy to reply to a {@code MessageType.PLAYER_DATA_REQUEST}, contains the latest {@link me.william278.crossserversync.PlayerData} for the requester. + * Sent by the Proxy to reply to a {@code MessageType.PLAYER_DATA_REQUEST}, contains the latest {@link PlayerData} for the requester. */ PLAYER_DATA_REPLY } @@ -114,4 +112,25 @@ public class RedisMessage { * For Bukkit servers, the name of the server must also be specified */ public record MessageTarget(Settings.ServerType targetServerType, UUID targetPlayerName) implements Serializable { } + + /** + * Deserialize an object from a Base64 string + */ + public static Object deserialize(String s) throws IOException, ClassNotFoundException { + byte[] data = Base64.getDecoder().decode(s); + try (ObjectInputStream objectInputStream = new ObjectInputStream(new ByteArrayInputStream(data))) { + return objectInputStream.readObject(); + } + } + + /** + * Serialize an object to a Base64 string + */ + public static String serialize(Serializable o) throws IOException { + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + try (ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream)) { + objectOutputStream.writeObject(o); + } + return Base64.getEncoder().encodeToString(byteArrayOutputStream.toByteArray()); + } } \ No newline at end of file diff --git a/images/flow-chart.png b/images/flow-chart.png index 818d4315faff7ad23c8f79ec4d782585a3825222..3e9527d6e126df961c664c9b95467a8817a5cf59 100644 GIT binary patch delta 121137 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 delta 115420 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®s~LwUxgg`yIDKT0q<6rS=D<8MpWAYA}o%U^2 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