Illuminatiiiiii
2/10/2019 - 11:12 PM

Ban GUI Plugin

package me.illuminatiproductions.youtubeplugin;

import me.illuminatiproductions.youtubeplugin.commands.BanGUI;
import me.illuminatiproductions.youtubeplugin.events.BanInventoryEvent;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.ArrayList;

public class YoutubePlugin extends JavaPlugin {

    @Override
    public void onEnable() {
        // Plugin startup logic

        getCommand("bangui").setExecutor(new BanGUI(this));

        getServer().getPluginManager().registerEvents(new BanInventoryEvent(this), this);
    }

    public void openBanMenu(Player player){
        //Get a list of players on the server
        ArrayList<Player> list = new ArrayList<Player>(player.getServer().getOnlinePlayers());

        //Make and open the ban gui
        Inventory bangui = Bukkit.createInventory(player, 45, ChatColor.BLUE + "Player List");
        //For every player, add their name to gui
        for (int i = 0; i < list.size(); i++){
            ItemStack playerHead = new ItemStack(Material.PLAYER_HEAD, 1);
            ItemMeta meta = playerHead.getItemMeta();
            //Set player info on the item
            meta.setDisplayName(list.get(i).getDisplayName());
            ArrayList<String> lore = new ArrayList<>();
            lore.add(ChatColor.GOLD + "Player Health: " + ChatColor.RED + list.get(i).getHealth());
            lore.add(ChatColor.GOLD + "EXP: " + ChatColor.AQUA + list.get(i).getExp());
            meta.setLore(lore);
            playerHead.setItemMeta(meta);
            //Add player head to gui
            bangui.addItem(playerHead);
        }
        player.openInventory(bangui);
    }

    public void openPlayerMenu(Player player1, Player whoToBan){

        //Player to be banned
        Player banMe = whoToBan;

        //Open up ban menu
        Inventory banPlayerMenu = Bukkit.createInventory(player1, 9, "Ban This Noob");

        //Ban Option
        ItemStack ban = new ItemStack(Material.WOODEN_AXE, 1);
        ItemMeta ban_meta = ban.getItemMeta();
        ban_meta.setDisplayName(ChatColor.DARK_GREEN + "Ban");
        ban.setItemMeta(ban_meta);
        banPlayerMenu.setItem(0, ban);

        //Add player
        ItemStack playerHead = new ItemStack(Material.PLAYER_HEAD, 1);
        ItemMeta player_meta = playerHead.getItemMeta();
        player_meta.setDisplayName(banMe.getDisplayName());
        playerHead.setItemMeta(player_meta);
        banPlayerMenu.setItem(4, playerHead);

        //Cancel option
        ItemStack cancel = new ItemStack(Material.BARRIER, 1);
        ItemMeta cancel_meta = cancel.getItemMeta();
        cancel_meta.setDisplayName(ChatColor.RED + "Go Back!");
        cancel.setItemMeta(cancel_meta);
        banPlayerMenu.setItem(8, cancel);

        player1.openInventory(banPlayerMenu);
    }


}
package me.illuminatiproductions.youtubeplugin.commands;

import me.illuminatiproductions.youtubeplugin.YoutubePlugin;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class BanGUI implements CommandExecutor {

    YoutubePlugin plugin;

    public BanGUI(YoutubePlugin plugin) {
        this.plugin = plugin;
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {

        if (sender instanceof Player){
            Player player = (Player) sender;

            //Print out all of the players name for testing
//            for (int i = 0; i < list.size(); i++){
//                player.sendMessage(list.get(i).getDisplayName());
//            }

            plugin.openBanMenu(player);

        }


        return true;
    }
}
package me.illuminatiproductions.youtubeplugin.events;

import me.illuminatiproductions.youtubeplugin.YoutubePlugin;
import org.bukkit.BanList;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;

public class BanInventoryEvent implements Listener {

    YoutubePlugin plugin;

    public BanInventoryEvent(YoutubePlugin plugin) {
        this.plugin = plugin;
    }

    @EventHandler
    public void onMenuClick(InventoryClickEvent e){
        Player player = (Player) e.getWhoClicked();
        //Check inventory
        if (e.getClickedInventory().getTitle().equalsIgnoreCase(ChatColor.BLUE + "Player List")){
            //make sure they clicked on a player head
            if (e.getCurrentItem().getType() == Material.PLAYER_HEAD){

                //Get player they clicked on from item name
                Player whoToBan = plugin.getServer().getPlayer(e.getCurrentItem().getItemMeta().getDisplayName());

                plugin.openPlayerMenu(player, whoToBan);
            }

        }else if(e.getClickedInventory().getTitle().equalsIgnoreCase("Ban This Noob")){
            switch(e.getCurrentItem().getType()){
                case BARRIER:
                    plugin.openBanMenu(player);
                    break;
                case WOODEN_AXE:
                    //Get name
                    String name = e.getClickedInventory().getItem(4).getItemMeta().getDisplayName();
                    player.getServer().getBanList(BanList.Type.NAME).addBan(name, "I said so", null, "The allfather");
                    player.sendMessage(ChatColor.GREEN + "Banned Player");
                    break;
            }
        }
        //make it so they cant move items
        e.setCancelled(true);
    }

}