Non-material differences

This commit is contained in:
Esophose 2019-08-03 15:36:24 -06:00
parent 9dcf8d5b60
commit cd26b92584
16 changed files with 83 additions and 41 deletions

View File

@ -71,7 +71,7 @@
</dependencies> </dependencies>
<build> <build>
<finalName>${parent.artifactId}-${plugin.version} (Legacy)</finalName> <finalName>${parent.artifactId}-${plugin.version}</finalName>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>

View File

@ -1,5 +1,6 @@
package com.songoda.epicbosses.handlers; package com.songoda.epicbosses.handlers;
import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.api.BossAPI; import com.songoda.epicbosses.api.BossAPI;
import com.songoda.epicbosses.autospawns.AutoSpawn; import com.songoda.epicbosses.autospawns.AutoSpawn;
import com.songoda.epicbosses.autospawns.types.IntervalSpawnElement; import com.songoda.epicbosses.autospawns.types.IntervalSpawnElement;
@ -9,6 +10,7 @@ import com.songoda.epicbosses.utils.ServerUtils;
import com.songoda.epicbosses.utils.panel.base.IVariablePanelHandler; import com.songoda.epicbosses.utils.panel.base.IVariablePanelHandler;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@ -67,7 +69,7 @@ public abstract class AutoSpawnVariableHandler implements IHandler {
} }
if(input == null) { if(input == null) {
finish(); Bukkit.getScheduler().scheduleSyncDelayedTask(CustomBosses.get(), AutoSpawnVariableHandler.this::finish);
return; return;
} }
@ -78,7 +80,7 @@ public abstract class AutoSpawnVariableHandler implements IHandler {
event.setCancelled(true); event.setCancelled(true);
setHandled(true); setHandled(true);
finish(); Bukkit.getScheduler().scheduleSyncDelayedTask(CustomBosses.get(), AutoSpawnVariableHandler.this::finish);
} }
}; };
} }

View File

@ -1,5 +1,6 @@
package com.songoda.epicbosses.handlers; package com.songoda.epicbosses.handlers;
import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.entity.BossEntity; import com.songoda.epicbosses.entity.BossEntity;
import com.songoda.epicbosses.entity.elements.EntityStatsElement; import com.songoda.epicbosses.entity.elements.EntityStatsElement;
import com.songoda.epicbosses.managers.files.BossesFileManager; import com.songoda.epicbosses.managers.files.BossesFileManager;
@ -8,6 +9,7 @@ import com.songoda.epicbosses.utils.ServerUtils;
import com.songoda.epicbosses.utils.panel.base.ISubVariablePanelHandler; import com.songoda.epicbosses.utils.panel.base.ISubVariablePanelHandler;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@ -68,7 +70,7 @@ public class BossDisplayNameHandler implements IHandler {
event.setCancelled(true); event.setCancelled(true);
setHandled(true); setHandled(true);
finish(); Bukkit.getScheduler().scheduleSyncDelayedTask(CustomBosses.get(), BossDisplayNameHandler.this::finish);
} }
}; };
} }

View File

@ -1,5 +1,6 @@
package com.songoda.epicbosses.handlers; package com.songoda.epicbosses.handlers;
import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.api.BossAPI; import com.songoda.epicbosses.api.BossAPI;
import com.songoda.epicbosses.entity.BossEntity; import com.songoda.epicbosses.entity.BossEntity;
import com.songoda.epicbosses.managers.files.BossesFileManager; import com.songoda.epicbosses.managers.files.BossesFileManager;
@ -10,6 +11,7 @@ import com.songoda.epicbosses.utils.ServerUtils;
import com.songoda.epicbosses.utils.panel.base.IVariablePanelHandler; import com.songoda.epicbosses.utils.panel.base.IVariablePanelHandler;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@ -72,7 +74,7 @@ public class BossShopPriceHandler implements IHandler {
setHandled(true); setHandled(true);
Message.Boss_Edit_PriceSet.msg(getPlayer(), BossAPI.getBossEntityName(getBossEntity()), NumberUtils.get().formatDouble(amount)); Message.Boss_Edit_PriceSet.msg(getPlayer(), BossAPI.getBossEntityName(getBossEntity()), NumberUtils.get().formatDouble(amount));
finish(); Bukkit.getScheduler().scheduleSyncDelayedTask(CustomBosses.get(), BossShopPriceHandler.this::finish);
} else { } else {
Message.Boss_Edit_Price.msg(getPlayer(), BossAPI.getBossEntityName(getBossEntity())); Message.Boss_Edit_Price.msg(getPlayer(), BossAPI.getBossEntityName(getBossEntity()));
} }

View File

@ -1,5 +1,6 @@
package com.songoda.epicbosses.handlers; package com.songoda.epicbosses.handlers;
import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.managers.files.SkillsFileManager; import com.songoda.epicbosses.managers.files.SkillsFileManager;
import com.songoda.epicbosses.skills.Skill; import com.songoda.epicbosses.skills.Skill;
import com.songoda.epicbosses.utils.IHandler; import com.songoda.epicbosses.utils.IHandler;
@ -7,6 +8,7 @@ import com.songoda.epicbosses.utils.ServerUtils;
import com.songoda.epicbosses.utils.panel.base.IVariablePanelHandler; import com.songoda.epicbosses.utils.panel.base.IVariablePanelHandler;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@ -64,7 +66,7 @@ public class SkillDisplayNameHandler implements IHandler {
event.setCancelled(true); event.setCancelled(true);
setHandled(true); setHandled(true);
finish(); Bukkit.getScheduler().scheduleSyncDelayedTask(CustomBosses.get(), SkillDisplayNameHandler.this::finish);
} }
}; };
} }

View File

@ -805,15 +805,15 @@ public class BossPanelManager implements ILoadable, IReloadable {
private void loadAddItemsMenu() { private void loadAddItemsMenu() {
PanelBuilder panelBuilder = new PanelBuilder(this.customBosses.getEditor().getConfigurationSection("AddItemsMenu")); PanelBuilder panelBuilder = new PanelBuilder(this.customBosses.getEditor().getConfigurationSection("AddItemsMenu"));
this.addItemsBuilder = panelBuilder.cloneBuilder(); this.addItemsBuilder = this.addItemsBuilder.cloneBuilder();
this.customItemAddItemsMenu = new AddItemsPanel(this, panelBuilder.cloneBuilder(), this.customBosses, new CustomItemsAddItemsParentPanelHandler(this)); this.customItemAddItemsMenu = new AddItemsPanel(this, panelBuilder, this.customBosses, new CustomItemsAddItemsParentPanelHandler(this));
} }
private void reloadAddItemsMenu() { private void reloadAddItemsMenu() {
PanelBuilder panelBuilder = new PanelBuilder(this.customBosses.getEditor().getConfigurationSection("AddItemsMenu")); PanelBuilder panelBuilder = new PanelBuilder(this.customBosses.getEditor().getConfigurationSection("AddItemsMenu"));
this.addItemsBuilder = this.addItemsBuilder.cloneBuilder(); this.addItemsBuilder = this.addItemsBuilder.cloneBuilder();
this.customItemAddItemsMenu.initializePanel(panelBuilder.cloneBuilder()); this.customItemAddItemsMenu.initializePanel(panelBuilder);
} }
//--------------------------------------------- //---------------------------------------------

View File

@ -123,7 +123,6 @@ public class AddItemsPanel extends PanelHandler {
} }
openParentPanel(player); openParentPanel(player);
// this.bossPanelManager.getCustomItems().openFor(player);
}; };
} }
@ -142,7 +141,6 @@ public class AddItemsPanel extends PanelHandler {
} }
openParentPanel(player); openParentPanel(player);
// this.bossPanelManager.getCustomItems().openFor(player);
}; };
} }
} }

View File

@ -11,6 +11,7 @@ import com.songoda.epicbosses.skills.types.PotionSkillElement;
import com.songoda.epicbosses.utils.NumberUtils; import com.songoda.epicbosses.utils.NumberUtils;
import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.ServerUtils;
import com.songoda.epicbosses.utils.StringUtils; import com.songoda.epicbosses.utils.StringUtils;
import com.songoda.epicbosses.utils.Versions;
import com.songoda.epicbosses.utils.itemstack.ItemStackUtils; import com.songoda.epicbosses.utils.itemstack.ItemStackUtils;
import com.songoda.epicbosses.utils.panel.Panel; import com.songoda.epicbosses.utils.panel.Panel;
import com.songoda.epicbosses.utils.panel.base.handlers.VariablePanelHandler; import com.songoda.epicbosses.utils.panel.base.handlers.VariablePanelHandler;
@ -18,10 +19,12 @@ import com.songoda.epicbosses.utils.panel.builder.PanelBuilder;
import com.songoda.epicbosses.utils.panel.builder.PanelBuilderCounter; import com.songoda.epicbosses.utils.panel.builder.PanelBuilderCounter;
import com.songoda.epicbosses.utils.potion.PotionEffectConverter; import com.songoda.epicbosses.utils.potion.PotionEffectConverter;
import com.songoda.epicbosses.utils.potion.holder.PotionEffectHolder; import com.songoda.epicbosses.utils.potion.holder.PotionEffectHolder;
import com.songoda.epicbosses.utils.version.VersionHandler;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.PotionMeta; import org.bukkit.inventory.meta.PotionMeta;
import org.bukkit.potion.PotionData;
import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionEffectType;
import org.bukkit.potion.PotionType; import org.bukkit.potion.PotionType;
@ -107,6 +110,14 @@ public class PotionSkillEditorPanel extends VariablePanelHandler<Skill> {
ItemStack itemStack = new ItemStack(Material.POTION); ItemStack itemStack = new ItemStack(Material.POTION);
PotionMeta potionMeta = (PotionMeta) itemStack.getItemMeta(); PotionMeta potionMeta = (PotionMeta) itemStack.getItemMeta();
if (new VersionHandler().getVersion().isHigherThanOrEqualTo(Versions.v1_13_R1)) {
PotionType potionType = PotionType.getByEffect(PotionEffectType.BLINDNESS);
if (potionType == null) potionType = PotionType.WATER;
potionMeta.setBasePotionData(new PotionData(potionType));
}
potionMeta.addCustomEffect(potionEffect, true); potionMeta.addCustomEffect(potionEffect, true);
itemStack.setItemMeta(potionMeta); itemStack.setItemMeta(potionMeta);

View File

@ -30,6 +30,7 @@ public enum EntityFinder {
EVOKER("Evoker", new EvokerHandler(), "evoker"), EVOKER("Evoker", new EvokerHandler(), "evoker"),
VEX("Vex", new VexHandler(), "vex"), VEX("Vex", new VexHandler(), "vex"),
VINDICATOR("Vindicator", new VindicatorHandler(), "vindicator"), VINDICATOR("Vindicator", new VindicatorHandler(), "vindicator"),
ILLUSIONER("Illusioner", new IllusionerHandler(), "illusioner"),
CREEPER("Creeper", EntityType.CREEPER, "creeper"), CREEPER("Creeper", EntityType.CREEPER, "creeper"),
SKELETON("Skeleton", EntityType.SKELETON, "skeleton"), SKELETON("Skeleton", EntityType.SKELETON, "skeleton"),
SPIDER("Spider", EntityType.SPIDER, "spider"), SPIDER("Spider", EntityType.SPIDER, "spider"),

View File

@ -17,8 +17,10 @@ public enum PotionEffectFinder {
Absorption("Absorption", PotionEffectType.ABSORPTION), Absorption("Absorption", PotionEffectType.ABSORPTION),
Blindness("Blind", PotionEffectType.BLINDNESS, "blindness", "cantsee"), Blindness("Blind", PotionEffectType.BLINDNESS, "blindness", "cantsee"),
ConduitPower("ConduitPower", PotionEffectType.getByName("CONDUIT_POWER"), "conduit", "conduit_power"),
Confusion("Confusion", PotionEffectType.CONFUSION, "nausea"), Confusion("Confusion", PotionEffectType.CONFUSION, "nausea"),
Resistance("Resistance", PotionEffectType.DAMAGE_RESISTANCE, "damage_resistance", "res", "damageresistance"), Resistance("Resistance", PotionEffectType.DAMAGE_RESISTANCE, "damage_resistance", "res", "damageresistance"),
DolphinsGrace("DolphinsGrace", PotionEffectType.getByName("DOLPHINS_GRACE"), "grace", "dolphins_grace"),
Haste("Haste", PotionEffectType.FAST_DIGGING, "fast_digging", "haste"), Haste("Haste", PotionEffectType.FAST_DIGGING, "fast_digging", "haste"),
Fire_Resistance("FireResistance", PotionEffectType.FIRE_RESISTANCE, "fire_resistance", "fire_resist", "fire_res", "fireresist", "fireres"), Fire_Resistance("FireResistance", PotionEffectType.FIRE_RESISTANCE, "fire_resistance", "fire_resist", "fire_res", "fireresist", "fireres"),
Glowing("Glowing", PotionEffectType.getByName("GLOWING")), Glowing("Glowing", PotionEffectType.getByName("GLOWING")),
@ -36,6 +38,7 @@ public enum PotionEffectFinder {
Regen("regen", PotionEffectType.REGENERATION, "regeneration"), Regen("regen", PotionEffectType.REGENERATION, "regeneration"),
Saturation("Saturation", PotionEffectType.SATURATION, "saturated"), Saturation("Saturation", PotionEffectType.SATURATION, "saturated"),
Slow("Slow", PotionEffectType.SLOW, "tank"), Slow("Slow", PotionEffectType.SLOW, "tank"),
SlowFalling("SlowFalling", PotionEffectType.getByName("SLOW_FALLING"), "slow_falling"),
MiningFatigue("MiningFatigue", PotionEffectType.SLOW_DIGGING, "slow_digging"), MiningFatigue("MiningFatigue", PotionEffectType.SLOW_DIGGING, "slow_digging"),
Speed("Speed", PotionEffectType.SPEED, "fast", "fastboots"), Speed("Speed", PotionEffectType.SPEED, "fast", "fastboots"),
Unluck("Unlucky", PotionEffectType.getByName("UNLUCK"), "unluck", "notlucky"), Unluck("Unlucky", PotionEffectType.getByName("UNLUCK"), "unluck", "notlucky"),

View File

@ -0,0 +1,28 @@
package com.songoda.epicbosses.utils.entity.handlers;
import com.songoda.epicbosses.utils.Versions;
import com.songoda.epicbosses.utils.entity.ICustomEntityHandler;
import com.songoda.epicbosses.utils.version.VersionHandler;
import org.bukkit.Location;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.LivingEntity;
/**
* - * @author Charles Cullen
* - * @version 1.0.0
* - * @since 01-Jul-18
* -
*/
public class IllusionerHandler implements ICustomEntityHandler {
private VersionHandler versionHandler = new VersionHandler();
@Override
public LivingEntity getBaseEntity(String entityType, Location spawnLocation) {
if (this.versionHandler.getVersion().isLessThan(Versions.v1_11_R1)) {
throw new NullPointerException("This feature is only implemented in version 1.11 and above of Minecraft.");
}
return (LivingEntity) spawnLocation.getWorld().spawnEntity(spawnLocation, EntityType.ILLUSIONER);
}
}

View File

@ -40,7 +40,6 @@ public class ItemStackConverter implements IReplaceableConverter<ItemStackHolder
Short durability = itemStack.getDurability(), spawnerId = null; Short durability = itemStack.getDurability(), spawnerId = null;
String type, name = null, skullOwner = null; String type, name = null, skullOwner = null;
List<String> lore = null, enchants = null; List<String> lore = null, enchants = null;
Boolean isGlowing = null;
if(durability == 0) { if(durability == 0) {
durability = null; durability = null;
@ -87,14 +86,7 @@ public class ItemStackConverter implements IReplaceableConverter<ItemStackHolder
} }
} }
// if(enchants == null) { return new ItemStackHolder(amount, type, durability, name, lore, enchants, skullOwner, spawnerId);
// ItemStack craftStack = NbtFactory.getCraftItemStack(itemStack);
// NbtFactory.NbtCompound compound = NbtFactory.fromItemTag(craftStack);
//
// if(compound.containsKey("ench")) isGlowing = true;
// }
return new ItemStackHolder(amount, type, durability, name, lore, enchants, skullOwner, spawnerId, false);
} }
@Override @Override
@ -120,7 +112,6 @@ public class ItemStackConverter implements IReplaceableConverter<ItemStackHolder
Short durability = itemStackHolder.getDurability(), spawnerId = itemStackHolder.getSpawnerId(); Short durability = itemStackHolder.getDurability(), spawnerId = itemStackHolder.getSpawnerId();
String name = itemStackHolder.getName(), skullOwner = itemStackHolder.getSkullOwner(); String name = itemStackHolder.getName(), skullOwner = itemStackHolder.getSkullOwner();
List<String> lore = itemStackHolder.getLore(), enchants = itemStackHolder.getEnchants(); List<String> lore = itemStackHolder.getLore(), enchants = itemStackHolder.getEnchants();
Boolean isGlowing = itemStackHolder.getIsGlowing();
if(type.contains(":")) { if(type.contains(":")) {
durability = Short.valueOf(type.split(":")[1]); durability = Short.valueOf(type.split(":")[1]);
@ -174,10 +165,6 @@ public class ItemStackConverter implements IReplaceableConverter<ItemStackHolder
} }
} }
if(isGlowing != null && isGlowing) {
//TODO
}
if(amount != null && amount > 1) { if(amount != null && amount > 1) {
itemStack.setAmount(amount); itemStack.setAmount(amount);
} }

View File

@ -3,7 +3,6 @@ package com.songoda.epicbosses.utils.itemstack;
import com.songoda.epicbosses.utils.NumberUtils; import com.songoda.epicbosses.utils.NumberUtils;
import com.songoda.epicbosses.utils.ServerUtils; import com.songoda.epicbosses.utils.ServerUtils;
import com.songoda.epicbosses.utils.StringUtils; import com.songoda.epicbosses.utils.StringUtils;
//import com.songoda.epicbosses.utils.factory.NbtFactory;
import com.songoda.epicbosses.utils.itemstack.enchants.GlowEnchant; import com.songoda.epicbosses.utils.itemstack.enchants.GlowEnchant;
import com.songoda.epicbosses.utils.itemstack.holder.ItemStackHolder; import com.songoda.epicbosses.utils.itemstack.holder.ItemStackHolder;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
@ -341,9 +340,9 @@ public class ItemStackUtils {
List<String> enchants = (List<String>) configurationSection.getList("enchants", null); List<String> enchants = (List<String>) configurationSection.getList("enchants", null);
String skullOwner = configurationSection.getString("skullOwner", null); String skullOwner = configurationSection.getString("skullOwner", null);
Short spawnerId = (Short) configurationSection.get("spawnerId", null); Short spawnerId = (Short) configurationSection.get("spawnerId", null);
Boolean isGlowing = (Boolean) configurationSection.get("isGlowing", null); //Boolean isGlowing = (Boolean) configurationSection.get("isGlowing", null);
return new ItemStackHolder(amount, type, durability, name, lore, enchants, skullOwner, spawnerId, isGlowing); return new ItemStackHolder(amount, type, durability, name, lore, enchants, skullOwner, spawnerId);
} }
public static boolean isItemStackSame(ItemStack itemStack1, ItemStack itemStack2) { public static boolean isItemStackSame(ItemStack itemStack1, ItemStack itemStack2) {

View File

@ -20,9 +20,8 @@ public class ItemStackHolder {
@Expose @Getter private List<String> enchants; @Expose @Getter private List<String> enchants;
@Expose @Getter private String skullOwner; @Expose @Getter private String skullOwner;
@Expose @Getter private Short spawnerId; @Expose @Getter private Short spawnerId;
@Expose @Getter private Boolean isGlowing;
public ItemStackHolder(Integer amount, String type, Short durability, String name, List<String> lore, List<String> enchants, String skullOwner, Short spawnerId, Boolean isGlowing) { public ItemStackHolder(Integer amount, String type, Short durability, String name, List<String> lore, List<String> enchants, String skullOwner, Short spawnerId) {
this.amount = amount; this.amount = amount;
this.type = type; this.type = type;
this.durability = durability; this.durability = durability;
@ -31,7 +30,6 @@ public class ItemStackHolder {
this.enchants = enchants; this.enchants = enchants;
this.skullOwner = skullOwner; this.skullOwner = skullOwner;
this.spawnerId = spawnerId; this.spawnerId = spawnerId;
this.isGlowing = isGlowing;
} }
} }

View File

@ -61,6 +61,7 @@ public class Panel implements Listener, ICloneable<Panel> {
@Getter private PanelBuilderSettings panelBuilderSettings; @Getter private PanelBuilderSettings panelBuilderSettings;
@Getter private PanelBuilderCounter panelBuilderCounter; @Getter private PanelBuilderCounter panelBuilderCounter;
@Getter private Sound clickSound = null; @Getter private Sound clickSound = null;
@Getter private String title;
@Getter private Inventory inventory; @Getter private Inventory inventory;
@Getter private int viewers = 0; @Getter private int viewers = 0;
@ -86,7 +87,8 @@ public class Panel implements Listener, ICloneable<Panel> {
throw new UnsupportedOperationException("Inventory size must be a multiple of 9 or 5"); throw new UnsupportedOperationException("Inventory size must be a multiple of 9 or 5");
} }
this.inventory = size % 9 == 0 ? Bukkit.createInventory(null, size, StringUtils.get().translateColor(title)) : Bukkit.createInventory(null, InventoryType.HOPPER, StringUtils.get().translateColor(title)); this.title = StringUtils.get().translateColor(title);
this.inventory = size % 9 == 0 ? Bukkit.createInventory(null, size, this.title) : Bukkit.createInventory(null, InventoryType.HOPPER, StringUtils.get().translateColor(title));
this.connectedInventories.add(this.inventory); this.connectedInventories.add(this.inventory);
PANELS.add(this); PANELS.add(this);
} }
@ -95,19 +97,24 @@ public class Panel implements Listener, ICloneable<Panel> {
* Creates a Panel with the specified arguments * Creates a Panel with the specified arguments
* *
* @param inventory - Panel inventory * @param inventory - Panel inventory
* @param title - Panel title
*/ */
public Panel(Inventory inventory) { public Panel(Inventory inventory, String title) {
this(inventory, null, null); this(inventory, title, null, null);
} }
/** /**
* Creates a Panel with the specified arguments * Creates a Panel with the specified arguments
* *
* @param inventory - Panel inventory * @param inventory - Panel inventory
* @param title - Panel title
* @param panelBuilderSettings - Panel builder settings
* @param panelBuilderCounter - Panel builder counter
*/ */
public Panel(Inventory inventory, PanelBuilderSettings panelBuilderSettings, PanelBuilderCounter panelBuilderCounter) { public Panel(Inventory inventory, String title, PanelBuilderSettings panelBuilderSettings, PanelBuilderCounter panelBuilderCounter) {
Bukkit.getPluginManager().registerEvents(this, PLUGIN); Bukkit.getPluginManager().registerEvents(this, PLUGIN);
this.title = StringUtils.get().translateColor(title);
this.inventory = inventory; this.inventory = inventory;
this.panelBuilderSettings = panelBuilderSettings; this.panelBuilderSettings = panelBuilderSettings;
this.panelBuilderCounter = panelBuilderCounter; this.panelBuilderCounter = panelBuilderCounter;
@ -477,11 +484,10 @@ public class Panel implements Listener, ICloneable<Panel> {
* @return Inventory instance of the cloned inventory * @return Inventory instance of the cloned inventory
*/ */
public Inventory cloneInventory() { public Inventory cloneInventory() {
Inventory thisInventory = getInventory(); Inventory newInventory = Bukkit.createInventory(this.inventory.getHolder(), this.inventory.getSize(), this.title);
Inventory newInventory = Bukkit.createInventory(thisInventory.getHolder(), thisInventory.getSize(), thisInventory.getTitle());
for(int i = 0; i < thisInventory.getSize(); i++) { for(int i = 0; i < this.inventory.getSize(); i++) {
ItemStack itemStack = thisInventory.getItem(i); ItemStack itemStack = this.inventory.getItem(i);
if(itemStack == null) continue; if(itemStack == null) continue;
@ -495,7 +501,7 @@ public class Panel implements Listener, ICloneable<Panel> {
@Override @Override
public Panel clone() { public Panel clone() {
Panel panel = new Panel(this.inventory.getTitle(), this.inventory.getSize()); Panel panel = new Panel(this.title, this.inventory.getSize());
panel.targettedSlotActions.putAll(this.targettedSlotActions); panel.targettedSlotActions.putAll(this.targettedSlotActions);
panel.allSlotActions.addAll(this.allSlotActions); panel.allSlotActions.addAll(this.allSlotActions);

View File

@ -30,6 +30,7 @@ public class PanelBuilder {
@Getter private PanelBuilderCounter panelBuilderCounter; @Getter private PanelBuilderCounter panelBuilderCounter;
private String title;
private Inventory inventory; private Inventory inventory;
private int size = 0; private int size = 0;
@ -62,6 +63,7 @@ public class PanelBuilder {
public PanelBuilder cloneBuilder() { public PanelBuilder cloneBuilder() {
PanelBuilder panelBuilder = new PanelBuilder(this.configurationSection, this.replaceMap); PanelBuilder panelBuilder = new PanelBuilder(this.configurationSection, this.replaceMap);
panelBuilder.title = this.title;
panelBuilder.inventory = this.inventory; panelBuilder.inventory = this.inventory;
panelBuilder.size = this.size; panelBuilder.size = this.size;
panelBuilder.defaultSlots.addAll(this.defaultSlots); panelBuilder.defaultSlots.addAll(this.defaultSlots);
@ -73,7 +75,7 @@ public class PanelBuilder {
public Panel getPanel() { public Panel getPanel() {
build(); build();
Panel panel = new Panel(this.inventory, this.panelBuilderSettings, this.panelBuilderCounter); Panel panel = new Panel(this.inventory, this.title, this.panelBuilderSettings, this.panelBuilderCounter);
Map<String, ItemStack> itemStackMap = this.panelBuilderCounter.getItemStacks(); Map<String, ItemStack> itemStackMap = this.panelBuilderCounter.getItemStacks();
Map<String, ClickAction> clickActionMap = this.panelBuilderCounter.getClickActions(); Map<String, ClickAction> clickActionMap = this.panelBuilderCounter.getClickActions();
@ -96,6 +98,7 @@ public class PanelBuilder {
ConfigurationSection itemSection = configurationSection.contains("Items")? configurationSection.getConfigurationSection("Items") : null; ConfigurationSection itemSection = configurationSection.contains("Items")? configurationSection.getConfigurationSection("Items") : null;
name = replace(name); name = replace(name);
this.title = name;
this.inventory = Bukkit.createInventory(null, slots, name); this.inventory = Bukkit.createInventory(null, slots, name);
if(itemSection != null) { if(itemSection != null) {