Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package bungeeController;
- import java.util.concurrent.ConcurrentHashMap;
- import net.md_5.bungee.api.connection.ProxiedPlayer;
- import net.md_5.bungee.api.event.PreLoginEvent;
- import net.md_5.bungee.api.event.ServerConnectEvent;
- import net.md_5.bungee.api.plugin.Listener;
- import net.md_5.bungee.event.EventHandler;
- import packets.Packet;
- import packets.RequestServer;
- public class BungeeListener implements Listener {
- BungeeController plugin;
- ConcurrentHashMap<String, RequestServer> playersLoggingIn = new ConcurrentHashMap<>();
- public BungeeListener(BungeeController bungeeController) {
- this.plugin = bungeeController;
- }
- @EventHandler
- public void onPostLoginEventEvent(ServerConnectEvent event) {
- ProxiedPlayer player = event.getPlayer();
- if (player != null) {
- if (player.getServer() == null) {
- RequestServer packet = null;
- if(playersLoggingIn.containsKey(player.getName())){
- packet = playersLoggingIn.get(player.getName());
- }
- if(packet != null){
- if(packet.isBanned()){
- event.setCancelled(true);
- } else {
- String server = packet.getServerName();
- event.setTarget(plugin.getProxy().getServerInfo(server));
- }
- }
- if(playersLoggingIn.containsKey(player.getName())){
- playersLoggingIn.remove(player.getName());
- }
- }
- }
- }
- @EventHandler
- public void onPlayerJoin(PreLoginEvent event){
- String player = event.getConnection().getName();
- System.out.println("Player " + player + " is joining");
- Packet requestPacket = new RequestServer(player, "WORLDREQUEST");
- System.out.println("Requesting Players server");
- Packet packet = BungeeRealmConnector.requestServerAndWait(requestPacket);
- System.out.println("isBanned: " + ((RequestServer) packet).isBanned());
- if(((RequestServer) packet).isBanned()){
- String reason = ((RequestServer) packet).getBanReason() != null ? ((RequestServer) packet).getBanReason() : "Banned";
- System.out.println("Reason: " + reason);
- event.setCancelReason(reason);
- event.setCancelled(true);
- } else {
- playersLoggingIn.put(player, (RequestServer)packet);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement