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);
}
}