1.0.0-SNAPSHOT-U139

+ Implemented DropTableTypeEditorPanel
+ Connected a few of the drop table panels
This commit is contained in:
Charles 2018-12-24 01:18:50 +08:00
parent 5aba97b5c0
commit 1d426ba587
6 changed files with 106 additions and 13 deletions

View File

@ -1882,7 +1882,7 @@ SpecialSettingsEditorPanel:
- '&7the skill editor panel to configure'
- '&7the general skill options.'
DropTableMainEditorPanel:
name: '&b&l{name} Editor'
name: '&b&l{name} Drop Table Editor'
slots: 9
Settings:
emptySpaceFiller: true
@ -1925,4 +1925,60 @@ DropTableMainEditorPanel:
name: '&cClick here to go back'
lore:
- '&7Click this button to go back to'
- '&7the drop table list page.'
- '&7the drop table list page.'
DropTableTypeEditorPanel:
name: '&b&l{name} Drop Table Editor'
slots: 9
Settings:
backButton: true
emptySpaceFiller: true
EmptySpaceFiller:
type: WHITE_STAINED_GLASS_PANE
name: '&7'
Buttons:
backButton: 5
Items:
'3':
type: SPLASH_POTION
name: '&e&lSpray Drop Table Type'
lore:
- '&7If you set this to the drop table type'
- '&7then you will be able to set rewards that'
- '&7will be sprayed out from the bosses'
- '&7location in to random locations around him.'
- '&7'
- '&c&lWARNING'
- '&7This will remove any previous'
- '&7custom reward data.'
Button: Spray
'5':
type: HOPPER
name: '&e&lDrop Drop Table Type'
lore:
- '&7If you set this to the drop table type'
- '&7then you will be able to set rewards that'
- '&7will be drop on the bosses death location'
- '&7for players to loot.'
- '&7'
- '&c&lWARNING'
- '&7This will remove any previous'
- '&7custom reward data.'
Button: Drop
'7':
type: EMERALD
name: '&e&lGive Drop Table Type'
lore:
- '&7If you set this to the drop table type'
- '&7then you will be able to set rewards that'
- '&7will be given to the specified damaging'
- '&7positions on the boss damage map.'
- '&7'
- '&c&lWARNING'
- '&7This will remove any previous'
- '&7custom reward data.'
Button: Give
'9':
type: PAPER
name: '&e&lGo Back'
lore:
- '&7Click here to go back.'

View File

@ -19,6 +19,7 @@ import com.songoda.epicbosses.panel.bosses.list.BossListWeaponEditorPanel;
import com.songoda.epicbosses.panel.bosses.text.*;
import com.songoda.epicbosses.panel.bosses.weapons.MainHandEditorPanel;
import com.songoda.epicbosses.panel.bosses.weapons.OffHandEditorPanel;
import com.songoda.epicbosses.panel.droptables.DropTableTypeEditorPanel;
import com.songoda.epicbosses.panel.droptables.MainDropTableEditorPanel;
import com.songoda.epicbosses.panel.handlers.*;
import com.songoda.epicbosses.panel.skills.MainSkillEditorPanel;
@ -83,7 +84,7 @@ public class BossPanelManager implements ILoadable, IReloadable {
@Getter private ISubVariablePanelHandler<Skill, SubCommandSkillElement> modifyCommandEditMenu, commandListSkillEditMenu;
@Getter private ISubVariablePanelHandler<Skill, CustomSkillElement> customSkillTypeEditorMenu, specialSettingsEditorMenu, minionSelectEditorMenu;
@Getter private IVariablePanelHandler<DropTable> mainDropTableEditMenu;
@Getter private IVariablePanelHandler<DropTable> mainDropTableEditMenu, dropTableTypeEditMenu;
private final CustomBosses customBosses;
@ -197,15 +198,19 @@ public class BossPanelManager implements ILoadable, IReloadable {
private void loadDropTableEditMenus() {
FileConfiguration editor = this.customBosses.getEditor();
PanelBuilder panelBuilder = new PanelBuilder(editor.getConfigurationSection("DropTableMainEditorPanel"));
PanelBuilder panelBuilder1 = new PanelBuilder(editor.getConfigurationSection("DropTableTypeEditorPanel"));
this.mainDropTableEditMenu = new MainDropTableEditorPanel(this, panelBuilder);
this.dropTableTypeEditMenu = new DropTableTypeEditorPanel(this, panelBuilder1, this.customBosses);
}
private void reloadDropTableEditMenus() {
FileConfiguration editor = this.customBosses.getEditor();
PanelBuilder panelBuilder = new PanelBuilder(editor.getConfigurationSection("DropTableMainEditorPanel"));
PanelBuilder panelBuilder1 = new PanelBuilder(editor.getConfigurationSection("DropTableTypeEditorPanel"));
this.mainDropTableEditMenu.initializePanel(panelBuilder);
this.dropTableTypeEditMenu.initializePanel(panelBuilder1);
}
//---------------------------------------------

View File

@ -1,11 +1,19 @@
package com.songoda.epicbosses.panel.droptables;
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.panel.Panel;
import com.songoda.epicbosses.utils.panel.base.ClickAction;
import com.songoda.epicbosses.utils.panel.base.handlers.VariablePanelHandler;
import com.songoda.epicbosses.utils.panel.builder.PanelBuilder;
import com.songoda.epicbosses.utils.panel.builder.PanelBuilderCounter;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryClickEvent;
import java.util.HashMap;
import java.util.Map;
/**
* @author Charles Cullen
@ -14,8 +22,12 @@ import org.bukkit.entity.Player;
*/
public class DropTableTypeEditorPanel extends VariablePanelHandler<DropTable> {
public DropTableTypeEditorPanel(BossPanelManager bossPanelManager, PanelBuilder panelBuilder) {
private CustomBosses plugin;
public DropTableTypeEditorPanel(BossPanelManager bossPanelManager, PanelBuilder panelBuilder, CustomBosses plugin) {
super(bossPanelManager, panelBuilder);
this.plugin = plugin;
}
@Override
@ -25,11 +37,37 @@ public class DropTableTypeEditorPanel extends VariablePanelHandler<DropTable> {
@Override
public void openFor(Player player, DropTable dropTable) {
PanelBuilder panelBuilder = getPanelBuilder().cloneBuilder();
Map<String, String> replaceMap = new HashMap<>();
replaceMap.put("{name}", BossAPI.getDropTableName(dropTable));
panelBuilder.addReplaceData(replaceMap);
PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter();
Panel panel = panelBuilder.getPanel()
.setParentPanelHandler(this.bossPanelManager.getMainDropTableEditMenu(), dropTable);
panelBuilderCounter.getSlotsWith("Spray").forEach(slot -> panel.setOnClick(slot, getAction(dropTable, "Spray")));
panelBuilderCounter.getSlotsWith("Drop").forEach(slot -> panel.setOnClick(slot, getAction(dropTable, "Drop")));
panelBuilderCounter.getSlotsWith("Give").forEach(slot -> panel.setOnClick(slot, getAction(dropTable, "Give")));
panel.openFor(player);
}
@Override
public void initializePanel(PanelBuilder panelBuilder) {
}
private ClickAction getAction(DropTable dropTable, String button) {
return event -> {
dropTable.setDropType(button.toUpperCase());
save(dropTable, event);
};
}
private void save(DropTable dropTable, InventoryClickEvent event) {
this.plugin.getDropTableFileManager().save();
this.bossPanelManager.getMainDropTableEditMenu().openFor((Player) event.getWhoClicked(), dropTable);
}
}

View File

@ -40,7 +40,7 @@ public class MainDropTableEditorPanel extends VariablePanelHandler<DropTable> {
Panel panel = panelBuilder.getPanel()
.setParentPanelHandler(this.bossPanelManager.getDropTables());
panelBuilderCounter.getSlotsWith("Type").forEach(slot -> panel.setOnClick(slot, event -> {}));
panelBuilderCounter.getSlotsWith("Type").forEach(slot -> panel.setOnClick(slot, event -> this.bossPanelManager.getDropTableTypeEditMenu().openFor(player, dropTable)));
panelBuilderCounter.getSlotsWith("Rewards").forEach(slot -> panel.setOnClick(slot, event -> {}));
panel.openFor(player);

View File

@ -61,13 +61,7 @@ public class SkillTypeEditorPanel extends VariablePanelHandler<Skill> {
@Override
public void initializePanel(PanelBuilder panelBuilder) {
// PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter();
//
// panelBuilderCounter
// .addSlotCounter("Command")
// .addSlotCounter("Custom")
// .addSlotCounter("Potion")
// .addSlotCounter("Group");
}
private ClickAction getCommandAction(Skill skill) {

View File

@ -20,7 +20,7 @@
<properties>
<!--<plugin.version>maven-version-number-SNAPSHOT-U90</plugin.version>-->
<plugin.version>1.0.0-U138</plugin.version>
<plugin.version>1.0.0-U139</plugin.version>
<plugin.name>EpicBosses</plugin.name>
<plugin.main>com.songoda.epicbosses.CustomBosses</plugin.main>
<plugin.author>AMinecraftDev</plugin.author>