diff --git a/src/main/java/world/bentobox/challenges/ChallengesImportManager.java b/src/main/java/world/bentobox/challenges/ChallengesImportManager.java index 82f57f9..eb0ca8d 100644 --- a/src/main/java/world/bentobox/challenges/ChallengesImportManager.java +++ b/src/main/java/world/bentobox/challenges/ChallengesImportManager.java @@ -12,12 +12,9 @@ import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.EntityType; import org.bukkit.inventory.ItemStack; -import world.bentobox.bentobox.api.configuration.Config; import world.bentobox.bentobox.util.ItemParser; import world.bentobox.challenges.database.object.ChallengeLevel; -import world.bentobox.challenges.database.object.ChallengeLevels; import world.bentobox.challenges.database.object.Challenge; -import world.bentobox.challenges.database.object.Challenges; import world.bentobox.bentobox.api.user.User; import world.bentobox.bentobox.util.Util; import world.bentobox.challenges.utils.GuiUtils; @@ -40,10 +37,6 @@ public class ChallengesImportManager */ public ChallengesImportManager(ChallengesAddon challengesAddon) { this.addon = challengesAddon; - File challengeFile = new File(addon.getDataFolder(), "challenges.yml"); - if (!challengeFile.exists()) { - addon.saveResource("challenges.yml",false); - } } /** @@ -205,173 +198,4 @@ public class ChallengesImportManager } return result; } - - -// --------------------------------------------------------------------- -// Section: Backward compatibility -// --------------------------------------------------------------------- - - - /** - * This method imports challenges form 0.3 and below version. - * @param user - user - * @param world - world to import into - * @param overwrite - true if previous ones should be overwritten - * @return true if successful - */ - public boolean importPreviousChallenges(User user, World world, boolean overwrite) - { - ChallengesManager manager = this.addon.getChallengesManager(); - - List challenges = - new Config<>(this.addon, Challenges.class).loadConfigObjects(); - - if (!challenges.isEmpty()) - { - List levels = - new Config<>(this.addon, ChallengeLevels.class).loadConfigObjects(); - - for (ChallengeLevels level : levels) - { - ChallengeLevel newlevel = this.createLevel(level, world); - - if (newlevel != null) - { - manager.loadLevel(newlevel, overwrite, user, false); - } - } - - for (Challenges challenge : challenges) - { - Challenge newChallenge = this.createChallenge(challenge, world); - - if (newChallenge == null) - { - continue; - } - - manager.loadChallenge(newChallenge, overwrite, user, false); - - if (challenge.getLevel().isEmpty() || challenge.getLevel().equals("FREE")) - { - newChallenge.setLevel(ChallengesManager.FREE); - } - else - { - String levelName = Util.getWorld(world).getName() + "_" + challenge.getLevel(); - - if (this.addon.getChallengesManager().containsLevel(levelName)) - { - manager.addChallengeToLevel(newChallenge, - this.addon.getChallengesManager().getLevel(levelName)); - } - } - } - } - - return true; - } - - - /** - * This method creates new ChallengeLevel based on old level settings. - * @param level Old level object. - * @param world World where new challenge will operate. - * @return New level or null, if old level does not operate in this world. - */ - private ChallengeLevel createLevel(ChallengeLevels level, World world) - { - if (!level.getWorlds().isEmpty() && - !level.getWorlds().contains(Util.getWorld(world).getName())) - { - return null; - } - - ChallengeLevel newLevel = new ChallengeLevel(); - newLevel.setUniqueId(Util.getWorld(world).getName() + "_" + level.getUniqueId()); - newLevel.setFriendlyName(level.getFriendlyName()); - newLevel.setOrder(level.getOrder()); - newLevel.setWorld(Util.getWorld(world).getName()); - - newLevel.setUnlockMessage(level.getUnlockMessage()); - newLevel.setWaiverAmount(level.getWaiveramount()); - - newLevel.setRewardText(level.getRewardDescription()); - newLevel.setRewardMoney(level.getMoneyReward()); - newLevel.setRewardExperience(level.getExpReward()); - newLevel.setRewardItems(level.getRewardItems()); - newLevel.setRewardCommands(level.getRewardCommands()); - - return newLevel; - } - - - /** - * This method creates new Challenge based on old challenges settings. - * @param challenge Old challenges object. - * @param world World where new challenge will operate. - * @return New Challenge or null, if old challenge does not operate in this world. - */ - private Challenge createChallenge(Challenges challenge, World world) - { - if (!challenge.getWorld().equals(Util.getWorld(world).getName())) - { - // Does not operate in given world. - return null; - } - - Challenge newChallenge = new Challenge(); - newChallenge.setUniqueId(challenge.getUniqueId()); - newChallenge.setFriendlyName(challenge.getFriendlyName()); - newChallenge.setRemoveWhenCompleted(challenge.isRemoveWhenCompleted()); - newChallenge.setDeployed(challenge.isDeployed()); - newChallenge.setIcon(challenge.getIcon()); - - newChallenge.setEnvironment(new HashSet<>(challenge.getEnvironment())); - - switch (challenge.getChallengeType()) - { - case INVENTORY: - newChallenge.setChallengeType(Challenge.ChallengeType.INVENTORY); - break; - case ISLAND: - newChallenge.setChallengeType(Challenge.ChallengeType.ISLAND); - break; - default: - newChallenge.setChallengeType(Challenge.ChallengeType.OTHER); - break; - } - - newChallenge.setOrder(challenge.getSlot()); - newChallenge.setDescription(challenge.getDescription()); - - newChallenge.setRequiredEntities(challenge.getRequiredEntities()); - newChallenge.setRequiredItems(challenge.getRequiredItems()); - newChallenge.setRequiredBlocks(challenge.getRequiredBlocks()); - newChallenge.setRequiredMoney(challenge.getReqMoney()); - newChallenge.setRequiredExperience(challenge.getReqExp()); - newChallenge.setRequiredIslandLevel(challenge.getReqIslandlevel()); - newChallenge.setRequiredPermissions(challenge.getReqPerms()); - - newChallenge.setTakeMoney(challenge.isTakeMoney()); - newChallenge.setTakeItems(challenge.isTakeItems()); - newChallenge.setSearchRadius(challenge.getSearchRadius()); - - newChallenge.setRewardText(challenge.getRewardText()); - newChallenge.setRewardItems(challenge.getRewardItems()); - newChallenge.setRewardMoney(challenge.getRewardMoney()); - newChallenge.setRewardExperience(challenge.getRewardExp()); - newChallenge.setRewardCommands(challenge.getRewardCommands()); - - newChallenge.setRepeatable(challenge.isRepeatable()); - newChallenge.setMaxTimes(challenge.getMaxTimes()); - - newChallenge.setRepeatRewardText(challenge.getRepeatRewardText()); - newChallenge.setRepeatItemReward(challenge.getRepeatItemReward()); - newChallenge.setRepeatMoneyReward(challenge.getRepeatMoneyReward()); - newChallenge.setRepeatExperienceReward(challenge.getRepeatExpReward()); - newChallenge.setRepeatRewardCommands(challenge.getRepeatRewardCommands()); - - return newChallenge; - } } \ No newline at end of file diff --git a/src/main/java/world/bentobox/challenges/database/object/ChallengeLevels.java b/src/main/java/world/bentobox/challenges/database/object/ChallengeLevels.java deleted file mode 100644 index cba2d32..0000000 --- a/src/main/java/world/bentobox/challenges/database/object/ChallengeLevels.java +++ /dev/null @@ -1,226 +0,0 @@ -package world.bentobox.challenges.database.object; - -import java.util.ArrayList; -import java.util.List; - -import org.bukkit.inventory.ItemStack; - -import world.bentobox.challenges.ChallengesManager; -import world.bentobox.bentobox.api.configuration.ConfigComment; -import world.bentobox.bentobox.database.objects.DataObject; - -/** - * Represent a challenge level - * @author tastybento - * - */ -@Deprecated -public class ChallengeLevels implements DataObject, Comparable { - - public ChallengeLevels() {} - - @ConfigComment("A friendly name for the level. If blank, level name is used.") - private String friendlyName = ""; - - @ConfigComment("Worlds that this level applies in. String list.") - private List worlds = new ArrayList<>(); - - @ConfigComment("Commands to run when this level is completed") - private List rewardCommands = new ArrayList<>(); - - @ConfigComment("Level name") - private String uniqueId = ChallengesManager.FREE; - - @ConfigComment("The number of undone challenges that can be left on this level before unlocking next level") - private int waiveramount = 1; - - @ConfigComment("The ordering of the levels, lowest to highest") - private int order = 0; - - @ConfigComment("The message shown when unlocking this level") - private String unlockMessage = ""; - - @ConfigComment("Unlock reward description") - private String rewardDescription = ""; - - @ConfigComment("List of reward itemstacks") - private List rewardItems; - - @ConfigComment("Unlock experience reward") - private int expReward; - - @ConfigComment("Unlock money reward") - private int moneyReward; - - public String getFriendlyName() { - return friendlyName; - } - - public List getRewardCommands() { - return rewardCommands = new ArrayList<>(); - } - - @Override - public String getUniqueId() { - return uniqueId; - } - - /** - * Get the number of undone tasks that can be left on a level before unlocking next level - * @return - */ - public int getWaiveramount() { - return waiveramount; - } - - public void setFriendlyName(String friendlyName) { - this.friendlyName = friendlyName; - } - - public void setRewardCommands(List rewardCommands) { - this.rewardCommands = rewardCommands; - } - - @Override - public void setUniqueId(String uniqueId) { - this.uniqueId = uniqueId; - } - - public void setWaiveramount(int waiveramount) { - this.waiveramount = waiveramount; - } - - public int getOrder() { - return order; - } - - public void setOrder(int order) { - this.order = order; - } - - @Override - public int compareTo(ChallengeLevels o) { - return Integer.compare(this.order, o.order); - } - - /** - * @return the rewardDescription - */ - public String getRewardDescription() { - return rewardDescription; - } - - /** - * @param rewardDescription the rewardDescription to set - */ - public void setRewardDescription(String rewardDescription) { - this.rewardDescription = rewardDescription; - } - - /** - * @return the rewardItems - */ - public List getRewardItems() { - return rewardItems; - } - - /** - * @param rewardItems the rewardItems to set - */ - public void setRewardItems(List rewardItems) { - this.rewardItems = rewardItems; - } - - /** - * @return the expReward - */ - public int getExpReward() { - return expReward; - } - - /** - * @param expReward the expReward to set - */ - public void setExpReward(int expReward) { - this.expReward = expReward; - } - - /** - * @return the moneyReward - */ - public int getMoneyReward() { - return moneyReward; - } - - /** - * @param moneyReward the moneyReward to set - */ - public void setMoneyReward(int moneyReward) { - this.moneyReward = moneyReward; - } - - /** - * @return the unlockMessage - */ - public String getUnlockMessage() { - return unlockMessage; - } - - /** - * @param unlockMessage the unlockMessage to set - */ - public void setUnlockMessage(String unlockMessage) { - this.unlockMessage = unlockMessage; - } - - /** - * @return the worlds - */ - public List getWorlds() { - return worlds; - } - - /** - * @param worlds the worlds to set - */ - public void setWorlds(List worlds) { - this.worlds = worlds; - } - - /* (non-Javadoc) - * @see java.lang.Object#hashCode() - */ - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((uniqueId == null) ? 0 : uniqueId.hashCode()); - return result; - } - - /* (non-Javadoc) - * @see java.lang.Object#equals(java.lang.Object) - */ - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (!(obj instanceof ChallengeLevels)) { - return false; - } - ChallengeLevels other = (ChallengeLevels) obj; - if (uniqueId == null) { - if (other.uniqueId != null) { - return false; - } - } else if (!uniqueId.equals(other.uniqueId)) { - return false; - } - return true; - } - -} diff --git a/src/main/java/world/bentobox/challenges/database/object/Challenges.java b/src/main/java/world/bentobox/challenges/database/object/Challenges.java deleted file mode 100644 index d78500a..0000000 --- a/src/main/java/world/bentobox/challenges/database/object/Challenges.java +++ /dev/null @@ -1,634 +0,0 @@ -package world.bentobox.challenges.database.object; - -import java.util.ArrayList; -import java.util.EnumMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.entity.EntityType; -import org.bukkit.inventory.ItemStack; - -import world.bentobox.challenges.ChallengesManager; -import world.bentobox.bentobox.api.configuration.ConfigComment; -import world.bentobox.bentobox.database.objects.DataObject; - -/** - * Data object for challenges - * @author tastybento - * - */ -@Deprecated -public class Challenges implements DataObject { - - public Challenges() {} - - public enum ChallengeType { - /** - * This challenge only shows and icon in the GUI and doesn't do anything. - */ - ICON, - /** - * The player must have the items on them. - */ - INVENTORY, - /** - * The island level has to be equal or over this amount. Only works if there's an island level plugin installed. - */ - LEVEL, - /** - * Items or required entities have to be within x blocks of the player. - */ - ISLAND - } - - // The order of the fields is the order shown in the YML files - @ConfigComment("Whether this challenge is deployed or not") - private boolean deployed; - - // Description - @ConfigComment("Name of the icon and challenge. May include color codes. Single line.") - private String friendlyName = ""; - @ConfigComment("Description of the challenge. Will become the lore on the icon. Can include & color codes. String List.") - private List description = new ArrayList<>(); - @ConfigComment("The icon in the GUI for this challenge. ItemStack.") - private ItemStack icon = new ItemStack(Material.PAPER); - @ConfigComment("Icon slot where this challenge should be placed. 0 to 49. A negative value means any slot") - private int slot = -1; - - // Definition - @ConfigComment("Challenge level. Default is Free") - private String level = ChallengesManager.FREE; - @ConfigComment("Challenge type can be ICON, INVENTORY, LEVEL or ISLAND.") - private ChallengeType challengeType = ChallengeType.INVENTORY; - @ConfigComment("World where this challenge operates. List only overworld. Nether and end are automatically covered.") - private String world = ""; - @ConfigComment("List of environments where this challenge will occur: NETHER, NORMAL, THE_END. Leave blank for all.") - private List environment = new ArrayList<>(); - @ConfigComment("The required permissions to see this challenge. String list.") - private Set reqPerms = new HashSet<>(); - @ConfigComment("The number of blocks around the player to search for items on an island") - private int searchRadius = 10; - @ConfigComment("If true, the challenge will disappear from the GUI when completed") - private boolean removeWhenCompleted; - @ConfigComment("Take the required items from the player") - private boolean takeItems = true; - @ConfigComment("Take the money from the player") - private boolean takeMoney = false; - - // Requirements - @ConfigComment("This is a map of the blocks required in a ISLAND challenge. Material, Integer") - private Map requiredBlocks = new EnumMap<>(Material.class); - @ConfigComment("The items that must be in the inventory to complete the challenge. ItemStack List.") - private List requiredItems = new ArrayList<>(); - @ConfigComment("Any entities that must be in the area for ISLAND type challenges. Map EntityType, Number") - private Map requiredEntities = new EnumMap<>(EntityType.class); - @ConfigComment("Required experience") - private int reqExp; - @ConfigComment("Required island level for this challenge. Only works if Level Addon is being used.") - private long reqIslandlevel; - @ConfigComment("Required money") - private int reqMoney; - - // Rewards - @ConfigComment("List of items the player will receive first time. ItemStack List.") - private List rewardItems = new ArrayList<>(); - @ConfigComment("If this is blank, the reward text will be auto-generated, otherwise this will be used.") - private String rewardText = ""; - @ConfigComment("Experience point reward") - private int rewardExp; - @ConfigComment("Money reward") - private int rewardMoney; - @ConfigComment("Commands to run when the player completes the challenge for the first time. String List") - private List rewardCommands = new ArrayList<>(); - - // Repeatable - @ConfigComment("True if the challenge is repeatable") - private boolean repeatable; - @ConfigComment("Maximum number of times the challenge can be repeated") - private int maxTimes = 1; - @ConfigComment("Repeat exp award") - private int repeatExpReward; - @ConfigComment("Reward items for repeating the challenge. List of ItemStacks.") - private List repeatItemReward = new ArrayList<>(); - @ConfigComment("Repeat money award") - private int repeatMoneyReward; - @ConfigComment("Commands to run when challenge is repeated. String List.") - private List repeatRewardCommands = new ArrayList<>(); - @ConfigComment("Description of the repeat rewards. If blank, it will be autogenerated.") - private String repeatRewardText = ""; - - - @ConfigComment("Unique name of the challenge") - private String uniqueId = ""; - - /* - * END OF SETTINGS - */ - - /** - * @return the challengeType - */ - public ChallengeType getChallengeType() { - return challengeType; - } - - /** - * @param challengeType the challengeType to set - */ - public void setChallengeType(ChallengeType challengeType) { - this.challengeType = challengeType; - } - - /** - * @return the deployed - */ - public boolean isDeployed() { - return deployed; - } - - /** - * @param deployed the deployed to set - */ - public void setDeployed(boolean deployed) { - this.deployed = deployed; - } - - /** - * @return the description - */ - public List getDescription() { - return description; - } - - /** - * @param description the description to set - */ - public void setDescription(List description) { - this.description = description; - } - - /** - * @return the expReward - */ - public int getRewardExp() { - return rewardExp; - } - - /** - * @param expReward the expReward to set - */ - public void setRewardExp(int expReward) { - this.rewardExp = expReward; - } - - /** - * @return the friendlyName - */ - public String getFriendlyName() { - return friendlyName; - } - - /** - * @param friendlyName the friendlyName to set - */ - public void setFriendlyName(String friendlyName) { - this.friendlyName = friendlyName; - } - - /** - * @return the icon - */ - public ItemStack getIcon() { - return icon != null ? icon.clone() : new ItemStack(Material.MAP); - } - - /** - * @param icon the icon to set - */ - public void setIcon(ItemStack icon) { - this.icon = icon; - } - - /** - * @return the level - */ - public String getLevel() { - return level; - } - - /** - * @param level the level to set - */ - public void setLevel(String level) { - if (level.isEmpty()) { - level = ChallengesManager.FREE; - } - this.level = level; - } - - /** - * @return the maxTimes - */ - public int getMaxTimes() { - return maxTimes; - } - - /** - * @param maxTimes the maxTimes to set - */ - public void setMaxTimes(int maxTimes) { - this.maxTimes = maxTimes; - } - - /** - * @return the moneyReward - */ - public int getRewardMoney() { - return rewardMoney; - } - - /** - * @param moneyReward the moneyReward to set - */ - public void setRewardMoney(int moneyReward) { - this.rewardMoney = moneyReward; - } - - /** - * @return the removeWhenCompleted - */ - public boolean isRemoveWhenCompleted() { - return removeWhenCompleted; - } - - /** - * @param removeWhenCompleted the removeWhenCompleted to set - */ - public void setRemoveWhenCompleted(boolean removeWhenCompleted) { - this.removeWhenCompleted = removeWhenCompleted; - } - - /** - * @return the repeatable - */ - public boolean isRepeatable() { - return repeatable; - } - - /** - * @param repeatable the repeatable to set - */ - public void setRepeatable(boolean repeatable) { - this.repeatable = repeatable; - } - - /** - * @return the repeatExpReward - */ - public int getRepeatExpReward() { - return repeatExpReward; - } - - /** - * @param repeatExpReward the repeatExpReward to set - */ - public void setRepeatExpReward(int repeatExpReward) { - this.repeatExpReward = repeatExpReward; - } - - /** - * @return the repeatItemReward - */ - public List getRepeatItemReward() { - return repeatItemReward; - } - - /** - * @param repeatItemReward the repeatItemReward to set - */ - public void setRepeatItemReward(List repeatItemReward) { - this.repeatItemReward = repeatItemReward; - } - - /** - * @return the repeatMoneyReward - */ - public int getRepeatMoneyReward() { - return repeatMoneyReward; - } - - /** - * @param repeatMoneyReward the repeatMoneyReward to set - */ - public void setRepeatMoneyReward(int repeatMoneyReward) { - this.repeatMoneyReward = repeatMoneyReward; - } - - /** - * @return the repeatRewardCommands - */ - public List getRepeatRewardCommands() { - return repeatRewardCommands; - } - - /** - * @param repeatRewardCommands the repeatRewardCommands to set - */ - public void setRepeatRewardCommands(List repeatRewardCommands) { - this.repeatRewardCommands = repeatRewardCommands; - } - - /** - * @return the repeatRewardText - */ - public String getRepeatRewardText() { - return repeatRewardText; - } - - /** - * @param repeatRewardText the repeatRewardText to set - */ - public void setRepeatRewardText(String repeatRewardText) { - this.repeatRewardText = repeatRewardText; - } - - /** - * @return the reqExp - */ - public int getReqExp() { - return reqExp; - } - - /** - * @param reqExp the reqExp to set - */ - public void setReqExp(int reqExp) { - this.reqExp = reqExp; - } - - /** - * @return the reqIslandlevel - */ - public long getReqIslandlevel() { - return reqIslandlevel; - } - - /** - * @param reqIslandlevel the reqIslandlevel to set - */ - public void setReqIslandlevel(long reqIslandlevel) { - this.reqIslandlevel = reqIslandlevel; - } - - /** - * @return the reqMoney - */ - public int getReqMoney() { - return reqMoney; - } - - /** - * @param reqMoney the reqMoney to set - */ - public void setReqMoney(int reqMoney) { - this.reqMoney = reqMoney; - } - - /** - * @return the reqPerms - */ - public Set getReqPerms() { - return reqPerms; - } - - /** - * @param reqPerms the reqPerms to set - */ - public void setReqPerms(Set reqPerms) { - this.reqPerms = reqPerms; - } - - /** - * @return the requiredItems - */ - public List getRequiredItems() { - return requiredItems; - } - - /** - * @param requiredItems the requiredItems to set - */ - public void setRequiredItems(List requiredItems) { - this.requiredItems = requiredItems; - } - - /** - * @return requiredEntities - */ - public Map getRequiredEntities() { - return requiredEntities; - } - - /** - * @param requiredEntities the requiredEntities to set - */ - public void setRequiredEntities(Map requiredEntities) { - this.requiredEntities = requiredEntities; - } - - /** - * @return the requiredBlocks - */ - public Map getRequiredBlocks() { - return requiredBlocks; - } - - /** - * @param map the requiredBlocks to set - */ - public void setRequiredBlocks(Map map) { - this.requiredBlocks = map; - } - - /** - * @return the rewardCommands - */ - public List getRewardCommands() { - return rewardCommands; - } - - /** - * @param rewardCommands the rewardCommands to set - */ - public void setRewardCommands(List rewardCommands) { - this.rewardCommands = rewardCommands; - } - - /** - * @return the itemReward - */ - public List getRewardItems() { - return rewardItems; - } - - /** - * @param itemReward the itemReward to set - */ - public void setRewardItems(List itemReward) { - this.rewardItems = itemReward; - } - - /** - * @return the rewardText - */ - public String getRewardText() { - return rewardText; - } - - /** - * @param rewardText the rewardText to set - */ - public void setRewardText(String rewardText) { - this.rewardText = rewardText; - } - - /** - * @return the searchRadius - */ - public int getSearchRadius() { - return searchRadius; - } - - /** - * @param searchRadius the searchRadius to set - */ - public void setSearchRadius(int searchRadius) { - this.searchRadius = searchRadius; - } - - /** - * @return the slot - */ - public int getSlot() { - return slot; - } - - /** - * @param slot the slot to set - */ - public void setSlot(int slot) { - this.slot = slot; - } - - /** - * @return the takeItems - */ - public boolean isTakeItems() { - return takeItems; - } - - /** - * @param takeItems the takeItems to set - */ - public void setTakeItems(boolean takeItems) { - this.takeItems = takeItems; - } - - /** - * @return the takeMoney - */ - public boolean isTakeMoney() { - return takeMoney; - } - - /** - * @param takeMoney the takeMoney to set - */ - public void setTakeMoney(boolean takeMoney) { - this.takeMoney = takeMoney; - } - - /** - * @return the environment - */ - public List getEnvironment() { - return environment; - } - - /** - * @param environment the environment to set - */ - public void setEnvironment(List environment) { - this.environment = environment; - } - - /** - * @return the worlds - */ - public String getWorld() { - return world; - } - - /** - * @param worlds the worlds to set - */ - public void setWorld(String world) { - this.world = world; - } - - /** - * @return the uniqueId - */ - @Override - public String getUniqueId() { - return uniqueId; - } - - /** - * @param uniqueId the uniqueId to set - */ - @Override - public void setUniqueId(String uniqueId) { - this.uniqueId = uniqueId; - } - - /* (non-Javadoc) - * @see java.lang.Object#hashCode() - */ - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((uniqueId == null) ? 0 : uniqueId.hashCode()); - return result; - } - - /* (non-Javadoc) - * @see java.lang.Object#equals(java.lang.Object) - */ - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (!(obj instanceof Challenges)) { - return false; - } - Challenges other = (Challenges) obj; - if (uniqueId == null) { - if (other.uniqueId != null) { - return false; - } - } else if (!uniqueId.equals(other.uniqueId)) { - return false; - } - return true; - } -} diff --git a/src/main/java/world/bentobox/challenges/panel/admin/AdminGUI.java b/src/main/java/world/bentobox/challenges/panel/admin/AdminGUI.java index 76f5dcc..5558652 100644 --- a/src/main/java/world/bentobox/challenges/panel/admin/AdminGUI.java +++ b/src/main/java/world/bentobox/challenges/panel/admin/AdminGUI.java @@ -56,8 +56,6 @@ public class AdminGUI extends CommonGUI DELETE_CHALLENGE, DELETE_LEVEL, IMPORT_CHALLENGES, - BACKWARD_CHALLENGES, - BACKWARD_PLAYER_DATA, EDIT_SETTINGS } @@ -113,8 +111,6 @@ public class AdminGUI extends CommonGUI // Import Challenges panelBuilder.item(15, this.createButton(Button.IMPORT_CHALLENGES)); - panelBuilder.item(24, this.createButton(Button.BACKWARD_CHALLENGES)); - panelBuilder.item(33, this.createButton(Button.BACKWARD_PLAYER_DATA)); // Edit Addon Settings panelBuilder.item(16, this.createButton(Button.EDIT_SETTINGS)); @@ -375,47 +371,6 @@ public class AdminGUI extends CommonGUI break; } - case BACKWARD_CHALLENGES: - { - permissionSuffix = IMPORT; - - name = this.user.getTranslation("challenges.gui.buttons.admin.backward"); - description = this.user.getTranslation("challenges.gui.descriptions.admin.backward"); - icon = new ItemStack(Material.HOPPER); - clickHandler = (panel, user, clickType, slot) -> { - this.addon.getImportManager(). - importPreviousChallenges(this.user, this.world, false); - - return true; - }; - glow = false; - - break; - } - case BACKWARD_PLAYER_DATA: - { - permissionSuffix = IMPORT; - - name = this.user.getTranslation("challenges.gui.buttons.admin.backward-player"); - description = this.user.getTranslation("challenges.gui.descriptions.admin.backward-player"); - icon = new ItemStack(Material.HOPPER); - clickHandler = (panel, user, clickType, slot) -> { - - new ConfirmationGUI(this.user, status -> { - if (status) - { - this.addon.getChallengesManager().fixCorruptedPlayerData(); - } - - this.build(); - }); - - return true; - }; - glow = false; - - break; - } case EDIT_SETTINGS: { permissionSuffix = SETTINGS; diff --git a/src/main/resources/challenges.yml b/src/main/resources/challenges.yml deleted file mode 100644 index c49978b..0000000 --- a/src/main/resources/challenges.yml +++ /dev/null @@ -1,787 +0,0 @@ -########################################################################################## -# Example challenges.yml file. This is the same format as ASkyBlock. -# Use the cimport command to import the challenges to your world. -# For example: /bsbadmin challenges import -# to overwrite previous challenges, use /bsbadmin challenges import overwrite -# Once challenges are imported, you can edit them directly in the database folder. -# BSkyBlock offers more features in the native challenge definition files. -# Do not use ASkyBlock format for editing challenges, as it misses a lot of functions that -# is added in new Challenges Add-on. This feature is just for admins who want to use old -# challenges for new BentoBox plugin. -# This is just a converter, not editor. -# -########################################################################################## -# Rewards and required items have to be described using Bukkit Materials -# and be exactly correct -# Do not use Type Id numbers - they will not work! -# Challenges can be one of three types - inventory, island or level. -# inventory - means the player must have the items on them -# island - means the items have to be on the island and within 10 blocks of the player -# entities are also supported, e.g., COW. -# level - means the island level has to be equal or over this amount. -# If level is set as nothing '', then the challenge is a free challenge and can be -# done at any time. -# Challenges can be repeatable only if they are inventory challenges -# permissions can be given as a reward -# -# Reward Commands - commands can be run when a challenge is completed and repeated -# Commands are: -# rewardcommands: -# - command1 -# - command2 -# repeatrewardcommands: -# - command1 -# - command2 -# The commands are listed and run in order. Do not put a / in front of the command. -# The token [player] will be replaced with the player's name. -# Example: -# rewardcommands: -# - pex promote [player] -# - heal [player] -# - warp winner_circle [player] -# If a command fails, it will be noted in the console. -# -# The format for POTIONS is as follows: -# -# Format POTION:NAME::::QTY -# LEVEL, EXTENDED, SPLASH, LINGER are optional. -# LEVEL is a number, 1 or 2 -# LINGER is for V1.9 servers and later -# Examples: -# POTION:STRENGTH:1:EXTENDED:SPLASH:1 -# POTION:INSTANT_DAMAGE:2::LINGER:2 -# POTION:JUMP:2:NOTEXTENDED:NOSPLASH:1 -# POTION:WEAKNESS::::1 - any weakness potion -# -# Valid potion names are: -# WATER, REGEN, SPEED, FIRE_RESISTANCE, POISON, INSTANT_HEAL, NIGHT_VISION, WEAKNESS, -# STRENGTH, SLOWNESS, JUMP, INSTANT_DAMAGE, WATER_BREATHING, INVISIBILITY -# For V1.9 these are also available: -# LUCK, MUNDANE, THICK, AWKWARD -# -# -# Reseting islands and challenges - usually challenges are reset when a player resets -# their island (see resetchallenges in config.yml). You can stop some challenges from -# being reset by using resetallowed:false in the challenge. -########################################################################################## - -challenges: - # Challenge levels - list as many as you like. If a challenge's level is '' it can - # be done anytime. You cannot name a challenge the same as a level. - levels: 'Novice Competent Expert Advanced Elite' - - # The number of undone tasks that can be left on a level before unlocking next level - waiveramount: 1 - - # Free levels - which levels above should be auto done when reached, therefore unlocking next level. - # Example: - # freelevels: 'Novice' will immediately put player onto Competent level challenges - # freelevels: 'Novice Competent' will make all Novice, Competent and Expert challenges available immediately. - # freelevels: 'Competent' will open Competent and Expert levels once Novice is complete - freelevels: '' - - # This section determines what happens when a player unlocks a new level - # The subname should correspond to the levels listed above - # Note that there is no section for the first level as it is automatically unlocked - levelUnlock: - Competent: - # What additional message to send player - message: 'Congratulations - you unlocked the &9Competent level!' - rewardDesc: 'A diamond!' - itemReward: 'DIAMOND:1' - moneyReward: 100 - expReward: 100 - # List permissions separated by spaces - permissionReward: '' - # Commands to run on this player. Use [player] for their name. - commands: - #- kit tools [player] - #- some other command - Expert: - # What additional message to send player - message: 'Congratulations - you unlocked the &aExpert level!' - rewardDesc: '3 diamonds!' - itemReward: 'DIAMOND:3' - moneyReward: 100 - expReward: 100 - permissionReward: '' - # Commands to run on this player. Use [player] for their name. - commands: - #- kit tools [player] - #- some other command - Advanced: - # What additional message to send player - message: 'Congratulations - you unlocked the &bAdvanced level!' - rewardDesc: '5 diamonds!' - itemReward: 'DIAMOND:5' - moneyReward: 100 - expReward: 100 - permissionReward: '' - # Commands to run on this player. Use [player] for their name. - commands: - #- kit tools [player] - #- some other command - Elite: - # What additional message to send player - message: 'Congratulations - you unlocked the &dElite level!' - rewardDesc: '7 diamonds!' - itemReward: 'DIAMOND:7' - moneyReward: 100 - expReward: 100 - permissionReward: '' - # Commands to run on this player. Use [player] for their name. - commands: - #- kit tools [player] - #- some other command - - # Challenge list - # Challenge names must be in lowercase. Do not use the same name as a level! - challengeList: - glassmaker: - friendlyname: 'Glass Maker' - description: 'Create 1 block of glass' - icon: GLASS - level: 'Novice' - type: inventory - requiredItems: 'GLASS:1' - # You can require the player has a certain amount of money for inventory challenges. - # Remember to mention it in the description! - # If takeItems is true, the money will be removed, so you may want to give it - # back in the reward. - #requiredMoney: 10 - takeItems: true - itemReward: 'ICE:1' - rewardText: '1 block of ice' - #rewardcommands: - #- kit tools [player] - moneyReward: 10 - expReward: 30 - permissionReward: '' - repeatable: true - repeatItemReward: 'ICE:1' - repeatRewardText: '1 block of ice' - repeatMoneyReward: 5 - repeatExpReward: 10 - #repeatrewardcommands: - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 2 - # Allow this challenge to reset when the player resets their island - # Default is true. Set to false to keep this challenge completed. - # Admins can always reset challenges even if this is set to false. - resetallowed: true - breadmaker: - friendlyname: 'Bread Maker' - description: 'Bake 21 loaves of bread' - icon: BREAD - level: 'Novice' - type: inventory - requiredItems: 'BREAD:21' - takeItems: true - itemReward: 'DIRT:5' - rewardText: '5 dirt' - moneyReward: 10 - expReward: 30 - permissionReward: '' - repeatable: true - repeatItemReward: 'DIRT:1' - repeatRewardText: '1 dirt' - repeatMoneyReward: 5 - repeatExpReward: 10 - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 100 - dyemaker: - friendlyname: 'Dye Maker' - description: 'Craft 32 cactus green dyes' - icon: CACTUS_GREEN - level: 'Novice' - type: inventory - requiredItems: 'CACTUS_GREEN:32' - takeItems: true - itemReward: 'OAK_SAPLING:2 BIRCH_SAPLING:2 JUNGLE_SAPLING:2 SPRUCE_SAPLING:2' - rewardText: '2 oak, 2 birch, 2 jungle and 2 spruce saplings' - moneyReward: 10 - expReward: 30 - permissionReward: '' - repeatable: true - repeatItemReward: 'ACACIA_SAPLING:1 DARK_OAK_SAPLING:1 OAK_SAPLING:1 BIRCH_SAPLING:1 JUNGLE_SAPLING:1 SPRUCE_SAPLING:1' - repeatRewardText: '1 of each kind of sapling' - repeatMoneyReward: 5 - repeatExpReward: 10 - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 100 - papermaker: - friendlyname: 'Paper Maker' - description: 'Create 21 pages of paper' - icon: PAPER - level: 'Novice' - type: inventory - requiredItems: 'PAPER:21' - takeItems: true - itemReward: 'DIRT:5 CLAY:15' - rewardText: '5 dirt and 15 clay blocks' - moneyReward: 15 - expReward: 30 - permissionReward: '' - repeatable: true - repeatItemReward: 'SAND:2' - repeatRewardText: '2 sand blocks' - repeatMoneyReward: 5 - repeatExpReward: 10 - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 100 - cobblemaker: - friendlyname: 'Cobble Maker' - description: 'Create a cobblestone generator and mine 64 cobblestone.' - icon: COBBLESTONE - level: 'Novice' - type: inventory - requiredItems: 'COBBLESTONE:64' - takeItems: true - itemReward: 'LEATHER:4' - permissionReward: '' - rewardText: '4 leather - boots or a book perhaps?' - moneyReward: 10 - expReward: 30 - repeatable: true - repeatItemReward: 'LEATHER:1' - repeatRewardText: '1 leather' - repeatMoneyReward: 5 - repeatExpReward: 10 - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 100 - seedbank: - friendlyname: 'Seedbank' - description: 'Collect 32 melon seeds, 32 pumpkin seeds, 32 beetroot seeds and 32 wheat seeds' - icon: PUMPKIN_SEEDS - level: 'Novice' - type: inventory - requiredItems: 'MELON_SEEDS:32 PUMPKIN_SEEDS:32 WHEAT_SEEDS:32 BEETROOT_SEEDS:32' - takeItems: true - itemReward: 'DIRT:5 VINE:20' - rewardText: '5 dirt blocks and 20 vines' - moneyReward: 15 - expReward: 30 - permissionReward: '' - repeatable: true - repeatItemReward: 'DIRT:2 VINE:20' - repeatRewardText: '2 dirt blocks and 5 vines' - repeatMoneyReward: 5 - repeatExpReward: 10 - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 100 - stewmaker: - friendlyname: 'Stew Maker' - description: 'Cook up 18 bowls of mushroom stew' - icon: MUSHROOM_STEW - level: 'Novice' - type: inventory - requiredItems: 'MUSHROOM_STEW:18' - takeItems: true - itemReward: 'MYCELIUM:2' - rewardText: '2 mycelium blocks' - moneyReward: 15 - expReward: 30 - permissionReward: '' - repeatable: true - repeatItemReward: 'MYCELIUM:1' - repeatRewardText: '1 mycelium block' - repeatMoneyReward: 5 - repeatExpReward: 10 - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 100 - builder: - friendlyname: 'Builder' - description: 'Reach island level 10 (/[label] level).' - icon: OAK_WOOD - level: 'Novice' - type: level - requiredItems: 10 - takeItems: false - itemReward: 'IRON_PICKAXE:1 DIRT:5 SPONGE:1' - rewardText: '1 iron pickaxe, 5 dirt and a Sponge' - moneyReward: 50 - expReward: 50 - permissionReward: '' - repeatable: false - repeatItemReward: '' - repeatRewardText: '' - repeatMoneyReward: 0 - repeatExpReward: 0 - grinder: - description: 'Kill monsters and collect 64 rotten flesh, 32 skeleton bones, 32 string, 32 arrows, 16 gunpowder, 5 spider eyes' - icon: BONE - level: 'Competent' - type: inventory - requiredItems: 'ROTTEN_FLESH:64 STRING:32 GUNPOWDER:16 ARROW:32 BONE:32 SPIDER_EYE:5' - takeItems: true - itemReward: 'REDSTONE:16 IRON_ORE:5 FLINT:1 POTION:WATER_BREATHING:1 POTION:NIGHT_VISION:1' - rewardText: '16 redstone dust, 1 flint, 1 water breathing potion, 1 night vision potion and 5 iron(ore)' - moneyReward: 75 - expReward: 75 - permissionReward: '' - repeatable: true - repeatItemReward: 'REDSTONE:2 IRON_ORE:1 FLINT:1 POTION:WATER_BREATHING:1' - repeatRewardText: '2 redstone dust, 1 flint, 1 water breathing potion and 1 iron(ore)' - repeatMoneyReward: 15 - repeatExpReward: 15 - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 100 - farmer: - description: 'Harvest 64 units of the following: wheat, sugar, melon, carrots, potatoes, pumpkin' - icon: WHEAT - level: 'Competent' - type: inventory - requiredItems: 'WHEAT:64 SUGAR:64 MELON:64 CARROT:64 POTATO:64 PUMPKIN:64' - takeItems: true - itemReward: 'REDSTONE:16 COCOA_BEANS:1 PIG_SPAWN_EGG:1 COW_SPAWN_EGG:1 CHICKEN_SPAWN_EGG:1' - rewardText: '16 redstone dust, 1 cocoa bean, 1 spawn egg (chicken,cow,pig)' - moneyReward: 75 - expReward: 75 - permissionReward: '' - repeatable: true - repeatItemReward: 'COCOA_BEANS:1 PIG_SPAWN_EGG:1 COW_SPAWN_EGG:1 CHICKEN_SPAWN_EGG:1' - repeatRewardText: '1 cocoa bean, 1 spawn egg (chicken,cow,pig)' - repeatMoneyReward: 20 - repeatExpReward: 20 - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 100 - angler: - friendlyname: 'Angler' - description: 'Catch and cook 10 salmon fish' - icon: COOKED_SALMON - level: 'Competent' - type: inventory - requiredItems: 'COOKED_SALMON:10' - takeItems: true - itemReward: 'REDSTONE:16 IRON_ORE:5 INK_SAC:5' - rewardText: '16 redstone dust, 5 inksacs, 5 iron (ore)' - moneyReward: 75 - expReward: 75 - permissionReward: '' - repeatable: true - repeatItemReward: 'REDSTONE:2 IRON_ORE:1 INK_SAC:1' - repeatRewardText: '2 redstone dust, 1 inksac, 1 iron (ore)' - repeatMoneyReward: 15 - repeatExpReward: 15 - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 100 - treecutter: - friendlyname: 'Treecutter' - description: 'Create a tree farm and collect 16 oak, birch, jungle, acacia, dark oak and spruce logs' - icon: OAK_LOG - level: 'Competent' - type: inventory - requiredItems: 'OAK_LOG:16 BIRCH_LOG:16 JUNGLE_LOG:16 SPRUCE_LOG:16 ACACIA_LOG:16 DARK_OAK_LOG:16' - takeItems: true - itemReward: 'REDSTONE:16 IRON_ORE:5 WOLF_SPAWN_EGG:1' - rewardText: '16 redstone dust, 5 iron (ore), 1 wolf spawn egg' - moneyReward: 75 - expReward: 75 - permissionReward: '' - repeatable: true - repeatItemReward: 'REDSTONE:2 IRON_ORE:1' - repeatRewardText: '2 redstone dust, 1 iron (ore)' - repeatMoneyReward: 15 - repeatExpReward: 15 - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 100 - cookiemaker: - friendlyname: 'Cookie Maker' - description: 'Make 128 cookies and a bucket of milk' - icon: COOKIE - level: 'Competent' - type: inventory - requiredItems: 'MILK_BUCKET:1 COOKIE:128' - takeItems: true - itemReward: 'REDSTONE:16 IRON_ORE:5' - rewardText: '16 redstone dust, 5 iron (ore)' - moneyReward: 75 - expReward: 75 - permissionReward: '' - repeatable: true - repeatItemReward: 'REDSTONE:2 IRON_ORE:1' - repeatRewardText: '2 redstone dust, 1 iron (ore)' - repeatMoneyReward: 15 - repeatExpReward: 15 - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 100 - craftsman: - friendlyname: 'Craftsman' - description: 'Reach island level 75 (/[label] level).' - icon: IRON_BLOCK - level: 'Competent' - type: level - requiredItems: 75 - takeItems: false - itemReward: 'OBSIDIAN:10' - rewardText: '10 obsidian blocks' - moneyReward: 50 - expReward: 50 - permissionReward: '' - repeatable: false - repeatItemReward: '' - repeatRewardText: '' - repeatMoneyReward: 0 - repeatExpReward: 0 - homestead: - friendlyname: 'Homestead' - description: 'Build a house that contains at least 1 oak door, white bed, bookshelf, crafting table, furnace, glass-block window, and wall torch.' - icon: WHITE_BED - level: 'Competent' - type: island - requiredItems: 'WHITE_BED:1 CRAFTING_TABLE:1 GLASS:1 OAK_DOOR:1 FURNACE:1 BOOKSHELF:1 WALL_TORCH:1' - # Search radius - the number of blocks that will be searched around the player - # Minimum 10, which searches from -10 to +10 blocks around the player in x,y,z - # Max is 50 because big searches cause lag - searchRadius: 10 - takeItems: false - itemReward: 'JUKEBOX:1 MUSIC_DISC_CHIRP:1 LAPIS_BLOCK:10' - rewardText: '1 jukebox, 1 music disk, 10 lapis lazuli blocks' - moneyReward: 100 - expReward: 100 - permissionReward: '' - repeatable: false - repeatItemReward: '' - repeatRewardText: '' - repeatMoneyReward: 0 - repeatExpReward: 0 - nether: - friendlyname: 'Nether' - description: 'Build a nether portal on your island and activate it.' - icon: NETHERRACK - level: 'Expert' - type: island - requiredItems: 'OBSIDIAN:10 NETHER_PORTAL:1' - takeItems: false - itemReward: 'DIAMOND_SWORD:1' - rewardText: '1 diamond sword' - moneyReward: 100 - expReward: 100 - permissionReward: '' - repeatable: false - repeatItemReward: '' - repeatRewardText: '' - repeatMoneyReward: 0 - repeatExpReward: 0 - enderpearls: - friendlyname: 'Enderpearls' - description: 'Collect 15 enderpearls from endermen' - icon: ENDER_PEARL - level: 'Expert' - type: inventory - requiredItems: 'ENDER_PEARL:15' - takeItems: true - itemReward: 'GOLD_INGOT:5 BLAZE_ROD:1' - rewardText: '5 gold ingots and 1 blaze rod' - moneyReward: 50 - expReward: 100 - permissionReward: '' - repeatable: true - repeatItemReward: 'GOLD_INGOT:1 BLAZE_ROD:1' - repeatRewardText: '1 gold ingot and 1 blaze rod' - repeatMoneyReward: 15 - repeatExpReward: 15 - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 100 - slimeballfarmer: - friendlyname: 'Slimeball Farmer' - description: 'Collect 40 slimeballs from slimes' - icon: SLIME_BALL - level: 'Expert' - type: inventory - requiredItems: 'SLIME_BALL:40' - takeItems: true - itemReward: 'GOLD_INGOT:5 IRON_ORE:5' - rewardText: '5 gold ingots and 5 blocks of iron ore' - moneyReward: 50 - expReward: 100 - permissionReward: '' - repeatable: true - repeatItemReward: 'REDSTONE:8' - repeatRewardText: '8 redstone dust' - repeatMoneyReward: 15 - repeatExpReward: 15 - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 100 - baker: - friendlyname: 'baker' - description: 'Bake 5 cakes and 5 pumpkin pies' - icon: CAKE - level: 'Expert' - type: inventory - requiredItems: 'CAKE:5 PUMPKIN_PIE:5' - takeItems: true - itemReward: 'GOLD_INGOT:5 DIAMOND:1' - rewardText: '5 gold ingots and 1 diamond' - moneyReward: 50 - expReward: 100 - permissionReward: '' - repeatable: true - repeatItemReward: 'IRON_ORE:1' - repeatRewardText: '1 iron (ore)' - repeatMoneyReward: 15 - repeatExpReward: 15 - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 100 - pioneer: - friendlyname: 'Pioneer' - description: 'Make 1 map and use it, a compass, a clock and collect 64 netherrack, 16 soulsand, and 1 ghast tear' - icon: MAP - level: 'Expert' - type: inventory - requiredItems: 'NETHERRACK:64 SOUL_SAND:16 GHAST_TEAR:1 MAP:1 COMPASS:1 CLOCK:1' - takeItems: true - itemReward: 'POWERED_RAIL:32 RAIL:256 DIAMOND:1 OCELOT_SPAWN_EGG:1' - rewardText: '256 rails, 32 powered rails, 1 ocelot spawn egg, 1 diamond' - moneyReward: 100 - expReward: 100 - permissionReward: '' - repeatable: true - repeatItemReward: 'IRON_ORE:1' - repeatRewardText: '1 iron (ore)' - repeatMoneyReward: 20 - repeatExpReward: 20 - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 100 - mason: - friendlyname: 'Mason' - description: 'Reach island level 150 (/[label] level).' - icon: GOLD_BLOCK - level: 'Expert' - type: level - requiredItems: 150 - takeItems: false - itemReward: 'DIAMOND:1 DIRT:20 GOLD_BLOCK:2' - rewardText: '1 diamond, 20 dirt, and 2 gold blocks' - moneyReward: 150 - expReward: 150 - permissionReward: '' - repeatable: false - repeatItemReward: '' - repeatRewardText: '' - repeatMoneyReward: 0 - repeatExpReward: 0 - shepherd: - friendlyname: 'Shepherd' - description: 'Collect 5 of every color of wool' - icon: BLUE_WOOL - level: 'Advanced' - type: inventory - requiredItems: 'BLACK_WOOL:5 BLUE_WOOL:5 BROWN_WOOL:5 CYAN_WOOL:5 GRAY_WOOL:5 GREEN_WOOL:5 LIGHT_BLUE_WOOL:5 LIGHT_GRAY_WOOL:5 LIME_WOOL:5 MAGENTA_WOOL:5 ORANGE_WOOL:5 PINK_WOOL:5 PURPLE_WOOL:5 RED_WOOL:5 WHITE_WOOL:5 YELLOW_WOOL:5 ' - takeItems: true - itemReward: 'DIAMOND:2 MUSIC_DISC_CAT:1 MUSIC_DISC_BLOCKS:1 MUSIC_DISC_STAL:1 SHEEP_SPAWN_EGG:1 EMERALD:5' - rewardText: '2 diamonds, 5 emeralds, 3 music disks, 1 sheep spawn egg' - moneyReward: 200 - expReward: 200 - permissionReward: '' - repeatable: true - repeatItemReward: 'EMERALD:1 SHEEP_SPAWN_EGG:1' - repeatRewardText: '1 emerald, 1 sheep spawn egg' - repeatMoneyReward: 20 - repeatExpReward: 20 - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 100 - alchemist: - friendlyname: 'Alchemist' - description: 'Brew 1 potion of Fire Resistance, Slowness, Swiftness, Healing, Harming, Invisibility, Strength and Regeneration' - icon: BREWING_STAND - level: 'Advanced' - type: inventory - requiredItems: 'POTION:FIRE_RESISTANCE::::1 POTION:SLOWNESS::::1 POTION:SPEED::::1 POTION:INSTANT_HEAL::::1 POTION:INSTANT_DAMAGE::::1 POTION:INVISIBILITY::::1 POTION:STRENGTH::::1 POTION:REGEN::::1' - takeItems: true - itemReward: 'ENCHANTING_TABLE:1' - rewardText: 'Enchanting Table' - moneyReward: 200 - expReward: 200 - permissionReward: '' - repeatable: true - repeatItemReward: 'DIAMOND:1' - repeatRewardText: '1 diamond' - repeatMoneyReward: 20 - repeatExpReward: 20 - dj: - friendlyname: 'DJ' - description: 'Craft a jukebox and collect all music discs' - icon: MUSIC_DISC_CHIRP - level: 'Advanced' - type: inventory - requiredItems: 'MUSIC_DISC_11:1 MUSIC_DISC_13:1 MUSIC_DISC_BLOCKS:1 MUSIC_DISC_CAT:1 MUSIC_DISC_CHIRP:1 MUSIC_DISC_FAR:1 MUSIC_DISC_MALL:1 MUSIC_DISC_MELLOHI:1 MUSIC_DISC_STAL:1 MUSIC_DISC_STRAD:1 MUSIC_DISC_WAIT:1 MUSIC_DISC_WARD:1 JUKEBOX:1' - takeItems: true - itemReward: 'DIAMOND:3 EMERALD:10 GOLD_INGOT:5' - rewardText: '3 diamonds, 10 emeralds and 5 gold ingots' - moneyReward: 200 - expReward: 200 - permissionReward: '' - repeatable: true - repeatItemReward: 'DIAMOND:1 EMERALD:5 GOLD_INGOT:2' - repeatRewardText: '1 diamond, 5 emeralds and 2 gold bars' - repeatMoneyReward: 20 - repeatExpReward: 20 - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 100 - gemcollector: - friendlyname: 'Gem Collector' - description: 'Collect 50 emeralds' - icon: EMERALD - level: 'Advanced' - type: inventory - requiredItems: 'EMERALD:50' - takeItems: true - itemReward: 'DIAMOND:10' - rewardText: '10 diamonds' - moneyReward: 200 - expReward: 200 - permissionReward: '' - repeatable: true - repeatItemReward: 'GOLD_INGOT:2' - repeatRewardText: '2 gold ingots' - repeatMoneyReward: 20 - repeatExpReward: 20 - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 100 - culinaryartist: - friendlyname: 'Culinary Artist' - description: 'Collect 1 of every kind of cooked or crafted edible food (no raw food, zombie flesh, or super golden apples)' - icon: GOLDEN_APPLE - level: 'Advanced' - type: inventory - requiredItems: 'BAKED_POTATO:1 BREAD:1 CAKE:1 COOKED_CHICKEN:1 COOKED_COD:1 COOKED_SALMON:1 COOKED_PORKCHOP:1 COOKED_RABBIT:1 COOKIE:1 GOLDEN_APPLE:0:1 GOLDEN_CARROT:1 MUSHROOM_STEW:1 PUMPKIN_PIE:1 COOKED_BEEF:1' - takeItems: true - itemReward: 'GOLD_BLOCK:2 MUSIC_DISC_MALL:1 MUSIC_DISC_WAIT:1 MUSIC_DISC_13:1 MOOSHROOM_SPAWN_EGG:1 EMERALD:5' - rewardText: '2 gold blocks, 3 music discs, 1 mooshroom spawn egg, and 5 emeralds' - moneyReward: 200 - expReward: 200 - permissionReward: '' - repeatable: true - repeatItemReward: 'GOLD_INGOT:10 MOOSHROOM_SPAWN_EGG:1 EMERALD:1' - repeatRewardText: '10 gold ingots, 1 mooshroom spawn egg, 1 emerald' - repeatMoneyReward: 20 - repeatExpReward: 20 - # Max times limits how many times a challenge can be done. Comment out to make unlimited - maxtimes: 100 - beaconator: - friendlyname: 'Beaconator' - description: 'Build a beacon and let it shine!' - icon: BEACON - level: 'Advanced' - type: island - requiredItems: 'BEACON:1' - takeItems: false - itemReward: 'STONE_BRICKS:20 CHISELED_STONE_BRICKS:20 CRACKED_STONE_BRICKS:20 MOSSY_STONE_BRICKS:20' - rewardText: '20 blocks of every kind of stone brick' - moneyReward: 300 - expReward: 300 - permissionReward: '' - repeatable: false - repeatItemReward: '' - repeatRewardText: '' - repeatMoneyReward: 0 - repeatExpReward: 0 - ittakesavillage: - friendlyname: 'It Takes A Village' - description: 'Hold a village meeting with 10 villagers!' - icon: STONE - level: 'Advanced' - type: island - requiredItems: 'VILLAGER:10' - takeItems: false - itemReward: 'HOPPER:4' - rewardText: '4 hoppers' - moneyReward: 300 - expReward: 300 - permissionReward: '' - repeatable: false - repeatItemReward: '' - repeatRewardText: '' - repeatMoneyReward: 0 - repeatExpReward: 0 - myprecious: - friendlyname: 'My Precious' - description: 'Build an iron golem' - icon: NAME_TAG - level: 'Advanced' - type: island - requiredItems: 'IRON_GOLEM:1' - takeItems: false - itemReward: 'NAME_TAG:1 ANVIL:1 CAULDRON:1 IRON_BLOCK:2' - rewardText: 'A name tag, an anvil, a cauldron and 2 iron blocks' - moneyReward: 300 - expReward: 300 - permissionReward: '' - repeatable: false - repeatItemReward: '' - repeatRewardText: '' - repeatMoneyReward: 0 - repeatExpReward: 0 - snowplay: - friendlyname: 'Snow Play!' - description: 'Build a snow golem' - icon: SNOWBALL - level: 'Advanced' - type: island - requiredItems: 'SNOWMAN:1' - takeItems: false - itemReward: 'DIAMOND_SHOVEL:1' - rewardText: 'A diamond spade - get shoveling!' - moneyReward: 300 - expReward: 300 - permissionReward: '' - repeatable: false - repeatItemReward: '' - repeatRewardText: '' - repeatMoneyReward: 0 - repeatExpReward: 0 - itsaparty: - friendlyname: "It's a party" - description: 'Have a party! Invite 4 friends.' - icon: PUMPKIN_PIE - level: 'Advanced' - type: island - requiredItems: 'PLAYER:5' - takeItems: false - itemReward: 'EMERALD:6 PUMPKIN_PIE:6' - rewardText: '6 Emeralds, 6 pumpkin pies' - moneyReward: 200 - expReward: 200 - permissionReward: '' - repeatable: false - repeatItemReward: '' - repeatRewardText: '' - repeatMoneyReward: 0 - repeatExpReward: 0 - itsamonsterparty: - friendlyname: "It's a Monster Party" - description: 'Have a party - all monsters invited! Get close to a Skeleton, Zombie, Spider, Creeper and Enderman all at the same time.' - icon: SKELETON_SKULL - level: 'Advanced' - type: island - requiredItems: 'SKELETON:1 ZOMBIE:1 SPIDER:1 CREEPER:1 ENDERMAN:1' - takeItems: false - itemReward: 'SKELETON_SKULL:1 ZOMBIE_HEAD:1 CREEPER_HEAD:1' - rewardText: 'Skulls!' - moneyReward: 200 - expReward: 400 - permissionReward: '' - repeatable: false - repeatItemReward: '' - repeatRewardText: '' - repeatMoneyReward: 0 - repeatExpReward: 0 - acidduke: - friendlyname: 'Arch Duke' - description: 'Achieve an island level of 1000' - icon: DIAMOND_BLOCK - level: 'Elite' - type: level - requiredItems: 1000 - takeItems: false - itemReward: 'DIAMOND:1' - rewardText: '1 diamond' - moneyReward: 250 - expReward: 250 - permissionReward: '' - repeatable: false - repeatItemReward: '' - repeatRewardText: '' - repeatMoneyReward: 0 - repeatExpReward: 0 diff --git a/src/main/resources/locales/en-US.yml b/src/main/resources/locales/en-US.yml index 9f7eacd..4840883 100755 --- a/src/main/resources/locales/en-US.yml +++ b/src/main/resources/locales/en-US.yml @@ -68,8 +68,6 @@ challenges: delete-challenge: 'Remove challenge' delete-level: 'Remove level' import: 'Import ASkyblock Challenges' - backward: 'Import 0.3.0 Challenges' - backward-player: 'Fix 0.3.0 PlayerData' settings: 'Edit Settings' properties: 'Properties' requirements: 'Requirements' @@ -155,7 +153,7 @@ challenges: increase: 'Increase operation. Clicking on numbers will increase value by selected number.' reduce: 'Reduce operation. Clicking on numbers will reduce value by selected number.' multiply: 'Multiply operation. Clicking on numbers will multiply value by selected number.' - import: 'Allows to import ASkyblock Challenges.|On right click it enables/disables overwrite mode.' + import: 'Allows to import ASkyblock Challenges.|On right click it enables/disables overwrite mode.|Place Challenges.yml inside ./BentoBox/addons/Challenges folder.' complete: 'Allows to complete challenges for any user.|User will not get reward for completion.' reset: 'Allows to reset completed user challenges.|Right click enables/disables Reset all functionality.' create-challenge: 'Allows to add new Challenge.|By default it will be in free challenges list.' @@ -164,8 +162,6 @@ challenges: edit-level: 'Allows to edit any Level settings.' delete-challenge: 'Allows remove any Challenge.' delete-level: 'Allows remove any Level.' - backward: 'Allows to import challenges from 0.3.0 and below addon version.' - backward-player: 'Allows to fix corrupted PlayerData from 0.3.0 version.|&2USE ONLY IF NECESSARY|&2MAY NOT WORK IN ALL SITUATIONS' settings: 'Allows to change addon settings.' properties: 'Allows to change general properties' requirements: 'Allows to manage requirements'