From 7c5557abd219bccf33a1d1af2130cde474326da7 Mon Sep 17 00:00:00 2001 From: Liam Date: Sat, 30 Mar 2024 12:24:12 +0000 Subject: [PATCH] add version check and notify user --- pom.xml | 11 ++++++++++ src/main/java/cc/fascinated/Aetheria.java | 2 ++ .../java/cc/fascinated/chat/ChatManager.java | 2 +- .../java/cc/fascinated/config/Config.java | 8 ++++++- .../fascinated/misc/PlayerVersionWarning.java | 21 +++++++++++++++++++ src/main/resources/config.yml | 4 ++++ src/main/resources/plugin.yml | 1 + 7 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 src/main/java/cc/fascinated/misc/PlayerVersionWarning.java diff --git a/pom.xml b/pom.xml index 96db512..f6bcf4d 100644 --- a/pom.xml +++ b/pom.xml @@ -112,6 +112,10 @@ placeholderapi https://repo.extendedclip.com/content/repositories/placeholderapi/ + + viaversion-repo + https://repo.viaversion.com + @@ -160,6 +164,13 @@ 7.0.0 compile + + + com.viaversion + viaversion-api + 4.9.2 + provided + \ No newline at end of file diff --git a/src/main/java/cc/fascinated/Aetheria.java b/src/main/java/cc/fascinated/Aetheria.java index fc52189..22a92c3 100644 --- a/src/main/java/cc/fascinated/Aetheria.java +++ b/src/main/java/cc/fascinated/Aetheria.java @@ -4,6 +4,7 @@ import cc.fascinated.account.AccountManager; import cc.fascinated.chat.ChatManager; import cc.fascinated.command.CommandManager; import cc.fascinated.metrics.MetricManager; +import cc.fascinated.misc.PlayerVersionWarning; import cc.fascinated.motd.MotdManager; import cc.fascinated.placeholder.PlaceholderManager; import cc.fascinated.playercolor.PlayerColorManager; @@ -44,5 +45,6 @@ public class Aetheria extends JavaPlugin { new PlayerColorManager(); new ChatManager(); new MotdManager(); + new PlayerVersionWarning(); } } \ No newline at end of file diff --git a/src/main/java/cc/fascinated/chat/ChatManager.java b/src/main/java/cc/fascinated/chat/ChatManager.java index c524128..8c5a5b9 100644 --- a/src/main/java/cc/fascinated/chat/ChatManager.java +++ b/src/main/java/cc/fascinated/chat/ChatManager.java @@ -31,7 +31,7 @@ public class ChatManager extends Manager { private final HashMap lastMessage = new HashMap<>(); private final Pattern domainPattern = Pattern.compile("^((?!-)[A-Za-z0-9-]{1,63}(? getAsStringList() { return (List) get(); } + + public int getAsInt() { + return (int) get(); + } } diff --git a/src/main/java/cc/fascinated/misc/PlayerVersionWarning.java b/src/main/java/cc/fascinated/misc/PlayerVersionWarning.java new file mode 100644 index 0000000..7b508ac --- /dev/null +++ b/src/main/java/cc/fascinated/misc/PlayerVersionWarning.java @@ -0,0 +1,21 @@ +package cc.fascinated.misc; + +import cc.fascinated.config.Config; +import cc.fascinated.utils.Manager; +import cc.fascinated.utils.Style; +import com.viaversion.viaversion.api.Via; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerJoinEvent; + +public class PlayerVersionWarning extends Manager { + + @EventHandler + public void onPlayerJoin(PlayerJoinEvent event) { + Player player = event.getPlayer(); + int version = Via.getAPI().getPlayerVersion(player.getUniqueId()); + if (version < Config.VERSION_WARNING_VERSION.getAsInt()) { + player.sendMessage(Style.getMiniMessage().deserialize(Config.VERSION_WARNING_MESSAGE.getAsString())); + } + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 7ef308b..4ea86ef 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -7,6 +7,10 @@ influxdb: discord: log-webhook: "https://discord.com/api/webhooks/1223162714822807572/jkqXHdcf4ov7MTC4fxx8MI2rSCoQTHONua8VOJa3ie5OtHBthqd5MGM7WGd7oHF52OOm" +version-warning: + min-version: 763 # 1.20 + message: "WARNING! You are using an outdated version of Minecraft. Please update to the latest version to avoid any issues." + motd: header: "Aetheria" format: "%motd%" diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 20273eb..4115d3e 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -5,6 +5,7 @@ api-version: 1.20 author: Fascinated depend: - PlaceholderAPI + - ViaVersion commands: totaljoins: description: "Shows the total amount of joins"