Draecoy
7/26/2020 - 4:04 PM

lock PlayerTrash Code

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