Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.MrJonton01.PremiumKick;
- import java.io.ByteArrayOutputStream;
- import java.io.DataOutputStream;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.List;
- import java.util.Random;
- import org.bukkit.Bukkit;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.player.PlayerLoginEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- import net.md_5.bungee.api.ChatColor;
- public class Main extends JavaPlugin {
- private String prefix;
- public void onEnable(){
- Bukkit.getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
- check("prefix", "&7[&3PremiumKick&7]");
- check("lobby-server", "lobby");
- check("kick-msg", "&cDu wurdest von einem &6Premium-Spieler &cgekickt!");
- check("fail-msg", "&cDu konntest nicht zur Lobby gesendet werden!");
- check("no-permission-msg", "&cDieser Server ist voll! Du benötigst &6Premium &cum auf den Server zu connecten!");
- prefix = ChatColor.translateAlternateColorCodes('&', getConfig().getString("prefix"));
- }
- private void check(String path, Object value){
- if(!getConfig().contains(path)){
- getConfig().set(path, value);
- saveConfig();
- }
- }
- @EventHandler
- public void onPlayerJoin(PlayerLoginEvent e){
- Player pj = e.getPlayer();
- if(pj.hasPermission("premium.kick"))
- if(Bukkit.getMaxPlayers() == Bukkit.getOnlinePlayers().size()) {
- a();
- }
- else {
- return;
- }
- else{
- pj.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("no-permission-msg")));
- }
- }
- public Player getRandomPlayer(){
- String ignorePermission = "premium.kick";
- // get all the online players
- Collection<? extends Player> players = Bukkit.getOnlinePlayers();
- // make a new list, add all of the players who don't have your exempt permission to it
- List<Player> newList = new ArrayList<>();
- for (Player player : players){
- if (!player.hasPermission(ignorePermission)){
- newList.add(player);
- }
- }
- // check if the new list actually has contents, there could be no players online or all the online players could have the exempt permission
- if (newList.size() > 0){
- // since we're getting from the list, you need to subtract 1 from your list size, because array contents start counting at 0
- int size = newList.size() - 1;
- // get a random number
- int random = new Random().nextInt(size);
- // take an object from the list and return it
- return newList.get(random);
- }
- // if the new list has a size of 0, it will return null
- return null;
- }
- public void a(){
- Player player = getRandomPlayer();
- // make sure to check for null as we set it to return null if the list was 0
- if (player != null){
- player.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("kick-msg")));
- toServer(player);
- }
- }
- private void toServer(Player p) {
- String targetServer = getConfig().getString("lobby-server");
- if (targetServer.equalsIgnoreCase("none") || targetServer.isEmpty()) {
- p.sendMessage(prefix + " " + ChatColor.translateAlternateColorCodes('&', getConfig().getString("fail-msg").replace("%prefix%", prefix)));
- return;
- }
- ByteArrayOutputStream b = new ByteArrayOutputStream();
- DataOutputStream out = new DataOutputStream(b);
- try {
- out.writeUTF("Connect");
- out.writeUTF(targetServer);
- p.sendPluginMessage(this, "BungeeCord", b.toByteArray());
- } catch (Exception e) {
- p.sendMessage(prefix + " " + ChatColor.translateAlternateColorCodes('&', getConfig().getString("fail-msg").replace("%prefix%", prefix)));
- e.printStackTrace();
- }
- }
- }
Add Comment
Please, Sign In to add comment