package me.draecoy.playertrash;
import me.draecoy.playertrash.commands.command;
import me.draecoy.playertrash.events.ClickEvent;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.ArrayList;
public final class PlayerTrash extends JavaPlugin implements CommandExecutor {
Inventory gui;
ItemStack desc = new ItemStack(Material.NETHER_STAR);
ItemStack confirm = new ItemStack(Material.GREEN_CONCRETE);
ItemStack cancel = new ItemStack(Material.RED_CONCRETE);
ItemStack empty_red = new ItemStack(Material.RED_STAINED_GLASS_PANE);
ItemStack empty_black = new ItemStack(Material.BLACK_STAINED_GLASS_PANE);
@Override
public void onEnable() {
// Plugin startup logic
System.out.println("(!) PlayerTrash has started");
getServer().getPluginManager().registerEvents(new ClickEvent(this), this);
getCommand("trash").setExecutor(new command(this));
getConfig().options().copyDefaults();
saveDefaultConfig();
}
@Override
public void onDisable() {
// Plugin shutdown logic
}
public void openMainMenu(Player player)
{
String trashTitle = getConfig().getString("GUI-Title");
Inventory gui = Bukkit.createInventory(player, 54, ChatColor.translateAlternateColorCodes('&', trashTitle));
ItemMeta descMeta = desc.getItemMeta();
descMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', getConfig().getString("nether-star-display-name")));
desc.addUnsafeEnchantment(Enchantment.KNOCKBACK, 1);
descMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
ArrayList<String> descLore = new ArrayList<String>();
descLore.add(ChatColor.translateAlternateColorCodes('&', getConfig().getString("nether-start-lore-1")));
descLore.add(ChatColor.translateAlternateColorCodes('&', getConfig().getString("nether-start-lore-2")));
descMeta.setLore(descLore);
desc.setItemMeta(descMeta);
ItemMeta confirmMeta = confirm.getItemMeta();
confirmMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', getConfig().getString("confirm-button")));
confirm.setItemMeta(confirmMeta);
ItemMeta redMeta = empty_red.getItemMeta();
redMeta.setDisplayName("");
empty_red.setItemMeta(redMeta);
ItemMeta blackMeta = empty_black.getItemMeta();
blackMeta.setDisplayName("");
empty_black.setItemMeta(blackMeta);
gui.setItem(49, desc);
gui.setItem(50, confirm);
for (int x = 0; x <= gui.getSize() - 1; x++)
{
if (x == 0 || x == 1 || x == 7 || x == 8 || x == 9 || x == 17 || x == 36 || x == 44 || x == 45 || x == 46 || x == 52 || x == 53)
{
gui.setItem(x, empty_red);
}
}
for (int y = 0; y <= gui.getSize() - 1; y++)
{
if (y == 2 || y == 3 || y == 4 || y == 5 || y == 6 || y == 26 || y == 35 || y == 51 || y == 47 || y == 48 || y == 27 || y == 18)
{
gui.setItem(y, empty_black);
}
}
player.openInventory(gui);
}
}
package me.draecoy.playertrash.commands;
import me.draecoy.playertrash.PlayerTrash;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.meta.ItemMeta;
import javax.swing.*;
import java.util.ArrayList;
public class command implements CommandExecutor {
PlayerTrash plugin;
public command(PlayerTrash plugin) {
this.plugin = plugin;
}
public boolean onCommand(CommandSender sender, org.bukkit.command.Command command, String label, String[] args) {
if (label.equalsIgnoreCase("trash") || label.equalsIgnoreCase("t")) {
if (sender instanceof Player) {
Player player = (Player) sender;
if (player.hasPermission("playertrash.use")) {
plugin.openMainMenu(player);
return true;
}
else
{
player.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("no-permission")));
}
} else {
System.out.println("Command can only be run by a player");
}
}
return false;
}
}
package me.draecoy.playertrash.events;
import me.draecoy.playertrash.PlayerTrash;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.HumanEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryType;
import java.util.ArrayList;
public class ClickEvent implements Listener {
PlayerTrash plugin;
public ClickEvent(PlayerTrash plugin) {
this.plugin = plugin;
}
@EventHandler
public void clickEvent(InventoryClickEvent e)
{
Player player = (Player) e.getWhoClicked();
if (e.getView().getTitle().equals(ChatColor.RED + "Trash"))
{
if (!e.getClickedInventory().getType().equals(InventoryType.PLAYER))
{
if (e.getCurrentItem().getType() == Material.RED_STAINED_GLASS_PANE || e.getCurrentItem().getType() == Material.BLACK_STAINED_GLASS_PANE || e.getCurrentItem().getType() == Material.NETHER_STAR || e.getCurrentItem().getType() == Material.GREEN_CONCRETE)
{
switch (e.getCurrentItem().getType())
{
case RED_STAINED_GLASS_PANE:
e.setCancelled(true);
break;
case BLACK_STAINED_GLASS_PANE:
e.setCancelled(true);
break;
case NETHER_STAR:
e.setCancelled(true);
break;
case GREEN_CONCRETE:
player.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("confirm-message")));
player.closeInventory();
break;
}
}
else
{
return;
}
}
}
}
}