diff --git a/build.gradle b/build.gradle index ad9d2be4..6274201e 100644 --- a/build.gradle +++ b/build.gradle @@ -11,7 +11,7 @@ plugins { allprojects { group 'me.William278' - version '1.0-dev' + version '1.0' compileJava { options.encoding = 'UTF-8' } tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } diff --git a/bungeecord/src/main/java/me/william278/husksync/HuskSyncBungeeCord.java b/bungeecord/src/main/java/me/william278/husksync/HuskSyncBungeeCord.java index 13d18f00..5daacf6a 100644 --- a/bungeecord/src/main/java/me/william278/husksync/HuskSyncBungeeCord.java +++ b/bungeecord/src/main/java/me/william278/husksync/HuskSyncBungeeCord.java @@ -32,6 +32,9 @@ public final class HuskSyncBungeeCord extends Plugin { return instance; } + // Whether the plugin is ready to accept redis messages + public static boolean readyForRedis = false; + /** Set of all the {@link Server}s that have completed the synchronisation handshake with HuskSync on the proxy */ @@ -107,6 +110,9 @@ public final class HuskSyncBungeeCord extends Plugin { // Log to console getLogger().info("Enabled HuskSync (" + getProxy().getName() + ") v" + getDescription().getVersion()); + + // Mark as ready for redis message processing + readyForRedis = true; } @Override diff --git a/bungeecord/src/main/java/me/william278/husksync/bungeecord/data/sql/MySQL.java b/bungeecord/src/main/java/me/william278/husksync/bungeecord/data/sql/MySQL.java index 7d351110..c68f65c4 100644 --- a/bungeecord/src/main/java/me/william278/husksync/bungeecord/data/sql/MySQL.java +++ b/bungeecord/src/main/java/me/william278/husksync/bungeecord/data/sql/MySQL.java @@ -43,7 +43,7 @@ public class MySQL extends Database { "`advancements` longtext NOT NULL," + "`location` text NOT NULL," + - "PRIMARY KEY (`player_id`,`uuid`)," + + "PRIMARY KEY (`player_id`,`version_uuid`)," + "FOREIGN KEY (`player_id`) REFERENCES " + PLAYER_TABLE_NAME + " (`id`)" + ");" diff --git a/bungeecord/src/main/java/me/william278/husksync/bungeecord/listener/BungeeRedisListener.java b/bungeecord/src/main/java/me/william278/husksync/bungeecord/listener/BungeeRedisListener.java index e8641e43..7403cbfc 100644 --- a/bungeecord/src/main/java/me/william278/husksync/bungeecord/listener/BungeeRedisListener.java +++ b/bungeecord/src/main/java/me/william278/husksync/bungeecord/listener/BungeeRedisListener.java @@ -49,6 +49,10 @@ public class BungeeRedisListener extends RedisListener { if (message.getMessageTarget().targetServerType() != Settings.ServerType.BUNGEECORD) { return; } + // Only process redis messages when ready + if (!HuskSyncBungeeCord.readyForRedis) { + return; + } switch (message.getMessageType()) { case PLAYER_DATA_REQUEST -> { diff --git a/bungeecord/src/main/resources/languages/en-gb.yml b/bungeecord/src/main/resources/languages/en-gb.yml index 1eebc2ee..d7bd97b5 100644 --- a/bungeecord/src/main/resources/languages/en-gb.yml +++ b/bungeecord/src/main/resources/languages/en-gb.yml @@ -10,4 +10,4 @@ error_cannot_view_ender_chest_online: '[Error:](#ff3300) [You can''t access the error_cannot_view_own_inventory: '[Error:](#ff3300) [You can''t access your own inventory!](#ff7e5e)' error_cannot_view_own_ender_chest: '[Error:](#ff3300) [You can''t access your own ender chest!](#ff7e5e)' error_console_command_only: '[Error:](#ff3300) [That command can only be run through the %1% console](#ff7e5e)' -error_no_servers_proxied: '[Error:](#ff3300) [Failed to process operation; no servers are online that have HuskSync installed.\nPlease ensure HuskSync is installed on both the Proxy server and all servers you wish to synchronise data between](#ff7e5e)' \ No newline at end of file +error_no_servers_proxied: '[Error:](#ff3300) [Failed to process operation; no servers are online that have HuskSync installed. Please ensure HuskSync is installed on both the Proxy server and all servers you wish to synchronise data between.](#ff7e5e)' \ No newline at end of file