1.0.0-SNAPSHOT-U180

+ Continued to work on CustomSettings Editor
+ Renamed ICustomSettingAction to have more abstract naming
+ Updated all skills to have accurate imports, and removed any unused
This commit is contained in:
Charles 2019-01-07 15:13:38 +08:00
parent 755b3616b1
commit e130170240
20 changed files with 153 additions and 58 deletions

View File

@ -2592,6 +2592,52 @@ MainAutoSpawnEditMenu:
- '&7there is none then the GUI up next will be empty.'
Button: CustomSettings
AutoSpawnEntitiesEditMenu:
name: '&b&l{name} AutoSpawn'
slots: 54
Settings:
backButton: true
fillTo: 45
Buttons:
backButton: 50
Items:
'46':
type: GLASS_PANE
name: '&7'
'47':
type: GLASS_PANE
name: '&7'
'48':
type: GLASS_PANE
name: '&7'
'49':
type: ARROW
name: '&e&l&m<-&e&l Previous Page'
lore:
- '&7Click here to go to the previous'
- '&7page.'
PreviousPage: true
'50':
type: REDSTONE
name: '&cClick here to go back'
lore:
- '&7Click this button to go back.'
'51':
type: ARROW
name: '&e&lNext Page &e&l&m->'
lore:
- '&7Click here to go to the next'
- '&7page.'
NextPage: true
'52':
type: GLASS_PANE
name: '&7'
'53':
type: GLASS_PANE
name: '&7'
'54':
type: GLASS_PANE
name: '&7'
AutoSpawnCustomSettingsEditMenu:
name: '&b&l{name} AutoSpawn'
slots: 54
Settings:

View File

@ -0,0 +1,16 @@
package com.songoda.epicbosses.autospawns;
import com.songoda.epicbosses.skills.interfaces.ICustomSettingAction;
import java.util.List;
/**
* @author Charles Cullen
* @version 1.0.0
* @since 07-Jan-19
*/
public interface IAutoSpawnCustomSettingsHandler {
List<ICustomSettingAction> getCustomSettingActions();
}

View File

@ -3,11 +3,13 @@ package com.songoda.epicbosses.autospawns.types;
import com.google.gson.annotations.Expose;
import com.songoda.epicbosses.api.BossAPI;
import com.songoda.epicbosses.autospawns.AutoSpawn;
import com.songoda.epicbosses.autospawns.IAutoSpawnCustomSettingsHandler;
import com.songoda.epicbosses.autospawns.settings.AutoSpawnSettings;
import com.songoda.epicbosses.entity.BossEntity;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.holder.autospawn.ActiveIntervalAutoSpawnHolder;
import com.songoda.epicbosses.listeners.IBossDeathHandler;
import com.songoda.epicbosses.skills.interfaces.ICustomSettingAction;
import com.songoda.epicbosses.utils.MessageUtils;
import com.songoda.epicbosses.utils.NumberUtils;
import com.songoda.epicbosses.utils.ObjectUtils;
@ -23,7 +25,7 @@ import java.util.*;
* @version 1.0.0
* @since 02-Jan-19
*/
public class IntervalSpawnElement {
public class IntervalSpawnElement implements IAutoSpawnCustomSettingsHandler {
@Expose @Getter @Setter private Boolean spawnAfterLastBossIsKilled;
@Expose @Getter @Setter private String location, placeholder;
@ -36,6 +38,11 @@ public class IntervalSpawnElement {
this.spawnAfterLastBossIsKilled = spawnAfterLastBossIsKilled;
}
@Override
public List<ICustomSettingAction> getCustomSettingActions() {
return null;
}
public boolean attemptSpawn(ActiveIntervalAutoSpawnHolder activeAutoSpawnHolder) {
IBossDeathHandler bossDeathHandler = activeAutoSpawnHolder.getPostDeathHandler();
AutoSpawn autoSpawn = activeAutoSpawnHolder.getAutoSpawn();
@ -86,5 +93,4 @@ public class IntervalSpawnElement {
public Location getSpawnLocation() {
return StringUtils.get().fromStringToLocation(this.location);
}
}

View File

@ -4,7 +4,7 @@ import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.events.BossSkillEvent;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.CustomSkillHandler;
import com.songoda.epicbosses.skills.interfaces.ICustomSkillAction;
import com.songoda.epicbosses.skills.interfaces.ICustomSettingAction;
import com.songoda.epicbosses.skills.interfaces.ISkillHandler;
import com.songoda.epicbosses.skills.Skill;
import com.songoda.epicbosses.skills.custom.*;
@ -198,11 +198,11 @@ public class BossSkillManager implements ILoadable {
return null;
}
public static ICustomSkillAction createCustomSkillAction(String name, String current, ItemStack displayStack, ClickAction clickAction) {
public static ICustomSettingAction createCustomSkillAction(String name, String current, ItemStack displayStack, ClickAction clickAction) {
return new CustomSkillActionCreator(name, current, displayStack, clickAction);
}
private static class CustomSkillActionCreator implements ICustomSkillAction {
private static class CustomSkillActionCreator implements ICustomSettingAction {
private final ClickAction clickAction;
private final String name, current;

View File

@ -1,9 +1,59 @@
package com.songoda.epicbosses.panel.autospawns;
import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.api.BossAPI;
import com.songoda.epicbosses.autospawns.AutoSpawn;
import com.songoda.epicbosses.managers.AutoSpawnManager;
import com.songoda.epicbosses.managers.BossPanelManager;
import com.songoda.epicbosses.utils.ObjectUtils;
import com.songoda.epicbosses.utils.panel.Panel;
import com.songoda.epicbosses.utils.panel.base.handlers.VariablePanelHandler;
import com.songoda.epicbosses.utils.panel.builder.PanelBuilder;
import org.bukkit.entity.Player;
import java.util.HashMap;
import java.util.Map;
/**
* @author Charles Cullen
* @version 1.0.0
* @since 07-Jan-19
*/
public class AutoSpawnCustomSettingsEditorPanel {
public class AutoSpawnCustomSettingsEditorPanel extends VariablePanelHandler<AutoSpawn> {
private AutoSpawnManager autoSpawnManager;
private CustomBosses plugin;
public AutoSpawnCustomSettingsEditorPanel(BossPanelManager bossPanelManager, PanelBuilder panelBuilder, CustomBosses plugin) {
super(bossPanelManager, panelBuilder);
this.plugin = plugin;
this.autoSpawnManager = plugin.getAutoSpawnManager();
}
@Override
public void fillPanel(Panel panel, AutoSpawn autoSpawn) {
String currentType = ObjectUtils.getValue(autoSpawn.getType(), "");
}
@Override
public void openFor(Player player, AutoSpawn autoSpawn) {
PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder();
Map<String, String> replaceMap = new HashMap<>();
replaceMap.put("{name}", BossAPI.getAutoSpawnName(autoSpawn));
panelBuilder.addReplaceData(replaceMap);
Panel panel = panelBuilder.getPanel()
.setParentPanelHandler(this.bossPanelManager.getMainAutoSpawnEditPanel(), autoSpawn);
fillPanel(panel, autoSpawn);
panel.openFor(player);
}
@Override
public void initializePanel(PanelBuilder panelBuilder) {
}
}

View File

@ -1,17 +1,12 @@
package com.songoda.epicbosses.panel.autospawns;
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.entity.BossEntity;
import com.songoda.epicbosses.entity.MinionEntity;
import com.songoda.epicbosses.managers.BossPanelManager;
import com.songoda.epicbosses.managers.files.AutoSpawnFileManager;
import com.songoda.epicbosses.managers.files.BossesFileManager;
import com.songoda.epicbosses.managers.files.ItemsFileManager;
import com.songoda.epicbosses.skills.Skill;
import com.songoda.epicbosses.skills.types.CustomSkillElement;
import com.songoda.epicbosses.utils.ObjectUtils;
import com.songoda.epicbosses.utils.itemstack.ItemStackUtils;
import com.songoda.epicbosses.utils.itemstack.holder.ItemStackHolder;

View File

@ -5,7 +5,7 @@ import com.songoda.epicbosses.api.BossAPI;
import com.songoda.epicbosses.managers.BossPanelManager;
import com.songoda.epicbosses.managers.BossSkillManager;
import com.songoda.epicbosses.skills.CustomSkillHandler;
import com.songoda.epicbosses.skills.interfaces.ICustomSkillAction;
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;
@ -66,7 +66,7 @@ public class SpecialSettingsEditorPanel extends SubVariablePanelHandler<Skill, C
return;
}
List<ICustomSkillAction> customButtons = customSkillHandler.getOtherSkillDataActions(skill, customSkillElement);
List<ICustomSettingAction> customButtons = customSkillHandler.getOtherSkillDataActions(skill, customSkillElement);
if(customButtons == null || customButtons.isEmpty()) return;
@ -88,12 +88,12 @@ public class SpecialSettingsEditorPanel extends SubVariablePanelHandler<Skill, C
}
private void loadPage(Panel panel, int page, List<ICustomSkillAction> clickActions) {
private void loadPage(Panel panel, int page, List<ICustomSettingAction> clickActions) {
panel.loadPage(page, ((slot, realisticSlot) -> {
if(slot >= clickActions.size()) {
panel.setItem(realisticSlot, new ItemStack(Material.AIR), e -> {});
} else {
ICustomSkillAction customSkillAction = clickActions.get(slot);
ICustomSettingAction customSkillAction = clickActions.get(slot);
ClickAction clickAction = customSkillAction.getAction();
String name = customSkillAction.getSettingName();
ItemStack displayStack = customSkillAction.getDisplayItemStack().clone();

View File

@ -7,7 +7,7 @@ import com.songoda.epicbosses.managers.BossPanelManager;
import com.songoda.epicbosses.managers.BossSkillManager;
import com.songoda.epicbosses.panel.skills.custom.custom.MaterialTypeEditorPanel;
import com.songoda.epicbosses.skills.CustomSkillHandler;
import com.songoda.epicbosses.skills.interfaces.ICustomSkillAction;
import com.songoda.epicbosses.skills.interfaces.ICustomSettingAction;
import com.songoda.epicbosses.skills.Skill;
import com.songoda.epicbosses.skills.custom.cage.CageLocationData;
import com.songoda.epicbosses.skills.custom.cage.CagePlayerData;
@ -66,8 +66,8 @@ public class Cage extends CustomSkillHandler {
}
@Override
public List<ICustomSkillAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
List<ICustomSkillAction> clickActions = new ArrayList<>();
public List<ICustomSettingAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
List<ICustomSettingAction> clickActions = new ArrayList<>();
ItemStack clickStack = new ItemStack(Material.STONE_PRESSURE_PLATE);
ClickAction flatAction = (event -> this.flatTypeEditor.openFor((Player) event.getWhoClicked(), skill, customSkillElement));
ClickAction wallAction = (event -> this.wallTypeEditor.openFor((Player) event.getWhoClicked(), skill, customSkillElement));

View File

@ -4,12 +4,11 @@ import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.CustomSkillHandler;
import com.songoda.epicbosses.skills.Skill;
import com.songoda.epicbosses.skills.interfaces.ICustomSkillAction;
import com.songoda.epicbosses.skills.interfaces.ICustomSettingAction;
import com.songoda.epicbosses.skills.interfaces.IOtherSkillDataElement;
import com.songoda.epicbosses.skills.types.CustomSkillElement;
import com.songoda.epicbosses.utils.Message;
import com.songoda.epicbosses.utils.RandomUtils;
import com.songoda.epicbosses.utils.panel.base.ClickAction;
import org.bukkit.Material;
import org.bukkit.entity.HumanEntity;
import org.bukkit.entity.LivingEntity;
@ -17,7 +16,6 @@ import org.bukkit.inventory.EntityEquipment;
import org.bukkit.inventory.ItemStack;
import java.util.List;
import java.util.Map;
/**
* @author Charles Cullen
@ -37,7 +35,7 @@ public class Disarm extends CustomSkillHandler {
}
@Override
public List<ICustomSkillAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
public List<ICustomSettingAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
return null;
}

View File

@ -3,10 +3,9 @@ package com.songoda.epicbosses.skills.custom;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.CustomSkillHandler;
import com.songoda.epicbosses.skills.Skill;
import com.songoda.epicbosses.skills.interfaces.ICustomSkillAction;
import com.songoda.epicbosses.skills.interfaces.ICustomSettingAction;
import com.songoda.epicbosses.skills.interfaces.IOtherSkillDataElement;
import com.songoda.epicbosses.skills.types.CustomSkillElement;
import com.songoda.epicbosses.utils.panel.base.ClickAction;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;
@ -31,7 +30,7 @@ public class Fireball extends CustomSkillHandler {
}
@Override
public List<ICustomSkillAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
public List<ICustomSettingAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
return null;
}

View File

@ -3,16 +3,14 @@ package com.songoda.epicbosses.skills.custom;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.CustomSkillHandler;
import com.songoda.epicbosses.skills.Skill;
import com.songoda.epicbosses.skills.interfaces.ICustomSkillAction;
import com.songoda.epicbosses.skills.interfaces.ICustomSettingAction;
import com.songoda.epicbosses.skills.interfaces.IOtherSkillDataElement;
import com.songoda.epicbosses.skills.types.CustomSkillElement;
import com.songoda.epicbosses.utils.panel.base.ClickAction;
import org.bukkit.Location;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;
import java.util.List;
import java.util.Map;
/**
* @author Charles Cullen
@ -32,7 +30,7 @@ public class Grapple extends CustomSkillHandler {
}
@Override
public List<ICustomSkillAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
public List<ICustomSettingAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
return null;
}

View File

@ -3,14 +3,12 @@ package com.songoda.epicbosses.skills.custom;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.CustomSkillHandler;
import com.songoda.epicbosses.skills.Skill;
import com.songoda.epicbosses.skills.interfaces.ICustomSkillAction;
import com.songoda.epicbosses.skills.interfaces.ICustomSettingAction;
import com.songoda.epicbosses.skills.interfaces.IOtherSkillDataElement;
import com.songoda.epicbosses.skills.types.CustomSkillElement;
import com.songoda.epicbosses.utils.panel.base.ClickAction;
import org.bukkit.entity.LivingEntity;
import java.util.List;
import java.util.Map;
/**
* @author Charles Cullen
@ -30,7 +28,7 @@ public class Insidious extends CustomSkillHandler {
}
@Override
public List<ICustomSkillAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
public List<ICustomSettingAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
return null;
}

View File

@ -3,16 +3,14 @@ package com.songoda.epicbosses.skills.custom;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.CustomSkillHandler;
import com.songoda.epicbosses.skills.Skill;
import com.songoda.epicbosses.skills.interfaces.ICustomSkillAction;
import com.songoda.epicbosses.skills.interfaces.ICustomSettingAction;
import com.songoda.epicbosses.skills.interfaces.IOtherSkillDataElement;
import com.songoda.epicbosses.skills.types.CustomSkillElement;
import com.songoda.epicbosses.utils.panel.base.ClickAction;
import org.bukkit.Location;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;
import java.util.List;
import java.util.Map;
/**
* @author Charles Cullen
@ -32,7 +30,7 @@ public class Knockback extends CustomSkillHandler {
}
@Override
public List<ICustomSkillAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
public List<ICustomSettingAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
return null;
}

View File

@ -3,15 +3,13 @@ package com.songoda.epicbosses.skills.custom;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.CustomSkillHandler;
import com.songoda.epicbosses.skills.Skill;
import com.songoda.epicbosses.skills.interfaces.ICustomSkillAction;
import com.songoda.epicbosses.skills.interfaces.ICustomSettingAction;
import com.songoda.epicbosses.skills.interfaces.IOtherSkillDataElement;
import com.songoda.epicbosses.skills.types.CustomSkillElement;
import com.songoda.epicbosses.utils.panel.base.ClickAction;
import org.bukkit.Location;
import org.bukkit.entity.LivingEntity;
import java.util.List;
import java.util.Map;
/**
* @author Charles Cullen
@ -31,7 +29,7 @@ public class Launch extends CustomSkillHandler {
}
@Override
public List<ICustomSkillAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
public List<ICustomSettingAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
return null;
}

View File

@ -3,14 +3,12 @@ package com.songoda.epicbosses.skills.custom;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.CustomSkillHandler;
import com.songoda.epicbosses.skills.Skill;
import com.songoda.epicbosses.skills.interfaces.ICustomSkillAction;
import com.songoda.epicbosses.skills.interfaces.ICustomSettingAction;
import com.songoda.epicbosses.skills.interfaces.IOtherSkillDataElement;
import com.songoda.epicbosses.skills.types.CustomSkillElement;
import com.songoda.epicbosses.utils.panel.base.ClickAction;
import org.bukkit.entity.LivingEntity;
import java.util.List;
import java.util.Map;
/**
* @author Charles Cullen
@ -30,7 +28,7 @@ public class Lightning extends CustomSkillHandler {
}
@Override
public List<ICustomSkillAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
public List<ICustomSettingAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
return null;
}

View File

@ -1,6 +1,5 @@
package com.songoda.epicbosses.skills.custom;
import com.google.gson.JsonObject;
import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.api.BossAPI;
import com.songoda.epicbosses.holder.ActiveBossHolder;
@ -8,7 +7,7 @@ import com.songoda.epicbosses.managers.BossSkillManager;
import com.songoda.epicbosses.skills.CustomSkillHandler;
import com.songoda.epicbosses.skills.Skill;
import com.songoda.epicbosses.skills.elements.CustomMinionSkillElement;
import com.songoda.epicbosses.skills.interfaces.ICustomSkillAction;
import com.songoda.epicbosses.skills.interfaces.ICustomSettingAction;
import com.songoda.epicbosses.skills.interfaces.IOtherSkillDataElement;
import com.songoda.epicbosses.skills.types.CustomSkillElement;
import com.songoda.epicbosses.utils.Message;
@ -21,9 +20,7 @@ import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.ItemStack;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author Charles Cullen
@ -49,8 +46,8 @@ public class Minions extends CustomSkillHandler {
}
@Override
public List<ICustomSkillAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
List<ICustomSkillAction> clickActions = new ArrayList<>();
public List<ICustomSettingAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
List<ICustomSettingAction> clickActions = new ArrayList<>();
clickActions.add(BossSkillManager.createCustomSkillAction("Amount Editor", getAmountCurrent(customSkillElement), new ItemStack(Material.REDSTONE), getAmountAction(skill, customSkillElement)));
clickActions.add(BossSkillManager.createCustomSkillAction("Minion to Spawn Editor", getMinionToSpawnCurrent(customSkillElement), new ItemStack(Material.CREEPER_SPAWN_EGG), getMinionToSpawnAction(skill, customSkillElement)));

View File

@ -3,14 +3,12 @@ package com.songoda.epicbosses.skills.custom;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.CustomSkillHandler;
import com.songoda.epicbosses.skills.Skill;
import com.songoda.epicbosses.skills.interfaces.ICustomSkillAction;
import com.songoda.epicbosses.skills.interfaces.ICustomSettingAction;
import com.songoda.epicbosses.skills.interfaces.IOtherSkillDataElement;
import com.songoda.epicbosses.skills.types.CustomSkillElement;
import com.songoda.epicbosses.utils.panel.base.ClickAction;
import org.bukkit.entity.LivingEntity;
import java.util.List;
import java.util.Map;
/**
* @author Charles Cullen
@ -30,7 +28,7 @@ public class Warp extends CustomSkillHandler {
}
@Override
public List<ICustomSkillAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
public List<ICustomSettingAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement) {
return null;
}

View File

@ -8,7 +8,7 @@ import org.bukkit.inventory.ItemStack;
* @version 1.0.0
* @since 20-Dec-18
*/
public interface ICustomSkillAction {
public interface ICustomSettingAction {
ClickAction getAction();

View File

@ -17,7 +17,7 @@ public interface ICustomSkillHandler extends ISkillHandler<CustomSkillElement> {
IOtherSkillDataElement getOtherSkillData();
List<ICustomSkillAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement);
List<ICustomSettingAction> getOtherSkillDataActions(Skill skill, CustomSkillElement customSkillElement);
String getSkillName();

View File

@ -19,7 +19,7 @@
</modules>
<properties>
<plugin.version>1.0.0-U179</plugin.version>
<plugin.version>1.0.0-U180</plugin.version>
<plugin.name>EpicBosses</plugin.name>
<plugin.main>com.songoda.epicbosses.CustomBosses</plugin.main>
<plugin.author>AMinecraftDev</plugin.author>