mirror of
https://github.com/songoda/EpicBosses.git
synced 2025-02-12 17:11:20 +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 skill editor panel to configure'
|
||||||
- '&7the general skill options.'
|
- '&7the general skill options.'
|
||||||
DropTableMainEditorPanel:
|
DropTableMainEditorPanel:
|
||||||
name: '&b&l{name} Editor'
|
name: '&b&l{name} Drop Table Editor'
|
||||||
slots: 9
|
slots: 9
|
||||||
Settings:
|
Settings:
|
||||||
emptySpaceFiller: true
|
emptySpaceFiller: true
|
||||||
@ -1925,4 +1925,60 @@ DropTableMainEditorPanel:
|
|||||||
name: '&cClick here to go back'
|
name: '&cClick here to go back'
|
||||||
lore:
|
lore:
|
||||||
- '&7Click this button to go back to'
|
- '&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.'
|
@ -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.text.*;
|
||||||
import com.songoda.epicbosses.panel.bosses.weapons.MainHandEditorPanel;
|
import com.songoda.epicbosses.panel.bosses.weapons.MainHandEditorPanel;
|
||||||
import com.songoda.epicbosses.panel.bosses.weapons.OffHandEditorPanel;
|
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.droptables.MainDropTableEditorPanel;
|
||||||
import com.songoda.epicbosses.panel.handlers.*;
|
import com.songoda.epicbosses.panel.handlers.*;
|
||||||
import com.songoda.epicbosses.panel.skills.MainSkillEditorPanel;
|
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, SubCommandSkillElement> modifyCommandEditMenu, commandListSkillEditMenu;
|
||||||
@Getter private ISubVariablePanelHandler<Skill, CustomSkillElement> customSkillTypeEditorMenu, specialSettingsEditorMenu, minionSelectEditorMenu;
|
@Getter private ISubVariablePanelHandler<Skill, CustomSkillElement> customSkillTypeEditorMenu, specialSettingsEditorMenu, minionSelectEditorMenu;
|
||||||
|
|
||||||
@Getter private IVariablePanelHandler<DropTable> mainDropTableEditMenu;
|
@Getter private IVariablePanelHandler<DropTable> mainDropTableEditMenu, dropTableTypeEditMenu;
|
||||||
|
|
||||||
private final CustomBosses customBosses;
|
private final CustomBosses customBosses;
|
||||||
|
|
||||||
@ -197,15 +198,19 @@ public class BossPanelManager implements ILoadable, IReloadable {
|
|||||||
private void loadDropTableEditMenus() {
|
private void loadDropTableEditMenus() {
|
||||||
FileConfiguration editor = this.customBosses.getEditor();
|
FileConfiguration editor = this.customBosses.getEditor();
|
||||||
PanelBuilder panelBuilder = new PanelBuilder(editor.getConfigurationSection("DropTableMainEditorPanel"));
|
PanelBuilder panelBuilder = new PanelBuilder(editor.getConfigurationSection("DropTableMainEditorPanel"));
|
||||||
|
PanelBuilder panelBuilder1 = new PanelBuilder(editor.getConfigurationSection("DropTableTypeEditorPanel"));
|
||||||
|
|
||||||
this.mainDropTableEditMenu = new MainDropTableEditorPanel(this, panelBuilder);
|
this.mainDropTableEditMenu = new MainDropTableEditorPanel(this, panelBuilder);
|
||||||
|
this.dropTableTypeEditMenu = new DropTableTypeEditorPanel(this, panelBuilder1, this.customBosses);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void reloadDropTableEditMenus() {
|
private void reloadDropTableEditMenus() {
|
||||||
FileConfiguration editor = this.customBosses.getEditor();
|
FileConfiguration editor = this.customBosses.getEditor();
|
||||||
PanelBuilder panelBuilder = new PanelBuilder(editor.getConfigurationSection("DropTableMainEditorPanel"));
|
PanelBuilder panelBuilder = new PanelBuilder(editor.getConfigurationSection("DropTableMainEditorPanel"));
|
||||||
|
PanelBuilder panelBuilder1 = new PanelBuilder(editor.getConfigurationSection("DropTableTypeEditorPanel"));
|
||||||
|
|
||||||
this.mainDropTableEditMenu.initializePanel(panelBuilder);
|
this.mainDropTableEditMenu.initializePanel(panelBuilder);
|
||||||
|
this.dropTableTypeEditMenu.initializePanel(panelBuilder1);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------
|
//---------------------------------------------
|
||||||
|
@ -1,11 +1,19 @@
|
|||||||
package com.songoda.epicbosses.panel.droptables;
|
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.droptable.DropTable;
|
||||||
import com.songoda.epicbosses.managers.BossPanelManager;
|
import com.songoda.epicbosses.managers.BossPanelManager;
|
||||||
import com.songoda.epicbosses.utils.panel.Panel;
|
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.base.handlers.VariablePanelHandler;
|
||||||
import com.songoda.epicbosses.utils.panel.builder.PanelBuilder;
|
import com.songoda.epicbosses.utils.panel.builder.PanelBuilder;
|
||||||
|
import com.songoda.epicbosses.utils.panel.builder.PanelBuilderCounter;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Charles Cullen
|
* @author Charles Cullen
|
||||||
@ -14,8 +22,12 @@ import org.bukkit.entity.Player;
|
|||||||
*/
|
*/
|
||||||
public class DropTableTypeEditorPanel extends VariablePanelHandler<DropTable> {
|
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);
|
super(bossPanelManager, panelBuilder);
|
||||||
|
|
||||||
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -25,11 +37,37 @@ public class DropTableTypeEditorPanel extends VariablePanelHandler<DropTable> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void openFor(Player player, DropTable dropTable) {
|
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
|
@Override
|
||||||
public void initializePanel(PanelBuilder panelBuilder) {
|
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()
|
Panel panel = panelBuilder.getPanel()
|
||||||
.setParentPanelHandler(this.bossPanelManager.getDropTables());
|
.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 -> {}));
|
panelBuilderCounter.getSlotsWith("Rewards").forEach(slot -> panel.setOnClick(slot, event -> {}));
|
||||||
|
|
||||||
panel.openFor(player);
|
panel.openFor(player);
|
||||||
|
@ -61,13 +61,7 @@ public class SkillTypeEditorPanel extends VariablePanelHandler<Skill> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initializePanel(PanelBuilder panelBuilder) {
|
public void initializePanel(PanelBuilder panelBuilder) {
|
||||||
// PanelBuilderCounter panelBuilderCounter = panelBuilder.getPanelBuilderCounter();
|
|
||||||
//
|
|
||||||
// panelBuilderCounter
|
|
||||||
// .addSlotCounter("Command")
|
|
||||||
// .addSlotCounter("Custom")
|
|
||||||
// .addSlotCounter("Potion")
|
|
||||||
// .addSlotCounter("Group");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private ClickAction getCommandAction(Skill skill) {
|
private ClickAction getCommandAction(Skill skill) {
|
||||||
|
2
pom.xml
2
pom.xml
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<!--<plugin.version>maven-version-number-SNAPSHOT-U90</plugin.version>-->
|
<!--<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.name>EpicBosses</plugin.name>
|
||||||
<plugin.main>com.songoda.epicbosses.CustomBosses</plugin.main>
|
<plugin.main>com.songoda.epicbosses.CustomBosses</plugin.main>
|
||||||
<plugin.author>AMinecraftDev</plugin.author>
|
<plugin.author>AMinecraftDev</plugin.author>
|
||||||
|
Loading…
Reference in New Issue
Block a user