Newer
Older
ChallengeSystem / src / main / java / net / brennholz / gui / SettingButton.java
@fantahund fantahund on 10 May 2020 1 KB Versuch für neue GUI
package net.brennholz.gui;

import me.wolfyscript.utilities.api.inventory.GuiHandler;
import me.wolfyscript.utilities.api.inventory.button.ButtonActionRender;
import me.wolfyscript.utilities.api.inventory.button.ButtonState;
import me.wolfyscript.utilities.api.inventory.button.buttons.ActionButton;
import me.wolfyscript.utilities.api.utils.item_builder.ItemBuilder;
import net.brennholz.challenges.Challenges;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;

import java.util.Arrays;
import java.util.HashMap;

public class SettingButton extends ActionButton {

    public SettingButton(String id, Material material, String displayName, String... lore) {
        super(id, new ButtonState(material, displayName, new String[0], lore, new ButtonActionRender() {
            @Override
            public boolean run(GuiHandler guiHandler, Player player, Inventory inventory, int i, InventoryClickEvent inventoryClickEvent) {
                Challenges challenges = Challenges.getplugin();
                challenges.getConfig().set(id, !(challenges.getConfig().getBoolean(id)));
                return true;
            }

            @Override
            public ItemStack render(HashMap<String, Object> hashMap, GuiHandler guiHandler, Player player, ItemStack itemStack, int i, boolean b) {
                ItemBuilder itemBuilder = new ItemBuilder(material).setDisplayName(ChatColor.GOLD + displayName).setLore(Arrays.asList(lore));
                return Challenges.getplugin().getConfig().getBoolean(id) ? itemBuilder.addUnsafeEnchantment(Enchantment.DURABILITY, 1).addItemFlags(ItemFlag.HIDE_ENCHANTS).create() : itemBuilder.create();
            }
        }));
    }
}