MrJonton01

PremiumKick - Code

May 25th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.95 KB | None | 0 0
  1. package me.MrJonton01.PremiumKick;
  2.  
  3. import java.io.ByteArrayOutputStream;
  4. import java.io.DataOutputStream;
  5. import java.util.ArrayList;
  6. import java.util.Collection;
  7. import java.util.List;
  8. import java.util.Random;
  9.  
  10. import org.bukkit.Bukkit;
  11. import org.bukkit.entity.Player;
  12. import org.bukkit.event.EventHandler;
  13. import org.bukkit.event.player.PlayerLoginEvent;
  14. import org.bukkit.plugin.java.JavaPlugin;
  15.  
  16. import net.md_5.bungee.api.ChatColor;
  17.  
  18. public class Main extends JavaPlugin {
  19.  
  20.     private String prefix;
  21.    
  22.     public void onEnable(){
  23.         Bukkit.getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
  24.         check("prefix", "&7[&3PremiumKick&7]");
  25.         check("lobby-server", "lobby");
  26.         check("kick-msg", "&cDu wurdest von einem &6Premium-Spieler &cgekickt!");
  27.         check("fail-msg", "&cDu konntest nicht zur Lobby gesendet werden!");
  28.         check("no-permission-msg", "&cDieser Server ist voll! Du benötigst &6Premium &cum auf den Server zu connecten!");
  29.         prefix = ChatColor.translateAlternateColorCodes('&', getConfig().getString("prefix"));
  30.     }
  31.    
  32.     private void check(String path, Object value){
  33.         if(!getConfig().contains(path)){
  34.             getConfig().set(path, value);
  35.             saveConfig();
  36.         }
  37.     }
  38.    
  39.     @EventHandler
  40.     public void onPlayerJoin(PlayerLoginEvent e){
  41.         Player pj = e.getPlayer();
  42.        
  43.         if(pj.hasPermission("premium.kick"))
  44.                 if(Bukkit.getMaxPlayers() == Bukkit.getOnlinePlayers().size()) {
  45.                     a();
  46.                 }
  47.                 else {
  48.                     return;
  49.                 }
  50.         else{
  51.             pj.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("no-permission-msg")));
  52.         }
  53.     }
  54.    
  55.     public Player getRandomPlayer(){
  56.         String ignorePermission = "premium.kick";
  57.         // get all the online players
  58.         Collection<? extends Player> players = Bukkit.getOnlinePlayers();
  59.  
  60.         // make a new list, add all of the players who don't have your exempt permission to it
  61.         List<Player> newList = new ArrayList<>();
  62.         for (Player player : players){
  63.             if (!player.hasPermission(ignorePermission)){
  64.                 newList.add(player);
  65.             }
  66.         }
  67.  
  68.         // check if the new list actually has contents, there could be no players online or all the online players could have the exempt permission
  69.         if (newList.size() > 0){
  70.  
  71.             // since we're getting from the list, you need to subtract 1 from your list size, because array contents start counting at 0
  72.             int size = newList.size() - 1;
  73.  
  74.             // get a random number
  75.             int random = new Random().nextInt(size);
  76.  
  77.             // take an object from the list and return it
  78.             return newList.get(random);
  79.         }
  80.  
  81.         // if the new list has a size of 0, it will return null
  82.        
  83.         return null;
  84.     }
  85.    
  86.     public void a(){
  87.         Player player = getRandomPlayer();
  88.        
  89.         // make sure to check for null as we set it to return null if the list was 0
  90.         if (player != null){
  91.             player.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("kick-msg")));
  92.             toServer(player);
  93.         }
  94.     }
  95.    
  96.     private void toServer(Player p) {
  97.         String targetServer = getConfig().getString("lobby-server");
  98.         if (targetServer.equalsIgnoreCase("none") || targetServer.isEmpty()) {
  99.             p.sendMessage(prefix + " " + ChatColor.translateAlternateColorCodes('&', getConfig().getString("fail-msg").replace("%prefix%", prefix)));
  100.             return;
  101.         }
  102.         ByteArrayOutputStream b = new ByteArrayOutputStream();
  103.         DataOutputStream out = new DataOutputStream(b);
  104.         try {
  105.             out.writeUTF("Connect");
  106.             out.writeUTF(targetServer);
  107.             p.sendPluginMessage(this, "BungeeCord", b.toByteArray());
  108.         } catch (Exception e) {
  109.             p.sendMessage(prefix + " " + ChatColor.translateAlternateColorCodes('&', getConfig().getString("fail-msg").replace("%prefix%", prefix)));
  110.             e.printStackTrace();
  111.         }
  112.     }
  113.    
  114. }
Add Comment
Please, Sign In to add comment