diff --git a/src/main/java/com/songoda/epicenchants/commands/CustomCommand.java b/src/main/java/com/songoda/epicenchants/commands/CustomCommand.java index 7047888..ebb2d3d 100644 --- a/src/main/java/com/songoda/epicenchants/commands/CustomCommand.java +++ b/src/main/java/com/songoda/epicenchants/commands/CustomCommand.java @@ -1,7 +1,10 @@ package com.songoda.epicenchants.commands; import co.aikar.commands.BaseCommand; -import co.aikar.commands.annotation.*; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandPermission; +import co.aikar.commands.annotation.Dependency; +import co.aikar.commands.annotation.Description; import com.songoda.epicenchants.EpicEnchants; import com.songoda.epicenchants.menus.AlchemistMenu; import com.songoda.epicenchants.menus.EnchanterMenu; diff --git a/src/main/java/com/songoda/epicenchants/commands/EnchantCommand.java b/src/main/java/com/songoda/epicenchants/commands/EnchantCommand.java index 1b2deb2..d6d5f03 100644 --- a/src/main/java/com/songoda/epicenchants/commands/EnchantCommand.java +++ b/src/main/java/com/songoda/epicenchants/commands/EnchantCommand.java @@ -7,13 +7,12 @@ import com.songoda.epicenchants.EpicEnchants; import com.songoda.epicenchants.enums.EnchantResult; import com.songoda.epicenchants.objects.Enchant; import com.songoda.epicenchants.objects.Group; -import org.apache.commons.lang3.tuple.Pair; +import com.songoda.epicenchants.utils.Tuple; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import static com.songoda.epicenchants.enums.EnchantResult.BROKEN_FAILURE; -import static com.songoda.epicenchants.objects.Placeholder.of; import static com.songoda.epicenchants.utils.single.GeneralUtils.getMessageFromResult; @CommandAlias("epicenchants|ee") @@ -29,15 +28,21 @@ public class EnchantCommand extends BaseCommand { @CommandPermission("epicenchants.give.book") public void onGiveBook(CommandSender sender, @Flags("other") Player target, Enchant enchant, @Optional Integer level, @Optional Integer successRate, @Optional Integer destroyRate) { if (level != null && (level > enchant.getMaxLevel() || level < 1)) { - instance.getAction().perform(sender, "command.book." + (level > enchant.getMaxLevel() ? "max-level" : "min-level"), - of("enchant", enchant.getIdentifier()), - of("max-level", enchant.getMaxLevel())); + instance.getLocale().getMessage("command.book." + (level > enchant.getMaxLevel() ? "maxlevel" : "minlevel")) + .processPlaceholder("enchant", enchant.getIdentifier()) + .processPlaceholder("maxlevel", enchant.getMaxLevel()) + .sendPrefixedMessage(sender); return; } target.getInventory().addItem(enchant.getBook().get(enchant, level, successRate, destroyRate)); - instance.getAction().perform(target, "command.book.received", of("enchant", enchant.getIdentifier())); - instance.getAction().perform(sender, "command.book.gave", of("player", target.getName()), of("enchant", enchant.getIdentifier())); + instance.getLocale().getMessage("command.book.received") + .processPlaceholder("enchant", enchant.getIdentifier()) + .sendPrefixedMessage(target); + instance.getLocale().getMessage("command.book.gave") + .processPlaceholder("player", target.getName()) + .processPlaceholder("enchant", enchant.getIdentifier()) + .sendPrefixedMessage(sender); } //ee give item dust [player] [group] @@ -46,8 +51,13 @@ public class EnchantCommand extends BaseCommand { @CommandPermission("epicenchants.give.item.dust") public void onGiveDust(CommandSender sender, @Flags("other") Player target, Group group, @Optional String dustType, @Optional Integer percentage) { target.getInventory().addItem(instance.getSpecialItems().getDust(group, dustType, percentage, true)); - instance.getAction().perform(target, "command.dust.received", of("group", group.getIdentifier())); - instance.getAction().perform(sender, "command.dust.gave", of("player", target.getName()), of("group", group.getIdentifier())); + instance.getLocale().getMessage("command.dust.received") + .processPlaceholder("group", group.getIdentifier()) + .sendPrefixedMessage(target); + instance.getLocale().getMessage("command.dust.gave") + .processPlaceholder("player", target.getName()) + .processPlaceholder("group", group.getIdentifier()) + .sendPrefixedMessage(sender); } //ee give item [giveType] [player] @@ -67,12 +77,17 @@ public class EnchantCommand extends BaseCommand { target.getInventory().addItem(instance.getSpecialItems().getBlackScroll(amount, successRate)); break; default: - instance.getAction().perform(target, "command.give-unknown", of("unknown", giveType)); + instance.getLocale().getMessage("command.giveunknown") + .processPlaceholder("unknown", giveType) + .sendPrefixedMessage(target); return; } - instance.getAction().perform(target, "command." + messageKey + ".received"); - instance.getAction().perform(sender, "command." + messageKey + ".gave", of("player", target.getName())); + instance.getLocale().getMessage("command." + messageKey + ".received") + .sendPrefixedMessage(target); + instance.getLocale().getMessage("command." + messageKey + ".gave") + .processPlaceholder("player", target.getName()) + .sendPrefixedMessage(target); } @@ -82,18 +97,22 @@ public class EnchantCommand extends BaseCommand { @Description("Apply enchant to item in hand") @CommandPermission("epicenchants.apply") public void onApply(Player player, Enchant enchant, int level, @Optional Integer successRate, @Optional Integer destroyRate) { - if (player.getItemInHand() == null || !enchant.getItemWhitelist().contains(player.getItemInHand().getType())) { + if (!enchant.getItemWhitelist().contains(player.getItemInHand().getType())) { System.out.println("List = " + enchant.getItemWhitelist()); - instance.getAction().perform(player, "command.apply.invalid-item", of("enchant", enchant.getIdentifier())); + instance.getLocale().getMessage("command.apply.invaliditem") + .processPlaceholder("enchant", enchant.getIdentifier()) + .sendPrefixedMessage(player); return; } int slot = player.getInventory().getHeldItemSlot(); ItemStack before = player.getItemInHand(); - Pair result = instance.getEnchantUtils().apply(before, enchant, level, + Tuple result = instance.getEnchantUtils().apply(before, enchant, level, successRate == null ? 100 : successRate, destroyRate == null ? 0 : destroyRate); - instance.getAction().perform(player, getMessageFromResult(result.getRight()), of("enchant", enchant.getIdentifier())); + instance.getLocale().getMessage(getMessageFromResult(result.getRight())) + .processPlaceholder("enchant", enchant.getIdentifier()) + .sendPrefixedMessage(player); if (result.getRight() == BROKEN_FAILURE) { player.getInventory().clear(slot); @@ -117,7 +136,7 @@ public class EnchantCommand extends BaseCommand { @CommandPermission("epicenchants.reload") public void onReload(CommandSender sender) { instance.reload(); - instance.getAction().perform(sender, "command.reload"); + instance.getLocale().getMessage("command.reload").sendPrefixedMessage(sender); } @HelpCommand diff --git a/src/main/java/com/songoda/epicenchants/economy/Economy.java b/src/main/java/com/songoda/epicenchants/economy/Economy.java index 9d5a914..313e4a4 100644 --- a/src/main/java/com/songoda/epicenchants/economy/Economy.java +++ b/src/main/java/com/songoda/epicenchants/economy/Economy.java @@ -1,11 +1,14 @@ -package com.songoda.ultimateclaims.economy; +package com.songoda.epicenchants.economy; import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; public interface Economy { boolean hasBalance(OfflinePlayer player, double cost); + double getBalance(Player player); + boolean withdrawBalance(OfflinePlayer player, double cost); boolean deposit(OfflinePlayer player, double amount); diff --git a/src/main/java/com/songoda/epicenchants/economy/PlayerPointsEconomy.java b/src/main/java/com/songoda/epicenchants/economy/PlayerPointsEconomy.java index bc73955..836c664 100644 --- a/src/main/java/com/songoda/epicenchants/economy/PlayerPointsEconomy.java +++ b/src/main/java/com/songoda/epicenchants/economy/PlayerPointsEconomy.java @@ -1,8 +1,9 @@ -package com.songoda.ultimateclaims.economy; +package com.songoda.epicenchants.economy; import org.black_ixx.playerpoints.PlayerPoints; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; public class PlayerPointsEconomy implements Economy { @@ -23,6 +24,11 @@ public class PlayerPointsEconomy implements Economy { } + @Override + public double getBalance(Player player) { + return playerPoints.getAPI().look(player.getUniqueId()); + } + @Override public boolean withdrawBalance(OfflinePlayer player, double cost) { int amount = convertAmount(cost); diff --git a/src/main/java/com/songoda/epicenchants/economy/ReserveEconomy.java b/src/main/java/com/songoda/epicenchants/economy/ReserveEconomy.java index 5fecdf3..96bd4e7 100644 --- a/src/main/java/com/songoda/epicenchants/economy/ReserveEconomy.java +++ b/src/main/java/com/songoda/epicenchants/economy/ReserveEconomy.java @@ -1,8 +1,9 @@ -package com.songoda.ultimateclaims.economy; +package com.songoda.epicenchants.economy; import net.tnemc.core.Reserve; import net.tnemc.core.economy.EconomyAPI; import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; import java.math.BigDecimal; @@ -20,6 +21,11 @@ public class ReserveEconomy implements Economy { return economyAPI.hasHoldings(player.getUniqueId(), new BigDecimal(cost)); } + @Override + public double getBalance(Player player) { + return economyAPI.getHoldings(player.getUniqueId()).doubleValue(); + } + @Override public boolean withdrawBalance(OfflinePlayer player, double cost) { return economyAPI.removeHoldings(player.getUniqueId(), new BigDecimal(cost)); diff --git a/src/main/java/com/songoda/epicenchants/economy/VaultEconomy.java b/src/main/java/com/songoda/epicenchants/economy/VaultEconomy.java index dca7967..d44396f 100644 --- a/src/main/java/com/songoda/epicenchants/economy/VaultEconomy.java +++ b/src/main/java/com/songoda/epicenchants/economy/VaultEconomy.java @@ -1,7 +1,8 @@ -package com.songoda.ultimateclaims.economy; +package com.songoda.epicenchants.economy; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; public class VaultEconomy implements Economy { private final net.milkbowl.vault.economy.Economy vault; @@ -16,6 +17,11 @@ public class VaultEconomy implements Economy { return vault.has(player, cost); } + @Override + public double getBalance(Player player) { + return vault.getBalance(player); + } + @Override public boolean withdrawBalance(OfflinePlayer player, double cost) { return vault.withdrawPlayer(player, cost).transactionSuccess(); diff --git a/src/main/java/com/songoda/epicenchants/effect/EffectExecutor.java b/src/main/java/com/songoda/epicenchants/effect/EffectExecutor.java index e3bc0e5..2a7fe48 100644 --- a/src/main/java/com/songoda/epicenchants/effect/EffectExecutor.java +++ b/src/main/java/com/songoda/epicenchants/effect/EffectExecutor.java @@ -5,7 +5,6 @@ import com.songoda.epicenchants.enums.TriggerType; import com.songoda.epicenchants.objects.Condition; import com.songoda.epicenchants.objects.LeveledModifier; import com.songoda.epicenchants.utils.single.GeneralUtils; -import lombok.Getter; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; @@ -19,11 +18,12 @@ import java.util.Set; import java.util.function.Consumer; import java.util.stream.Collectors; -import static com.songoda.epicenchants.effect.EffectExecutor.Who.*; +import static com.songoda.epicenchants.effect.EffectExecutor.Who.OPPONENT; +import static com.songoda.epicenchants.effect.EffectExecutor.Who.USER; public abstract class EffectExecutor { - @Getter private final ConfigurationSection section; - @Getter private final Set triggerTypes; + private final ConfigurationSection section; + private final Set triggerTypes; private final Set simultaneous; private final Condition condition; @@ -96,6 +96,14 @@ public abstract class EffectExecutor { } } + public ConfigurationSection getSection() { + return this.section; + } + + public Set getTriggerTypes() { + return this.triggerTypes; + } + public enum Who { USER, OPPONENT } diff --git a/src/main/java/com/songoda/epicenchants/effect/EffectManager.java b/src/main/java/com/songoda/epicenchants/effect/EffectManager.java index 13cbced..875105f 100644 --- a/src/main/java/com/songoda/epicenchants/effect/EffectManager.java +++ b/src/main/java/com/songoda/epicenchants/effect/EffectManager.java @@ -7,7 +7,8 @@ import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.util.Optional; -import static com.google.common.base.CaseFormat.*; +import static com.google.common.base.CaseFormat.UPPER_CAMEL; +import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE; public class EffectManager { diff --git a/src/main/java/com/songoda/epicenchants/effect/effects/PlayerCommand.java b/src/main/java/com/songoda/epicenchants/effect/effects/PlayerCommand.java index 7234fdf..219ec0b 100644 --- a/src/main/java/com/songoda/epicenchants/effect/effects/PlayerCommand.java +++ b/src/main/java/com/songoda/epicenchants/effect/effects/PlayerCommand.java @@ -10,7 +10,8 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import static com.songoda.epicenchants.effect.EffectExecutor.Who.OPPONENT; -import static com.songoda.epicenchants.enums.EventType.*; +import static com.songoda.epicenchants.enums.EventType.NONE; +import static com.songoda.epicenchants.enums.EventType.ON; public class PlayerCommand extends EffectExecutor { public PlayerCommand(ConfigurationSection section) { diff --git a/src/main/java/com/songoda/epicenchants/effect/effects/SpawnMob.java b/src/main/java/com/songoda/epicenchants/effect/effects/SpawnMob.java index 5f97301..89a4dd7 100644 --- a/src/main/java/com/songoda/epicenchants/effect/effects/SpawnMob.java +++ b/src/main/java/com/songoda/epicenchants/effect/effects/SpawnMob.java @@ -3,11 +3,11 @@ package com.songoda.epicenchants.effect.effects; import com.songoda.epicenchants.effect.EffectExecutor; import com.songoda.epicenchants.enums.EventType; import com.songoda.epicenchants.objects.LeveledModifier; +import com.songoda.epicenchants.utils.itemnbtapi.NBTEntity; +import com.songoda.epicenchants.utils.itemnbtapi.NBTList; +import com.songoda.epicenchants.utils.itemnbtapi.NBTListCompound; +import com.songoda.epicenchants.utils.itemnbtapi.NBTType; import com.songoda.epicenchants.utils.objects.ItemBuilder; -import de.tr7zw.itemnbtapi.NBTEntity; -import de.tr7zw.itemnbtapi.NBTList; -import de.tr7zw.itemnbtapi.NBTListCompound; -import de.tr7zw.itemnbtapi.NBTType; import org.bukkit.Location; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.*; diff --git a/src/main/java/com/songoda/epicenchants/effect/effects/StealExp.java b/src/main/java/com/songoda/epicenchants/effect/effects/StealExp.java index 0d9fb4f..e3d4986 100644 --- a/src/main/java/com/songoda/epicenchants/effect/effects/StealExp.java +++ b/src/main/java/com/songoda/epicenchants/effect/effects/StealExp.java @@ -8,7 +8,8 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import static com.songoda.epicenchants.utils.single.Experience.*; +import static com.songoda.epicenchants.utils.single.Experience.changeExp; +import static com.songoda.epicenchants.utils.single.Experience.getExp; public class StealExp extends EffectExecutor { public StealExp(ConfigurationSection section) { diff --git a/src/main/java/com/songoda/epicenchants/listeners/item/BlackScrollListener.java b/src/main/java/com/songoda/epicenchants/listeners/item/BlackScrollListener.java index 6d7f9d1..aee9bf5 100644 --- a/src/main/java/com/songoda/epicenchants/listeners/item/BlackScrollListener.java +++ b/src/main/java/com/songoda/epicenchants/listeners/item/BlackScrollListener.java @@ -2,13 +2,12 @@ package com.songoda.epicenchants.listeners.item; import com.songoda.epicenchants.EpicEnchants; import com.songoda.epicenchants.objects.Enchant; +import com.songoda.epicenchants.utils.itemnbtapi.NBTCompound; +import com.songoda.epicenchants.utils.itemnbtapi.NBTItem; import com.songoda.epicenchants.utils.single.RomanNumber; -import de.tr7zw.itemnbtapi.NBTCompound; -import de.tr7zw.itemnbtapi.NBTItem; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; -import static com.songoda.epicenchants.objects.Placeholder.of; import static com.songoda.epicenchants.utils.single.GeneralUtils.getRandomElement; public class BlackScrollListener extends ItemListener { @@ -23,10 +22,11 @@ public class BlackScrollListener extends ItemListener { } event.setCancelled(true); - NBTCompound compound = current.getCompound("enchants"); + NBTCompound compound = current.getCompound("src/main/resources/enchants"); if (compound == null || compound.getKeys().isEmpty()) { - instance.getAction().perform(event.getWhoClicked(), "black-scroll.no-enchants"); + instance.getLocale().getMessage("blackscroll.noenchants") + .sendPrefixedMessage(event.getWhoClicked()); return; } @@ -38,11 +38,12 @@ public class BlackScrollListener extends ItemListener { event.getWhoClicked().getInventory().addItem(enchant.getBook().get(enchant, level, cursor.getInteger("success-rate"), 100)); event.setCurrentItem(toSet); - instance.getAction().perform(event.getWhoClicked(), "black-scroll.success", - of("enchant", enchant.getIdentifier()), - of("group_color", enchant.getGroup().getColor()), - of("group_name", enchant.getGroup().getName()), - of("level", RomanNumber.toRoman(level))); + instance.getLocale().getMessage("black-scroll.success") + .processPlaceholder("enchant", enchant.getIdentifier()) + .processPlaceholder("group_color", enchant.getGroup().getColor()) + .processPlaceholder("group_name", enchant.getGroup().getName()) + .processPlaceholder("level", RomanNumber.toRoman(level)) + .sendPrefixedMessage(event.getWhoClicked()); useItem(event); } diff --git a/src/main/java/com/songoda/epicenchants/listeners/item/BookListener.java b/src/main/java/com/songoda/epicenchants/listeners/item/BookListener.java index edc874a..cee9b9c 100644 --- a/src/main/java/com/songoda/epicenchants/listeners/item/BookListener.java +++ b/src/main/java/com/songoda/epicenchants/listeners/item/BookListener.java @@ -5,9 +5,9 @@ import com.songoda.epicenchants.enums.EnchantResult; import com.songoda.epicenchants.events.EnchantApplyEvent; import com.songoda.epicenchants.objects.Enchant; import com.songoda.epicenchants.objects.Group; +import com.songoda.epicenchants.utils.Tuple; +import com.songoda.epicenchants.utils.itemnbtapi.NBTItem; import com.songoda.epicenchants.utils.single.GeneralUtils; -import de.tr7zw.itemnbtapi.NBTItem; -import org.apache.commons.lang3.tuple.Pair; import org.bukkit.Bukkit; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.player.PlayerInteractEvent; @@ -16,7 +16,6 @@ import org.bukkit.inventory.ItemStack; import java.util.Optional; import static com.songoda.epicenchants.enums.EnchantResult.*; -import static com.songoda.epicenchants.objects.Placeholder.of; public class BookListener extends ItemListener { public BookListener(EpicEnchants instance) { @@ -49,10 +48,11 @@ public class BookListener extends ItemListener { return; } - Pair result = instance.getEnchantUtils().apply(toApply, enchant, enchantEvent.getLevel(), enchantEvent.getSuccessRate(), enchantEvent.getDestroyRate()); + Tuple result = instance.getEnchantUtils().apply(toApply, enchant, enchantEvent.getLevel(), enchantEvent.getSuccessRate(), enchantEvent.getDestroyRate()); - instance.getAction().perform(event.getWhoClicked(), GeneralUtils.getMessageFromResult(result.getRight()), - of("enchant", enchant.getIdentifier())); + instance.getLocale().getMessage(GeneralUtils.getMessageFromResult(result.getRight())) + .processPlaceholder("enchant", enchant.getIdentifier()) + .sendPrefixedMessage(event.getWhoClicked()); if (result.getRight() == BROKEN_FAILURE) { event.getClickedInventory().clear(event.getSlot()); @@ -88,10 +88,10 @@ public class BookListener extends ItemListener { useItem(event); event.getPlayer().getInventory().addItem(enchant.get().getBook().get(enchant.get())); - instance.getAction().perform(event.getPlayer(), "book.discover", - of("group_name", group.getName()), - of("group_color", group.getColor()), - of("enchant_format", enchant.get().getFormat()) - ); + instance.getLocale().getMessage("book.discover") + .processPlaceholder("group_name", group.getName()) + .processPlaceholder("group_color", group.getColor()) + .processPlaceholder("enchant_format", enchant.get().getFormat()) + .sendPrefixedMessage(event.getPlayer()); } } diff --git a/src/main/java/com/songoda/epicenchants/listeners/item/DustListener.java b/src/main/java/com/songoda/epicenchants/listeners/item/DustListener.java index 61ebb97..7fde7e3 100644 --- a/src/main/java/com/songoda/epicenchants/listeners/item/DustListener.java +++ b/src/main/java/com/songoda/epicenchants/listeners/item/DustListener.java @@ -3,7 +3,7 @@ package com.songoda.epicenchants.listeners.item; import com.songoda.epicenchants.EpicEnchants; import com.songoda.epicenchants.objects.Enchant; import com.songoda.epicenchants.objects.Group; -import de.tr7zw.itemnbtapi.NBTItem; +import com.songoda.epicenchants.utils.itemnbtapi.NBTItem; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.player.PlayerInteractEvent; diff --git a/src/main/java/com/songoda/epicenchants/listeners/item/ItemListener.java b/src/main/java/com/songoda/epicenchants/listeners/item/ItemListener.java index 0878157..26e930b 100644 --- a/src/main/java/com/songoda/epicenchants/listeners/item/ItemListener.java +++ b/src/main/java/com/songoda/epicenchants/listeners/item/ItemListener.java @@ -1,7 +1,7 @@ package com.songoda.epicenchants.listeners.item; import com.songoda.epicenchants.EpicEnchants; -import de.tr7zw.itemnbtapi.NBTItem; +import com.songoda.epicenchants.utils.itemnbtapi.NBTItem; import org.bukkit.Material; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; diff --git a/src/main/java/com/songoda/epicenchants/listeners/item/WhiteScrollListener.java b/src/main/java/com/songoda/epicenchants/listeners/item/WhiteScrollListener.java index 8e4c87f..fcff1ec 100644 --- a/src/main/java/com/songoda/epicenchants/listeners/item/WhiteScrollListener.java +++ b/src/main/java/com/songoda/epicenchants/listeners/item/WhiteScrollListener.java @@ -1,8 +1,8 @@ package com.songoda.epicenchants.listeners.item; import com.songoda.epicenchants.EpicEnchants; +import com.songoda.epicenchants.utils.itemnbtapi.NBTItem; import com.songoda.epicenchants.utils.objects.ItemBuilder; -import de.tr7zw.itemnbtapi.NBTItem; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; @@ -21,12 +21,13 @@ public class WhiteScrollListener extends ItemListener { event.setCancelled(true); if (current.hasKey("protected")) { - instance.getAction().perform(event.getWhoClicked(), "white-scroll.already-applied"); + instance.getLocale().getMessage("whitescroll.alreadyapplied") + .sendPrefixedMessage(event.getWhoClicked()); return; } current.setBoolean("protected", true); - instance.getAction().perform(event.getWhoClicked(), "white-scroll.applied"); + instance.getLocale().getMessage("whitescrollapplied").sendPrefixedMessage(event.getWhoClicked()); ItemStack toSet = new ItemBuilder(current.getItem()).addLore(instance.getSpecialItems().getWhiteScrollLore()).build(); diff --git a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/ClassWrapper.java b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/ClassWrapper.java index d927dd6..4c2d76c 100644 --- a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/ClassWrapper.java +++ b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/ClassWrapper.java @@ -1,4 +1,4 @@ -package com.songoda.epicbuckets.utils.itemnbtapi; +package com.songoda.epicenchants.utils.itemnbtapi; import org.bukkit.Bukkit; diff --git a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTCompound.java b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTCompound.java index 914a57f..70eefdf 100644 --- a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTCompound.java +++ b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTCompound.java @@ -1,6 +1,6 @@ -package com.songoda.epicbuckets.utils.itemnbtapi; +package com.songoda.epicenchants.utils.itemnbtapi; -import com.songoda.epicbuckets.utils.itemnbtapi.utils.MinecraftVersion; +import com.songoda.epicenchants.utils.itemnbtapi.utils.MinecraftVersion; import java.util.Set; diff --git a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTContainer.java b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTContainer.java index 6023122..0fc72c4 100644 --- a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTContainer.java +++ b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTContainer.java @@ -1,4 +1,4 @@ -package com.songoda.epicbuckets.utils.itemnbtapi; +package com.songoda.epicenchants.utils.itemnbtapi; public class NBTContainer extends NBTCompound { diff --git a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTEntity.java b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTEntity.java index 7eafb59..9bb58a7 100644 --- a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTEntity.java +++ b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTEntity.java @@ -1,4 +1,4 @@ -package com.songoda.epicbuckets.utils.itemnbtapi; +package com.songoda.epicenchants.utils.itemnbtapi; import org.bukkit.entity.Entity; diff --git a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTFile.java b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTFile.java index a3f0d4f..4341c8b 100644 --- a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTFile.java +++ b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTFile.java @@ -1,4 +1,4 @@ -package com.songoda.epicbuckets.utils.itemnbtapi; +package com.songoda.epicenchants.utils.itemnbtapi; import java.io.File; import java.io.FileInputStream; diff --git a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTItem.java b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTItem.java index 35536c0..da1ae7b 100644 --- a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTItem.java +++ b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTItem.java @@ -1,4 +1,4 @@ -package com.songoda.epicbuckets.utils.itemnbtapi; +package com.songoda.epicenchants.utils.itemnbtapi; import org.bukkit.inventory.ItemStack; diff --git a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTList.java b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTList.java index 7209869..f0df6d3 100644 --- a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTList.java +++ b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTList.java @@ -1,6 +1,6 @@ -package com.songoda.epicbuckets.utils.itemnbtapi; +package com.songoda.epicenchants.utils.itemnbtapi; -import com.songoda.epicbuckets.utils.itemnbtapi.utils.MinecraftVersion; +import com.songoda.epicenchants.utils.itemnbtapi.utils.MinecraftVersion; public class NBTList { diff --git a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTListCompound.java b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTListCompound.java index dad69fd..234543e 100644 --- a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTListCompound.java +++ b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTListCompound.java @@ -1,4 +1,4 @@ -package com.songoda.epicbuckets.utils.itemnbtapi; +package com.songoda.epicenchants.utils.itemnbtapi; import java.util.HashSet; import java.util.Set; diff --git a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTReflectionUtil.java b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTReflectionUtil.java index 9c30e55..8e694be 100644 --- a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTReflectionUtil.java +++ b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTReflectionUtil.java @@ -1,7 +1,7 @@ -package com.songoda.epicbuckets.utils.itemnbtapi; +package com.songoda.epicenchants.utils.itemnbtapi; -import com.songoda.epicbuckets.utils.itemnbtapi.utils.GsonWrapper; -import com.songoda.epicbuckets.utils.itemnbtapi.utils.MinecraftVersion; +import com.songoda.epicenchants.utils.itemnbtapi.utils.GsonWrapper; +import com.songoda.epicenchants.utils.itemnbtapi.utils.MinecraftVersion; import org.bukkit.block.BlockState; import org.bukkit.entity.Entity; diff --git a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTTileEntity.java b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTTileEntity.java index d9b7dbd..3f09d05 100644 --- a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTTileEntity.java +++ b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTTileEntity.java @@ -1,4 +1,4 @@ -package com.songoda.epicbuckets.utils.itemnbtapi; +package com.songoda.epicenchants.utils.itemnbtapi; import org.bukkit.block.BlockState; diff --git a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTType.java b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTType.java index bb68b5a..f54d603 100644 --- a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTType.java +++ b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/NBTType.java @@ -1,4 +1,4 @@ -package com.songoda.epicbuckets.utils.itemnbtapi; +package com.songoda.epicenchants.utils.itemnbtapi; public enum NBTType { NBTTagEnd(0), diff --git a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/ObjectCreator.java b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/ObjectCreator.java index 02636a2..d303394 100644 --- a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/ObjectCreator.java +++ b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/ObjectCreator.java @@ -1,4 +1,4 @@ -package com.songoda.epicbuckets.utils.itemnbtapi; +package com.songoda.epicenchants.utils.itemnbtapi; import java.lang.reflect.Constructor; diff --git a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/ReflectionMethod.java b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/ReflectionMethod.java index c7b52a8..3f6d844 100644 --- a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/ReflectionMethod.java +++ b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/ReflectionMethod.java @@ -1,6 +1,6 @@ -package com.songoda.epicbuckets.utils.itemnbtapi; +package com.songoda.epicenchants.utils.itemnbtapi; -import com.songoda.epicbuckets.utils.itemnbtapi.utils.MinecraftVersion; +import com.songoda.epicenchants.utils.itemnbtapi.utils.MinecraftVersion; import org.bukkit.inventory.ItemStack; import java.io.InputStream; diff --git a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/utils/GsonWrapper.java b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/utils/GsonWrapper.java index 5c85128..3fb7696 100644 --- a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/utils/GsonWrapper.java +++ b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/utils/GsonWrapper.java @@ -1,4 +1,4 @@ -package com.songoda.epicbuckets.utils.itemnbtapi.utils; +package com.songoda.epicenchants.utils.itemnbtapi.utils; import com.google.gson.Gson; diff --git a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/utils/MinecraftVersion.java b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/utils/MinecraftVersion.java index 2e5ae66..75b4f1b 100644 --- a/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/utils/MinecraftVersion.java +++ b/src/main/java/com/songoda/epicenchants/utils/itemnbtapi/utils/MinecraftVersion.java @@ -1,4 +1,4 @@ -package com.songoda.epicbuckets.utils.itemnbtapi.utils; +package com.songoda.epicenchants.utils.itemnbtapi.utils; import org.bukkit.Bukkit; diff --git a/src/main/java/com/songoda/epicenchants/utils/locale/Locale.java b/src/main/java/com/songoda/epicenchants/utils/locale/Locale.java index a12f68b..18b50f4 100644 --- a/src/main/java/com/songoda/epicenchants/utils/locale/Locale.java +++ b/src/main/java/com/songoda/epicenchants/utils/locale/Locale.java @@ -1,4 +1,4 @@ -package com.songoda.ultimateclaims.utils.locale; +package com.songoda.epicenchants.utils.locale; import org.bukkit.plugin.java.JavaPlugin; diff --git a/src/main/java/com/songoda/epicenchants/utils/locale/Message.java b/src/main/java/com/songoda/epicenchants/utils/locale/Message.java index 7ad2f6b..9ff0aa0 100644 --- a/src/main/java/com/songoda/epicenchants/utils/locale/Message.java +++ b/src/main/java/com/songoda/epicenchants/utils/locale/Message.java @@ -1,4 +1,4 @@ -package com.songoda.ultimateclaims.utils.locale; +package com.songoda.epicenchants.utils.locale; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; diff --git a/src/main/java/com/songoda/epicenchants/utils/objects/FileLocation.java b/src/main/java/com/songoda/epicenchants/utils/objects/FileLocation.java index 1364fb2..d0da630 100644 --- a/src/main/java/com/songoda/epicenchants/utils/objects/FileLocation.java +++ b/src/main/java/com/songoda/epicenchants/utils/objects/FileLocation.java @@ -1,4 +1,40 @@ package com.songoda.epicenchants.utils.objects; -public class FIleLocation { +public class FileLocation { + private final boolean required, versionDependent; + private final String path; + + private FileLocation(String path, boolean required, boolean versionDependent) { + this.required = required; + this.versionDependent = versionDependent; + this.path = path; + } + + public static FileLocation of(String path, boolean required) { + return new FileLocation(path, required, false); + } + + public static FileLocation of(String path, boolean required, boolean versionDependent) { + return new FileLocation(path, required, versionDependent); + } + + public String getResourcePath(String dir) { + return (versionDependent ? "version-dependent/" + dir + "/" : "") + path; + } + + public boolean isDirectory() { + return path.endsWith("/"); + } + + public boolean isRequired() { + return required; + } + + public boolean isVersionDependent() { + return versionDependent; + } + + public String getPath() { + return path; + } } diff --git a/src/main/java/com/songoda/epicenchants/utils/objects/ItemBuilder.java b/src/main/java/com/songoda/epicenchants/utils/objects/ItemBuilder.java index eb2626b..d2d368e 100644 --- a/src/main/java/com/songoda/epicenchants/utils/objects/ItemBuilder.java +++ b/src/main/java/com/songoda/epicenchants/utils/objects/ItemBuilder.java @@ -1,10 +1,10 @@ package com.songoda.epicenchants.utils.objects; import com.songoda.epicenchants.objects.Placeholder; +import com.songoda.epicenchants.utils.itemnbtapi.NBTItem; import com.songoda.epicenchants.utils.single.ConfigParser; import com.songoda.epicenchants.utils.single.GeneralUtils; import com.songoda.epicenchants.wrappers.EnchantmentWrapper; -import de.tr7zw.itemnbtapi.NBTItem; import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.enchantments.Enchantment; diff --git a/src/main/java/com/songoda/epicenchants/utils/settings/Category.java b/src/main/java/com/songoda/epicenchants/utils/settings/Category.java index 221b2fb..d3a07cd 100644 --- a/src/main/java/com/songoda/epicenchants/utils/settings/Category.java +++ b/src/main/java/com/songoda/epicenchants/utils/settings/Category.java @@ -1,21 +1,13 @@ -package com.songoda.ultimateclaims.utils.settings; +package com.songoda.epicenchants.utils.settings; public enum Category { MAIN("General settings and options."), INTERFACES("These settings allow you to alter the way interfaces look.", - "They are used in GUI's to make paterns, change them up then open up a", + "They are used in GUI's to make patterns, change them up then open up a", "GUI to see how it works."), - ENTITIES("Stacked Entity Settings."), - - ITEMS("Stacked Item Settings."), - - SPAWNERS("Stacked Spawner Settings."), - - DATABASE("Settings regarding the Database."), - SYSTEM("System related settings."); private String[] comments; diff --git a/src/main/java/com/songoda/epicenchants/utils/settings/Setting.java b/src/main/java/com/songoda/epicenchants/utils/settings/Setting.java index 70ed8a9..83d06dd 100644 --- a/src/main/java/com/songoda/epicenchants/utils/settings/Setting.java +++ b/src/main/java/com/songoda/epicenchants/utils/settings/Setting.java @@ -1,7 +1,7 @@ -package com.songoda.ultimateclaims.utils.settings; +package com.songoda.epicenchants.utils.settings; -import com.songoda.ultimateclaims.UltimateClaims; +import com.songoda.epicenchants.EpicEnchants; import org.bukkit.Material; import java.util.Arrays; @@ -10,47 +10,10 @@ import java.util.stream.Collectors; public enum Setting { - POWERCELL_RECIPE("Main.PowerCell Recipe", - Arrays.asList("3:IRON_INGOT", "4:DIAMOND", "5:IRON_INGOT", - "12:DIAMOND", "13:IRON_INGOT", "14:DIAMOND", - "21:IRON_INGOT", "22:DIAMOND", "23:IRON_INGOT"), - "The recipe players will need to place into a chest", - "in order to create a powercell."), + ROMAN("Main.Roman Numerals", true), - ITEM_VALUES("Main.PowerCell Item Values", - Arrays.asList("DIAMOND:120", "IRON_INGOT:30"), - "The value in minutes of each item put into the powercell."), - - ECONOMY_VALUE("Main.PowerCell Economy Value", 100, - "How much money should constitute one minute?"), - - MINIMUM_POWER("Main.Minimum PowerCell power", -30, - "The minimum amount of power allowed before a claim", - "auto dissolves."), - - POWERCELL_HOLOGRAMS("Main.Powercell Holograms", true, - "Should holograms be placed above powercells?"), - - CLAIMS_BOSSBAR("Main.Claims Use Boss Bar", false, - "Display a boss bar to players while they're in a claim?", - "Default behavior is to show a title on entry/exit."), - - CHUNKS_MUST_TOUCH("Main.Chunks Must Touch", true, - "Should chunks have to touch to be claimed?", - "This prevents people from claiming little pieces all over the place."), - - INVITE_TIMEOUT("Main.Invite Timeout", 30, - "The amount of time before an invite times out."), - - STARTING_POWER("Main.Starting Power", 10, - "The starting amount of power in minutes a claim gets.", - "This time should be used to create a powercell."), - - MAX_CHUNKS("Main.Max Chunks", 10, - "The maximum amount of chunks a claim can have."), - - MAX_MEMBERS("Main.Max Members", 10, - "The maximum amount of members a claim can have."), + BLACK_MIN("Main.Black Scroll Min", 20), + BLACK_MAX("Main.Black Scroll Max", 100), VAULT_ECONOMY("Economy.Use Vault Economy", true, "Should Vault be used?"), @@ -65,17 +28,11 @@ public enum Setting { GLASS_TYPE_2("Interfaces.Glass Type 2", 11), GLASS_TYPE_3("Interfaces.Glass Type 3", 3), + FIRST_LOAD("System.First Load", true), + LANGUGE_MODE("System.Language Mode", "en_US", "The enabled language file.", - "More language files (if available) can be found in the plugins data folder."), - - MYSQL_ENABLED("MySQL.Enabled", false, "Set to 'true' to use MySQL instead of SQLite for data storage."), - MYSQL_HOSTNAME("MySQL.Hostname", "localhost"), - MYSQL_PORT("MySQL.Port", 3306), - MYSQL_DATABASE("MySQL.Database", "your-database"), - MYSQL_USERNAME("MySQL.Username", "user"), - MYSQL_PASSWORD("MySQL.Password", "pass"), - MYSQL_USE_SSL("MySQL.Use SSL", false); + "More language files (if available) can be found in the plugins data folder."); private String setting; private Object option; @@ -112,39 +69,39 @@ public enum Setting { } public List getIntegerList() { - return UltimateClaims.getInstance().getConfig().getIntegerList(setting); + return EpicEnchants.getInstance().getConfig().getIntegerList(setting); } public List getStringList() { - return UltimateClaims.getInstance().getConfig().getStringList(setting); + return EpicEnchants.getInstance().getConfig().getStringList(setting); } public boolean getBoolean() { - return UltimateClaims.getInstance().getConfig().getBoolean(setting); + return EpicEnchants.getInstance().getConfig().getBoolean(setting); } public int getInt() { - return UltimateClaims.getInstance().getConfig().getInt(setting); + return EpicEnchants.getInstance().getConfig().getInt(setting); } public long getLong() { - return UltimateClaims.getInstance().getConfig().getLong(setting); + return EpicEnchants.getInstance().getConfig().getLong(setting); } public String getString() { - return UltimateClaims.getInstance().getConfig().getString(setting); + return EpicEnchants.getInstance().getConfig().getString(setting); } public char getChar() { - return UltimateClaims.getInstance().getConfig().getString(setting).charAt(0); + return EpicEnchants.getInstance().getConfig().getString(setting).charAt(0); } public double getDouble() { - return UltimateClaims.getInstance().getConfig().getDouble(setting); + return EpicEnchants.getInstance().getConfig().getDouble(setting); } public Material getMaterial() { - String materialStr = UltimateClaims.getInstance().getConfig().getString(setting); + String materialStr = EpicEnchants.getInstance().getConfig().getString(setting); Material material = Material.getMaterial(materialStr); if (material == null) { diff --git a/src/main/java/com/songoda/epicenchants/utils/settings/SettingsManager.java b/src/main/java/com/songoda/epicenchants/utils/settings/SettingsManager.java index 8dda56b..2a734b7 100644 --- a/src/main/java/com/songoda/epicenchants/utils/settings/SettingsManager.java +++ b/src/main/java/com/songoda/epicenchants/utils/settings/SettingsManager.java @@ -1,8 +1,8 @@ -package com.songoda.ultimateclaims.utils.settings; +package com.songoda.epicenchants.utils.settings; -import com.songoda.ultimateclaims.UltimateClaims; -import com.songoda.ultimateclaims.utils.Methods; -import com.songoda.ultimateclaims.utils.ServerVersion; +import com.songoda.epicenchants.EpicEnchants; +import com.songoda.epicenchants.utils.Methods; +import com.songoda.epicenchants.utils.ServerVersion; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -25,11 +25,11 @@ import java.util.*; */ public class SettingsManager implements Listener { - private final UltimateClaims plugin; + private final EpicEnchants plugin; private Map cat = new HashMap<>(); private Map current = new HashMap<>(); - public SettingsManager(UltimateClaims plugin) { + public SettingsManager(EpicEnchants plugin) { this.plugin = plugin; Bukkit.getPluginManager().registerEvents(this, plugin); } @@ -86,7 +86,7 @@ public class SettingsManager implements Listener { config.set(value, event.getMessage()); } - Bukkit.getScheduler().scheduleSyncDelayedTask(UltimateClaims.getInstance(), () -> + Bukkit.getScheduler().scheduleSyncDelayedTask(EpicEnchants.getInstance(), () -> this.finishEditing(player), 0L); event.setCancelled(true); diff --git a/src/main/java/com/songoda/epicenchants/utils/single/GeneralUtils.java b/src/main/java/com/songoda/epicenchants/utils/single/GeneralUtils.java index 673da6b..740b01e 100644 --- a/src/main/java/com/songoda/epicenchants/utils/single/GeneralUtils.java +++ b/src/main/java/com/songoda/epicenchants/utils/single/GeneralUtils.java @@ -15,7 +15,10 @@ import org.bukkit.inventory.ItemStack; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; -import java.util.*; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Set; import java.util.concurrent.ThreadLocalRandom; import java.util.stream.Collectors; diff --git a/src/main/java/com/songoda/epicenchants/utils/single/ItemGroup.java b/src/main/java/com/songoda/epicenchants/utils/single/ItemGroup.java index 5dd12be..642ff00 100644 --- a/src/main/java/com/songoda/epicenchants/utils/single/ItemGroup.java +++ b/src/main/java/com/songoda/epicenchants/utils/single/ItemGroup.java @@ -3,7 +3,6 @@ package com.songoda.epicenchants.utils.single; import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; import com.songoda.epicenchants.EpicEnchants; -import lombok.Getter; import org.apache.commons.lang.StringUtils; import org.bukkit.Material; @@ -128,7 +127,7 @@ public class ItemGroup { HELMETS, ARMOR(BOOTS, LEGGINGS, CHESTPLATES, HELMETS); - @Getter private final Set children; + private final Set children; Group(Group... child) { children = child == null ? new HashSet<>() : new HashSet<>(Arrays.asList(child)); @@ -141,5 +140,9 @@ public class ItemGroup { public String getName() { return StringUtils.capitalize(toString().toLowerCase()); } + + public Set getChildren() { + return this.children; + } } }