Advertisement
Guest User

Untitled

a guest
Feb 25th, 2014
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.32 KB | None | 0 0
  1. package bungeeController;
  2.  
  3. import java.util.concurrent.ConcurrentHashMap;
  4.  
  5. import net.md_5.bungee.api.connection.ProxiedPlayer;
  6. import net.md_5.bungee.api.event.PreLoginEvent;
  7. import net.md_5.bungee.api.event.ServerConnectEvent;
  8. import net.md_5.bungee.api.plugin.Listener;
  9. import net.md_5.bungee.event.EventHandler;
  10. import packets.Packet;
  11. import packets.RequestServer;
  12.  
  13. public class BungeeListener implements Listener {
  14.   BungeeController plugin;
  15.  
  16.   ConcurrentHashMap<String, RequestServer> playersLoggingIn = new ConcurrentHashMap<>();
  17.  
  18.   public BungeeListener(BungeeController bungeeController) {
  19.     this.plugin = bungeeController;
  20.   }
  21.  
  22.   @EventHandler
  23.   public void onPostLoginEventEvent(ServerConnectEvent event) {
  24.  
  25.     ProxiedPlayer player = event.getPlayer();
  26.  
  27.     if (player != null) {
  28.       if (player.getServer() == null) {
  29.        
  30.         RequestServer packet = null;
  31.        
  32.         if(playersLoggingIn.containsKey(player.getName())){
  33.           packet = playersLoggingIn.get(player.getName());
  34.         }
  35.        
  36.         if(packet != null){
  37.           if(packet.isBanned()){
  38.             event.setCancelled(true);
  39.           } else {
  40.             String server = packet.getServerName();
  41.  
  42.             event.setTarget(plugin.getProxy().getServerInfo(server));
  43.           }
  44.         }
  45.        
  46.        
  47.         if(playersLoggingIn.containsKey(player.getName())){
  48.           playersLoggingIn.remove(player.getName());
  49.         }
  50.       }
  51.     }
  52.   }
  53.  
  54.   @EventHandler
  55.   public void onPlayerJoin(PreLoginEvent event){
  56.     String player = event.getConnection().getName();
  57.    
  58.     System.out.println("Player " + player + " is joining");
  59.    
  60.     Packet requestPacket = new RequestServer(player, "WORLDREQUEST");
  61.     System.out.println("Requesting Players server");
  62.     Packet packet = BungeeRealmConnector.requestServerAndWait(requestPacket);
  63.    
  64.     System.out.println("isBanned: " + ((RequestServer) packet).isBanned());
  65.    
  66.     if(((RequestServer) packet).isBanned()){
  67.       String reason = ((RequestServer) packet).getBanReason() != null ? ((RequestServer) packet).getBanReason() : "Banned";
  68.       System.out.println("Reason: " + reason);
  69.       event.setCancelReason(reason);
  70.       event.setCancelled(true);
  71.     } else {
  72.       playersLoggingIn.put(player, (RequestServer)packet);
  73.     }
  74.   }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement