Added login listener to prevent players from joining with an unsupported version
parent
7a18172b0a
commit
d0fb219805
|
@ -12,6 +12,7 @@ import lombok.SneakyThrows;
|
||||||
import net.krakatoa.proxy.command.CodeCommand;
|
import net.krakatoa.proxy.command.CodeCommand;
|
||||||
import net.krakatoa.proxy.command.SendTestMessageCommand;
|
import net.krakatoa.proxy.command.SendTestMessageCommand;
|
||||||
import net.krakatoa.proxy.config.ConfigHandler;
|
import net.krakatoa.proxy.config.ConfigHandler;
|
||||||
|
import net.krakatoa.proxy.listener.LoginListener;
|
||||||
import net.krakatoa.proxy.listener.PlayerDisconnectListener;
|
import net.krakatoa.proxy.listener.PlayerDisconnectListener;
|
||||||
import net.krakatoa.proxy.listener.PostLoginListener;
|
import net.krakatoa.proxy.listener.PostLoginListener;
|
||||||
import net.krakatoa.proxy.listener.SocketClientMessageListener;
|
import net.krakatoa.proxy.listener.SocketClientMessageListener;
|
||||||
|
@ -83,7 +84,7 @@ public class ProxySystem extends Plugin {
|
||||||
|
|
||||||
public void loadListeners() {
|
public void loadListeners() {
|
||||||
PluginManager pluginManager = getProxy().getPluginManager();
|
PluginManager pluginManager = getProxy().getPluginManager();
|
||||||
Arrays.asList(new PostLoginListener(), new PlayerDisconnectListener())
|
Arrays.asList(new PostLoginListener(), new PlayerDisconnectListener(), new LoginListener())
|
||||||
.forEach(listener -> {
|
.forEach(listener -> {
|
||||||
pluginManager.registerListener(this, listener);
|
pluginManager.registerListener(this, listener);
|
||||||
});
|
});
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue