mirror of
https://github.com/songoda/UltimateKits.git
synced 2025-02-19 21:02:05 +01:00
Lots of edible goat bits.
This commit is contained in:
parent
00d42a96cc
commit
4f01c747e5
@ -12,7 +12,6 @@ import com.songoda.ultimatekits.kit.Kit;
|
||||
import com.songoda.ultimatekits.kit.KitAnimation;
|
||||
import com.songoda.ultimatekits.kit.KitItem;
|
||||
import com.songoda.ultimatekits.settings.Settings;
|
||||
import com.songoda.ultimatekits.utils.Methods;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
@ -62,7 +61,7 @@ public class GUIKitEditor extends Gui {
|
||||
|
||||
CompatibleSound.ENTITY_VILLAGER_YES.play(player);
|
||||
});
|
||||
|
||||
|
||||
ItemStack glass1 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_1.getMaterial());
|
||||
ItemStack glass2 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_2.getMaterial());
|
||||
ItemStack glass3 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_3.getMaterial());
|
||||
@ -91,19 +90,18 @@ public class GUIKitEditor extends Gui {
|
||||
plugin.getLocale().newMessage("&5&l" + kit.getName()).getMessage(),
|
||||
plugin.getLocale().newMessage("&&fPermissions:").getMessage(),
|
||||
plugin.getLocale().newMessage("&&7ultimatekits.kit." + kit.getName().toLowerCase()).getMessage()
|
||||
));
|
||||
));
|
||||
|
||||
paint();
|
||||
}
|
||||
|
||||
public void paint() {
|
||||
int num = 10;
|
||||
List<ItemStack> list = kit.getReadableContents(player, false, true, true);
|
||||
for (ItemStack iss : list) {
|
||||
for (ItemStack itemStack : kit.getReadableContents(player, false, true, true)) {
|
||||
if (num == 17 || num == 36)
|
||||
num++;
|
||||
|
||||
if (num == slot && toReplace != null) {
|
||||
iss = toReplace;
|
||||
}
|
||||
|
||||
KitItem item = new KitItem(iss);
|
||||
KitItem item = new KitItem(itemStack);
|
||||
|
||||
ItemStack is = item.getMoveableItem();
|
||||
|
||||
@ -117,9 +115,13 @@ public class GUIKitEditor extends Gui {
|
||||
if (meta.hasLore()) itemLore = meta.getLore();
|
||||
else itemLore = new ArrayList<>();
|
||||
itemLore.add(TextUtils.convertToInvisibleLoreString("----"));
|
||||
itemLore.add(Methods.formatText("&7" + plugin.getLocale().getMessage("general.type.chance") + ": &6" + item.getChance() + "%"));
|
||||
itemLore.add(ChatColor.GRAY.toString() + plugin.getLocale().getMessage("general.type.chance") + ": " + ChatColor.GOLD.toString() + item.getChance() + "%");
|
||||
if (isInFuction) {
|
||||
itemLore.add(plugin.getLocale().getMessage("interface.kiteditor.itemfunctionlore").getMessage().split("|"));
|
||||
itemLore.addAll(Arrays.asList(plugin.getLocale().getMessage("interface.kiteditor.itemfunctionlore")
|
||||
.processPlaceholder("item", item.getDisplayItem() == null ? "" : item.getDisplayItem().name())
|
||||
.processPlaceholder("name", item.getDisplayName())
|
||||
.processPlaceholder("lore", item.getDisplayLore())
|
||||
.getMessage().split("|")));
|
||||
}
|
||||
meta.setLore(itemLore);
|
||||
is.setItemMeta(meta);
|
||||
@ -144,18 +146,9 @@ public class GUIKitEditor extends Gui {
|
||||
num++;
|
||||
}
|
||||
}
|
||||
if (toReplace != null && slot == 0) {
|
||||
if (num == 17 || num == 36)
|
||||
num++;
|
||||
inventory.setItem(num, toReplace);
|
||||
toReplace = null;
|
||||
}
|
||||
|
||||
updateInvButton();
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void updateInvButton() {
|
||||
ItemStack item = GuiUtils.createButtonItem(CompatibleMaterial.PAPER,
|
||||
plugin.getLocale().getMessage("interface.kiteditor.itemediting").getMessage(),
|
||||
@ -226,7 +219,7 @@ public class GUIKitEditor extends Gui {
|
||||
plugin.getLocale().getMessage("interface.kiteditor.addcommand").getMessage(),
|
||||
plugin.getLocale().getMessage("interface.kiteditor.addcommandlore").getMessage().split("|")),
|
||||
(event) -> {
|
||||
// TODO: this should be a chat listener, not anvil
|
||||
// TODO: this should be a chat listener, not anvil
|
||||
AnvilGui gui = new AnvilGui(player, this);
|
||||
gui.setTitle(plugin.getLocale().getMessage("interface.kiteditor.addcommandpromp").getMessage());
|
||||
gui.setAction(aevent -> {
|
||||
@ -253,6 +246,7 @@ public class GUIKitEditor extends Gui {
|
||||
this.inventory.addItem(parseStack);
|
||||
|
||||
});
|
||||
guiManager.showGUI(event.player, gui);
|
||||
});
|
||||
|
||||
setButton(14, GuiUtils.createButtonItem(CompatibleMaterial.SUNFLOWER,
|
||||
@ -284,6 +278,7 @@ public class GUIKitEditor extends Gui {
|
||||
this.inventory.addItem(parseStack);
|
||||
|
||||
});
|
||||
guiManager.showGUI(event.player, gui);
|
||||
});
|
||||
|
||||
setButton(17, GuiUtils.createButtonItem(CompatibleMaterial.CHEST,
|
||||
@ -334,114 +329,50 @@ public class GUIKitEditor extends Gui {
|
||||
switch (action) {
|
||||
case CHANCE:
|
||||
item.setChance(item.getChance() == 100 ? 5 : (item.getChance() + 5));
|
||||
toReplace = item.getMoveableItem();
|
||||
this.slot = slot;
|
||||
inventory.setItem(slot, item.getMoveableItem());
|
||||
saveKit(player, inventory, true);
|
||||
constructGUI();
|
||||
break;
|
||||
case DISPLAY_ITEM: {
|
||||
saveKit(player, this.inventory, true);
|
||||
AbstractAnvilGUI gui = new AbstractAnvilGUI(player, event -> {
|
||||
String msg = event.getName();
|
||||
ItemStack toReplace = null;
|
||||
try {
|
||||
Material material = Material.valueOf(msg.trim().toUpperCase());
|
||||
|
||||
KitItem item2 = new KitItem(itemStack);
|
||||
item2.setDisplayItem(material);
|
||||
toReplace = item2.getMoveableItem();
|
||||
} catch (Exception e) {
|
||||
player.sendMessage(Methods.formatText("&a" + msg + " &8is not a valid material."));
|
||||
AnvilGui gui = new AnvilGui(player, this);
|
||||
gui.setTitle("Enter a Material");
|
||||
gui.setAction(event -> {
|
||||
Material material = CompatibleMaterial.getMaterial(gui.getInputText()).getMaterial();
|
||||
if (material == null) {
|
||||
player.sendMessage(gui.getInputText() + " &8is not a valid material.");
|
||||
} else {
|
||||
KitItem newItem = new KitItem(itemStack);
|
||||
newItem.setDisplayItem(material);
|
||||
inventory.setItem(slot, newItem.getMoveableItem());
|
||||
}
|
||||
this.slot = slot;
|
||||
this.toReplace = toReplace;
|
||||
});
|
||||
|
||||
gui.setOnClose((player1, inventory1) -> init(title, 54));
|
||||
|
||||
ItemStack item2 = new ItemStack(Material.NAME_TAG);
|
||||
ItemMeta meta2 = item2.getItemMeta();
|
||||
meta2.setDisplayName("Enter a Material");
|
||||
item2.setItemMeta(meta2);
|
||||
|
||||
gui.setSlot(AbstractAnvilGUI.AnvilSlot.INPUT_LEFT, item2);
|
||||
gui.open();
|
||||
guiManager.showGUI(player, gui);
|
||||
}
|
||||
break;
|
||||
case DISPLAY_NAME: {
|
||||
saveKit(player, this.inventory, true);
|
||||
AbstractAnvilGUI gui = new AbstractAnvilGUI(player, event -> {
|
||||
String msg = event.getName();
|
||||
KitItem item2 = new KitItem(itemStack);
|
||||
item2.setDisplayName(msg);
|
||||
this.toReplace = item2.getMoveableItem();
|
||||
this.slot = slot;
|
||||
AnvilGui gui = new AnvilGui(player, this);
|
||||
gui.setTitle("Enter a name");
|
||||
gui.setAction(event -> {
|
||||
KitItem newItem = new KitItem(itemStack);
|
||||
newItem.setDisplayName(gui.getInputText());
|
||||
setItem(slot, newItem.getMoveableItem());
|
||||
});
|
||||
|
||||
gui.setOnClose((player1, inventory1) -> {
|
||||
kit.getContents().forEach((item1) -> {
|
||||
});
|
||||
init(title, 54);
|
||||
});
|
||||
|
||||
ItemStack item2 = new ItemStack(Material.NAME_TAG);
|
||||
ItemMeta meta2 = item2.getItemMeta();
|
||||
meta2.setDisplayName("Enter a name");
|
||||
item2.setItemMeta(meta2);
|
||||
|
||||
gui.setSlot(AbstractAnvilGUI.AnvilSlot.INPUT_LEFT, item2);
|
||||
gui.open();
|
||||
guiManager.showGUI(player, gui);
|
||||
}
|
||||
break;
|
||||
case DISPLAY_LORE: {
|
||||
saveKit(player, this.inventory, true);
|
||||
AbstractAnvilGUI gui = new AbstractAnvilGUI(player, event -> {
|
||||
String msg = event.getName();
|
||||
KitItem item2 = new KitItem(itemStack);
|
||||
item2.setDisplayLore(msg);
|
||||
AnvilGui gui = new AnvilGui(player, this);
|
||||
gui.setTitle("Enter lore");
|
||||
gui.setAction(event -> {
|
||||
KitItem newItem = new KitItem(itemStack);
|
||||
newItem.setDisplayLore(gui.getInputText());
|
||||
|
||||
this.toReplace = item2.getMoveableItem();
|
||||
|
||||
this.slot = slot;
|
||||
setItem(slot, newItem.getMoveableItem());
|
||||
});
|
||||
|
||||
gui.setOnClose((player1, inventory1) -> init(title, 54));
|
||||
|
||||
ItemStack item2 = new ItemStack(Material.NAME_TAG);
|
||||
ItemMeta meta2 = item2.getItemMeta();
|
||||
meta2.setDisplayName("Enter lore");
|
||||
item2.setItemMeta(meta2);
|
||||
|
||||
gui.setSlot(AbstractAnvilGUI.AnvilSlot.INPUT_LEFT, item2);
|
||||
gui.open();
|
||||
guiManager.showGUI(player, gui);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void registerClickables() {
|
||||
resetClickables();
|
||||
|
||||
if (isInFuction) {
|
||||
registerClickable(10, 43, ClickType.SHIFT_LEFT, (player, inventory, cursor, slot, type) -> {
|
||||
if (inventory.getItem(slot) == null) return;
|
||||
replaceItem(Action.CHANCE, player, inventory.getItem(slot), slot);
|
||||
});
|
||||
registerClickable(10, 43, ClickType.LEFT, (player, inventory, cursor, slot, type) -> {
|
||||
if (inventory.getItem(slot) == null) return;
|
||||
replaceItem(Action.DISPLAY_ITEM, player, inventory.getItem(slot), slot);
|
||||
});
|
||||
registerClickable(10, 43, ClickType.MIDDLE, (player, inventory, cursor, slot, type) -> {
|
||||
if (inventory.getItem(slot) == null) return;
|
||||
replaceItem(Action.DISPLAY_NAME, player, inventory.getItem(slot), slot);
|
||||
});
|
||||
registerClickable(10, 43, ClickType.RIGHT, (player, inventory, cursor, slot, type) -> {
|
||||
if (inventory.getItem(slot) == null) return;
|
||||
replaceItem(Action.DISPLAY_LORE, player, inventory.getItem(slot), slot);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public enum Action {NONE, CHANCE, DISPLAY_ITEM, DISPLAY_NAME, DISPLAY_LORE}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user