Merge branch 'core' of gitlab.com:Songoda/ultimatekits into core

This commit is contained in:
jascotty2 2019-09-28 19:01:55 -05:00
commit 1550669886

View File

@ -12,7 +12,6 @@ import com.songoda.ultimatekits.kit.Kit;
import com.songoda.ultimatekits.kit.KitAnimation; import com.songoda.ultimatekits.kit.KitAnimation;
import com.songoda.ultimatekits.kit.KitItem; import com.songoda.ultimatekits.kit.KitItem;
import com.songoda.ultimatekits.settings.Settings; import com.songoda.ultimatekits.settings.Settings;
import com.songoda.ultimatekits.utils.Methods;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
@ -62,7 +61,7 @@ public class GUIKitEditor extends Gui {
CompatibleSound.ENTITY_VILLAGER_YES.play(player); CompatibleSound.ENTITY_VILLAGER_YES.play(player);
}); });
ItemStack glass1 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_1.getMaterial()); ItemStack glass1 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_1.getMaterial());
ItemStack glass2 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_2.getMaterial()); ItemStack glass2 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_2.getMaterial());
ItemStack glass3 = GuiUtils.getBorderItem(Settings.GLASS_TYPE_3.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("&5&l" + kit.getName()).getMessage(),
plugin.getLocale().newMessage("&&fPermissions:").getMessage(), plugin.getLocale().newMessage("&&fPermissions:").getMessage(),
plugin.getLocale().newMessage("&&7ultimatekits.kit." + kit.getName().toLowerCase()).getMessage() plugin.getLocale().newMessage("&&7ultimatekits.kit." + kit.getName().toLowerCase()).getMessage()
)); ));
paint();
}
public void paint() {
int num = 10; int num = 10;
List<ItemStack> list = kit.getReadableContents(player, false, true, true); for (ItemStack itemStack : kit.getReadableContents(player, false, true, true)) {
for (ItemStack iss : list) {
if (num == 17 || num == 36) if (num == 17 || num == 36)
num++; num++;
if (num == slot && toReplace != null) { KitItem item = new KitItem(itemStack);
iss = toReplace;
}
KitItem item = new KitItem(iss);
ItemStack is = item.getMoveableItem(); ItemStack is = item.getMoveableItem();
@ -117,9 +115,13 @@ public class GUIKitEditor extends Gui {
if (meta.hasLore()) itemLore = meta.getLore(); if (meta.hasLore()) itemLore = meta.getLore();
else itemLore = new ArrayList<>(); else itemLore = new ArrayList<>();
itemLore.add(TextUtils.convertToInvisibleLoreString("----")); 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) { 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); meta.setLore(itemLore);
is.setItemMeta(meta); is.setItemMeta(meta);
@ -144,18 +146,9 @@ public class GUIKitEditor extends Gui {
num++; num++;
} }
} }
if (toReplace != null && slot == 0) {
if (num == 17 || num == 36)
num++;
inventory.setItem(num, toReplace);
toReplace = null;
}
updateInvButton(); updateInvButton();
} }
private void updateInvButton() { private void updateInvButton() {
ItemStack item = GuiUtils.createButtonItem(CompatibleMaterial.PAPER, ItemStack item = GuiUtils.createButtonItem(CompatibleMaterial.PAPER,
plugin.getLocale().getMessage("interface.kiteditor.itemediting").getMessage(), 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.addcommand").getMessage(),
plugin.getLocale().getMessage("interface.kiteditor.addcommandlore").getMessage().split("|")), plugin.getLocale().getMessage("interface.kiteditor.addcommandlore").getMessage().split("|")),
(event) -> { (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); AnvilGui gui = new AnvilGui(player, this);
gui.setTitle(plugin.getLocale().getMessage("interface.kiteditor.addcommandpromp").getMessage()); gui.setTitle(plugin.getLocale().getMessage("interface.kiteditor.addcommandpromp").getMessage());
gui.setAction(aevent -> { gui.setAction(aevent -> {
@ -253,6 +246,7 @@ public class GUIKitEditor extends Gui {
this.inventory.addItem(parseStack); this.inventory.addItem(parseStack);
}); });
guiManager.showGUI(event.player, gui);
}); });
setButton(14, GuiUtils.createButtonItem(CompatibleMaterial.SUNFLOWER, setButton(14, GuiUtils.createButtonItem(CompatibleMaterial.SUNFLOWER,
@ -284,6 +278,7 @@ public class GUIKitEditor extends Gui {
this.inventory.addItem(parseStack); this.inventory.addItem(parseStack);
}); });
guiManager.showGUI(event.player, gui);
}); });
setButton(17, GuiUtils.createButtonItem(CompatibleMaterial.CHEST, setButton(17, GuiUtils.createButtonItem(CompatibleMaterial.CHEST,
@ -334,114 +329,50 @@ public class GUIKitEditor extends Gui {
switch (action) { switch (action) {
case CHANCE: case CHANCE:
item.setChance(item.getChance() == 100 ? 5 : (item.getChance() + 5)); item.setChance(item.getChance() == 100 ? 5 : (item.getChance() + 5));
toReplace = item.getMoveableItem(); inventory.setItem(slot, item.getMoveableItem());
this.slot = slot;
saveKit(player, inventory, true); saveKit(player, inventory, true);
constructGUI();
break; break;
case DISPLAY_ITEM: { case DISPLAY_ITEM: {
saveKit(player, this.inventory, true); AnvilGui gui = new AnvilGui(player, this);
AbstractAnvilGUI gui = new AbstractAnvilGUI(player, event -> { gui.setTitle("Enter a Material");
String msg = event.getName(); gui.setAction(event -> {
ItemStack toReplace = null; Material material = CompatibleMaterial.getMaterial(gui.getInputText()).getMaterial();
try { if (material == null) {
Material material = Material.valueOf(msg.trim().toUpperCase()); player.sendMessage(gui.getInputText() + " &8is not a valid material.");
} else {
KitItem item2 = new KitItem(itemStack); KitItem newItem = new KitItem(itemStack);
item2.setDisplayItem(material); newItem.setDisplayItem(material);
toReplace = item2.getMoveableItem(); inventory.setItem(slot, newItem.getMoveableItem());
} catch (Exception e) {
player.sendMessage(Methods.formatText("&a" + msg + " &8is not a valid material."));
} }
this.slot = slot;
this.toReplace = toReplace;
}); });
guiManager.showGUI(player, gui);
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();
} }
break; break;
case DISPLAY_NAME: { case DISPLAY_NAME: {
saveKit(player, this.inventory, true); AnvilGui gui = new AnvilGui(player, this);
AbstractAnvilGUI gui = new AbstractAnvilGUI(player, event -> { gui.setTitle("Enter a name");
String msg = event.getName(); gui.setAction(event -> {
KitItem item2 = new KitItem(itemStack); KitItem newItem = new KitItem(itemStack);
item2.setDisplayName(msg); newItem.setDisplayName(gui.getInputText());
this.toReplace = item2.getMoveableItem(); setItem(slot, newItem.getMoveableItem());
this.slot = slot;
}); });
guiManager.showGUI(player, gui);
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();
} }
break; break;
case DISPLAY_LORE: { case DISPLAY_LORE: {
saveKit(player, this.inventory, true); AnvilGui gui = new AnvilGui(player, this);
AbstractAnvilGUI gui = new AbstractAnvilGUI(player, event -> { gui.setTitle("Enter lore");
String msg = event.getName(); gui.setAction(event -> {
KitItem item2 = new KitItem(itemStack); KitItem newItem = new KitItem(itemStack);
item2.setDisplayLore(msg); newItem.setDisplayLore(gui.getInputText());
this.toReplace = item2.getMoveableItem(); setItem(slot, newItem.getMoveableItem());
this.slot = slot;
}); });
guiManager.showGUI(player, gui);
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();
} }
break; 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} public enum Action {NONE, CHANCE, DISPLAY_ITEM, DISPLAY_NAME, DISPLAY_LORE}
} }