package tv.mineinthebox.essentials.events.players;
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;
import org.bukkit.inventory.ItemStack;
import tv.mineinthebox.essentials.xEssentials;
import tv.mineinthebox.essentials.interfaces.XOfflinePlayer;
import tv.mineinthebox.essentials.interfaces.XPlayer;
public class InventoryMenuEvent implements Listener {
private final xEssentials pl;
public InventoryMenuEvent(xEssentials pl) {
this.pl = pl;
}
@EventHandler
public void onClick(InventoryClickEvent e) {
if(e.getInventory().getTitle().contains(ChatColor.DARK_PURPLE + "Quick menu: ")) {
if(pl.getManagers().getPlayerManager().isOnline(extractPlayerNameFromTitle(e.getInventory().getTitle()))) {
XPlayer xp = pl.getManagers().getPlayerManager().getPlayer(extractPlayerNameFromTitle(e.getInventory().getTitle()));
Player p = (Player) e.getWhoClicked();
e.setCancelled(true);
if(isButton(e.getCurrentItem())) {
if(e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.GREEN + "activate boom for this player!")) {
e.getWhoClicked().closeInventory();
p.performCommand("boom " + xp.getName());
} else if(e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.GREEN + "activate the magic potato curse!")) {
e.getWhoClicked().closeInventory();
p.performCommand("potato " + xp.getName());
} else if(e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.GREEN + "kick the player")) {
e.getWhoClicked().closeInventory();
p.performCommand("kick " + xp.getName());
} else if(e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.GREEN + "TNT rain, this will rain tnt uopen them!")) {
e.getWhoClicked().closeInventory();
p.performCommand("nuke " + xp.getName());
} else if(e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.GREEN + "fake TNT rain, this will rain tnt uopen them!")) {
e.getWhoClicked().closeInventory();
p.performCommand("fakenuke " + xp.getName());
} else if(e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.GREEN + "ban the player for playing on this server!")) {
e.getWhoClicked().closeInventory();
p.performCommand("ban " + xp.getName());
} else if(e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.GREEN + "OpKit!")) {
e.getWhoClicked().closeInventory();
p.performCommand("opkit");
}
}
} else {
XOfflinePlayer off = pl.getManagers().getPlayerManager().getOfflinePlayer(extractPlayerNameFromTitle(e.getInventory().getTitle()));
Player p = (Player) e.getWhoClicked();
if(e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.GREEN + "ban the player for playing on this server!")) {
e.getWhoClicked().closeInventory();
p.performCommand("ban " + off.getName());
}
}
}
}
private String extractPlayerNameFromTitle(String title) {
String[] data = title.split(":");
return data[1].substring(1, data[1].length());
}
private boolean isButton(ItemStack item) {
try {
if(item.getType() != Material.AIR) {
return true;
}
} catch(NullPointerException e) {
return false;
}
return false;
}
}