Added login listener to prevent players from joining with an unsupported version

master
Alex 2022-03-13 19:37:04 +01:00
parent 7a18172b0a
commit d0fb219805
2 changed files with 30 additions and 1 deletions

View File

@ -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);
});

View File

@ -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);
}
}
}