diff --git a/src/main/java/net/krakatoa/proxy/ProxySystem.java b/src/main/java/net/krakatoa/proxy/ProxySystem.java index 743bcea..795ad31 100644 --- a/src/main/java/net/krakatoa/proxy/ProxySystem.java +++ b/src/main/java/net/krakatoa/proxy/ProxySystem.java @@ -12,6 +12,7 @@ import lombok.SneakyThrows; import net.krakatoa.proxy.command.CodeCommand; import net.krakatoa.proxy.command.SendTestMessageCommand; import net.krakatoa.proxy.config.ConfigHandler; +import net.krakatoa.proxy.listener.LoginListener; import net.krakatoa.proxy.listener.PlayerDisconnectListener; import net.krakatoa.proxy.listener.PostLoginListener; import net.krakatoa.proxy.listener.SocketClientMessageListener; @@ -83,7 +84,7 @@ public class ProxySystem extends Plugin { public void loadListeners() { PluginManager pluginManager = getProxy().getPluginManager(); - Arrays.asList(new PostLoginListener(), new PlayerDisconnectListener()) + Arrays.asList(new PostLoginListener(), new PlayerDisconnectListener(), new LoginListener()) .forEach(listener -> { pluginManager.registerListener(this, listener); }); diff --git a/src/main/java/net/krakatoa/proxy/listener/LoginListener.java b/src/main/java/net/krakatoa/proxy/listener/LoginListener.java new file mode 100644 index 0000000..17953a0 --- /dev/null +++ b/src/main/java/net/krakatoa/proxy/listener/LoginListener.java @@ -0,0 +1,28 @@ +package net.krakatoa.proxy.listener; + +import net.krakatoa.proxy.ProxySystem; +import net.md_5.bungee.api.ChatColor; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.api.chat.ComponentBuilder; +import net.md_5.bungee.api.event.LoginEvent; +import net.md_5.bungee.api.plugin.Listener; +import net.md_5.bungee.event.EventHandler; + +public class LoginListener implements Listener { + + // https://wiki.vg/Protocol_version_numbers + + private final BaseComponent[] component = new ComponentBuilder( + "You must use 1.18.X to play here").color( + ChatColor.RED).create(); + + @EventHandler + public void onLoginEvent(LoginEvent event) { + ProxySystem.getInstance().getLogger().info("Version: " + event.getConnection().getVersion()); + + if (event.getConnection().getVersion() < 757) { + event.setCancelled(true); + event.setCancelReason(component); + } + } +}