mirror of
https://github.com/songoda/EpicBosses.git
synced 2025-02-08 07:01:23 +01:00
1.0.0-SNAPSHOT-U139
+ Implemented DropTableTypeEditorPanel + Connected a few of the drop table panels
This commit is contained in:
parent
5aba97b5c0
commit
1d426ba587
@ -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
|
||||
@ -1926,3 +1926,59 @@ DropTableMainEditorPanel:
|
||||
lore:
|
||||
- '&7Click this button to go back to'
|
||||
- '&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.'
|
@ -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);
|
||||
}
|
||||
|
||||
//---------------------------------------------
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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) {
|
||||
|
2
pom.xml
2
pom.xml
@ -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>
|
||||
|
Loading…
Reference in New Issue
Block a user