From d0e2dd008dc511940778f8f8b15a30891dbbcb09 Mon Sep 17 00:00:00 2001 From: Charles Date: Wed, 9 Jan 2019 02:37:11 +0800 Subject: [PATCH] 1.0.0-SNAPSHOT-U194 + Added /Boss New AutoSpawn command + Made all the panel opening Async to remove any lag from spam button clicking + Connected AutoSpawn right click in MainMenu to the /boss new autospawn command + Connected DropTable Editing Button in the DropsEditorPanel --- .../com/songoda/epicbosses/api/BossAPI.java | 24 +++++++ .../handlers/IntervalSpawnHandler.java | 6 -- .../epicbosses/commands/boss/BossNewCmd.java | 33 ++++++++-- .../epicbosses/panel/AddItemsPanel.java | 45 +++++++------ .../panel/EntityTypeEditorPanel.java | 24 +++---- .../epicbosses/panel/MainMenuPanel.java | 2 +- .../AutoSpawnCustomSettingsEditorPanel.java | 19 +++--- .../AutoSpawnEntitiesEditorPanel.java | 19 +++--- .../AutoSpawnSpecialSettingsEditorPanel.java | 59 ++++++++--------- .../autospawns/AutoSpawnTypeEditorPanel.java | 27 ++++---- .../autospawns/MainAutoSpawnEditorPanel.java | 39 ++++++----- .../panel/bosses/BossListEditorPanel.java | 45 +++++++------ .../panel/bosses/CommandsMainEditorPanel.java | 33 +++++----- .../panel/bosses/DropsEditorPanel.java | 41 ++++++------ .../panel/bosses/DropsMainEditorPanel.java | 53 ++++++++------- .../panel/bosses/EquipmentEditorPanel.java | 33 +++++----- .../panel/bosses/MainBossEditPanel.java | 43 ++++++------ .../panel/bosses/SkillListEditorPanel.java | 25 +++---- .../panel/bosses/SkillMainEditorPanel.java | 37 ++++++----- .../bosses/StatisticMainEditorPanel.java | 52 ++++++++------- .../panel/bosses/TargetingEditorPanel.java | 37 ++++++----- .../panel/bosses/TextMainEditorPanel.java | 31 +++++---- .../panel/bosses/WeaponsEditorPanel.java | 29 +++++---- .../bosses/commands/OnDeathCommandEditor.java | 25 +++---- .../bosses/commands/OnSpawnCommandEditor.java | 25 +++---- .../bosses/text/DeathTextEditorPanel.java | 59 +++++++++-------- .../bosses/text/SpawnTextEditorPanel.java | 41 ++++++------ .../bosses/text/TauntTextEditorPanel.java | 51 ++++++++------- .../droptables/DropTableTypeEditorPanel.java | 25 +++---- .../droptables/MainDropTableEditorPanel.java | 25 +++---- .../DropTableNewRewardEditorPanel.java | 11 ++-- .../DropTableRewardMainEditorPanel.java | 27 ++++---- .../DropTableRewardsListEditorPanel.java | 23 ++++--- .../types/give/GiveRewardMainEditPanel.java | 65 ++++++++++--------- .../give/GiveRewardPositionListPanel.java | 23 ++++--- .../give/GiveRewardRewardsListPanel.java | 23 ++++--- .../commands/GiveCommandNewRewardPanel.java | 11 ++-- .../commands/GiveCommandRewardListPanel.java | 23 ++++--- .../GiveCommandRewardMainEditPanel.java | 29 +++++---- .../spray/SprayDropTableMainEditorPanel.java | 45 +++++++------ .../ItemStackSubListPanelHandler.java | 39 ++++++----- .../panel/handlers/ListCommandListEditor.java | 25 +++---- .../panel/handlers/ListMessageListEditor.java | 25 +++---- .../panel/handlers/MainListPanelHandler.java | 17 +++-- .../handlers/SingleMessageListEditor.java | 25 +++---- .../panel/skills/MainSkillEditorPanel.java | 65 ++++++++++--------- .../panel/skills/SkillTypeEditorPanel.java | 33 +++++----- .../custom/CommandSkillEditorPanel.java | 23 ++++--- .../skills/custom/CustomSkillEditorPanel.java | 35 +++++----- .../skills/custom/GroupSkillEditorPanel.java | 19 +++--- .../skills/custom/PotionSkillEditorPanel.java | 31 +++++---- .../commands/CommandListSkillEditorPanel.java | 18 ++--- .../commands/ModifyCommandEditorPanel.java | 33 +++++----- .../custom/CustomSkillTypeEditorPanel.java | 21 +++--- .../custom/MaterialTypeEditorPanel.java | 11 ++-- .../custom/MinionSelectEditorPanel.java | 11 ++-- .../custom/SpecialSettingsEditorPanel.java | 21 +++--- .../CreatePotionEffectEditorPanel.java | 45 ++++++------- .../potions/PotionEffectTypeEditorPanel.java | 10 +-- .../com/songoda/epicbosses/utils/Debug.java | 1 + .../com/songoda/epicbosses/utils/Message.java | 4 +- pom.xml | 2 +- 62 files changed, 1002 insertions(+), 799 deletions(-) diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/api/BossAPI.java b/plugin-modules/Core/src/com/songoda/epicbosses/api/BossAPI.java index 43e7858..fcf8c27 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/api/BossAPI.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/api/BossAPI.java @@ -4,6 +4,8 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.songoda.epicbosses.CustomBosses; import com.songoda.epicbosses.autospawns.AutoSpawn; +import com.songoda.epicbosses.autospawns.settings.AutoSpawnSettings; +import com.songoda.epicbosses.autospawns.types.IntervalSpawnElement; import com.songoda.epicbosses.droptable.DropTable; import com.songoda.epicbosses.droptable.elements.DropTableElement; import com.songoda.epicbosses.droptable.elements.GiveTableElement; @@ -433,6 +435,28 @@ public class BossAPI { return minionEntity; } + /** + * Used to create a new base auto spawn + * with the specified arguments. + * + * @param name - name of the auto spawn. + * @return an instance of the auto spawn if successful + */ + public static AutoSpawn createBaseAutoSpawn(String name) { + if(PLUGIN.getAutoSpawnFileManager().getAutoSpawn(name) != null) { + Debug.AUTOSPAWN_NAME_EXISTS.debug(name); + return null; + } + + IntervalSpawnElement intervalSpawnElement = new IntervalSpawnElement("world,0,100,0", "{boss_" + name + "}", 30, false); + AutoSpawn autoSpawn = new AutoSpawn(true, new ArrayList<>(), new AutoSpawnSettings(1, 1, false, false)); + + autoSpawn.setCustomData(BossAPI.convertObjectToJsonObject(intervalSpawnElement)); + PLUGIN.getAutoSpawnFileManager().saveAutoSpawn(name, autoSpawn); + + return autoSpawn; + } + /** * Used to spawn a new active boss for the * specified bossEntity. diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/autospawns/handlers/IntervalSpawnHandler.java b/plugin-modules/Core/src/com/songoda/epicbosses/autospawns/handlers/IntervalSpawnHandler.java index 84bcc5f..0b2d427 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/autospawns/handlers/IntervalSpawnHandler.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/autospawns/handlers/IntervalSpawnHandler.java @@ -4,19 +4,13 @@ import com.google.gson.JsonObject; import com.songoda.epicbosses.CustomBosses; import com.songoda.epicbosses.api.BossAPI; import com.songoda.epicbosses.autospawns.AutoSpawn; -import com.songoda.epicbosses.autospawns.settings.AutoSpawnSettings; import com.songoda.epicbosses.autospawns.types.IntervalSpawnElement; -import com.songoda.epicbosses.entity.BossEntity; import com.songoda.epicbosses.handlers.AutoSpawnVariableHandler; import com.songoda.epicbosses.handlers.variables.AutoSpawnLocationVariableHandler; import com.songoda.epicbosses.handlers.variables.AutoSpawnPlaceholderVariableHandler; -import com.songoda.epicbosses.holder.ActiveBossHolder; -import com.songoda.epicbosses.holder.autospawn.ActiveIntervalAutoSpawnHolder; -import com.songoda.epicbosses.listeners.IBossDeathHandler; import com.songoda.epicbosses.utils.*; import com.songoda.epicbosses.utils.panel.base.ClickAction; import com.songoda.epicbosses.utils.panel.base.handlers.VariablePanelHandler; -import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/commands/boss/BossNewCmd.java b/plugin-modules/Core/src/com/songoda/epicbosses/commands/boss/BossNewCmd.java index bf2b3b4..91d39ca 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/commands/boss/BossNewCmd.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/commands/boss/BossNewCmd.java @@ -2,13 +2,12 @@ package com.songoda.epicbosses.commands.boss; import com.songoda.epicbosses.CustomBosses; import com.songoda.epicbosses.api.BossAPI; +import com.songoda.epicbosses.autospawns.AutoSpawn; +import com.songoda.epicbosses.autospawns.SpawnType; import com.songoda.epicbosses.droptable.DropTable; import com.songoda.epicbosses.managers.BossDropTableManager; import com.songoda.epicbosses.managers.BossSkillManager; -import com.songoda.epicbosses.managers.files.CommandsFileManager; -import com.songoda.epicbosses.managers.files.DropTableFileManager; -import com.songoda.epicbosses.managers.files.MessagesFileManager; -import com.songoda.epicbosses.managers.files.SkillsFileManager; +import com.songoda.epicbosses.managers.files.*; import com.songoda.epicbosses.skills.Skill; import com.songoda.epicbosses.skills.SkillMode; import com.songoda.epicbosses.utils.Message; @@ -28,9 +27,11 @@ import java.util.List; * boss new skill [name] [type] [mode] * boss new command [name] [commands] * boss new message [name] [message] + * boss new autospawn [name] [type] */ public class BossNewCmd extends SubCommand { + private AutoSpawnFileManager autoSpawnFileManager; private DropTableFileManager dropTableFileManager; private BossDropTableManager bossDropTableManager; private MessagesFileManager messagesFileManager; @@ -47,6 +48,7 @@ public class BossNewCmd extends SubCommand { this.bossDropTableManager = plugin.getBossDropTableManager(); this.messagesFileManager = plugin.getBossMessagesFileManager(); this.commandsFileManager = plugin.getBossCommandFileManager(); + this.autoSpawnFileManager = plugin.getAutoSpawnFileManager(); } @Override @@ -56,6 +58,29 @@ public class BossNewCmd extends SubCommand { return; } + //-------------------- + // A U T O S P A W N + //-------------------- + if(args.length == 4 && args[1].equalsIgnoreCase("autospawn")) { + String nameInput = args[2]; + + if(this.autoSpawnFileManager.getAutoSpawn(nameInput) != null) { + Message.Boss_New_AlreadyExists.msg(sender, "AutoSpawn"); + return; + } + + AutoSpawn autoSpawn = BossAPI.createBaseAutoSpawn(nameInput); + + if(autoSpawn == null) { + Message.Boss_New_SomethingWentWrong.msg(sender, "AutoSpawn"); + } else { + Message.Boss_New_AutoSpawn.msg(sender, nameInput); + } + + return; + } + + //------------------- // C O M M A N D //------------------- diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/AddItemsPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/AddItemsPanel.java index e54d438..2d69e80 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/AddItemsPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/AddItemsPanel.java @@ -4,6 +4,7 @@ import com.songoda.epicbosses.CustomBosses; import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.ItemsFileManager; import com.songoda.epicbosses.utils.Message; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; import com.songoda.epicbosses.utils.panel.base.PanelHandler; @@ -50,32 +51,34 @@ public class AddItemsPanel extends PanelHandler { @Override public void openFor(Player player) { - Panel panel = getPanelBuilder().getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(false); + ServerUtils.get().runTaskAsync(() -> { + Panel panel = getPanelBuilder().getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(false); - panel.setOnClick(event -> { - Player playerWhoClicked = (Player) event.getWhoClicked(); - UUID uuid = playerWhoClicked.getUniqueId(); - int rawSlot = event.getRawSlot(); - int slot = event.getSlot(); + panel.setOnClick(event -> { + Player playerWhoClicked = (Player) event.getWhoClicked(); + UUID uuid = playerWhoClicked.getUniqueId(); + int rawSlot = event.getRawSlot(); + int slot = event.getSlot(); - if(panel.isLowerClick(rawSlot)) { - if(this.storedItemStacks.containsKey(uuid)) { - Message.Boss_Items_AlreadySet.msg(playerWhoClicked); - return; + if(panel.isLowerClick(rawSlot)) { + if(this.storedItemStacks.containsKey(uuid)) { + Message.Boss_Items_AlreadySet.msg(playerWhoClicked); + return; + } + + ItemStack itemStack = event.getClickedInventory().getItem(slot); + + this.storedItemStacks.put(uuid, itemStack.clone()); + panel.getPanelBuilderCounter().getSlotsWith("SelectedSlot").forEach(s -> event.getInventory().setItem(s, itemStack.clone())); + event.getClickedInventory().setItem(slot, new ItemStack(Material.AIR)); } + }); - ItemStack itemStack = event.getClickedInventory().getItem(slot); - - this.storedItemStacks.put(uuid, itemStack.clone()); - panel.getPanelBuilderCounter().getSlotsWith("SelectedSlot").forEach(s -> event.getInventory().setItem(s, itemStack.clone())); - event.getClickedInventory().setItem(slot, new ItemStack(Material.AIR)); - } + panel.openFor(player); }); - - panel.openFor(player); } private ClickAction getSelectedSlotAction(PanelBuilderCounter panelBuilderCounter) { diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/EntityTypeEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/EntityTypeEditorPanel.java index 9e8c80a..684eb9f 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/EntityTypeEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/EntityTypeEditorPanel.java @@ -52,21 +52,23 @@ public class EntityTypeEditorPanel extends SubVariablePanelHandler replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true) - .setParentPanelHandler(this.bossPanelManager.getStatisticMainEditMenu(), bossEntity, entityStatsElement); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true) + .setParentPanelHandler(this.bossPanelManager.getStatisticMainEditMenu(), bossEntity, entityStatsElement); - fillPanel(panel, bossEntity, entityStatsElement); + fillPanel(panel, bossEntity, entityStatsElement); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/MainMenuPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/MainMenuPanel.java index 62f9cab..6139111 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/MainMenuPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/MainMenuPanel.java @@ -81,7 +81,7 @@ public class MainMenuPanel extends PanelHandler { if(event.getClick() == ClickType.LEFT || event.getClick() == ClickType.SHIFT_LEFT) { this.bossPanelManager.getAutoSpawns().openFor(player); } else if(event.getClick() == ClickType.RIGHT || event.getClick() == ClickType.SHIFT_RIGHT) { - //TODO: Set up create auto spawn command + Message.Boss_New_CreateArgumentsAutoSpawn.msg(event.getWhoClicked()); player.closeInventory(); } }; diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/AutoSpawnCustomSettingsEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/AutoSpawnCustomSettingsEditorPanel.java index 4bb50d7..5182b2c 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/AutoSpawnCustomSettingsEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/AutoSpawnCustomSettingsEditorPanel.java @@ -6,6 +6,7 @@ import com.songoda.epicbosses.autospawns.AutoSpawn; import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.skills.interfaces.ICustomSettingAction; import com.songoda.epicbosses.utils.Message; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; @@ -57,17 +58,19 @@ public class AutoSpawnCustomSettingsEditorPanel extends VariablePanelHandler replaceMap = new HashMap<>(); + ServerUtils.get().runTaskAsync(() -> { + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + Map replaceMap = new HashMap<>(); - replaceMap.put("{name}", BossAPI.getAutoSpawnName(autoSpawn)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getAutoSpawnName(autoSpawn)); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(this.bossPanelManager.getMainAutoSpawnEditPanel(), autoSpawn); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(this.bossPanelManager.getMainAutoSpawnEditPanel(), autoSpawn); - fillPanel(panel, autoSpawn); - panel.openFor(player); + fillPanel(panel, autoSpawn); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/AutoSpawnEntitiesEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/AutoSpawnEntitiesEditorPanel.java index c1e5a5e..fa00197 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/AutoSpawnEntitiesEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/AutoSpawnEntitiesEditorPanel.java @@ -10,6 +10,7 @@ import com.songoda.epicbosses.managers.files.BossesFileManager; import com.songoda.epicbosses.managers.files.ItemsFileManager; import com.songoda.epicbosses.utils.Message; import com.songoda.epicbosses.utils.ObjectUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; import com.songoda.epicbosses.utils.itemstack.holder.ItemStackHolder; import com.songoda.epicbosses.utils.panel.Panel; @@ -63,17 +64,19 @@ public class AutoSpawnEntitiesEditorPanel extends VariablePanelHandler replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - replaceMap.put("{name}", BossAPI.getAutoSpawnName(autoSpawn)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getAutoSpawnName(autoSpawn)); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(this.bossPanelManager.getMainAutoSpawnEditPanel(), autoSpawn); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(this.bossPanelManager.getMainAutoSpawnEditPanel(), autoSpawn); - fillPanel(panel, autoSpawn); - panel.openFor(player); + fillPanel(panel, autoSpawn); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/AutoSpawnSpecialSettingsEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/AutoSpawnSpecialSettingsEditorPanel.java index 77ec7f6..8aa88fc 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/AutoSpawnSpecialSettingsEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/AutoSpawnSpecialSettingsEditorPanel.java @@ -9,6 +9,7 @@ import com.songoda.epicbosses.managers.files.AutoSpawnFileManager; import com.songoda.epicbosses.utils.Message; import com.songoda.epicbosses.utils.NumberUtils; import com.songoda.epicbosses.utils.ObjectUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; import com.songoda.epicbosses.utils.panel.base.handlers.VariablePanelHandler; @@ -29,13 +30,11 @@ import java.util.Map; public class AutoSpawnSpecialSettingsEditorPanel extends VariablePanelHandler { private AutoSpawnFileManager autoSpawnFileManager; - private CustomBosses plugin; public AutoSpawnSpecialSettingsEditorPanel(BossPanelManager bossPanelManager, PanelBuilder panelBuilder, CustomBosses plugin) { super(bossPanelManager, panelBuilder); this.autoSpawnFileManager = plugin.getAutoSpawnFileManager(); - this.plugin = plugin; } @Override @@ -45,37 +44,39 @@ public class AutoSpawnSpecialSettingsEditorPanel extends VariablePanelHandler replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - AutoSpawnSettings autoSpawnSettings = autoSpawn.getAutoSpawnSettings(); - String shuffleEntities = ObjectUtils.getValue(autoSpawnSettings.getShuffleEntitiesList(), false)+""; - String maxAliveAtOnce = NumberUtils.get().formatDouble(ObjectUtils.getValue(autoSpawnSettings.getMaxAliveAtOnce(), 1)); - String amountPerSpawn = NumberUtils.get().formatDouble(ObjectUtils.getValue(autoSpawnSettings.getAmountPerSpawn(), 1)); - String chunkIsntLoaded = ObjectUtils.getValue(autoSpawnSettings.getSpawnWhenChunkIsntLoaded(), false)+""; - String overrideSpawnMessage = ObjectUtils.getValue(autoSpawnSettings.getOverrideDefaultSpawnMessage(), false)+""; - String spawnMessage = ObjectUtils.getValue(autoSpawnSettings.getSpawnMessage(), ""); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + AutoSpawnSettings autoSpawnSettings = autoSpawn.getAutoSpawnSettings(); + String shuffleEntities = ObjectUtils.getValue(autoSpawnSettings.getShuffleEntitiesList(), false)+""; + String maxAliveAtOnce = NumberUtils.get().formatDouble(ObjectUtils.getValue(autoSpawnSettings.getMaxAliveAtOnce(), 1)); + String amountPerSpawn = NumberUtils.get().formatDouble(ObjectUtils.getValue(autoSpawnSettings.getAmountPerSpawn(), 1)); + String chunkIsntLoaded = ObjectUtils.getValue(autoSpawnSettings.getSpawnWhenChunkIsntLoaded(), false)+""; + String overrideSpawnMessage = ObjectUtils.getValue(autoSpawnSettings.getOverrideDefaultSpawnMessage(), false)+""; + String spawnMessage = ObjectUtils.getValue(autoSpawnSettings.getSpawnMessage(), ""); - replaceMap.put("{name}", BossAPI.getAutoSpawnName(autoSpawn)); - replaceMap.put("{shuffleEntities}", shuffleEntities); - replaceMap.put("{maxAliveEntities}", maxAliveAtOnce); - replaceMap.put("{amountPerSpawn}", amountPerSpawn); - replaceMap.put("{chunkIsntLoaded}", chunkIsntLoaded); - replaceMap.put("{overrideDefaultMessage}", overrideSpawnMessage); - replaceMap.put("{spawnMessage}", spawnMessage); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getAutoSpawnName(autoSpawn)); + replaceMap.put("{shuffleEntities}", shuffleEntities); + replaceMap.put("{maxAliveEntities}", maxAliveAtOnce); + replaceMap.put("{amountPerSpawn}", amountPerSpawn); + replaceMap.put("{chunkIsntLoaded}", chunkIsntLoaded); + replaceMap.put("{overrideDefaultMessage}", overrideSpawnMessage); + replaceMap.put("{spawnMessage}", spawnMessage); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(this.bossPanelManager.getMainAutoSpawnEditPanel(), autoSpawn); - PanelBuilderCounter counter = panel.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(this.bossPanelManager.getMainAutoSpawnEditPanel(), autoSpawn); + PanelBuilderCounter counter = panel.getPanelBuilderCounter(); - counter.getSlotsWith("ShuffleEntities").forEach(slot -> panel.setOnClick(slot, getShuffleEntitiesButton(autoSpawn))); - counter.getSlotsWith("MaxAliveEntities").forEach(slot -> panel.setOnClick(slot, getMaxAliveEntitiesButton(autoSpawn))); - counter.getSlotsWith("AmountPerSpawn").forEach(slot -> panel.setOnClick(slot, getAmountPerSpawnButton(autoSpawn))); - counter.getSlotsWith("ChunkIsntLoaded").forEach(slot -> panel.setOnClick(slot, getChunkIsntLoadedButton(autoSpawn))); - counter.getSlotsWith("OverrideSpawnMessage").forEach(slot -> panel.setOnClick(slot, getOverrideSpawnMessageButton(autoSpawn))); - counter.getSlotsWith("SpawnMessage").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getAutoSpawnMessageEditorPanel().openFor((Player) event.getWhoClicked(), autoSpawn))); + counter.getSlotsWith("ShuffleEntities").forEach(slot -> panel.setOnClick(slot, getShuffleEntitiesButton(autoSpawn))); + counter.getSlotsWith("MaxAliveEntities").forEach(slot -> panel.setOnClick(slot, getMaxAliveEntitiesButton(autoSpawn))); + counter.getSlotsWith("AmountPerSpawn").forEach(slot -> panel.setOnClick(slot, getAmountPerSpawnButton(autoSpawn))); + counter.getSlotsWith("ChunkIsntLoaded").forEach(slot -> panel.setOnClick(slot, getChunkIsntLoadedButton(autoSpawn))); + counter.getSlotsWith("OverrideSpawnMessage").forEach(slot -> panel.setOnClick(slot, getOverrideSpawnMessageButton(autoSpawn))); + counter.getSlotsWith("SpawnMessage").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getAutoSpawnMessageEditorPanel().openFor((Player) event.getWhoClicked(), autoSpawn))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/AutoSpawnTypeEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/AutoSpawnTypeEditorPanel.java index ab24555..ad57ce5 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/AutoSpawnTypeEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/AutoSpawnTypeEditorPanel.java @@ -7,6 +7,7 @@ import com.songoda.epicbosses.autospawns.types.IntervalSpawnElement; import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.AutoSpawnFileManager; import com.songoda.epicbosses.utils.Message; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; import com.songoda.epicbosses.utils.panel.base.handlers.VariablePanelHandler; @@ -39,22 +40,24 @@ public class AutoSpawnTypeEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, AutoSpawn autoSpawn) { - Map replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - replaceMap.put("{name}", BossAPI.getAutoSpawnName(autoSpawn)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getAutoSpawnName(autoSpawn)); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(this.bossPanelManager.getMainAutoSpawnEditPanel(), autoSpawn); - PanelBuilderCounter counter = panel.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(this.bossPanelManager.getMainAutoSpawnEditPanel(), autoSpawn); + PanelBuilderCounter counter = panel.getPanelBuilderCounter(); - counter.getSlotsWith("IntervalSystem").forEach(slot -> panel.setOnClick(slot, getIntervalSystem(autoSpawn))); - counter.getSlotsWith("WildernessSystem"); - counter.getSlotsWith("BiomeSystem"); - counter.getSlotsWith("SpawnerSystem"); + counter.getSlotsWith("IntervalSystem").forEach(slot -> panel.setOnClick(slot, getIntervalSystem(autoSpawn))); + counter.getSlotsWith("WildernessSystem"); + counter.getSlotsWith("BiomeSystem"); + counter.getSlotsWith("SpawnerSystem"); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/MainAutoSpawnEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/MainAutoSpawnEditorPanel.java index c5b67b4..9eecebc 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/MainAutoSpawnEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/autospawns/MainAutoSpawnEditorPanel.java @@ -11,6 +11,7 @@ import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.AutoSpawnFileManager; import com.songoda.epicbosses.utils.Message; import com.songoda.epicbosses.utils.ObjectUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.StringUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; @@ -46,28 +47,30 @@ public class MainAutoSpawnEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, AutoSpawn autoSpawn) { - Map replaceMap = new HashMap<>(); - String type = ObjectUtils.getValue(autoSpawn.getType(), "INTERVAL"); - String editing = ""+ObjectUtils.getValue(autoSpawn.isEditing(), false); - String entities = StringUtils.get().appendList(autoSpawn.getEntities()); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + String type = ObjectUtils.getValue(autoSpawn.getType(), "INTERVAL"); + String editing = ""+ObjectUtils.getValue(autoSpawn.isEditing(), false); + String entities = StringUtils.get().appendList(autoSpawn.getEntities()); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - replaceMap.put("{name}", BossAPI.getAutoSpawnName(autoSpawn)); - replaceMap.put("{type}", type); - replaceMap.put("{editing}", editing); - replaceMap.put("{entities}", entities); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getAutoSpawnName(autoSpawn)); + replaceMap.put("{type}", type); + replaceMap.put("{editing}", editing); + replaceMap.put("{entities}", entities); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel(); - PanelBuilderCounter counter = panel.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel(); + PanelBuilderCounter counter = panel.getPanelBuilderCounter(); - counter.getSlotsWith("Editing").forEach(slot -> panel.setOnClick(slot, getEditingAction(autoSpawn))); - counter.getSlotsWith("SpecialSettings").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getAutoSpawnSpecialSettingsEditorPanel().openFor(player, autoSpawn))); - counter.getSlotsWith("Type").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getAutoSpawnTypeEditorPanel().openFor(player, autoSpawn))); - counter.getSlotsWith("Entities").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getAutoSpawnEntitiesEditPanel().openFor(player, autoSpawn))); - counter.getSlotsWith("CustomSettings").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getAutoSpawnCustomSettingsEditorPanel().openFor(player, autoSpawn))); + counter.getSlotsWith("Editing").forEach(slot -> panel.setOnClick(slot, getEditingAction(autoSpawn))); + counter.getSlotsWith("SpecialSettings").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getAutoSpawnSpecialSettingsEditorPanel().openFor(player, autoSpawn))); + counter.getSlotsWith("Type").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getAutoSpawnTypeEditorPanel().openFor(player, autoSpawn))); + counter.getSlotsWith("Entities").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getAutoSpawnEntitiesEditPanel().openFor(player, autoSpawn))); + counter.getSlotsWith("CustomSettings").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getAutoSpawnCustomSettingsEditorPanel().openFor(player, autoSpawn))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/BossListEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/BossListEditorPanel.java index e0c4ab2..7e9c908 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/BossListEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/BossListEditorPanel.java @@ -9,6 +9,7 @@ import com.songoda.epicbosses.entity.elements.HandsElement; import com.songoda.epicbosses.entity.elements.MainStatsElement; import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.BossesFileManager; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackConverter; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; import com.songoda.epicbosses.utils.itemstack.holder.ItemStackHolder; @@ -88,37 +89,39 @@ public abstract class BossListEditorPanel extends VariablePanelHandler replaceMap = new HashMap<>(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); - replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); + replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - panelBuilder.addReplaceData(replaceMap); + panelBuilder.addReplaceData(replaceMap); - int nextNumber = bossEntity.getEntityStats().size() + 1; - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true) - .setParentPanelHandler(this.bossPanelManager.getMainBossEditMenu(), bossEntity); + int nextNumber = bossEntity.getEntityStats().size() + 1; + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true) + .setParentPanelHandler(this.bossPanelManager.getMainBossEditMenu(), bossEntity); - fillPanel(panel, bossEntity); + fillPanel(panel, bossEntity); - panel.getPanelBuilderCounter().getSlotsWith("CreateEntity").forEach(slot -> panel.setOnClick(slot, event -> { - MainStatsElement mainStatsElement = new MainStatsElement(nextNumber, "", 50.0, ""); - EquipmentElement equipmentElement = new EquipmentElement("", "", "", ""); - HandsElement handsElement = new HandsElement("", ""); + panel.getPanelBuilderCounter().getSlotsWith("CreateEntity").forEach(slot -> panel.setOnClick(slot, event -> { + MainStatsElement mainStatsElement = new MainStatsElement(nextNumber, "", 50.0, ""); + EquipmentElement equipmentElement = new EquipmentElement("", "", "", ""); + HandsElement handsElement = new HandsElement("", ""); - EntityStatsElement entityStatsElement = new EntityStatsElement(mainStatsElement, equipmentElement, handsElement, new ArrayList<>()); + EntityStatsElement entityStatsElement = new EntityStatsElement(mainStatsElement, equipmentElement, handsElement, new ArrayList<>()); - bossEntity.getEntityStats().add(entityStatsElement); - this.bossesFileManager.save(); + bossEntity.getEntityStats().add(entityStatsElement); + this.bossesFileManager.save(); - openFor((Player) event.getWhoClicked(), bossEntity); - })); + openFor((Player) event.getWhoClicked(), bossEntity); + })); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/CommandsMainEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/CommandsMainEditorPanel.java index 55bc274..5fd349d 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/CommandsMainEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/CommandsMainEditorPanel.java @@ -3,6 +3,7 @@ package com.songoda.epicbosses.panel.bosses; import com.songoda.epicbosses.api.BossAPI; import com.songoda.epicbosses.entity.BossEntity; import com.songoda.epicbosses.managers.BossPanelManager; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.handlers.VariablePanelHandler; import com.songoda.epicbosses.utils.panel.builder.PanelBuilder; @@ -30,25 +31,27 @@ public class CommandsMainEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, BossEntity bossEntity) { - Map replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); - replaceMap.put("{onSpawn}", bossEntity.getCommands().getOnSpawn()); - replaceMap.put("{onDeath}", bossEntity.getCommands().getOnDeath()); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); + replaceMap.put("{onSpawn}", bossEntity.getCommands().getOnSpawn()); + replaceMap.put("{onDeath}", bossEntity.getCommands().getOnDeath()); + panelBuilder.addReplaceData(replaceMap); - PanelBuilderCounter counter = panelBuilder.getPanelBuilderCounter(); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true) - .setParentPanelHandler(this.bossPanelManager.getMainBossEditMenu(), bossEntity); + PanelBuilderCounter counter = panelBuilder.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true) + .setParentPanelHandler(this.bossPanelManager.getMainBossEditMenu(), bossEntity); - counter.getSlotsWith("OnSpawn").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getOnSpawnCommandEditMenu().openFor(player, bossEntity))); - counter.getSlotsWith("OnDeath").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getOnDeathCommandEditMenu().openFor(player, bossEntity))); + counter.getSlotsWith("OnSpawn").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getOnSpawnCommandEditMenu().openFor(player, bossEntity))); + counter.getSlotsWith("OnDeath").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getOnDeathCommandEditMenu().openFor(player, bossEntity))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/DropsEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/DropsEditorPanel.java index e248993..b4e6cea 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/DropsEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/DropsEditorPanel.java @@ -8,6 +8,7 @@ import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.BossesFileManager; import com.songoda.epicbosses.managers.files.DropTableFileManager; import com.songoda.epicbosses.utils.Message; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.StringUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackConverter; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; @@ -69,31 +70,33 @@ public class DropsEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, BossEntity bossEntity) { - Map replaceMap = new HashMap<>(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); - replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); - replaceMap.put("{dropTable}", bossEntity.getDrops().getDropTable()); + replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); + replaceMap.put("{dropTable}", bossEntity.getDrops().getDropTable()); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - panelBuilder.addReplaceData(replaceMap); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true); - PanelBuilderCounter counter = panel.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true); + PanelBuilderCounter counter = panel.getPanelBuilderCounter(); + String dropTableName = bossEntity.getDrops().getDropTable(); + DropTable dropTable = this.dropTableFileManager.getDropTable(dropTableName); - fillPanel(panel, bossEntity); - counter.getSlotsWith("Selected").forEach(slot -> panel.setOnClick(slot, event -> { - /* TODO: GO TO EDIT PANEL FOR DROP TABLE */ - })); - counter.getSlotsWith("CreateDropTable").forEach(slot -> panel.setOnClick(slot, event -> { - player.closeInventory(); - Message.Boss_New_CreateArgumentsDropTable.msg(event.getWhoClicked()); - })); + fillPanel(panel, bossEntity); + counter.getSlotsWith("Selected").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getMainDropTableEditMenu().openFor((Player) event.getWhoClicked(), dropTable))); + counter.getSlotsWith("CreateDropTable").forEach(slot -> panel.setOnClick(slot, event -> { + player.closeInventory(); + Message.Boss_New_CreateArgumentsDropTable.msg(event.getWhoClicked()); + })); - panel.openFor(player); + panel.openFor(player); + }); } private void loadPage(Panel panel, int requestedPage, Map dropTableMap, List entryList, BossEntity bossEntity) { diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/DropsMainEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/DropsMainEditorPanel.java index 81d1308..c5f7ba0 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/DropsMainEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/DropsMainEditorPanel.java @@ -6,6 +6,7 @@ import com.songoda.epicbosses.entity.BossEntity; import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.BossesFileManager; import com.songoda.epicbosses.utils.NumberUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; import com.songoda.epicbosses.utils.panel.base.handlers.VariablePanelHandler; @@ -38,37 +39,39 @@ public class DropsMainEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, BossEntity bossEntity) { - Map replaceMap = new HashMap<>(); - Boolean naturalDrops = bossEntity.getDrops().getNaturalDrops(); - Boolean naturalExp = bossEntity.getDrops().getDropExp(); - String dropTable = bossEntity.getDrops().getDropTable(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + Boolean naturalDrops = bossEntity.getDrops().getNaturalDrops(); + Boolean naturalExp = bossEntity.getDrops().getDropExp(); + String dropTable = bossEntity.getDrops().getDropTable(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - if(naturalDrops == null) naturalDrops = true; - if(naturalExp == null) naturalExp = true; - if(dropTable == null) dropTable = "N/A"; + if(naturalDrops == null) naturalDrops = true; + if(naturalExp == null) naturalExp = true; + if(dropTable == null) dropTable = "N/A"; - replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); - replaceMap.put("{naturalDrops}", ""+naturalDrops); - replaceMap.put("{naturalExp}", ""+naturalExp); - replaceMap.put("{dropTable}", dropTable); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); + replaceMap.put("{naturalDrops}", ""+naturalDrops); + replaceMap.put("{naturalExp}", ""+naturalExp); + replaceMap.put("{dropTable}", dropTable); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true) - .setParentPanelHandler(this.bossPanelManager.getMainBossEditMenu(), bossEntity); - PanelBuilderCounter counter = panel.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true) + .setParentPanelHandler(this.bossPanelManager.getMainBossEditMenu(), bossEntity); + PanelBuilderCounter counter = panel.getPanelBuilderCounter(); - Boolean finalNaturalDrops = naturalDrops; - Boolean finalNaturalEXP = naturalExp; + Boolean finalNaturalDrops = naturalDrops; + Boolean finalNaturalEXP = naturalExp; - counter.getSlotsWith("NaturalDrops").forEach(slot -> panel.setOnClick(slot, getNaturalDropsAction(bossEntity, finalNaturalDrops))); - counter.getSlotsWith("DropTable").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getDropsEditMenu().openFor((Player) event.getWhoClicked(), bossEntity))); - counter.getSlotsWith("NaturalEXP").forEach(slot -> panel.setOnClick(slot, getNaturalExpAction(bossEntity, finalNaturalEXP))); + counter.getSlotsWith("NaturalDrops").forEach(slot -> panel.setOnClick(slot, getNaturalDropsAction(bossEntity, finalNaturalDrops))); + counter.getSlotsWith("DropTable").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getDropsEditMenu().openFor((Player) event.getWhoClicked(), bossEntity))); + counter.getSlotsWith("NaturalEXP").forEach(slot -> panel.setOnClick(slot, getNaturalExpAction(bossEntity, finalNaturalEXP))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/EquipmentEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/EquipmentEditorPanel.java index d4b8097..e29cf68 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/EquipmentEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/EquipmentEditorPanel.java @@ -4,6 +4,7 @@ import com.songoda.epicbosses.api.BossAPI; import com.songoda.epicbosses.entity.BossEntity; import com.songoda.epicbosses.entity.elements.EntityStatsElement; import com.songoda.epicbosses.managers.BossPanelManager; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.handlers.SubVariablePanelHandler; import com.songoda.epicbosses.utils.panel.builder.PanelBuilder; @@ -36,26 +37,28 @@ public class EquipmentEditorPanel extends SubVariablePanelHandler replaceMap = new HashMap<>(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); - replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); + replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - panelBuilder.addReplaceData(replaceMap); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelLowerClick(true) - .setCancelClick(true) - .setParentPanelHandler(this.bossPanelManager.getEquipmentListEditMenu(), bossEntity); - PanelBuilderCounter panelBuilderCounter = panel.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelLowerClick(true) + .setCancelClick(true) + .setParentPanelHandler(this.bossPanelManager.getEquipmentListEditMenu(), bossEntity); + PanelBuilderCounter panelBuilderCounter = panel.getPanelBuilderCounter(); - panelBuilderCounter.getSlotsWith("Helmet").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getHelmetEditorMenu().openFor(player, bossEntity, entityStatsElement))); - panelBuilderCounter.getSlotsWith("Chestplate").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getChestplateEditorMenu().openFor(player, bossEntity, entityStatsElement))); - panelBuilderCounter.getSlotsWith("Leggings").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getLeggingsEditorMenu().openFor(player, bossEntity, entityStatsElement))); - panelBuilderCounter.getSlotsWith("Boots").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getBootsEditorMenu().openFor(player, bossEntity, entityStatsElement))); + panelBuilderCounter.getSlotsWith("Helmet").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getHelmetEditorMenu().openFor(player, bossEntity, entityStatsElement))); + panelBuilderCounter.getSlotsWith("Chestplate").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getChestplateEditorMenu().openFor(player, bossEntity, entityStatsElement))); + panelBuilderCounter.getSlotsWith("Leggings").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getLeggingsEditorMenu().openFor(player, bossEntity, entityStatsElement))); + panelBuilderCounter.getSlotsWith("Boots").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getBootsEditorMenu().openFor(player, bossEntity, entityStatsElement))); - panel.openFor(player); + panel.openFor(player); + }); } } diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/MainBossEditPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/MainBossEditPanel.java index 7fa43da..09c3567 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/MainBossEditPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/MainBossEditPanel.java @@ -7,6 +7,7 @@ import com.songoda.epicbosses.managers.BossEntityManager; import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.BossesFileManager; import com.songoda.epicbosses.utils.Message; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; import com.songoda.epicbosses.utils.panel.base.handlers.VariablePanelHandler; @@ -47,32 +48,34 @@ public class MainBossEditPanel extends VariablePanelHandler { @Override public void openFor(Player player, BossEntity bossEntity) { - Map replaceMap = new HashMap<>(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); - replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); - replaceMap.put("{mode}", bossEntity.getEditingValue()); + replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); + replaceMap.put("{mode}", bossEntity.getEditingValue()); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - panelBuilder.addReplaceData(replaceMap); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true); - PanelBuilderCounter counter = panel.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true); + PanelBuilderCounter counter = panel.getPanelBuilderCounter(); - counter.getSlotsWith("Editing").forEach(slot -> panel.setOnClick(slot, getEditingAction(bossEntity))); - counter.getSlotsWith("Drops").forEach(slot -> panel.setOnClick(slot, e -> this.bossPanelManager.getMainDropsEditMenu().openFor((Player) e.getWhoClicked(), bossEntity))); - counter.getSlotsWith("Targeting").forEach(slot -> panel.setOnClick(slot, e -> this.bossPanelManager.getTargetingEditMenu().openFor((Player) e.getWhoClicked(), bossEntity))); - counter.getSlotsWith("Equipment").forEach(slot -> panel.setOnClick(slot, e -> this.bossPanelManager.getEquipmentListEditMenu().openFor((Player) e.getWhoClicked(), bossEntity))); - counter.getSlotsWith("Weapon").forEach(slot -> panel.setOnClick(slot, e -> this.bossPanelManager.getWeaponListEditMenu().openFor((Player) e.getWhoClicked(), bossEntity))); - counter.getSlotsWith("Skill").forEach(slot -> panel.setOnClick(slot, e -> this.bossPanelManager.getSkillsBossEditMenu().openFor((Player) e.getWhoClicked(), bossEntity))); - counter.getSlotsWith("Stats").forEach(slot -> panel.setOnClick(slot, e -> this.bossPanelManager.getStatisticListEditMenu().openFor((Player) e.getWhoClicked(), bossEntity))); - counter.getSlotsWith("Command").forEach(slot -> panel.setOnClick(slot, e -> this.bossPanelManager.getCommandsMainEditMenu().openFor((Player) e.getWhoClicked(), bossEntity))); - counter.getSlotsWith("Text").forEach(slot -> panel.setOnClick(slot, e -> this.bossPanelManager.getMainTextEditMenu().openFor((Player) e.getWhoClicked(), bossEntity))); + counter.getSlotsWith("Editing").forEach(slot -> panel.setOnClick(slot, getEditingAction(bossEntity))); + counter.getSlotsWith("Drops").forEach(slot -> panel.setOnClick(slot, e -> this.bossPanelManager.getMainDropsEditMenu().openFor((Player) e.getWhoClicked(), bossEntity))); + counter.getSlotsWith("Targeting").forEach(slot -> panel.setOnClick(slot, e -> this.bossPanelManager.getTargetingEditMenu().openFor((Player) e.getWhoClicked(), bossEntity))); + counter.getSlotsWith("Equipment").forEach(slot -> panel.setOnClick(slot, e -> this.bossPanelManager.getEquipmentListEditMenu().openFor((Player) e.getWhoClicked(), bossEntity))); + counter.getSlotsWith("Weapon").forEach(slot -> panel.setOnClick(slot, e -> this.bossPanelManager.getWeaponListEditMenu().openFor((Player) e.getWhoClicked(), bossEntity))); + counter.getSlotsWith("Skill").forEach(slot -> panel.setOnClick(slot, e -> this.bossPanelManager.getSkillsBossEditMenu().openFor((Player) e.getWhoClicked(), bossEntity))); + counter.getSlotsWith("Stats").forEach(slot -> panel.setOnClick(slot, e -> this.bossPanelManager.getStatisticListEditMenu().openFor((Player) e.getWhoClicked(), bossEntity))); + counter.getSlotsWith("Command").forEach(slot -> panel.setOnClick(slot, e -> this.bossPanelManager.getCommandsMainEditMenu().openFor((Player) e.getWhoClicked(), bossEntity))); + counter.getSlotsWith("Text").forEach(slot -> panel.setOnClick(slot, e -> this.bossPanelManager.getMainTextEditMenu().openFor((Player) e.getWhoClicked(), bossEntity))); - panel.openFor(player); + panel.openFor(player); + }); } private ClickAction getEditingAction(BossEntity bossEntity) { diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/SkillListEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/SkillListEditorPanel.java index 97dd79d..eec8aa5 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/SkillListEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/SkillListEditorPanel.java @@ -7,6 +7,7 @@ import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.SkillsFileManager; import com.songoda.epicbosses.skills.Skill; import com.songoda.epicbosses.utils.NumberUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.StringUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackConverter; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; @@ -60,21 +61,23 @@ public class SkillListEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, BossEntity bossEntity) { - Map replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true) - .setParentPanelHandler(this.bossPanelManager.getSkillsBossEditMenu(), bossEntity); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true) + .setParentPanelHandler(this.bossPanelManager.getSkillsBossEditMenu(), bossEntity); - fillPanel(panel, bossEntity); + fillPanel(panel, bossEntity); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/SkillMainEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/SkillMainEditorPanel.java index 0d803b5..590b6ff 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/SkillMainEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/SkillMainEditorPanel.java @@ -7,6 +7,7 @@ import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.BossesFileManager; import com.songoda.epicbosses.utils.Message; import com.songoda.epicbosses.utils.NumberUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; import com.songoda.epicbosses.utils.panel.base.handlers.VariablePanelHandler; @@ -40,28 +41,30 @@ public class SkillMainEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, BossEntity bossEntity) { - Map replaceMap = new HashMap<>(); - Double chance = bossEntity.getSkills().getOverallChance(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + Double chance = bossEntity.getSkills().getOverallChance(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - if(chance == null) chance = 0.0; + if(chance == null) chance = 0.0; - replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); - replaceMap.put("{chance}", NumberUtils.get().formatDouble(chance)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); + replaceMap.put("{chance}", NumberUtils.get().formatDouble(chance)); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true) - .setParentPanelHandler(this.bossPanelManager.getMainBossEditMenu(), bossEntity); - PanelBuilderCounter counter = panel.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true) + .setParentPanelHandler(this.bossPanelManager.getMainBossEditMenu(), bossEntity); + PanelBuilderCounter counter = panel.getPanelBuilderCounter(); - counter.getSlotsWith("OverallChance").forEach(slot -> panel.setOnClick(slot, getOverallChanceAction(bossEntity))); - counter.getSlotsWith("SkillList").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getSkillListBossEditMenu().openFor((Player) event.getWhoClicked(), bossEntity))); - counter.getSlotsWith("Message").forEach(slot -> panel.setOnClick(slot, getMessageAction())); + counter.getSlotsWith("OverallChance").forEach(slot -> panel.setOnClick(slot, getOverallChanceAction(bossEntity))); + counter.getSlotsWith("SkillList").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getSkillListBossEditMenu().openFor((Player) event.getWhoClicked(), bossEntity))); + counter.getSlotsWith("Message").forEach(slot -> panel.setOnClick(slot, getMessageAction())); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/StatisticMainEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/StatisticMainEditorPanel.java index 65ff6fd..f040beb 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/StatisticMainEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/StatisticMainEditorPanel.java @@ -10,6 +10,7 @@ import com.songoda.epicbosses.managers.files.BossesFileManager; import com.songoda.epicbosses.utils.EntityFinder; import com.songoda.epicbosses.utils.Message; import com.songoda.epicbosses.utils.NumberUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; import com.songoda.epicbosses.utils.panel.base.handlers.SubVariablePanelHandler; @@ -44,38 +45,39 @@ public class StatisticMainEditorPanel extends SubVariablePanelHandler replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - String displayName = entityStatsElement.getMainStats().getDisplayName(); - Double health = entityStatsElement.getMainStats().getHealth(); - PanelBuilderCounter counter = panelBuilder.getPanelBuilderCounter(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + String displayName = entityStatsElement.getMainStats().getDisplayName(); + Double health = entityStatsElement.getMainStats().getHealth(); + PanelBuilderCounter counter = panelBuilder.getPanelBuilderCounter(); - if(health == null) health = 0.0; - if(displayName == null) displayName = "N/A"; + if(health == null) health = 0.0; + if(displayName == null) displayName = "N/A"; - replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); - replaceMap.put("{health}", NumberUtils.get().formatDouble(health)); - replaceMap.put("{displayName}", displayName); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); + replaceMap.put("{health}", NumberUtils.get().formatDouble(health)); + replaceMap.put("{displayName}", displayName); + panelBuilder.addReplaceData(replaceMap); - counter - .addSlotCounter("DisplayName") - .addSlotCounter("EntityType") - .addSlotCounter("Health"); + counter.addSlotCounter("DisplayName") + .addSlotCounter("EntityType") + .addSlotCounter("Health"); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true) - .setParentPanelHandler(this.bossPanelManager.getStatisticListEditMenu(), bossEntity); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true) + .setParentPanelHandler(this.bossPanelManager.getStatisticListEditMenu(), bossEntity); - fillPanel(panel, bossEntity, entityStatsElement); + fillPanel(panel, bossEntity, entityStatsElement); - counter.getSlotsWith("DisplayName").forEach(slot -> panel.setOnClick(slot, getDisplayNameAction(bossEntity, entityStatsElement))); - counter.getSlotsWith("EntityType").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getEntityTypeEditMenu().openFor((Player) event.getWhoClicked(), bossEntity, entityStatsElement))); - counter.getSlotsWith("Health").forEach(slot -> panel.setOnClick(slot, getHealthAction(bossEntity, entityStatsElement))); + counter.getSlotsWith("DisplayName").forEach(slot -> panel.setOnClick(slot, getDisplayNameAction(bossEntity, entityStatsElement))); + counter.getSlotsWith("EntityType").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getEntityTypeEditMenu().openFor((Player) event.getWhoClicked(), bossEntity, entityStatsElement))); + counter.getSlotsWith("Health").forEach(slot -> panel.setOnClick(slot, getHealthAction(bossEntity, entityStatsElement))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/TargetingEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/TargetingEditorPanel.java index d950983..df32964 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/TargetingEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/TargetingEditorPanel.java @@ -4,6 +4,7 @@ import com.songoda.epicbosses.api.BossAPI; import com.songoda.epicbosses.entity.BossEntity; import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.BossesFileManager; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.handlers.VariablePanelHandler; import com.songoda.epicbosses.utils.panel.builder.PanelBuilder; @@ -35,31 +36,33 @@ public class TargetingEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, BossEntity bossEntity) { - Map replaceMap = new HashMap<>(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); - replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); - replaceMap.put("{selected}", bossEntity.getTargetingValue()); + replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); + replaceMap.put("{selected}", bossEntity.getTargetingValue()); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - panelBuilder.addReplaceData(replaceMap); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelLowerClick(true) - .setCancelClick(true) - .setParentPanelHandler(this.bossPanelManager.getMainBossEditMenu(), bossEntity); - PanelBuilderCounter panelBuilderCounter = panel.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelLowerClick(true) + .setCancelClick(true) + .setParentPanelHandler(this.bossPanelManager.getMainBossEditMenu(), bossEntity); + PanelBuilderCounter panelBuilderCounter = panel.getPanelBuilderCounter(); - panelBuilderCounter.getSpecialSlotsWith("TargetingSystem").forEach((slot, returnValue) -> panel.setOnClick(slot, event -> { - bossEntity.setTargeting((String) returnValue); - this.bossesFileManager.save(); + panelBuilderCounter.getSpecialSlotsWith("TargetingSystem").forEach((slot, returnValue) -> panel.setOnClick(slot, event -> { + bossEntity.setTargeting((String) returnValue); + this.bossesFileManager.save(); - openFor(player, bossEntity); + openFor(player, bossEntity); - })); + })); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/TextMainEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/TextMainEditorPanel.java index 4857124..971553d 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/TextMainEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/TextMainEditorPanel.java @@ -3,6 +3,7 @@ package com.songoda.epicbosses.panel.bosses; import com.songoda.epicbosses.api.BossAPI; import com.songoda.epicbosses.entity.BossEntity; import com.songoda.epicbosses.managers.BossPanelManager; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.handlers.VariablePanelHandler; import com.songoda.epicbosses.utils.panel.builder.PanelBuilder; @@ -30,24 +31,26 @@ public class TextMainEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, BossEntity bossEntity) { - Map replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true) - .setParentPanelHandler(this.bossPanelManager.getMainBossEditMenu(), bossEntity); - PanelBuilderCounter counter = panel.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true) + .setParentPanelHandler(this.bossPanelManager.getMainBossEditMenu(), bossEntity); + PanelBuilderCounter counter = panel.getPanelBuilderCounter(); - counter.getSlotsWith("OnSpawn").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getOnSpawnSubTextEditMenu().openFor((Player) event.getWhoClicked(), bossEntity))); - counter.getSlotsWith("OnDeath").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getOnDeathSubTextEditMenu().openFor((Player) event.getWhoClicked(), bossEntity))); - counter.getSlotsWith("Taunts").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getMainTauntEditMenu().openFor((Player) event.getWhoClicked(), bossEntity))); + counter.getSlotsWith("OnSpawn").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getOnSpawnSubTextEditMenu().openFor((Player) event.getWhoClicked(), bossEntity))); + counter.getSlotsWith("OnDeath").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getOnDeathSubTextEditMenu().openFor((Player) event.getWhoClicked(), bossEntity))); + counter.getSlotsWith("Taunts").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getMainTauntEditMenu().openFor((Player) event.getWhoClicked(), bossEntity))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/WeaponsEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/WeaponsEditorPanel.java index 3127d81..d3a3396 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/WeaponsEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/WeaponsEditorPanel.java @@ -4,6 +4,7 @@ import com.songoda.epicbosses.api.BossAPI; import com.songoda.epicbosses.entity.BossEntity; import com.songoda.epicbosses.entity.elements.EntityStatsElement; import com.songoda.epicbosses.managers.BossPanelManager; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.handlers.SubVariablePanelHandler; import com.songoda.epicbosses.utils.panel.builder.PanelBuilder; @@ -31,25 +32,27 @@ public class WeaponsEditorPanel extends SubVariablePanelHandler replaceMap = new HashMap<>(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); - replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); + replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - panelBuilder.addReplaceData(replaceMap); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelLowerClick(true) - .setCancelClick(true) - .setParentPanelHandler(this.bossPanelManager.getWeaponListEditMenu(), bossEntity); - PanelBuilderCounter panelBuilderCounter = panel.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelLowerClick(true) + .setCancelClick(true) + .setParentPanelHandler(this.bossPanelManager.getWeaponListEditMenu(), bossEntity); + PanelBuilderCounter panelBuilderCounter = panel.getPanelBuilderCounter(); - panelBuilderCounter.getSlotsWith("MainHand").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getMainHandEditorMenu().openFor(player, bossEntity, entityStatsElement))); - panelBuilderCounter.getSlotsWith("OffHand").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getOffHandEditorMenu().openFor(player, bossEntity, entityStatsElement))); + panelBuilderCounter.getSlotsWith("MainHand").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getMainHandEditorMenu().openFor(player, bossEntity, entityStatsElement))); + panelBuilderCounter.getSlotsWith("OffHand").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getOffHandEditorMenu().openFor(player, bossEntity, entityStatsElement))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/commands/OnDeathCommandEditor.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/commands/OnDeathCommandEditor.java index b5574b9..d28c597 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/commands/OnDeathCommandEditor.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/commands/OnDeathCommandEditor.java @@ -5,6 +5,7 @@ import com.songoda.epicbosses.api.BossAPI; import com.songoda.epicbosses.entity.BossEntity; import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.CommandsFileManager; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.StringUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackConverter; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; @@ -59,21 +60,23 @@ public class OnDeathCommandEditor extends VariablePanelHandler { @Override public void openFor(Player player, BossEntity bossEntity) { - Map replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true) - .setParentPanelHandler(this.bossPanelManager.getCommandsMainEditMenu(), bossEntity); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true) + .setParentPanelHandler(this.bossPanelManager.getCommandsMainEditMenu(), bossEntity); - fillPanel(panel, bossEntity); + fillPanel(panel, bossEntity); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/commands/OnSpawnCommandEditor.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/commands/OnSpawnCommandEditor.java index a5fdf21..cde3005 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/commands/OnSpawnCommandEditor.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/commands/OnSpawnCommandEditor.java @@ -5,6 +5,7 @@ import com.songoda.epicbosses.api.BossAPI; import com.songoda.epicbosses.entity.BossEntity; import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.CommandsFileManager; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.StringUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackConverter; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; @@ -59,21 +60,23 @@ public class OnSpawnCommandEditor extends VariablePanelHandler { @Override public void openFor(Player player, BossEntity bossEntity) { - Map replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true) - .setParentPanelHandler(this.bossPanelManager.getCommandsMainEditMenu(), bossEntity); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true) + .setParentPanelHandler(this.bossPanelManager.getCommandsMainEditMenu(), bossEntity); - fillPanel(panel, bossEntity); + fillPanel(panel, bossEntity); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/text/DeathTextEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/text/DeathTextEditorPanel.java index 6f72522..b9ec108 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/text/DeathTextEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/text/DeathTextEditorPanel.java @@ -8,6 +8,7 @@ import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.BossesFileManager; import com.songoda.epicbosses.utils.Message; import com.songoda.epicbosses.utils.NumberUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; import com.songoda.epicbosses.utils.panel.base.handlers.VariablePanelHandler; @@ -41,39 +42,41 @@ public class DeathTextEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, BossEntity bossEntity) { - Map replaceMap = new HashMap<>(); - OnDeathMessageElement onDeathMessageElement = bossEntity.getMessages().getOnDeath(); - Integer radius = onDeathMessageElement.getRadius(); - Integer onlyShow = onDeathMessageElement.getOnlyShow(); - String mainMessage = onDeathMessageElement.getMessage(); - String positionMessage = onDeathMessageElement.getPositionMessage(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + OnDeathMessageElement onDeathMessageElement = bossEntity.getMessages().getOnDeath(); + Integer radius = onDeathMessageElement.getRadius(); + Integer onlyShow = onDeathMessageElement.getOnlyShow(); + String mainMessage = onDeathMessageElement.getMessage(); + String positionMessage = onDeathMessageElement.getPositionMessage(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - if(radius == null) radius = 0; - if(onlyShow == null) onlyShow = 3; - if(mainMessage == null) mainMessage = "N/A"; - if(positionMessage == null) positionMessage = "N/A"; + if(radius == null) radius = 0; + if(onlyShow == null) onlyShow = 3; + if(mainMessage == null) mainMessage = "N/A"; + if(positionMessage == null) positionMessage = "N/A"; - replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); - replaceMap.put("{radius}", NumberUtils.get().formatDouble(radius)); - replaceMap.put("{mainMessage}", mainMessage); - replaceMap.put("{positionMessage}", positionMessage); - replaceMap.put("{onlyShow}", NumberUtils.get().formatDouble(onlyShow)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); + replaceMap.put("{radius}", NumberUtils.get().formatDouble(radius)); + replaceMap.put("{mainMessage}", mainMessage); + replaceMap.put("{positionMessage}", positionMessage); + replaceMap.put("{onlyShow}", NumberUtils.get().formatDouble(onlyShow)); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true) - .setParentPanelHandler(this.bossPanelManager.getMainTextEditMenu(), bossEntity); - PanelBuilderCounter counter = panel.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true) + .setParentPanelHandler(this.bossPanelManager.getMainTextEditMenu(), bossEntity); + PanelBuilderCounter counter = panel.getPanelBuilderCounter(); - counter.getSlotsWith("MainMessage").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getOnDeathTextEditMenu().openFor((Player) event.getWhoClicked(), bossEntity))); - counter.getSlotsWith("Radius").forEach(slot -> panel.setOnClick(slot, getRadiusAction(bossEntity))); - counter.getSlotsWith("OnlyShow").forEach(slot -> panel.setOnClick(slot, getOnlyShowAction(bossEntity))); - counter.getSlotsWith("PositionMessage").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getOnDeathPositionTextEditMenu().openFor((Player) event.getWhoClicked(), bossEntity))); + counter.getSlotsWith("MainMessage").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getOnDeathTextEditMenu().openFor((Player) event.getWhoClicked(), bossEntity))); + counter.getSlotsWith("Radius").forEach(slot -> panel.setOnClick(slot, getRadiusAction(bossEntity))); + counter.getSlotsWith("OnlyShow").forEach(slot -> panel.setOnClick(slot, getOnlyShowAction(bossEntity))); + counter.getSlotsWith("PositionMessage").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getOnDeathPositionTextEditMenu().openFor((Player) event.getWhoClicked(), bossEntity))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/text/SpawnTextEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/text/SpawnTextEditorPanel.java index 3f961d2..25d43c4 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/text/SpawnTextEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/text/SpawnTextEditorPanel.java @@ -7,6 +7,7 @@ import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.BossesFileManager; import com.songoda.epicbosses.utils.Message; import com.songoda.epicbosses.utils.NumberUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; import com.songoda.epicbosses.utils.panel.base.handlers.VariablePanelHandler; @@ -40,30 +41,32 @@ public class SpawnTextEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, BossEntity bossEntity) { - Map replaceMap = new HashMap<>(); - Integer radius = bossEntity.getMessages().getOnSpawn().getRadius(); - String message = bossEntity.getMessages().getOnDeath().getMessage(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + Integer radius = bossEntity.getMessages().getOnSpawn().getRadius(); + String message = bossEntity.getMessages().getOnDeath().getMessage(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - if(radius == null) radius = 0; - if(message == null) message = "N/A"; + if(radius == null) radius = 0; + if(message == null) message = "N/A"; - replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); - replaceMap.put("{radius}", NumberUtils.get().formatDouble(radius)); - replaceMap.put("{selected}", message); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); + replaceMap.put("{radius}", NumberUtils.get().formatDouble(radius)); + replaceMap.put("{selected}", message); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true) - .setParentPanelHandler(this.bossPanelManager.getMainTextEditMenu(), bossEntity); - PanelBuilderCounter counter = panel.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true) + .setParentPanelHandler(this.bossPanelManager.getMainTextEditMenu(), bossEntity); + PanelBuilderCounter counter = panel.getPanelBuilderCounter(); - counter.getSlotsWith("Select").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getOnSpawnTextEditMenu().openFor((Player) event.getWhoClicked(), bossEntity))); - counter.getSlotsWith("Radius").forEach(slot -> panel.setOnClick(slot, getRadiusAction(bossEntity))); + counter.getSlotsWith("Select").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getOnSpawnTextEditMenu().openFor((Player) event.getWhoClicked(), bossEntity))); + counter.getSlotsWith("Radius").forEach(slot -> panel.setOnClick(slot, getRadiusAction(bossEntity))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/text/TauntTextEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/text/TauntTextEditorPanel.java index 50f9d80..d5daf6b 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/text/TauntTextEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/bosses/text/TauntTextEditorPanel.java @@ -8,6 +8,7 @@ import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.BossesFileManager; import com.songoda.epicbosses.utils.Message; import com.songoda.epicbosses.utils.NumberUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.StringUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; @@ -44,35 +45,37 @@ public class TauntTextEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, BossEntity bossEntity) { - Map replaceMap = new HashMap<>(); - TauntElement tauntElement = bossEntity.getMessages().getTaunts(); - Integer radius = tauntElement.getRadius(); - Integer delay = tauntElement.getDelay(); - List taunts = tauntElement.getTaunts(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + TauntElement tauntElement = bossEntity.getMessages().getTaunts(); + Integer radius = tauntElement.getRadius(); + Integer delay = tauntElement.getDelay(); + List taunts = tauntElement.getTaunts(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - if(radius == null) radius = 100; - if(delay == null) delay = 60; - if(taunts == null || taunts.isEmpty()) taunts = Arrays.asList("N/A"); + if(radius == null) radius = 100; + if(delay == null) delay = 60; + if(taunts == null || taunts.isEmpty()) taunts = Arrays.asList("N/A"); - replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); - replaceMap.put("{radius}", NumberUtils.get().formatDouble(radius)); - replaceMap.put("{delay}", NumberUtils.get().formatDouble(delay)); - replaceMap.put("{taunts}", StringUtils.get().appendList(taunts)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); + replaceMap.put("{radius}", NumberUtils.get().formatDouble(radius)); + replaceMap.put("{delay}", NumberUtils.get().formatDouble(delay)); + replaceMap.put("{taunts}", StringUtils.get().appendList(taunts)); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true) - .setParentPanelHandler(this.bossPanelManager.getMainTextEditMenu(), bossEntity); - PanelBuilderCounter counter = panel.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true) + .setParentPanelHandler(this.bossPanelManager.getMainTextEditMenu(), bossEntity); + PanelBuilderCounter counter = panel.getPanelBuilderCounter(); - counter.getSlotsWith("Radius").forEach(slot -> panel.setOnClick(slot, getRadiusAction(bossEntity))); - counter.getSlotsWith("Delay").forEach(slot -> panel.setOnClick(slot, getDelayAction(bossEntity))); - counter.getSlotsWith("Taunts").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getOnTauntTextEditMenu().openFor((Player) event.getWhoClicked(), bossEntity))); + counter.getSlotsWith("Radius").forEach(slot -> panel.setOnClick(slot, getRadiusAction(bossEntity))); + counter.getSlotsWith("Delay").forEach(slot -> panel.setOnClick(slot, getDelayAction(bossEntity))); + counter.getSlotsWith("Taunts").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getOnTauntTextEditMenu().openFor((Player) event.getWhoClicked(), bossEntity))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/DropTableTypeEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/DropTableTypeEditorPanel.java index 095a977..daa9f5d 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/DropTableTypeEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/DropTableTypeEditorPanel.java @@ -4,6 +4,7 @@ import com.songoda.epicbosses.CustomBosses; import com.songoda.epicbosses.api.BossAPI; import com.songoda.epicbosses.droptable.DropTable; import com.songoda.epicbosses.managers.BossPanelManager; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; import com.songoda.epicbosses.utils.panel.base.handlers.VariablePanelHandler; @@ -37,21 +38,23 @@ public class DropTableTypeEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, DropTable dropTable) { - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - Map replaceMap = new HashMap<>(); + ServerUtils.get().runTaskAsync(() -> { + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + Map replaceMap = new HashMap<>(); - replaceMap.put("{name}", BossAPI.getDropTableName(dropTable)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getDropTableName(dropTable)); + panelBuilder.addReplaceData(replaceMap); - PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter(); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(this.bossPanelManager.getMainDropTableEditMenu(), dropTable); + PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(this.bossPanelManager.getMainDropTableEditMenu(), dropTable); - panelBuilderCounter.getSlotsWith("Spray").forEach(slot -> panel.setOnClick(slot, getSprayAction(dropTable))); - panelBuilderCounter.getSlotsWith("Drop").forEach(slot -> panel.setOnClick(slot, getDropAction(dropTable))); - panelBuilderCounter.getSlotsWith("Give").forEach(slot -> panel.setOnClick(slot, getGiveAction(dropTable))); + panelBuilderCounter.getSlotsWith("Spray").forEach(slot -> panel.setOnClick(slot, getSprayAction(dropTable))); + panelBuilderCounter.getSlotsWith("Drop").forEach(slot -> panel.setOnClick(slot, getDropAction(dropTable))); + panelBuilderCounter.getSlotsWith("Give").forEach(slot -> panel.setOnClick(slot, getGiveAction(dropTable))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/MainDropTableEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/MainDropTableEditorPanel.java index 5d69886..f49b908 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/MainDropTableEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/MainDropTableEditorPanel.java @@ -7,6 +7,7 @@ import com.songoda.epicbosses.droptable.elements.GiveTableElement; import com.songoda.epicbosses.droptable.elements.SprayTableElement; import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.utils.Debug; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.StringUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; @@ -36,21 +37,23 @@ public class MainDropTableEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, DropTable dropTable) { - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - Map replaceMap = new HashMap<>(); + ServerUtils.get().runTaskAsync(() -> { + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + Map replaceMap = new HashMap<>(); - replaceMap.put("{name}", BossAPI.getDropTableName(dropTable)); - replaceMap.put("{type}", StringUtils.get().formatString(dropTable.getDropType())); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getDropTableName(dropTable)); + replaceMap.put("{type}", StringUtils.get().formatString(dropTable.getDropType())); + panelBuilder.addReplaceData(replaceMap); - PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter(); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(this.bossPanelManager.getDropTables()); + PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(this.bossPanelManager.getDropTables()); - panelBuilderCounter.getSlotsWith("Type").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getDropTableTypeEditMenu().openFor(player, dropTable))); - panelBuilderCounter.getSlotsWith("Rewards").forEach(slot -> panel.setOnClick(slot, getRewardsAction(dropTable))); + panelBuilderCounter.getSlotsWith("Type").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getDropTableTypeEditMenu().openFor(player, dropTable))); + panelBuilderCounter.getSlotsWith("Rewards").forEach(slot -> panel.setOnClick(slot, getRewardsAction(dropTable))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/rewards/DropTableNewRewardEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/rewards/DropTableNewRewardEditorPanel.java index 680e47d..392d75b 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/rewards/DropTableNewRewardEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/rewards/DropTableNewRewardEditorPanel.java @@ -7,6 +7,7 @@ import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.ItemsFileManager; import com.songoda.epicbosses.panel.droptables.rewards.interfaces.IDropTableNewRewardEditor; import com.songoda.epicbosses.utils.Message; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.itemstack.holder.ItemStackHolder; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.handlers.SubVariablePanelHandler; @@ -55,11 +56,13 @@ public abstract class DropTableNewRewardEditorPanel extends SubVari @Override public void openFor(Player player, DropTable dropTable, SubVariable subVariable) { - Panel panel = getPanelBuilder().getPanel() - .setParentPanelHandler(getParentPanelHandler(), dropTable, subVariable); + ServerUtils.get().runTaskAsync(() -> { + Panel panel = getPanelBuilder().getPanel() + .setParentPanelHandler(getParentPanelHandler(), dropTable, subVariable); - fillPanel(panel, dropTable, subVariable); - panel.openFor(player); + fillPanel(panel, dropTable, subVariable); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/rewards/DropTableRewardMainEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/rewards/DropTableRewardMainEditorPanel.java index fcff0b5..e8d12a7 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/rewards/DropTableRewardMainEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/rewards/DropTableRewardMainEditorPanel.java @@ -9,6 +9,7 @@ import com.songoda.epicbosses.panel.droptables.rewards.interfaces.IDropTableRewa import com.songoda.epicbosses.utils.Message; import com.songoda.epicbosses.utils.NumberUtils; import com.songoda.epicbosses.utils.ObjectUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; import com.songoda.epicbosses.utils.panel.base.handlers.SubSubVariablePanelHandler; @@ -37,22 +38,24 @@ public abstract class DropTableRewardMainEditorPanel extends SubSub @Override public void openFor(Player player, DropTable dropTable, SubVariable subVariable, String s) { - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - Map replaceMap = new HashMap<>(); - double chance = ObjectUtils.getValue(getChance(subVariable, s), 50.0); + ServerUtils.get().runTaskAsync(() -> { + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + Map replaceMap = new HashMap<>(); + double chance = ObjectUtils.getValue(getChance(subVariable, s), 50.0); - replaceMap.put("{chance}", NumberUtils.get().formatDouble(chance)); - replaceMap.put("{itemStack}", s); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{chance}", NumberUtils.get().formatDouble(chance)); + replaceMap.put("{itemStack}", s); + panelBuilder.addReplaceData(replaceMap); - PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter(); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(getParentPanelHandler(), dropTable, subVariable); + PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(getParentPanelHandler(), dropTable, subVariable); - panelBuilderCounter.getSlotsWith("Chance").forEach(slot -> panel.setOnClick(slot, getChanceAction(dropTable, subVariable, s))); - panelBuilderCounter.getSlotsWith("Remove").forEach(slot -> panel.setOnClick(slot, getRemoveAction(dropTable, subVariable, s))); + panelBuilderCounter.getSlotsWith("Chance").forEach(slot -> panel.setOnClick(slot, getChanceAction(dropTable, subVariable, s))); + panelBuilderCounter.getSlotsWith("Remove").forEach(slot -> panel.setOnClick(slot, getRemoveAction(dropTable, subVariable, s))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/rewards/DropTableRewardsListEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/rewards/DropTableRewardsListEditorPanel.java index c236a21..14e7ba4 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/rewards/DropTableRewardsListEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/rewards/DropTableRewardsListEditorPanel.java @@ -7,6 +7,7 @@ import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.ItemsFileManager; import com.songoda.epicbosses.panel.droptables.rewards.interfaces.IDropTableRewardsListEditor; import com.songoda.epicbosses.utils.NumberUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.handlers.SubVariablePanelHandler; @@ -56,20 +57,22 @@ public abstract class DropTableRewardsListEditorPanel extends SubVa @Override public void openFor(Player player, DropTable dropTable, SubVariable subVariable) { - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - Map replaceMap = new HashMap<>(); + ServerUtils.get().runTaskAsync(() -> { + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + Map replaceMap = new HashMap<>(); - replaceMap.put("{name}", BossAPI.getDropTableName(dropTable)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getDropTableName(dropTable)); + panelBuilder.addReplaceData(replaceMap); - PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter(); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(getParentPanelHandler(), dropTable, subVariable); + PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(getParentPanelHandler(), dropTable, subVariable); - panelBuilderCounter.getSlotsWith("NewReward").forEach(slot -> panel.setOnClick(slot, event -> getNewRewardPanelHandler().openFor((Player) event.getWhoClicked(), dropTable, subVariable))); - fillPanel(panel, dropTable, subVariable); + panelBuilderCounter.getSlotsWith("NewReward").forEach(slot -> panel.setOnClick(slot, event -> getNewRewardPanelHandler().openFor((Player) event.getWhoClicked(), dropTable, subVariable))); + fillPanel(panel, dropTable, subVariable); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/GiveRewardMainEditPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/GiveRewardMainEditPanel.java index 7697153..828248e 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/GiveRewardMainEditPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/GiveRewardMainEditPanel.java @@ -11,6 +11,7 @@ import com.songoda.epicbosses.panel.droptables.types.give.handlers.GiveRewardEdi import com.songoda.epicbosses.utils.Message; import com.songoda.epicbosses.utils.NumberUtils; import com.songoda.epicbosses.utils.ObjectUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; import com.songoda.epicbosses.utils.panel.base.handlers.SubVariablePanelHandler; @@ -40,41 +41,43 @@ public class GiveRewardMainEditPanel extends SubVariablePanelHandler replaceMap = new HashMap<>(); - GiveTableSubElement giveTableSubElement = giveRewardEditHandler.getGiveTableSubElement(); - Integer itemDrops = giveTableSubElement.getItems().size(); - Integer commandDrops = giveTableSubElement.getCommands().size(); - Double requiredPercentage = ObjectUtils.getValue(giveTableSubElement.getRequiredPercentage(), 0.0); - Integer maxDrops = ObjectUtils.getValue(giveTableSubElement.getMaxDrops(), 3); - Integer maxCommands = ObjectUtils.getValue(giveTableSubElement.getMaxCommands(), 3); - Boolean randomDrops = ObjectUtils.getValue(giveTableSubElement.getRandomDrops(), false); - Boolean randomCommands = ObjectUtils.getValue(giveTableSubElement.getRandomCommands(), false); + ServerUtils.get().runTaskAsync(() -> { + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + Map replaceMap = new HashMap<>(); + GiveTableSubElement giveTableSubElement = giveRewardEditHandler.getGiveTableSubElement(); + Integer itemDrops = giveTableSubElement.getItems().size(); + Integer commandDrops = giveTableSubElement.getCommands().size(); + Double requiredPercentage = ObjectUtils.getValue(giveTableSubElement.getRequiredPercentage(), 0.0); + Integer maxDrops = ObjectUtils.getValue(giveTableSubElement.getMaxDrops(), 3); + Integer maxCommands = ObjectUtils.getValue(giveTableSubElement.getMaxCommands(), 3); + Boolean randomDrops = ObjectUtils.getValue(giveTableSubElement.getRandomDrops(), false); + Boolean randomCommands = ObjectUtils.getValue(giveTableSubElement.getRandomCommands(), false); - replaceMap.put("{name}", BossAPI.getDropTableName(dropTable)); - replaceMap.put("{position}", giveRewardEditHandler.getDamagePosition()); - replaceMap.put("{randomDrops}", ""+randomDrops); - replaceMap.put("{maxDrops}", NumberUtils.get().formatDouble(maxDrops)); - replaceMap.put("{drops}", NumberUtils.get().formatDouble(itemDrops)); - replaceMap.put("{requiredPercentage}", NumberUtils.get().formatDouble(requiredPercentage)); - replaceMap.put("{commands}", NumberUtils.get().formatDouble(commandDrops)); - replaceMap.put("{maxCommands}", NumberUtils.get().formatDouble(maxCommands)); - replaceMap.put("{randomCommands}", ""+randomCommands); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getDropTableName(dropTable)); + replaceMap.put("{position}", giveRewardEditHandler.getDamagePosition()); + replaceMap.put("{randomDrops}", ""+randomDrops); + replaceMap.put("{maxDrops}", NumberUtils.get().formatDouble(maxDrops)); + replaceMap.put("{drops}", NumberUtils.get().formatDouble(itemDrops)); + replaceMap.put("{requiredPercentage}", NumberUtils.get().formatDouble(requiredPercentage)); + replaceMap.put("{commands}", NumberUtils.get().formatDouble(commandDrops)); + replaceMap.put("{maxCommands}", NumberUtils.get().formatDouble(maxCommands)); + replaceMap.put("{randomCommands}", ""+randomCommands); + panelBuilder.addReplaceData(replaceMap); - PanelBuilderCounter counter = panelBuilder.getPanelBuilderCounter(); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(this.bossPanelManager.getGiveRewardRewardsListMenu(), dropTable, giveRewardEditHandler.getGiveTableElement(), giveRewardEditHandler.getDamagePosition()); + PanelBuilderCounter counter = panelBuilder.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(this.bossPanelManager.getGiveRewardRewardsListMenu(), dropTable, giveRewardEditHandler.getGiveTableElement(), giveRewardEditHandler.getDamagePosition()); - counter.getSlotsWith("RandomDrops").forEach(slot -> panel.setOnClick(slot, getRandomDropsAction(dropTable, giveRewardEditHandler))); - counter.getSlotsWith("MaxDrops").forEach(slot -> panel.setOnClick(slot, getMaxDropsAction(dropTable, giveRewardEditHandler))); - counter.getSlotsWith("ItemDrops").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getGiveDropRewardListPanel().openFor((Player) event.getWhoClicked(), dropTable, giveRewardEditHandler))); - counter.getSlotsWith("RequiredPercentage").forEach(slot -> panel.setOnClick(slot, getRequiredPercentageAction(dropTable, giveRewardEditHandler))); - counter.getSlotsWith("CommandDrops").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getGiveCommandRewardListPanel().openFor((Player) event.getWhoClicked(), dropTable, giveRewardEditHandler))); - counter.getSlotsWith("MaxCommands").forEach(slot -> panel.setOnClick(slot, getMaxCommandsAction(dropTable, giveRewardEditHandler))); - counter.getSlotsWith("RandomDrops").forEach(slot -> panel.setOnClick(slot, getRandomCommandsAction(dropTable, giveRewardEditHandler))); + counter.getSlotsWith("RandomDrops").forEach(slot -> panel.setOnClick(slot, getRandomDropsAction(dropTable, giveRewardEditHandler))); + counter.getSlotsWith("MaxDrops").forEach(slot -> panel.setOnClick(slot, getMaxDropsAction(dropTable, giveRewardEditHandler))); + counter.getSlotsWith("ItemDrops").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getGiveDropRewardListPanel().openFor((Player) event.getWhoClicked(), dropTable, giveRewardEditHandler))); + counter.getSlotsWith("RequiredPercentage").forEach(slot -> panel.setOnClick(slot, getRequiredPercentageAction(dropTable, giveRewardEditHandler))); + counter.getSlotsWith("CommandDrops").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getGiveCommandRewardListPanel().openFor((Player) event.getWhoClicked(), dropTable, giveRewardEditHandler))); + counter.getSlotsWith("MaxCommands").forEach(slot -> panel.setOnClick(slot, getMaxCommandsAction(dropTable, giveRewardEditHandler))); + counter.getSlotsWith("RandomDrops").forEach(slot -> panel.setOnClick(slot, getRandomCommandsAction(dropTable, giveRewardEditHandler))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/GiveRewardPositionListPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/GiveRewardPositionListPanel.java index a456a1b..84b1063 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/GiveRewardPositionListPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/GiveRewardPositionListPanel.java @@ -12,6 +12,7 @@ import com.songoda.epicbosses.managers.files.ItemsFileManager; import com.songoda.epicbosses.utils.Debug; import com.songoda.epicbosses.utils.Message; import com.songoda.epicbosses.utils.NumberUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; import com.songoda.epicbosses.utils.itemstack.holder.ItemStackHolder; import com.songoda.epicbosses.utils.panel.Panel; @@ -61,19 +62,21 @@ public class GiveRewardPositionListPanel extends SubVariablePanelHandler replaceMap = new HashMap<>(); + ServerUtils.get().runTaskAsync(() -> { + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + Map replaceMap = new HashMap<>(); - replaceMap.put("{name}", BossAPI.getDropTableName(dropTable)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getDropTableName(dropTable)); + panelBuilder.addReplaceData(replaceMap); - PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter(); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(this.bossPanelManager.getMainDropTableEditMenu(), dropTable); + PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(this.bossPanelManager.getMainDropTableEditMenu(), dropTable); - panelBuilderCounter.getSlotsWith("NewPosition").forEach(slot -> panel.setOnClick(slot, getNewPositionAction(dropTable, giveTableElement))); - fillPanel(panel, dropTable, giveTableElement); - panel.openFor(player); + panelBuilderCounter.getSlotsWith("NewPosition").forEach(slot -> panel.setOnClick(slot, getNewPositionAction(dropTable, giveTableElement))); + fillPanel(panel, dropTable, giveTableElement); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/GiveRewardRewardsListPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/GiveRewardRewardsListPanel.java index ccf87e5..c62fb2d 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/GiveRewardRewardsListPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/GiveRewardRewardsListPanel.java @@ -11,6 +11,7 @@ import com.songoda.epicbosses.panel.droptables.types.give.handlers.GiveRewardEdi import com.songoda.epicbosses.utils.Debug; import com.songoda.epicbosses.utils.NumberUtils; import com.songoda.epicbosses.utils.ObjectUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; @@ -46,19 +47,21 @@ public class GiveRewardRewardsListPanel extends SubSubVariablePanelHandler replaceMap = new HashMap<>(); + ServerUtils.get().runTaskAsync(() -> { + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + Map replaceMap = new HashMap<>(); - replaceMap.put("{name}", BossAPI.getDropTableName(dropTable)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getDropTableName(dropTable)); + panelBuilder.addReplaceData(replaceMap); - PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter(); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(this.bossPanelManager.getGiveRewardPositionListMenu(), dropTable, giveTableElement); + PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(this.bossPanelManager.getGiveRewardPositionListMenu(), dropTable, giveTableElement); - panelBuilderCounter.getSlotsWith("NewRewardSection").forEach(slot -> panel.setOnClick(slot, getNewRewardSectionAction(dropTable, giveTableElement, s))); - fillPanel(panel, dropTable, giveTableElement, s); - panel.openFor(player); + panelBuilderCounter.getSlotsWith("NewRewardSection").forEach(slot -> panel.setOnClick(slot, getNewRewardSectionAction(dropTable, giveTableElement, s))); + fillPanel(panel, dropTable, giveTableElement, s); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/commands/GiveCommandNewRewardPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/commands/GiveCommandNewRewardPanel.java index cdbb8f9..04a8823 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/commands/GiveCommandNewRewardPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/commands/GiveCommandNewRewardPanel.java @@ -10,6 +10,7 @@ import com.songoda.epicbosses.managers.files.CommandsFileManager; import com.songoda.epicbosses.managers.files.DropTableFileManager; import com.songoda.epicbosses.panel.droptables.types.give.handlers.GiveRewardEditHandler; import com.songoda.epicbosses.utils.Message; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.StringUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackConverter; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; @@ -67,11 +68,13 @@ public class GiveCommandNewRewardPanel extends SubVariablePanelHandler { + Panel panel = getPanelBuilder().getPanel() + .setParentPanelHandler(this.bossPanelManager.getGiveCommandRewardListPanel(), dropTable, giveRewardEditHandler); - fillPanel(panel, dropTable, giveRewardEditHandler); - panel.openFor(player); + fillPanel(panel, dropTable, giveRewardEditHandler); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/commands/GiveCommandRewardListPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/commands/GiveCommandRewardListPanel.java index f4d6c3a..41c3d30 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/commands/GiveCommandRewardListPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/commands/GiveCommandRewardListPanel.java @@ -7,6 +7,7 @@ import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.ItemsFileManager; import com.songoda.epicbosses.panel.droptables.types.give.handlers.GiveRewardEditHandler; import com.songoda.epicbosses.utils.NumberUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; import com.songoda.epicbosses.utils.itemstack.holder.ItemStackHolder; import com.songoda.epicbosses.utils.panel.Panel; @@ -57,20 +58,22 @@ public class GiveCommandRewardListPanel extends SubVariablePanelHandler replaceMap = new HashMap<>(); + ServerUtils.get().runTaskAsync(() -> { + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + Map replaceMap = new HashMap<>(); - replaceMap.put("{name}", BossAPI.getDropTableName(dropTable)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getDropTableName(dropTable)); + panelBuilder.addReplaceData(replaceMap); - PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter(); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(this.bossPanelManager.getGiveRewardMainEditMenu(), dropTable, giveRewardEditHandler); + PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(this.bossPanelManager.getGiveRewardMainEditMenu(), dropTable, giveRewardEditHandler); - panelBuilderCounter.getSlotsWith("NewReward").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getGiveCommandNewRewardPanel().openFor((Player) event.getWhoClicked(), dropTable, giveRewardEditHandler))); - fillPanel(panel, dropTable, giveRewardEditHandler); + panelBuilderCounter.getSlotsWith("NewReward").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getGiveCommandNewRewardPanel().openFor((Player) event.getWhoClicked(), dropTable, giveRewardEditHandler))); + fillPanel(panel, dropTable, giveRewardEditHandler); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/commands/GiveCommandRewardMainEditPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/commands/GiveCommandRewardMainEditPanel.java index 4cf9b99..bebda0a 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/commands/GiveCommandRewardMainEditPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/give/commands/GiveCommandRewardMainEditPanel.java @@ -11,6 +11,7 @@ import com.songoda.epicbosses.panel.droptables.types.give.handlers.GiveRewardEdi import com.songoda.epicbosses.utils.Message; import com.songoda.epicbosses.utils.NumberUtils; import com.songoda.epicbosses.utils.ObjectUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; import com.songoda.epicbosses.utils.panel.base.handlers.SubSubVariablePanelHandler; @@ -39,23 +40,25 @@ public class GiveCommandRewardMainEditPanel extends SubSubVariablePanelHandler rewardMap = giveRewardEditHandler.getGiveTableSubElement().getCommands(); - Map replaceMap = new HashMap<>(); - double chance = ObjectUtils.getValue(rewardMap.get(s), 50.0); + ServerUtils.get().runTaskAsync(() -> { + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + Map rewardMap = giveRewardEditHandler.getGiveTableSubElement().getCommands(); + Map replaceMap = new HashMap<>(); + double chance = ObjectUtils.getValue(rewardMap.get(s), 50.0); - replaceMap.put("{chance}", NumberUtils.get().formatDouble(chance)); - replaceMap.put("{itemStack}", s); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{chance}", NumberUtils.get().formatDouble(chance)); + replaceMap.put("{itemStack}", s); + panelBuilder.addReplaceData(replaceMap); - PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter(); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(this.bossPanelManager.getGiveCommandRewardListPanel(), dropTable, giveRewardEditHandler); + PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(this.bossPanelManager.getGiveCommandRewardListPanel(), dropTable, giveRewardEditHandler); - panelBuilderCounter.getSlotsWith("Chance").forEach(slot -> panel.setOnClick(slot, getChanceAction(dropTable, giveRewardEditHandler, s))); - panelBuilderCounter.getSlotsWith("Remove").forEach(slot -> panel.setOnClick(slot, getRemoveAction(dropTable, giveRewardEditHandler, s))); + panelBuilderCounter.getSlotsWith("Chance").forEach(slot -> panel.setOnClick(slot, getChanceAction(dropTable, giveRewardEditHandler, s))); + panelBuilderCounter.getSlotsWith("Remove").forEach(slot -> panel.setOnClick(slot, getRemoveAction(dropTable, giveRewardEditHandler, s))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/spray/SprayDropTableMainEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/spray/SprayDropTableMainEditorPanel.java index 0ba6e57..1ad1832 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/spray/SprayDropTableMainEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/droptables/types/spray/SprayDropTableMainEditorPanel.java @@ -8,6 +8,7 @@ import com.songoda.epicbosses.droptable.elements.SprayTableElement; import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.utils.Message; import com.songoda.epicbosses.utils.NumberUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.StringUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; @@ -42,32 +43,34 @@ public class SprayDropTableMainEditorPanel extends SubVariablePanelHandler replaceMap = new HashMap<>(); - Boolean randomSprayDrops = sprayTableElement.getRandomSprayDrops(); - Integer maxDrops = sprayTableElement.getSprayMaxDrops(); - Integer maxDistance = sprayTableElement.getSprayMaxDistance(); + ServerUtils.get().runTaskAsync(() -> { + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + Map replaceMap = new HashMap<>(); + Boolean randomSprayDrops = sprayTableElement.getRandomSprayDrops(); + Integer maxDrops = sprayTableElement.getSprayMaxDrops(); + Integer maxDistance = sprayTableElement.getSprayMaxDistance(); - if(randomSprayDrops == null) randomSprayDrops = false; - if(maxDrops == null) maxDrops = -1; - if(maxDistance == null) maxDistance = 100; + if(randomSprayDrops == null) randomSprayDrops = false; + if(maxDrops == null) maxDrops = -1; + if(maxDistance == null) maxDistance = 100; - replaceMap.put("{name}", BossAPI.getDropTableName(dropTable)); - replaceMap.put("{randomDrops}", StringUtils.get().formatString(""+randomSprayDrops)); - replaceMap.put("{maxDrops}", NumberUtils.get().formatDouble(maxDrops)); - replaceMap.put("{maxDistance}", NumberUtils.get().formatDouble(maxDistance)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getDropTableName(dropTable)); + replaceMap.put("{randomDrops}", StringUtils.get().formatString(""+randomSprayDrops)); + replaceMap.put("{maxDrops}", NumberUtils.get().formatDouble(maxDrops)); + replaceMap.put("{maxDistance}", NumberUtils.get().formatDouble(maxDistance)); + panelBuilder.addReplaceData(replaceMap); - PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter(); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(this.bossPanelManager.getMainDropTableEditMenu(), dropTable); + PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(this.bossPanelManager.getMainDropTableEditMenu(), dropTable); - panelBuilderCounter.getSlotsWith("Rewards").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getSprayDropRewardListPanel().openFor((Player) event.getWhoClicked(), dropTable, sprayTableElement))); - panelBuilderCounter.getSlotsWith("RandomDrops").forEach(slot -> panel.setOnClick(slot, getRandomDropsAction(dropTable, sprayTableElement))); - panelBuilderCounter.getSlotsWith("MaxDistance").forEach(slot -> panel.setOnClick(slot, getMaxDistanceAction(dropTable, sprayTableElement))); - panelBuilderCounter.getSlotsWith("MaxDrops").forEach(slot -> panel.setOnClick(slot, getMaxDropsAction(dropTable, sprayTableElement))); + panelBuilderCounter.getSlotsWith("Rewards").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getSprayDropRewardListPanel().openFor((Player) event.getWhoClicked(), dropTable, sprayTableElement))); + panelBuilderCounter.getSlotsWith("RandomDrops").forEach(slot -> panel.setOnClick(slot, getRandomDropsAction(dropTable, sprayTableElement))); + panelBuilderCounter.getSlotsWith("MaxDistance").forEach(slot -> panel.setOnClick(slot, getMaxDistanceAction(dropTable, sprayTableElement))); + panelBuilderCounter.getSlotsWith("MaxDrops").forEach(slot -> panel.setOnClick(slot, getMaxDropsAction(dropTable, sprayTableElement))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/ItemStackSubListPanelHandler.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/ItemStackSubListPanelHandler.java index 1129ae0..bff5aff 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/ItemStackSubListPanelHandler.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/ItemStackSubListPanelHandler.java @@ -7,6 +7,7 @@ import com.songoda.epicbosses.entity.elements.EntityStatsElement; import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.BossesFileManager; import com.songoda.epicbosses.managers.files.ItemsFileManager; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackConverter; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; import com.songoda.epicbosses.utils.itemstack.holder.ItemStackHolder; @@ -71,32 +72,34 @@ public abstract class ItemStackSubListPanelHandler extends SubVariablePanelHandl @Override public void openFor(Player player, BossEntity bossEntity, EntityStatsElement entityStatsElement) { - Map replaceMap = new HashMap<>(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); - replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); + replaceMap.put("{name}", BossAPI.getBossEntityName(bossEntity)); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - panelBuilder.addReplaceData(replaceMap); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelLowerClick(true) - .setCancelClick(true) - .setParentPanelHandler(getParentHolder(), bossEntity, entityStatsElement); - PanelBuilderCounter panelBuilderCounter = panel.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelLowerClick(true) + .setCancelClick(true) + .setParentPanelHandler(getParentHolder(), bossEntity, entityStatsElement); + PanelBuilderCounter panelBuilderCounter = panel.getPanelBuilderCounter(); - panelBuilderCounter.getSlotsWith("AddNew").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getAddItemsMenu().openFor(player))); - panelBuilderCounter.getSlotsWith("Remove").forEach(slot -> panel.setOnClick(slot, event -> { - getUpdateAction(entityStatsElement, ""); - this.bossesFileManager.save(); + panelBuilderCounter.getSlotsWith("AddNew").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getAddItemsMenu().openFor(player))); + panelBuilderCounter.getSlotsWith("Remove").forEach(slot -> panel.setOnClick(slot, event -> { + getUpdateAction(entityStatsElement, ""); + this.bossesFileManager.save(); - openFor((Player) event.getWhoClicked(), bossEntity, entityStatsElement); - })); + openFor((Player) event.getWhoClicked(), bossEntity, entityStatsElement); + })); - fillPanel(panel, bossEntity, entityStatsElement); + fillPanel(panel, bossEntity, entityStatsElement); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/ListCommandListEditor.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/ListCommandListEditor.java index 86367b1..f1ab6b0 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/ListCommandListEditor.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/ListCommandListEditor.java @@ -5,6 +5,7 @@ import com.songoda.epicbosses.api.BossAPI; import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.CommandsFileManager; import com.songoda.epicbosses.managers.files.MessagesFileManager; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.StringUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackConverter; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; @@ -68,21 +69,23 @@ public abstract class ListCommandListEditor extends VariablePanelHandler { @Override public void openFor(Player player, T object) { - Map replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - replaceMap.put("{name}", getName(object)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", getName(object)); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true) - .setParentPanelHandler(getParentHolder(), object); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true) + .setParentPanelHandler(getParentHolder(), object); - fillPanel(panel, object); + fillPanel(panel, object); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/ListMessageListEditor.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/ListMessageListEditor.java index 094a659..1b7b5f3 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/ListMessageListEditor.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/ListMessageListEditor.java @@ -5,6 +5,7 @@ import com.songoda.epicbosses.api.BossAPI; import com.songoda.epicbosses.entity.BossEntity; import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.MessagesFileManager; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.StringUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackConverter; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; @@ -68,21 +69,23 @@ public abstract class ListMessageListEditor extends VariablePanelHandler { @Override public void openFor(Player player, T object) { - Map replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - replaceMap.put("{name}", getName(object)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", getName(object)); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true) - .setParentPanelHandler(getParentHolder(), object); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true) + .setParentPanelHandler(getParentHolder(), object); - fillPanel(panel, object); + fillPanel(panel, object); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/MainListPanelHandler.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/MainListPanelHandler.java index 75b2b85..a1483a6 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/MainListPanelHandler.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/MainListPanelHandler.java @@ -1,6 +1,7 @@ package com.songoda.epicbosses.panel.handlers; import com.songoda.epicbosses.managers.BossPanelManager; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.PanelHandler; import com.songoda.epicbosses.utils.panel.builder.PanelBuilder; @@ -24,14 +25,16 @@ public abstract class MainListPanelHandler extends PanelHandler { @Override public void openFor(Player player) { - Panel panel = getPanelBuilder().getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true) - .setParentPanel(this.bossPanelManager.getMainMenu().getPanel()); + ServerUtils.get().runTaskAsync(() -> { + Panel panel = getPanelBuilder().getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true) + .setParentPanel(this.bossPanelManager.getMainMenu().getPanel()); - fillPanel(panel); + fillPanel(panel); - panel.openFor(player); + panel.openFor(player); + }); } } diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/SingleMessageListEditor.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/SingleMessageListEditor.java index 70b3c31..f726e8d 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/SingleMessageListEditor.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/handlers/SingleMessageListEditor.java @@ -4,6 +4,7 @@ import com.songoda.epicbosses.CustomBosses; import com.songoda.epicbosses.api.BossAPI; import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.MessagesFileManager; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.StringUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackConverter; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; @@ -67,21 +68,23 @@ public abstract class SingleMessageListEditor extends VariablePanelHandler @Override public void openFor(Player player, T object) { - Map replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - replaceMap.put("{name}", getName(object)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", getName(object)); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true) - .setParentPanelHandler(getParentHolder(), object); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true) + .setParentPanelHandler(getParentHolder(), object); - fillPanel(panel, object); + fillPanel(panel, object); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/MainSkillEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/MainSkillEditorPanel.java index 8521235..f636253 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/MainSkillEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/MainSkillEditorPanel.java @@ -9,6 +9,7 @@ import com.songoda.epicbosses.skills.Skill; import com.songoda.epicbosses.skills.SkillMode; import com.songoda.epicbosses.utils.Message; import com.songoda.epicbosses.utils.NumberUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; import com.songoda.epicbosses.utils.panel.base.handlers.VariablePanelHandler; @@ -41,42 +42,44 @@ public class MainSkillEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, Skill skill) { - Map replaceMap = new HashMap<>(); - String customMessage = skill.getCustomMessage(); - Double radius = skill.getRadius(); - String mode = skill.getMode(); - String displayName = skill.getDisplayName(); - String type = skill.getType(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + String customMessage = skill.getCustomMessage(); + Double radius = skill.getRadius(); + String mode = skill.getMode(); + String displayName = skill.getDisplayName(); + String type = skill.getType(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - if(customMessage == null || customMessage.equals("")) customMessage = "N/A"; - if(radius == null) radius = 100.0; - if(mode == null || mode.equals("")) mode = "N/A"; - if(displayName == null || displayName.equals("")) displayName = "N/A"; - if(type == null || type.equals("")) type = "N/A"; + if(customMessage == null || customMessage.equals("")) customMessage = "N/A"; + if(radius == null) radius = 100.0; + if(mode == null || mode.equals("")) mode = "N/A"; + if(displayName == null || displayName.equals("")) displayName = "N/A"; + if(type == null || type.equals("")) type = "N/A"; - replaceMap.put("{name}", BossAPI.getSkillName(skill)); - replaceMap.put("{customMessage}", customMessage); - replaceMap.put("{radius}", NumberUtils.get().formatDouble(radius)); - replaceMap.put("{mode}", mode); - replaceMap.put("{displayName}", displayName); - replaceMap.put("{type}", type); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getSkillName(skill)); + replaceMap.put("{customMessage}", customMessage); + replaceMap.put("{radius}", NumberUtils.get().formatDouble(radius)); + replaceMap.put("{mode}", mode); + replaceMap.put("{displayName}", displayName); + replaceMap.put("{type}", type); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true); - PanelBuilderCounter counter = panel.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true); + PanelBuilderCounter counter = panel.getPanelBuilderCounter(); - counter.getSlotsWith("Radius").forEach(slot -> panel.setOnClick(slot, getRadiusAction(skill))); - counter.getSlotsWith("CustomData").forEach(slot -> panel.setOnClick(slot, getCustomDataAction(skill))); - counter.getSlotsWith("Mode").forEach(slot -> panel.setOnClick(slot, getModeAction(skill))); - counter.getSlotsWith("DisplayName").forEach(slot -> panel.setOnClick(slot, getDisplayNameAction(skill))); - counter.getSlotsWith("CustomMessage").forEach(slot -> panel.setOnClick(slot, getCustomMessageAction(skill))); - counter.getSlotsWith("Type").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getSkillTypeEditMenu().openFor((Player) event.getWhoClicked(), skill))); + counter.getSlotsWith("Radius").forEach(slot -> panel.setOnClick(slot, getRadiusAction(skill))); + counter.getSlotsWith("CustomData").forEach(slot -> panel.setOnClick(slot, getCustomDataAction(skill))); + counter.getSlotsWith("Mode").forEach(slot -> panel.setOnClick(slot, getModeAction(skill))); + counter.getSlotsWith("DisplayName").forEach(slot -> panel.setOnClick(slot, getDisplayNameAction(skill))); + counter.getSlotsWith("CustomMessage").forEach(slot -> panel.setOnClick(slot, getCustomMessageAction(skill))); + counter.getSlotsWith("Type").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getSkillTypeEditMenu().openFor((Player) event.getWhoClicked(), skill))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/SkillTypeEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/SkillTypeEditorPanel.java index 5d86a23..d5cff7a 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/SkillTypeEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/SkillTypeEditorPanel.java @@ -5,6 +5,7 @@ import com.songoda.epicbosses.api.BossAPI; import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.managers.files.SkillsFileManager; import com.songoda.epicbosses.skills.Skill; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; import com.songoda.epicbosses.utils.panel.base.handlers.VariablePanelHandler; @@ -38,25 +39,27 @@ public class SkillTypeEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, Skill skill) { - Map replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - replaceMap.put("{name}", BossAPI.getSkillName(skill)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getSkillName(skill)); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true) - .setParentPanelHandler(this.bossPanelManager.getMainSkillEditMenu(), skill); - PanelBuilderCounter counter = panel.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true) + .setParentPanelHandler(this.bossPanelManager.getMainSkillEditMenu(), skill); + PanelBuilderCounter counter = panel.getPanelBuilderCounter(); - counter.getSlotsWith("Command").forEach(slot -> panel.setOnClick(slot, getCommandAction(skill))); - counter.getSlotsWith("Custom").forEach(slot -> panel.setOnClick(slot, getCustomAction(skill))); - counter.getSlotsWith("Potion").forEach(slot -> panel.setOnClick(slot, getPotionAction(skill))); - counter.getSlotsWith("Group").forEach(slot -> panel.setOnClick(slot, getGroupAction(skill))); + counter.getSlotsWith("Command").forEach(slot -> panel.setOnClick(slot, getCommandAction(skill))); + counter.getSlotsWith("Custom").forEach(slot -> panel.setOnClick(slot, getCustomAction(skill))); + counter.getSlotsWith("Potion").forEach(slot -> panel.setOnClick(slot, getPotionAction(skill))); + counter.getSlotsWith("Group").forEach(slot -> panel.setOnClick(slot, getGroupAction(skill))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/CommandSkillEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/CommandSkillEditorPanel.java index bf53769..3893055 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/CommandSkillEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/CommandSkillEditorPanel.java @@ -8,6 +8,7 @@ import com.songoda.epicbosses.skills.Skill; import com.songoda.epicbosses.skills.elements.SubCommandSkillElement; import com.songoda.epicbosses.skills.types.CommandSkillElement; import com.songoda.epicbosses.utils.NumberUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.StringUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; import com.songoda.epicbosses.utils.panel.Panel; @@ -54,20 +55,22 @@ public class CommandSkillEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, Skill skill) { - Map replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - replaceMap.put("{name}", BossAPI.getSkillName(skill)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getSkillName(skill)); + panelBuilder.addReplaceData(replaceMap); - PanelBuilderCounter counter = panelBuilder.getPanelBuilderCounter(); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(this.bossPanelManager.getMainSkillEditMenu(), skill); + PanelBuilderCounter counter = panelBuilder.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(this.bossPanelManager.getMainSkillEditMenu(), skill); - counter.getSlotsWith("AddNew").forEach(slot -> panel.setOnClick(slot, getAddNewAction(skill))); - fillPanel(panel, skill); + counter.getSlotsWith("AddNew").forEach(slot -> panel.setOnClick(slot, getAddNewAction(skill))); + fillPanel(panel, skill); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/CustomSkillEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/CustomSkillEditorPanel.java index 3ba0d67..5e5d44a 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/CustomSkillEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/CustomSkillEditorPanel.java @@ -10,6 +10,7 @@ import com.songoda.epicbosses.skills.Skill; import com.songoda.epicbosses.skills.types.CustomSkillElement; import com.songoda.epicbosses.utils.Message; import com.songoda.epicbosses.utils.NumberUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; import com.songoda.epicbosses.utils.panel.base.handlers.VariablePanelHandler; @@ -42,26 +43,28 @@ public class CustomSkillEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, Skill skill) { - Map replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - CustomSkillElement customSkillElement = this.bossSkillManager.getCustomSkillElement(skill); - Double multiplier = customSkillElement.getCustom().getMultiplier(); - String multiplierValue = multiplier == null? "N/A" : NumberUtils.get().formatDouble(multiplier); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + CustomSkillElement customSkillElement = this.bossSkillManager.getCustomSkillElement(skill); + Double multiplier = customSkillElement.getCustom().getMultiplier(); + String multiplierValue = multiplier == null? "N/A" : NumberUtils.get().formatDouble(multiplier); - replaceMap.put("{name}", BossAPI.getSkillName(skill)); - replaceMap.put("{type}", customSkillElement.getCustom().getType()); - replaceMap.put("{multiplier}", multiplierValue); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getSkillName(skill)); + replaceMap.put("{type}", customSkillElement.getCustom().getType()); + replaceMap.put("{multiplier}", multiplierValue); + panelBuilder.addReplaceData(replaceMap); - PanelBuilderCounter counter = panelBuilder.getPanelBuilderCounter(); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(this.bossPanelManager.getMainSkillEditMenu(), skill); + PanelBuilderCounter counter = panelBuilder.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(this.bossPanelManager.getMainSkillEditMenu(), skill); - counter.getSlotsWith("Type").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getCustomSkillTypeEditorMenu().openFor((Player) event.getWhoClicked(), skill, customSkillElement))); - counter.getSlotsWith("SpecialSettings").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getSpecialSettingsEditorMenu().openFor((Player) event.getWhoClicked(), skill, customSkillElement))); - counter.getSlotsWith("Multiplier").forEach(slot -> panel.setOnClick(slot, getMultiplierAction(skill, customSkillElement))); + counter.getSlotsWith("Type").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getCustomSkillTypeEditorMenu().openFor((Player) event.getWhoClicked(), skill, customSkillElement))); + counter.getSlotsWith("SpecialSettings").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getSpecialSettingsEditorMenu().openFor((Player) event.getWhoClicked(), skill, customSkillElement))); + counter.getSlotsWith("Multiplier").forEach(slot -> panel.setOnClick(slot, getMultiplierAction(skill, customSkillElement))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/GroupSkillEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/GroupSkillEditorPanel.java index 8f2e326..f32bab5 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/GroupSkillEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/GroupSkillEditorPanel.java @@ -8,6 +8,7 @@ import com.songoda.epicbosses.managers.files.ItemsFileManager; import com.songoda.epicbosses.skills.Skill; import com.songoda.epicbosses.skills.types.GroupSkillElement; import com.songoda.epicbosses.utils.NumberUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackConverter; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; import com.songoda.epicbosses.utils.panel.Panel; @@ -60,18 +61,20 @@ public class GroupSkillEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, Skill skill) { - Map replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - replaceMap.put("{name}", BossAPI.getSkillName(skill)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getSkillName(skill)); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(this.bossPanelManager.getMainSkillEditMenu(), skill); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(this.bossPanelManager.getMainSkillEditMenu(), skill); - fillPanel(panel, skill); + fillPanel(panel, skill); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/PotionSkillEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/PotionSkillEditorPanel.java index aea731f..7571650 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/PotionSkillEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/PotionSkillEditorPanel.java @@ -9,6 +9,7 @@ import com.songoda.epicbosses.managers.files.SkillsFileManager; import com.songoda.epicbosses.skills.Skill; import com.songoda.epicbosses.skills.types.PotionSkillElement; import com.songoda.epicbosses.utils.NumberUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.StringUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; import com.songoda.epicbosses.utils.panel.Panel; @@ -70,24 +71,26 @@ public class PotionSkillEditorPanel extends VariablePanelHandler { @Override public void openFor(Player player, Skill skill) { - Map replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - replaceMap.put("{name}", BossAPI.getSkillName(skill)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getSkillName(skill)); + panelBuilder.addReplaceData(replaceMap); - PanelBuilderCounter counter = panelBuilder.getPanelBuilderCounter(); - Panel panel = panelBuilder.getPanel() - .setDestroyWhenDone(true) - .setCancelClick(true) - .setCancelLowerClick(true) - .setParentPanelHandler(this.bossPanelManager.getMainSkillEditMenu(), skill); + PanelBuilderCounter counter = panelBuilder.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setDestroyWhenDone(true) + .setCancelClick(true) + .setCancelLowerClick(true) + .setParentPanelHandler(this.bossPanelManager.getMainSkillEditMenu(), skill); - counter.getSlotsWith("PotionEffect").forEach(slot -> panel.setOnClick(slot, - event -> this.bossPanelManager.getCreatePotionEffectMenu().openFor((Player) event.getWhoClicked(), skill, new PotionEffectHolder("", 1, 1)))); - fillPanel(panel, skill); + counter.getSlotsWith("PotionEffect").forEach(slot -> panel.setOnClick(slot, + event -> this.bossPanelManager.getCreatePotionEffectMenu().openFor((Player) event.getWhoClicked(), skill, new PotionEffectHolder("", 1, 1)))); + fillPanel(panel, skill); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/commands/CommandListSkillEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/commands/CommandListSkillEditorPanel.java index 4cd80d2..bdc7d4b 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/commands/CommandListSkillEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/commands/CommandListSkillEditorPanel.java @@ -67,18 +67,20 @@ public class CommandListSkillEditorPanel extends SubVariablePanelHandler replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - replaceMap.put("{name}", BossAPI.getSkillName(skill)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getSkillName(skill)); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(this.bossPanelManager.getCommandSkillEditorPanel(), skill); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(this.bossPanelManager.getCommandSkillEditorPanel(), skill); - fillPanel(panel, skill, subCommandSkillElement); + fillPanel(panel, skill, subCommandSkillElement); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/commands/ModifyCommandEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/commands/ModifyCommandEditorPanel.java index e932d7a..628b68f 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/commands/ModifyCommandEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/commands/ModifyCommandEditorPanel.java @@ -11,6 +11,7 @@ import com.songoda.epicbosses.skills.elements.SubCommandSkillElement; import com.songoda.epicbosses.skills.types.CommandSkillElement; import com.songoda.epicbosses.utils.Message; import com.songoda.epicbosses.utils.NumberUtils; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.StringUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; @@ -49,26 +50,28 @@ public class ModifyCommandEditorPanel extends SubVariablePanelHandler replaceMap = new HashMap<>(); - List commands = subCommandSkillElement.getCommands(); - Double chance = subCommandSkillElement.getChance(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + List commands = subCommandSkillElement.getCommands(); + Double chance = subCommandSkillElement.getChance(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - if(commands == null) commands = new ArrayList<>(); - if(chance == null) chance = 100.0; + if(commands == null) commands = new ArrayList<>(); + if(chance == null) chance = 100.0; - replaceMap.put("{commands}", StringUtils.get().appendList(commands)); - replaceMap.put("{chance}", NumberUtils.get().formatDouble(chance)); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{commands}", StringUtils.get().appendList(commands)); + replaceMap.put("{chance}", NumberUtils.get().formatDouble(chance)); + panelBuilder.addReplaceData(replaceMap); - PanelBuilderCounter counter = panelBuilder.getPanelBuilderCounter(); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(this.bossPanelManager.getCommandSkillEditorPanel(), skill); + PanelBuilderCounter counter = panelBuilder.getPanelBuilderCounter(); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(this.bossPanelManager.getCommandSkillEditorPanel(), skill); - counter.getSlotsWith("Chance").forEach(slot -> panel.setOnClick(slot, getChanceAction(skill, subCommandSkillElement))); - counter.getSlotsWith("Commands").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getCommandListSkillEditMenu().openFor((Player) event.getWhoClicked(), skill, subCommandSkillElement))); + counter.getSlotsWith("Chance").forEach(slot -> panel.setOnClick(slot, getChanceAction(skill, subCommandSkillElement))); + counter.getSlotsWith("Commands").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getCommandListSkillEditMenu().openFor((Player) event.getWhoClicked(), skill, subCommandSkillElement))); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/custom/CustomSkillTypeEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/custom/CustomSkillTypeEditorPanel.java index e0c062d..77f941d 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/custom/CustomSkillTypeEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/custom/CustomSkillTypeEditorPanel.java @@ -9,6 +9,7 @@ import com.songoda.epicbosses.skills.CustomSkillHandler; import com.songoda.epicbosses.skills.Skill; import com.songoda.epicbosses.skills.interfaces.IOtherSkillDataElement; import com.songoda.epicbosses.skills.types.CustomSkillElement; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackConverter; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; import com.songoda.epicbosses.utils.panel.Panel; @@ -43,19 +44,21 @@ public class CustomSkillTypeEditorPanel extends SubVariablePanelHandler replaceMap = new HashMap<>(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - replaceMap.put("{name}", BossAPI.getSkillName(skill)); - replaceMap.put("{selected}", customSkillElement.getCustom().getType()); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getSkillName(skill)); + replaceMap.put("{selected}", customSkillElement.getCustom().getType()); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(this.bossPanelManager.getCustomSkillEditorPanel(), skill); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(this.bossPanelManager.getCustomSkillEditorPanel(), skill); - fillPanel(panel, skill, customSkillElement); + fillPanel(panel, skill, customSkillElement); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/custom/MaterialTypeEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/custom/MaterialTypeEditorPanel.java index c5fe5a5..8c23e89 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/custom/MaterialTypeEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/custom/MaterialTypeEditorPanel.java @@ -4,6 +4,7 @@ import com.songoda.epicbosses.CustomBosses; import com.songoda.epicbosses.managers.BossPanelManager; import com.songoda.epicbosses.skills.Skill; import com.songoda.epicbosses.skills.types.CustomSkillElement; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.StringUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; import com.songoda.epicbosses.utils.panel.Panel; @@ -56,11 +57,13 @@ public abstract class MaterialTypeEditorPanel extends SubVariablePanelHandler { + Panel panel = getPanelBuilder().getPanel() + .setParentPanelHandler(getParentHolder(), skill, customSkillElement); - fillPanel(panel, skill, customSkillElement); - panel.openFor(player); + fillPanel(panel, skill, customSkillElement); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/custom/MinionSelectEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/custom/MinionSelectEditorPanel.java index 20c2227..942502e 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/custom/MinionSelectEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/custom/MinionSelectEditorPanel.java @@ -10,6 +10,7 @@ import com.songoda.epicbosses.managers.files.MinionsFileManager; import com.songoda.epicbosses.skills.Skill; import com.songoda.epicbosses.skills.elements.CustomMinionSkillElement; import com.songoda.epicbosses.skills.types.CustomSkillElement; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.StringUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackConverter; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; @@ -65,11 +66,13 @@ public class MinionSelectEditorPanel extends SubVariablePanelHandler { + Panel panel = getPanelBuilder().getPanel() + .setParentPanelHandler(this.bossPanelManager.getSpecialSettingsEditorMenu(), skill, customSkillElement); - fillPanel(panel, skill, customSkillElement); - panel.openFor(player); + fillPanel(panel, skill, customSkillElement); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/custom/SpecialSettingsEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/custom/SpecialSettingsEditorPanel.java index 652b119..099c1cb 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/custom/SpecialSettingsEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/custom/SpecialSettingsEditorPanel.java @@ -9,6 +9,7 @@ import com.songoda.epicbosses.skills.interfaces.ICustomSettingAction; import com.songoda.epicbosses.skills.Skill; import com.songoda.epicbosses.skills.types.CustomSkillElement; import com.songoda.epicbosses.utils.Debug; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; @@ -41,19 +42,21 @@ public class SpecialSettingsEditorPanel extends SubVariablePanelHandler replaceMap = new HashMap<>(); + ServerUtils.get().runTaskAsync(() -> { + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + Map replaceMap = new HashMap<>(); - replaceMap.put("{name}", BossAPI.getSkillName(skill)); - replaceMap.put("{selected}", customSkillElement.getCustom().getType()); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{name}", BossAPI.getSkillName(skill)); + replaceMap.put("{selected}", customSkillElement.getCustom().getType()); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setParentPanelHandler(this.bossPanelManager.getCustomSkillEditorPanel(), skill); + Panel panel = panelBuilder.getPanel() + .setParentPanelHandler(this.bossPanelManager.getCustomSkillEditorPanel(), skill); - fillPanel(panel, skill, customSkillElement); + fillPanel(panel, skill, customSkillElement); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/potions/CreatePotionEffectEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/potions/CreatePotionEffectEditorPanel.java index 91c2df4..cc5abbb 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/potions/CreatePotionEffectEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/potions/CreatePotionEffectEditorPanel.java @@ -11,6 +11,7 @@ import com.songoda.epicbosses.skills.types.PotionSkillElement; import com.songoda.epicbosses.utils.Message; import com.songoda.epicbosses.utils.NumberUtils; import com.songoda.epicbosses.utils.PotionEffectFinder; +import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.base.ClickAction; import com.songoda.epicbosses.utils.panel.base.handlers.SubVariablePanelHandler; @@ -53,36 +54,36 @@ public class CreatePotionEffectEditorPanel extends SubVariablePanelHandler replaceMap = new HashMap<>(); - String effect = potionEffectHolder.getType(); - PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); + ServerUtils.get().runTaskAsync(() -> { + Map replaceMap = new HashMap<>(); + String effect = potionEffectHolder.getType(); + PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder(); - if(effect == null || effect.isEmpty()) effect = "N/A"; + if(effect == null || effect.isEmpty()) effect = "N/A"; - replaceMap.put("{duration}", NumberUtils.get().formatDouble(potionEffectHolder.getDuration())); - replaceMap.put("{level}", NumberUtils.get().formatDouble(potionEffectHolder.getLevel())); - replaceMap.put("{effect}", effect); - panelBuilder.addReplaceData(replaceMap); + replaceMap.put("{duration}", NumberUtils.get().formatDouble(potionEffectHolder.getDuration())); + replaceMap.put("{level}", NumberUtils.get().formatDouble(potionEffectHolder.getLevel())); + replaceMap.put("{effect}", effect); + panelBuilder.addReplaceData(replaceMap); - Panel panel = panelBuilder.getPanel() - .setCancelClick(true) - .setCancelLowerClick(true) - .setDestroyWhenDone(true) - .setParentPanelHandler(this.bossPanelManager.getPotionSkillEditorPanel(), skill); + Panel panel = panelBuilder.getPanel() + .setCancelClick(true) + .setCancelLowerClick(true) + .setDestroyWhenDone(true) + .setParentPanelHandler(this.bossPanelManager.getPotionSkillEditorPanel(), skill); - PanelBuilderCounter counter = panel.getPanelBuilderCounter(); + PanelBuilderCounter counter = panel.getPanelBuilderCounter(); - counter.getSlotsWith("Cancel").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getPotionSkillEditorPanel().openFor((Player) event.getWhoClicked(), skill))); - counter.getSlotsWith("Confirm").forEach(slot -> panel.setOnClick(slot, getConfirmAction(skill, potionEffectHolder))); - counter.getSlotsWith("Level").forEach(slot -> panel.setOnClick(slot, getLevelAction(skill, potionEffectHolder))); - counter.getSlotsWith("Duration").forEach(slot -> panel.setOnClick(slot, getDurationAction(skill, potionEffectHolder))); - counter.getSlotsWith("Effect").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getPotionEffectTypeEditMenu().openFor((Player) event.getWhoClicked(), skill, potionEffectHolder))); + counter.getSlotsWith("Cancel").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getPotionSkillEditorPanel().openFor((Player) event.getWhoClicked(), skill))); + counter.getSlotsWith("Confirm").forEach(slot -> panel.setOnClick(slot, getConfirmAction(skill, potionEffectHolder))); + counter.getSlotsWith("Level").forEach(slot -> panel.setOnClick(slot, getLevelAction(skill, potionEffectHolder))); + counter.getSlotsWith("Duration").forEach(slot -> panel.setOnClick(slot, getDurationAction(skill, potionEffectHolder))); + counter.getSlotsWith("Effect").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getPotionEffectTypeEditMenu().openFor((Player) event.getWhoClicked(), skill, potionEffectHolder))); - panel.openFor(player); + panel.openFor(player); + }); } - - private ClickAction getDurationAction(Skill skill, PotionEffectHolder potionEffectHolder) { return event -> { ClickType clickType = event.getClick(); diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/potions/PotionEffectTypeEditorPanel.java b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/potions/PotionEffectTypeEditorPanel.java index 319611f..27e12d6 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/potions/PotionEffectTypeEditorPanel.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/panel/skills/custom/potions/PotionEffectTypeEditorPanel.java @@ -59,12 +59,14 @@ public class PotionEffectTypeEditorPanel extends SubVariablePanelHandler { + Panel panel = getPanelBuilder().getPanel() + .setParentPanelHandler(this.bossPanelManager.getCreatePotionEffectMenu(), skill, potionEffectHolder); - fillPanel(panel, skill, potionEffectHolder); + fillPanel(panel, skill, potionEffectHolder); - panel.openFor(player); + panel.openFor(player); + }); } @Override diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/utils/Debug.java b/plugin-modules/Core/src/com/songoda/epicbosses/utils/Debug.java index 36fa839..f416e39 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/utils/Debug.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/utils/Debug.java @@ -17,6 +17,7 @@ public enum Debug { MECHANIC_APPLICATION_FAILED("Some mechanics have failed to be applied. It got stuck at {0} mechanic."), BOSS_NAME_EXISTS("A boss was attempted to be created with the name {0} but there is already a boss with that name."), DROPTABLE_NAME_EXISTS("A droptable was attempted to be created with the name {0} but there is already a drop table with that name."), + AUTOSPAWN_NAME_EXISTS("A autospawn was attempted to be created with the name {0} but there is already an auto spawn with that name."), SKILL_NAME_EXISTS("A skill was attempted to be created with the name {0} but there is already a skill with that name."), MINION_NAME_EXISTS("A minion was attempted to be created with the name {0} but there is already a minion with that name."), BOSS_CONTAINER_SAVE("The BossEntity map was saved in, {0} succeeded, and {1} failed. Listed below are the saved data which already existed in the container: \n{2}"), diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/utils/Message.java b/plugin-modules/Core/src/com/songoda/epicbosses/utils/Message.java index a889bcc..456f565 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/utils/Message.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/utils/Message.java @@ -115,7 +115,7 @@ public enum Message { "&7&o(To add a new line use &7||&7&o in-between the messages.)\n" + "&b/boss new message [name] [messages] &8» &7Used to create a new message section.\n" + "&7&o(To add a new line use &7||&7&o in-between the messages.)\n" + - "&7\n" + + "&7/boss new autospawn [name] &8» &7Used to create a new auto spawn section.\n" + "&7\n" + "&7\n" + "&7\n" + @@ -165,11 +165,13 @@ public enum Message { Boss_New_CreateArgumentsSkill("&b&lEpicBosses &8» &7Create a new skill with the command &f/boss new skill [name] [type] [mode]&7."), Boss_New_CreateArgumentsMessage("&b&lEpicBosses &8» &7Create a new message with the command &f/boss new message [name] [message(s)]. \n&7&oUse &f|| &7&oto reference a new line."), Boss_New_CreateArgumentsCommand("&b&lEpicBosses &8» &7Create a new command with the command &f/boss new command [name] [command(s)]. \n&7&oUse &f|| &7&oto reference a new line."), + Boss_New_CreateArgumentsAutoSpawn("&b&lEpicBosses &8» &7Create a new auto spawn with the command &f/boss new autospawn [name]."), Boss_New_AlreadyExists("&c&l(!) &cThe specified {0} name already exists. Please try another name."), Boss_New_InvalidDropTableType("&c&l(!) &cThe specified DropTable type is invalid. Please use &fGive, Drop, Spray&c."), Boss_New_InvalidSkillType("&c&l(!) &cThe specified Skill type is invalid. Please use &fCustom, Command, Group, Potion&c."), Boss_New_InvalidSkillMode("&c&l(!) &cThe specified Skill mode is invalid. Please use &fAll, Random, One, Boss&c."), Boss_New_DropTable("&b&lEpicBosses &8» &7You have created a new drop table with the name &f{0}&7 and type &f{1}&7."), + Boss_New_AutoSpawn("&b&lEpicBosses &8» &7You have created a new auto spawn with the name &f{0}&7."), Boss_New_Skill("&b&lEpicBosses &8» &7You have created a new skill with the name &f{0}&7 and type &f{1}&7."), Boss_New_Command("&b&lEpicBosses &8» &7You have created a new command with the name &f{0}&7."), Boss_New_Message("&b&lEpicBosses &8» &7You have created a new message with the name &f{0}&7."), diff --git a/pom.xml b/pom.xml index 68f27ec..a4b2b82 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ - 1.0.0-U193 + 1.0.0-U194 EpicBosses com.songoda.epicbosses.CustomBosses AMinecraftDev