diff --git a/src/main/java/world/bentobox/challenges/ChallengesImportManager.java b/src/main/java/world/bentobox/challenges/ChallengesImportManager.java index 1b4b294..8f4df1f 100644 --- a/src/main/java/world/bentobox/challenges/ChallengesImportManager.java +++ b/src/main/java/world/bentobox/challenges/ChallengesImportManager.java @@ -16,10 +16,13 @@ import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.EntityType; import org.bukkit.inventory.ItemStack; +import world.bentobox.bentobox.util.ItemParser; import world.bentobox.challenges.database.object.ChallengeLevel; import world.bentobox.challenges.database.object.Challenge; import world.bentobox.bentobox.api.user.User; import world.bentobox.bentobox.util.Util; +import world.bentobox.challenges.utils.GuiUtils; + /** * Imports challenges @@ -64,13 +67,13 @@ public class ChallengesImportManager user.sendMessage("challenges.admin.import.no-load","[message]", e.getMessage()); return false; } - makeLevels(user); + makeLevels(user, world, overwrite); makeChallenges(user, world, overwrite); addon.getChallengesManager().save(); return true; } - private void makeLevels(User user) { + private void makeLevels(User user, World world, boolean overwrite) { // Parse the levels String levels = chal.getString("challenges.levels", ""); if (!levels.isEmpty()) { @@ -82,15 +85,16 @@ public class ChallengesImportManager challengeLevel.setFriendlyName(level); challengeLevel.setUniqueId(level); challengeLevel.setOrder(order++); - challengeLevel.setWaiveramount(chal.getInt("challenges.waiveramount")); + challengeLevel.setWorld(Util.getWorld(world).getName()); + challengeLevel.setWaiverAmount(chal.getInt("challenges.waiveramount")); // Check if there is a level reward ConfigurationSection unlock = chal.getConfigurationSection("challenges.levelUnlock." + level); if (unlock != null) { challengeLevel.setUnlockMessage(unlock.getString("message")); - challengeLevel.setRewardDescription(unlock.getString("rewardDesc","")); + challengeLevel.setRewardText(unlock.getString("rewardDesc","")); challengeLevel.setRewardItems(parseItems(unlock.getString("itemReward",""))); - challengeLevel.setMoneyReward(unlock.getInt("moneyReward")); - challengeLevel.setExpReward(unlock.getInt("expReward")); + challengeLevel.setRewardMoney(unlock.getInt("moneyReward")); + challengeLevel.setRewardExperience(unlock.getInt("expReward")); challengeLevel.setRewardCommands(unlock.getStringList("commands")); } addon.getChallengesManager().storeLevel(challengeLevel); @@ -103,7 +107,6 @@ public class ChallengesImportManager /** * Imports challenges * @param overwrite - * @param args */ private void makeChallenges(User user, World world, boolean overwrite) { int size = 0; @@ -115,41 +118,42 @@ public class ChallengesImportManager newChallenge.setDeployed(true); ConfigurationSection details = chals.getConfigurationSection(challenge); newChallenge.setFriendlyName(details.getString("friendlyname", challenge)); - newChallenge.setWorld(Util.getWorld(world).getName()); newChallenge.setDescription(addon.getChallengesManager().stringSplit(details.getString("description", ""))); - newChallenge.setIcon(new ParseItem(addon, details.getString("icon") + ":1").getItem()); - newChallenge.setLevel(details.getString("level", ChallengesManager.FREE)); + newChallenge.setIcon(ItemParser.parse(details.getString("icon") + ":1")); newChallenge.setChallengeType(Challenge.ChallengeType.valueOf(details.getString("type","INVENTORY").toUpperCase())); newChallenge.setTakeItems(details.getBoolean("takeItems",true)); newChallenge.setRewardText(details.getString("rewardText", "")); newChallenge.setRewardCommands(details.getStringList("rewardcommands")); newChallenge.setRewardMoney(details.getInt("moneyReward",0)); - newChallenge.setRewardExp(details.getInt("expReward")); + newChallenge.setRewardExperience(details.getInt("expReward")); newChallenge.setRepeatable(details.getBoolean("repeatable")); newChallenge.setRepeatRewardText(details.getString("repeatRewardText","")); newChallenge.setRepeatMoneyReward(details.getInt("repearMoneyReward")); - newChallenge.setRepeatExpReward(details.getInt("repeatExpReward")); + newChallenge.setRepeatExperienceReward(details.getInt("repeatExpReward")); newChallenge.setRepeatRewardCommands(details.getStringList("repeatrewardcommands")); newChallenge.setMaxTimes(details.getInt("maxtimes")); // TODO reset allowed - newChallenge.setReqMoney(details.getInt("requiredMoney")); - newChallenge.setReqExp(details.getInt("requiredExp")); + newChallenge.setRequiredMoney(details.getInt("requiredMoney")); + newChallenge.setRequiredExperience(details.getInt("requiredExp")); String reqItems = details.getString("requiredItems",""); if (newChallenge.getChallengeType().equals(Challenge.ChallengeType.INVENTORY)) { newChallenge.setRequiredItems(parseItems(reqItems)); - } else if (newChallenge.getChallengeType().equals(Challenge.ChallengeType.LEVEL)) { - newChallenge.setReqIslandlevel(Long.parseLong(reqItems)); + } else if (newChallenge.getChallengeType().equals(Challenge.ChallengeType.OTHER)) { + newChallenge.setRequiredIslandLevel(Long.parseLong(reqItems)); } else if (newChallenge.getChallengeType().equals(Challenge.ChallengeType.ISLAND)) { parseEntities(newChallenge, reqItems); } newChallenge.setRewardItems(parseItems(details.getString("itemReward"))); newChallenge.setRepeatItemReward(parseItems(details.getString("repeatItemReward"))); // Save + this.addon.getChallengesManager().addChallengeToLevel(newChallenge, + addon.getChallengesManager().getLevel(Util.getWorld(world).getName() + "_" + details.getString("level"))); + if (addon.getChallengesManager().storeChallenge(newChallenge, overwrite, user, false)) { size++; } } - addon.getChallengesManager().sortChallenges(); + user.sendMessage("challenges.admin.import.number", "[number]", String.valueOf(size)); } @@ -180,7 +184,7 @@ public class ChallengesImportManager List result = new ArrayList<>(); if (!reqList.isEmpty()) { for (String s : reqList.split(" ")) { - ItemStack item = new ParseItem(addon,s).getItem(); + ItemStack item = ItemParser.parse(s); if (item != null) { result.add(item); } @@ -188,7 +192,4 @@ public class ChallengesImportManager } return result; } - - - -} +} \ No newline at end of file diff --git a/src/main/java/world/bentobox/challenges/ChallengesManager.java b/src/main/java/world/bentobox/challenges/ChallengesManager.java index e5322e3..554faef 100644 --- a/src/main/java/world/bentobox/challenges/ChallengesManager.java +++ b/src/main/java/world/bentobox/challenges/ChallengesManager.java @@ -80,7 +80,7 @@ public class ChallengesManager { */ public long checkChallengeTimes(User user, Challenge challenge, World world) { addPlayer(user); - return playerData.get(user.getUniqueId()).getTimes(world, challenge.getUniqueId()); + return playerData.get(user.getUniqueId()).getTimes(challenge.getUniqueId()); } /** @@ -189,7 +189,7 @@ public class ChallengesManager { */ public List getAllChallengesList(World world) { List result = new ArrayList<>(); - challengeMap.values().forEach(ch -> ch.stream().filter(c -> c.getWorld().equals(Util.getWorld(world).getName())).forEach(c -> result.add(c.getUniqueId()))); + challengeMap.values().forEach(ch -> ch.stream().filter(c -> c.getUniqueId().startsWith(Util.getWorld(world).getName())).forEach(c -> result.add(c.getUniqueId()))); return result; } @@ -230,10 +230,10 @@ public class ChallengesManager { for (Entry> entry : this.challengeMap.entrySet()) { // Check how much challenges must be done in previous level. - int challengesToDo = Math.max(0, entry.getKey().getWaiveramount() - doneChallengeCount); + int challengesToDo = Math.max(0, entry.getKey().getWaiverAmount() - doneChallengeCount); doneChallengeCount = (int) entry.getValue().stream().filter( - ch -> playerData.isChallengeDone(world, ch.getUniqueId())).count(); + ch -> playerData.isChallengeDone(ch.getUniqueId())).count(); // Create result class with the data result.add(new LevelStatus( @@ -270,7 +270,7 @@ public class ChallengesManager { Optional lv = challengeMap.keySet().stream().filter(l -> l.getUniqueId().equalsIgnoreCase(level)).findFirst(); // Get the challenges applicable to this world return lv.isPresent() ? challengeMap.get(lv.get()).stream() - .filter(c -> c.getWorld().equalsIgnoreCase(worldName) || c.getWorld().isEmpty()).collect(Collectors.toSet()) + .filter(c -> c.getUniqueId().startsWith(worldName)).collect(Collectors.toSet()) : new HashSet<>(); } @@ -319,7 +319,7 @@ public class ChallengesManager { */ public boolean isChallenge(World world, String name) { for (Set ch : challengeMap.values()) { - if (ch.stream().filter(c -> c.getWorld().equals(Util.getWorld(world).getName())).anyMatch(c -> c.getUniqueId().equalsIgnoreCase(name))) { + if (ch.stream().filter(c -> c.getUniqueId().startsWith(Util.getWorld(world).getName())).anyMatch(c -> c.getUniqueId().equalsIgnoreCase(name))) { return true; } } @@ -328,13 +328,12 @@ public class ChallengesManager { /** * Checks if a challenge is complete or not - * @param uniqueId - unique ID - player's UUID * @param challengeName - Challenge uniqueId * @return - true if completed */ public boolean isChallengeComplete(User user, String challengeName, World world) { addPlayer(user); - return playerData.get(user.getUniqueId()).isChallengeDone(world, challengeName); + return playerData.get(user.getUniqueId()).isChallengeDone(challengeName); } /** @@ -396,7 +395,7 @@ public class ChallengesManager { */ public void setChallengeComplete(User user, String challengeUniqueId, World world) { addPlayer(user); - playerData.get(user.getUniqueId()).setChallengeDone(world, challengeUniqueId); + playerData.get(user.getUniqueId()).setChallengeDone(challengeUniqueId); // Save savePlayer(user.getUniqueId()); } @@ -409,7 +408,7 @@ public class ChallengesManager { */ public void setResetChallenge(User user, String challengeUniqueId, World world) { addPlayer(user); - playerData.get(user.getUniqueId()).setChallengeTimes(world, challengeUniqueId, 0); + playerData.get(user.getUniqueId()).setChallengeTimes(challengeUniqueId, 0); // Save savePlayer(user.getUniqueId()); } @@ -637,4 +636,17 @@ public class ChallengesManager { return playerList; } + + + + public ChallengeLevel getLevel(String level) + { + return null; + } + + + public void addChallengeToLevel(Challenge newChallenge, ChallengeLevel level) + { + + } } diff --git a/src/main/java/world/bentobox/challenges/database/object/Challenge.java b/src/main/java/world/bentobox/challenges/database/object/Challenge.java index 9d4c3e7..6f6f829 100644 --- a/src/main/java/world/bentobox/challenges/database/object/Challenge.java +++ b/src/main/java/world/bentobox/challenges/database/object/Challenge.java @@ -1,6 +1,7 @@ package world.bentobox.challenges.database.object; +import com.google.gson.annotations.Expose; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.entity.EntityType; @@ -9,657 +10,1012 @@ import java.util.*; import world.bentobox.bentobox.api.configuration.ConfigComment; import world.bentobox.bentobox.database.objects.DataObject; -import world.bentobox.challenges.ChallengesManager; + /** * Data object for challenges * @author tastybento * */ -public class Challenge implements DataObject { - - public Challenge() {} - - - public boolean isRemoveEntities() +public class Challenge implements DataObject +{ + /** + * Empty constructor + */ + public Challenge() { - return false; } - public void setRemoveEntities(boolean b) + /** + * This enum holds all Challenge Types. + */ + public enum ChallengeType { - - } - - - public boolean isRemoveBlocks() - { - return false; - } - - - public void setRemoveBlocks(boolean b) - { - - } - - - public boolean isTakeExperience() - { - return false; - } - - - public void setTakeExperience(boolean b) - { - - } - - - 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 + ISLAND, + + /** + * Other type, like required money / experience or island level. This my request + * other plugins to be setup before it could work. + */ + OTHER, } - // 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 Set environment = new HashSet<>(); - @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 = ""; +// --------------------------------------------------------------------- +// Section: Variables +// --------------------------------------------------------------------- + @ConfigComment("") @ConfigComment("Unique name of the challenge") + @Expose private String uniqueId = ""; - /* - * END OF SETTINGS - */ + @ConfigComment("") + @ConfigComment("The name of the challenge. May include color codes. Single line.") + @Expose + private String friendlyName = ""; - /** - * @return the challengeType - */ - public ChallengeType getChallengeType() { - return challengeType; - } + @ConfigComment("") + @ConfigComment("Whether this challenge is deployed or not.") + @Expose + private boolean deployed; - /** - * @param challengeType the challengeType to set - */ - public void setChallengeType(ChallengeType challengeType) { - this.challengeType = challengeType; - } + @ConfigComment("") + @ConfigComment("Description of the challenge. Will become the lore on the icon. Can ") + @ConfigComment("include & color codes. String List.") + @Expose + private List description = new ArrayList<>(); - /** - * @return the deployed - */ - public boolean isDeployed() { - return deployed; - } + @ConfigComment("") + @ConfigComment("The icon in the GUI for this challenge. ItemStack.") + @Expose + private ItemStack icon = new ItemStack(Material.PAPER); - /** - * @param deployed the deployed to set - */ - public void setDeployed(boolean deployed) { - this.deployed = deployed; - } + @ConfigComment("") + @ConfigComment("Order of this challenge. It allows define order for challenges in") + @ConfigComment("single level. If order for challenges are equal, it will order by") + @ConfigComment("challenge unique id.") + @Expose + private int order = -1; - /** - * @return the description - */ - public List getDescription() { - return description; - } + @ConfigComment("") + @ConfigComment("Challenge type can be INVENTORY, OTHER or ISLAND.") + @Expose + private ChallengeType challengeType = ChallengeType.INVENTORY; - /** - * @param description the description to set - */ - public void setDescription(List description) { - this.description = description; - } + @ConfigComment("") + @ConfigComment("List of environments where this challenge will occur: NETHER, NORMAL,") + @ConfigComment("THE_END. Leave blank for all.") + @Expose + private Set environment = new HashSet<>(); - /** - * @return the expReward - */ - public int getRewardExp() { - return rewardExp; - } + @ConfigComment("") + @ConfigComment("If true, the challenge will disappear from the GUI when completed") + @Expose + private boolean removeWhenCompleted; - /** - * @param expReward the expReward to set - */ - public void setRewardExp(int expReward) { - this.rewardExp = expReward; - } + @ConfigComment("") + @ConfigComment("Unique challenge ID. Empty means that challenge is in free challenge list.") + @Expose + private String level = ""; - /** - * @return the friendlyName - */ - public String getFriendlyName() { - return friendlyName; - } +// --------------------------------------------------------------------- +// Section: Requirement related +// --------------------------------------------------------------------- - /** - * @param friendlyName the friendlyName to set - */ - public void setFriendlyName(String friendlyName) { - this.friendlyName = friendlyName; - } + @ConfigComment("") + @ConfigComment("") + @ConfigComment("The required permissions to see this challenge. String list.") + @Expose + private Set requiredPermissions = new HashSet<>(); - /** - * @return the icon - */ - public ItemStack getIcon() { - return icon != null ? icon.clone() : new ItemStack(Material.MAP); - } + @ConfigComment("") + @ConfigComment("This is a map of the blocks required in a ISLAND challenge. Material,") + @ConfigComment("Integer") + @Expose + private Map requiredBlocks = new EnumMap<>(Material.class); - /** - * @param icon the icon to set - */ - public void setIcon(ItemStack icon) { - this.icon = icon; - } + @ConfigComment("") + @ConfigComment("Remove the required blocks from the island") + @Expose + private boolean removeBlocks; - /** - * @return the level - */ - public String getLevel() { - return level; - } + @ConfigComment("") + @ConfigComment("Any entities that must be in the area for ISLAND type challenges. ") + @ConfigComment("Map EntityType, Number") + @Expose + private Map requiredEntities = new EnumMap<>(EntityType.class); - /** - * @param level the level to set - */ - public void setLevel(String level) { - if (level.isEmpty()) { - level = ChallengesManager.FREE; - } - this.level = level; - } + @ConfigComment("") + @ConfigComment("Remove the entities from the island") + @Expose + private boolean removeEntities; - /** - * @return the maxTimes - */ - public int getMaxTimes() { - return maxTimes; - } + @ConfigComment("") + @ConfigComment("The items that must be in the inventory to complete the challenge. ") + @ConfigComment("ItemStack List.") + @Expose + private List requiredItems = new ArrayList<>(); - /** - * @param maxTimes the maxTimes to set - */ - public void setMaxTimes(int maxTimes) { - this.maxTimes = maxTimes; - } + @ConfigComment("") + @ConfigComment("Take the required items from the player") + @Expose + private boolean takeItems = true; - /** - * @return the moneyReward - */ - public int getRewardMoney() { - return rewardMoney; - } + @ConfigComment("") + @ConfigComment("Required experience for challenge completion.") + @Expose + private int requiredExperience = 0; - /** - * @param moneyReward the moneyReward to set - */ - public void setRewardMoney(int moneyReward) { - this.rewardMoney = moneyReward; - } + @ConfigComment("") + @ConfigComment("Take the experience from the player") + @Expose + private boolean takeExperience; - /** - * @return the removeWhenCompleted - */ - public boolean isRemoveWhenCompleted() { - return removeWhenCompleted; - } + @ConfigComment("") + @ConfigComment("Required money for challenge completion. Economy plugins or addons") + @ConfigComment("is required for this option.") + @Expose + private int requiredMoney = 0; - /** - * @param removeWhenCompleted the removeWhenCompleted to set - */ - public void setRemoveWhenCompleted(boolean removeWhenCompleted) { - this.removeWhenCompleted = removeWhenCompleted; - } + @ConfigComment("") + @ConfigComment("Take the money from the player") + @Expose + private boolean takeMoney; - /** - * @return the repeatable - */ - public boolean isRepeatable() { - return repeatable; - } + @ConfigComment("") + @ConfigComment("Required island level for challenge completion. Plugin or Addon that") + @ConfigComment("calculates island level is required for this option.") + @Expose + private long requiredIslandLevel; - /** - * @param repeatable the repeatable to set - */ - public void setRepeatable(boolean repeatable) { - this.repeatable = repeatable; - } + @ConfigComment("") + @ConfigComment("The number of blocks around the player to search for items on an island") + @Expose + private int searchRadius = 10; - /** - * @return the repeatExpReward - */ - public int getRepeatExpReward() { - return repeatExpReward; - } - /** - * @param repeatExpReward the repeatExpReward to set - */ - public void setRepeatExpReward(int repeatExpReward) { - this.repeatExpReward = repeatExpReward; - } +// --------------------------------------------------------------------- +// Section: Rewards +// --------------------------------------------------------------------- - /** - * @return the repeatItemReward - */ - public List getRepeatItemReward() { - return repeatItemReward; - } + @ConfigComment("") + @ConfigComment("") + @ConfigComment("If this is blank, the reward text will be auto-generated, otherwise") + @ConfigComment("this will be used.") + @Expose + private String rewardText = ""; - /** - * @param repeatItemReward the repeatItemReward to set - */ - public void setRepeatItemReward(List repeatItemReward) { - this.repeatItemReward = repeatItemReward; - } - /** - * @return the repeatMoneyReward - */ - public int getRepeatMoneyReward() { - return repeatMoneyReward; - } + @ConfigComment("") + @ConfigComment("List of items the player will receive first time. ItemStack List.") + @Expose + private List rewardItems = new ArrayList<>(); - /** - * @param repeatMoneyReward the repeatMoneyReward to set - */ - public void setRepeatMoneyReward(int repeatMoneyReward) { - this.repeatMoneyReward = repeatMoneyReward; - } + @ConfigComment("") + @ConfigComment("Experience point reward") + @Expose + private int rewardExperience = 0; - /** - * @return the repeatRewardCommands - */ - public List getRepeatRewardCommands() { - return repeatRewardCommands; - } + @ConfigComment("") + @ConfigComment("Money reward. Economy plugin or addon required for this option.") + @Expose + private int rewardMoney = 0; - /** - * @param repeatRewardCommands the repeatRewardCommands to set - */ - public void setRepeatRewardCommands(List repeatRewardCommands) { - this.repeatRewardCommands = repeatRewardCommands; - } + @ConfigComment("") + @ConfigComment("Commands to run when the player completes the challenge for the first") + @ConfigComment("time. String List") + @Expose + private List rewardCommands = new ArrayList<>(); - /** - * @return the repeatRewardText - */ - public String getRepeatRewardText() { - return repeatRewardText; - } - /** - * @param repeatRewardText the repeatRewardText to set - */ - public void setRepeatRewardText(String repeatRewardText) { - this.repeatRewardText = repeatRewardText; - } +// --------------------------------------------------------------------- +// Section: Repeat Rewards +// --------------------------------------------------------------------- - /** - * @return the reqExp - */ - public int getReqExp() { - return reqExp; - } - /** - * @param reqExp the reqExp to set - */ - public void setReqExp(int reqExp) { - this.reqExp = reqExp; - } + @ConfigComment("") + @ConfigComment("") + @ConfigComment("True if the challenge is repeatable") + @Expose + private boolean repeatable; - /** - * @return the reqIslandlevel - */ - public long getReqIslandlevel() { - return reqIslandlevel; - } + @ConfigComment("") + @ConfigComment("Description of the repeat rewards. If blank, it will be autogenerated.") + @Expose + private String repeatRewardText = ""; - /** - * @param reqIslandlevel the reqIslandlevel to set - */ - public void setReqIslandlevel(long reqIslandlevel) { - this.reqIslandlevel = reqIslandlevel; - } + @ConfigComment("") + @ConfigComment("Maximum number of times the challenge can be repeated. 0 or less") + @ConfigComment("will mean infinite times.") + @Expose + private int maxTimes = 1; - /** - * @return the reqMoney - */ - public int getReqMoney() { - return reqMoney; - } + @ConfigComment("") + @ConfigComment("Repeat experience reward") + @Expose + private int repeatExperienceReward = 0; - /** - * @param reqMoney the reqMoney to set - */ - public void setReqMoney(int reqMoney) { - this.reqMoney = reqMoney; - } + @ConfigComment("") + @ConfigComment("Reward items for repeating the challenge. List of ItemStacks.") + @Expose + private List repeatItemReward = new ArrayList<>(); - /** - * @return the reqPerms - */ - public Set getReqPerms() { - return reqPerms; - } + @ConfigComment("") + @ConfigComment("Repeat money reward. Economy plugin or addon required for this option.") + @Expose + private int repeatMoneyReward; - /** - * @param reqPerms the reqPerms to set - */ - public void setReqPerms(Set reqPerms) { - this.reqPerms = reqPerms; - } + @ConfigComment("") + @ConfigComment("Commands to run when challenge is repeated. String List.") + @Expose + private List repeatRewardCommands = new ArrayList<>(); - /** - * @return the requiredItems - */ - public List getRequiredItems() { - return requiredItems; - } - /** - * @param requiredItems the requiredItems to set - */ - public void setRequiredItems(List requiredItems) { - this.requiredItems = requiredItems; - } +// --------------------------------------------------------------------- +// Section: Getters +// --------------------------------------------------------------------- - /** - * @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 Set getEnvironment() { - return environment; - } - - /** - * @param environment the environment to set - */ - public void setEnvironment(Set 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() { + public String getUniqueId() + { return uniqueId; } + + /** + * @return the friendlyName + */ + public String getFriendlyName() + { + return friendlyName; + } + + + /** + * @return the deployed + */ + public boolean isDeployed() + { + return deployed; + } + + + /** + * @return the description + */ + public List getDescription() + { + return description; + } + + + /** + * @return the icon + */ + public ItemStack getIcon() + { + return icon; + } + + + /** + * @return the order + */ + public int getOrder() + { + return order; + } + + + /** + * @return the challengeType + */ + public ChallengeType getChallengeType() + { + return challengeType; + } + + + /** + * @return the environment + */ + public Set getEnvironment() + { + return environment; + } + + + /** + * @return the level + */ + public String getLevel() + { + return level; + } + + + /** + * @return the removeWhenCompleted + */ + public boolean isRemoveWhenCompleted() + { + return removeWhenCompleted; + } + + + /** + * @return the requiredPermissions + */ + public Set getRequiredPermissions() + { + return requiredPermissions; + } + + + /** + * @return the requiredBlocks + */ + public Map getRequiredBlocks() + { + return requiredBlocks; + } + + + /** + * @return the removeBlocks + */ + public boolean isRemoveBlocks() + { + return removeBlocks; + } + + + /** + * @return the requiredEntities + */ + public Map getRequiredEntities() + { + return requiredEntities; + } + + + /** + * @return the removeEntities + */ + public boolean isRemoveEntities() + { + return removeEntities; + } + + + /** + * @return the requiredItems + */ + public List getRequiredItems() + { + return requiredItems; + } + + + /** + * @return the takeItems + */ + public boolean isTakeItems() + { + return takeItems; + } + + + /** + * @return the requiredExperience + */ + public int getRequiredExperience() + { + return requiredExperience; + } + + + /** + * @return the takeExperience + */ + public boolean isTakeExperience() + { + return takeExperience; + } + + + /** + * @return the requiredMoney + */ + public int getRequiredMoney() + { + return requiredMoney; + } + + + /** + * @return the takeMoney + */ + public boolean isTakeMoney() + { + return takeMoney; + } + + + /** + * @return the requiredIslandLevel + */ + public long getRequiredIslandLevel() + { + return requiredIslandLevel; + } + + + /** + * @return the searchRadius + */ + public int getSearchRadius() + { + return searchRadius; + } + + + /** + * @return the rewardText + */ + public String getRewardText() + { + return rewardText; + } + + + /** + * @return the rewardItems + */ + public List getRewardItems() + { + return rewardItems; + } + + + /** + * @return the rewardExperience + */ + public int getRewardExperience() + { + return rewardExperience; + } + + + /** + * @return the rewardMoney + */ + public int getRewardMoney() + { + return rewardMoney; + } + + + /** + * @return the rewardCommands + */ + public List getRewardCommands() + { + return rewardCommands; + } + + + /** + * @return the repeatable + */ + public boolean isRepeatable() + { + return repeatable; + } + + + /** + * @return the repeatRewardText + */ + public String getRepeatRewardText() + { + return repeatRewardText; + } + + + /** + * @return the maxTimes + */ + public int getMaxTimes() + { + return maxTimes; + } + + + /** + * @return the repeatExperienceReward + */ + public int getRepeatExperienceReward() + { + return repeatExperienceReward; + } + + + /** + * @return the repeatItemReward + */ + public List getRepeatItemReward() + { + return repeatItemReward; + } + + + /** + * @return the repeatMoneyReward + */ + public int getRepeatMoneyReward() + { + return repeatMoneyReward; + } + + + /** + * @return the repeatRewardCommands + */ + public List getRepeatRewardCommands() + { + return repeatRewardCommands; + } + + +// --------------------------------------------------------------------- +// Section: Setters +// --------------------------------------------------------------------- + + /** * @param uniqueId the uniqueId to set */ @Override - public void setUniqueId(String uniqueId) { + public void setUniqueId(String uniqueId) + { this.uniqueId = uniqueId; } - /* (non-Javadoc) + + /** + * This method sets the friendlyName value. + * @param friendlyName the friendlyName new value. + * + */ + public void setFriendlyName(String friendlyName) + { + this.friendlyName = friendlyName; + } + + + /** + * This method sets the deployed value. + * @param deployed the deployed new value. + * + */ + public void setDeployed(boolean deployed) + { + this.deployed = deployed; + } + + + /** + * This method sets the description value. + * @param description the description new value. + * + */ + public void setDescription(List description) + { + this.description = description; + } + + + /** + * This method sets the icon value. + * @param icon the icon new value. + * + */ + public void setIcon(ItemStack icon) + { + this.icon = icon; + } + + + /** + * This method sets the order value. + * @param order the order new value. + * + */ + public void setOrder(int order) + { + this.order = order; + } + + + /** + * This method sets the challengeType value. + * @param challengeType the challengeType new value. + * + */ + public void setChallengeType(ChallengeType challengeType) + { + this.challengeType = challengeType; + } + + + /** + * This method sets the environment value. + * @param environment the environment new value. + * + */ + public void setEnvironment(Set environment) + { + this.environment = environment; + } + + + /** + * This method sets the level value. + * @param level the level new value. + */ + public void setLevel(String level) + { + this.level = level; + } + + + /** + * This method sets the removeWhenCompleted value. + * @param removeWhenCompleted the removeWhenCompleted new value. + * + */ + public void setRemoveWhenCompleted(boolean removeWhenCompleted) + { + this.removeWhenCompleted = removeWhenCompleted; + } + + + /** + * This method sets the requiredPermissions value. + * @param requiredPermissions the requiredPermissions new value. + * + */ + public void setRequiredPermissions(Set requiredPermissions) + { + this.requiredPermissions = requiredPermissions; + } + + + /** + * This method sets the requiredBlocks value. + * @param requiredBlocks the requiredBlocks new value. + * + */ + public void setRequiredBlocks(Map requiredBlocks) + { + this.requiredBlocks = requiredBlocks; + } + + + /** + * This method sets the removeBlocks value. + * @param removeBlocks the removeBlocks new value. + * + */ + public void setRemoveBlocks(boolean removeBlocks) + { + this.removeBlocks = removeBlocks; + } + + + /** + * This method sets the requiredEntities value. + * @param requiredEntities the requiredEntities new value. + * + */ + public void setRequiredEntities(Map requiredEntities) + { + this.requiredEntities = requiredEntities; + } + + + /** + * This method sets the removeEntities value. + * @param removeEntities the removeEntities new value. + * + */ + public void setRemoveEntities(boolean removeEntities) + { + this.removeEntities = removeEntities; + } + + + /** + * This method sets the requiredItems value. + * @param requiredItems the requiredItems new value. + * + */ + public void setRequiredItems(List requiredItems) + { + this.requiredItems = requiredItems; + } + + + /** + * This method sets the takeItems value. + * @param takeItems the takeItems new value. + * + */ + public void setTakeItems(boolean takeItems) + { + this.takeItems = takeItems; + } + + + /** + * This method sets the requiredExperience value. + * @param requiredExperience the requiredExperience new value. + * + */ + public void setRequiredExperience(int requiredExperience) + { + this.requiredExperience = requiredExperience; + } + + + /** + * This method sets the takeExperience value. + * @param takeExperience the takeExperience new value. + * + */ + public void setTakeExperience(boolean takeExperience) + { + this.takeExperience = takeExperience; + } + + + /** + * This method sets the requiredMoney value. + * @param requiredMoney the requiredMoney new value. + * + */ + public void setRequiredMoney(int requiredMoney) + { + this.requiredMoney = requiredMoney; + } + + + /** + * This method sets the takeMoney value. + * @param takeMoney the takeMoney new value. + * + */ + public void setTakeMoney(boolean takeMoney) + { + this.takeMoney = takeMoney; + } + + + /** + * This method sets the requiredIslandLevel value. + * @param requiredIslandLevel the requiredIslandLevel new value. + * + */ + public void setRequiredIslandLevel(long requiredIslandLevel) + { + this.requiredIslandLevel = requiredIslandLevel; + } + + + /** + * This method sets the searchRadius value. + * @param searchRadius the searchRadius new value. + * + */ + public void setSearchRadius(int searchRadius) + { + this.searchRadius = searchRadius; + } + + + /** + * This method sets the rewardText value. + * @param rewardText the rewardText new value. + * + */ + public void setRewardText(String rewardText) + { + this.rewardText = rewardText; + } + + + /** + * This method sets the rewardItems value. + * @param rewardItems the rewardItems new value. + * + */ + public void setRewardItems(List rewardItems) + { + this.rewardItems = rewardItems; + } + + + /** + * This method sets the rewardExperience value. + * @param rewardExperience the rewardExperience new value. + * + */ + public void setRewardExperience(int rewardExperience) + { + this.rewardExperience = rewardExperience; + } + + + /** + * This method sets the rewardMoney value. + * @param rewardMoney the rewardMoney new value. + * + */ + public void setRewardMoney(int rewardMoney) + { + this.rewardMoney = rewardMoney; + } + + + /** + * This method sets the rewardCommands value. + * @param rewardCommands the rewardCommands new value. + * + */ + public void setRewardCommands(List rewardCommands) + { + this.rewardCommands = rewardCommands; + } + + + /** + * This method sets the repeatable value. + * @param repeatable the repeatable new value. + * + */ + public void setRepeatable(boolean repeatable) + { + this.repeatable = repeatable; + } + + + /** + * This method sets the repeatRewardText value. + * @param repeatRewardText the repeatRewardText new value. + * + */ + public void setRepeatRewardText(String repeatRewardText) + { + this.repeatRewardText = repeatRewardText; + } + + + /** + * This method sets the maxTimes value. + * @param maxTimes the maxTimes new value. + * + */ + public void setMaxTimes(int maxTimes) + { + this.maxTimes = maxTimes; + } + + + /** + * This method sets the repeatExperienceReward value. + * @param repeatExperienceReward the repeatExperienceReward new value. + * + */ + public void setRepeatExperienceReward(int repeatExperienceReward) + { + this.repeatExperienceReward = repeatExperienceReward; + } + + + /** + * This method sets the repeatItemReward value. + * @param repeatItemReward the repeatItemReward new value. + * + */ + public void setRepeatItemReward(List repeatItemReward) + { + this.repeatItemReward = repeatItemReward; + } + + + /** + * This method sets the repeatMoneyReward value. + * @param repeatMoneyReward the repeatMoneyReward new value. + * + */ + public void setRepeatMoneyReward(int repeatMoneyReward) + { + this.repeatMoneyReward = repeatMoneyReward; + } + + + /** + * This method sets the repeatRewardCommands value. + * @param repeatRewardCommands the repeatRewardCommands new value. + * + */ + public void setRepeatRewardCommands(List repeatRewardCommands) + { + this.repeatRewardCommands = repeatRewardCommands; + } + + +// --------------------------------------------------------------------- +// Section: Other methods +// --------------------------------------------------------------------- + + + /** * @see java.lang.Object#hashCode() + * @return int */ @Override - public int hashCode() { + 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) + + /** + * @see java.lang.Object#equals(Object) () + * @param obj of type Object + * @return boolean */ @Override - public boolean equals(Object obj) { - if (this == obj) { + public boolean equals(Object obj) + { + if (this == obj) + { return true; } - if (obj == null) { - return false; - } - if (!(obj instanceof Challenge)) { + + if (!(obj instanceof Challenge)) + { return false; } + Challenge other = (Challenge) obj; - if (uniqueId == null) { - if (other.uniqueId != null) { - return false; - } - } else if (!uniqueId.equals(other.uniqueId)) { - return false; + + if (uniqueId == null) + { + return other.uniqueId == null; + } + else + { + return uniqueId.equals(other.uniqueId); } - return true; } -} +} \ No newline at end of file diff --git a/src/main/java/world/bentobox/challenges/database/object/ChallengeLevel.java b/src/main/java/world/bentobox/challenges/database/object/ChallengeLevel.java index 70b5f74..cae1976 100644 --- a/src/main/java/world/bentobox/challenges/database/object/ChallengeLevel.java +++ b/src/main/java/world/bentobox/challenges/database/object/ChallengeLevel.java @@ -1,9 +1,13 @@ package world.bentobox.challenges.database.object; +import com.google.gson.annotations.Expose; +import org.bukkit.Material; import org.bukkit.inventory.ItemStack; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import world.bentobox.bentobox.api.configuration.ConfigComment; import world.bentobox.bentobox.database.objects.DataObject; @@ -14,223 +18,455 @@ import world.bentobox.challenges.ChallengesManager; * @author tastybento * */ -public class ChallengeLevel implements DataObject, Comparable { +public class ChallengeLevel implements DataObject, Comparable +{ + /** + * Constructor ChallengeLevel creates a new ChallengeLevel instance. + */ + public ChallengeLevel() + { + } - public ChallengeLevel() {} - @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<>(); +// --------------------------------------------------------------------- +// Section: Variables +// --------------------------------------------------------------------- - @ConfigComment("Commands to run when this level is completed") - private List rewardCommands = new ArrayList<>(); - + @ConfigComment("") @ConfigComment("Level name") + @Expose 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") + + @ConfigComment("") + @ConfigComment("A friendly name for the level. If blank, level name is used.") + @Expose + private String friendlyName = ""; + + @ConfigComment("") + @ConfigComment("ItemStack that represents current level. Will be used as icon in GUIs.") + @Expose + private ItemStack icon = new ItemStack(Material.BOOK); + + @ConfigComment("") + @ConfigComment("World that this level applies in. String.") + @Expose + private String world = ""; + + @ConfigComment("") + @ConfigComment("The ordering of the level, lowest to highest") + @Expose + private int order; + + @ConfigComment("") + @ConfigComment("The number of undone challenges that can be left on this level before") + @ConfigComment("unlocking next level.") + @Expose + private int waiverAmount = 1; + + @ConfigComment("") + @ConfigComment("The message shown when unlocking this level. Single line string.") + @Expose 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<>(); - } + @ConfigComment("") + @ConfigComment("") + @ConfigComment("If this is blank, the reward text will be auto-generated, otherwise") + @ConfigComment("this will be used.") + @Expose + private String rewardText = ""; + + @ConfigComment("") + @ConfigComment("List of items the player will receive on completing level.") + @ConfigComment("ItemStack List.") + @Expose + private List rewardItems = new ArrayList<>(); + + @ConfigComment("") + @ConfigComment("Experience point reward on completing level.") + @Expose + private int rewardExperience = 0; + + @ConfigComment("") + @ConfigComment("Money reward. Economy plugin or addon required for this option.") + @Expose + private int rewardMoney = 0; + + @ConfigComment("") + @ConfigComment("Commands to run when the player completes all challenges in current") + @ConfigComment("level. String List") + @Expose + private List rewardCommands = new ArrayList<>(); + + @ConfigComment("") + @ConfigComment("Set of all challenges that is linked with current level.") + @ConfigComment("String Set") + @Expose + private Set challenges = new HashSet<>(); + + +// --------------------------------------------------------------------- +// Section: Getters +// --------------------------------------------------------------------- + + + /** + * This method returns the uniqueId value. + * @return the value of uniqueId. + * @see DataObject#getUniqueId() + */ @Override - public String getUniqueId() { + public String getUniqueId() + { return uniqueId; } + /** - * Get the number of undone tasks that can be left on a level before unlocking next level - * @return + * This method returns the friendlyName value. + * @return the value of friendlyName. */ - public int getWaiveramount() { - return waiveramount; + public String getFriendlyName() + { + return friendlyName; } - public void setFriendlyName(String friendlyName) { - this.friendlyName = friendlyName; + + /** + * This method returns the icon value. + * @return the value of icon. + */ + public ItemStack getIcon() + { + return icon; } - public void setRewardCommands(List rewardCommands) { - this.rewardCommands = rewardCommands; + + /** + * This method returns the world value. + * @return the value of world. + */ + public String getWorld() + { + return world; } - @Override - public void setUniqueId(String uniqueId) { - this.uniqueId = uniqueId; - } - public void setWaiveramount(int waiveramount) { - this.waiveramount = waiveramount; - } - - public int getOrder() { + /** + * This method returns the order value. + * @return the value of order. + */ + public int getOrder() + { return order; } - public void setOrder(int order) { - this.order = order; - } - - @Override - public int compareTo(ChallengeLevel o) { - return Integer.compare(this.order, o.order); - } - - /** - * @return the rewardDescription - */ - public String getRewardDescription() { - return rewardDescription; - } /** - * @param rewardDescription the rewardDescription to set + * This method returns the waiverAmount value. + * @return the value of waiverAmount. */ - public void setRewardDescription(String rewardDescription) { - this.rewardDescription = rewardDescription; + public int getWaiverAmount() + { + return waiverAmount; } - /** - * @return the rewardItems - */ - public List getRewardItems() { - return rewardItems; - } /** - * @param rewardItems the rewardItems to set + * This method returns the unlockMessage value. + * @return the value of unlockMessage. */ - 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() { + public String getUnlockMessage() + { return unlockMessage; } + /** - * @param unlockMessage the unlockMessage to set + * This method returns the rewardText value. + * @return the value of rewardText. */ - public void setUnlockMessage(String unlockMessage) { + public String getRewardText() + { + return rewardText; + } + + + /** + * This method returns the rewardItems value. + * @return the value of rewardItems. + */ + public List getRewardItems() + { + return rewardItems; + } + + + /** + * This method returns the rewardExperience value. + * @return the value of rewardExperience. + */ + public int getRewardExperience() + { + return rewardExperience; + } + + + /** + * This method returns the rewardMoney value. + * @return the value of rewardMoney. + */ + public int getRewardMoney() + { + return rewardMoney; + } + + + /** + * This method returns the rewardCommands value. + * @return the value of rewardCommands. + */ + public List getRewardCommands() + { + return rewardCommands; + } + + + /** + * This method returns the challenges value. + * @return the value of challenges. + */ + public Set getChallenges() + { + return challenges; + } + + +// --------------------------------------------------------------------- +// Section: Setters +// --------------------------------------------------------------------- + + + /** + * This method sets the uniqueId value. + * @param uniqueId the uniqueId new value. + * + * @see DataObject#setUniqueId(String) + */ + @Override + public void setUniqueId(String uniqueId) + { + this.uniqueId = uniqueId; + } + + + /** + * This method sets the friendlyName value. + * @param friendlyName the friendlyName new value. + * + */ + public void setFriendlyName(String friendlyName) + { + this.friendlyName = friendlyName; + } + + + /** + * This method sets the icon value. + * @param icon the icon new value. + * + */ + public void setIcon(ItemStack icon) + { + this.icon = icon; + } + + + /** + * This method sets the world value. + * @param world the world new value. + * + */ + public void setWorld(String world) + { + this.world = world; + } + + + /** + * This method sets the order value. + * @param order the order new value. + * + */ + public void setOrder(int order) + { + this.order = order; + } + + + /** + * This method sets the waiverAmount value. + * @param waiverAmount the waiverAmount new value. + * + */ + public void setWaiverAmount(int waiverAmount) + { + this.waiverAmount = waiverAmount; + } + + + /** + * This method sets the unlockMessage value. + * @param unlockMessage the unlockMessage new value. + * + */ + public void setUnlockMessage(String unlockMessage) + { this.unlockMessage = unlockMessage; } - /** - * @return the worlds - */ - public List getWorlds() { - return worlds; - } /** - * @param worlds the worlds to set + * This method sets the rewardText value. + * @param rewardText the rewardText new value. + * */ - public void setWorlds(List worlds) { - this.worlds = worlds; + public void setRewardText(String rewardText) + { + this.rewardText = rewardText; } - /* (non-Javadoc) - * @see java.lang.Object#hashCode() + + /** + * This method sets the rewardItems value. + * @param rewardItems the rewardItems new value. + * + */ + public void setRewardItems(List rewardItems) + { + this.rewardItems = rewardItems; + } + + + /** + * This method sets the rewardExperience value. + * @param rewardExperience the rewardExperience new value. + * + */ + public void setRewardExperience(int rewardExperience) + { + this.rewardExperience = rewardExperience; + } + + + /** + * This method sets the rewardMoney value. + * @param rewardMoney the rewardMoney new value. + * + */ + public void setRewardMoney(int rewardMoney) + { + this.rewardMoney = rewardMoney; + } + + + /** + * This method sets the rewardCommands value. + * @param rewardCommands the rewardCommands new value. + * + */ + public void setRewardCommands(List rewardCommands) + { + this.rewardCommands = rewardCommands; + } + + + /** + * This method sets the challenges value. + * @param challenges the challenges new value. + * + */ + public void setChallenges(Set challenges) + { + this.challenges = challenges; + } + + +// --------------------------------------------------------------------- +// Section: Other methods +// --------------------------------------------------------------------- + + + /** + * {@inheritDoc} */ @Override - public int hashCode() { + public int compareTo(ChallengeLevel o) + { + if (this.equals(o)) + { + return 0; + } + else + { + if (this.getWorld().equals(o.getWorld())) + { + if (this.order == o.getOrder()) + { + return this.getUniqueId().compareTo(o.getUniqueId()); + } + else + { + return Integer.compare(this.order, o.getOrder()); + } + } + else + { + return this.getWorld().compareTo(o.getWorld()); + } + } + } + + + /** + * {@inheritDoc} + */ + @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) + + + /** + * {@inheritDoc} */ @Override - public boolean equals(Object obj) { - if (this == obj) { + public boolean equals(Object obj) + { + if (this == obj) + { return true; } - if (obj == null) { - return false; - } - if (!(obj instanceof ChallengeLevel)) { + + if (!(obj instanceof ChallengeLevel)) + { return false; } + ChallengeLevel other = (ChallengeLevel) obj; - if (uniqueId == null) { - if (other.uniqueId != null) { - return false; - } - } else if (!uniqueId.equals(other.uniqueId)) { - return false; + + if (uniqueId == null) + { + return other.uniqueId == null; + } + else + { + return uniqueId.equals(other.uniqueId); } - return true; } - - - public ItemStack getIcon() - { - return null; - } - - - public void setIcon(ItemStack newIcon) - { - - } -} +} \ No newline at end of file diff --git a/src/main/java/world/bentobox/challenges/database/object/ChallengesPlayerData.java b/src/main/java/world/bentobox/challenges/database/object/ChallengesPlayerData.java index fd62f9f..afc84a0 100644 --- a/src/main/java/world/bentobox/challenges/database/object/ChallengesPlayerData.java +++ b/src/main/java/world/bentobox/challenges/database/object/ChallengesPlayerData.java @@ -1,6 +1,3 @@ -/** - * - */ package world.bentobox.challenges.database.object; import java.util.HashMap; @@ -20,173 +17,265 @@ import world.bentobox.bentobox.util.Util; * @author tastybento * */ -public class ChallengesPlayerData implements DataObject { +public class ChallengesPlayerData implements DataObject +{ + /** + * Constructor ChallengesPlayerData creates a new ChallengesPlayerData instance. + */ + public ChallengesPlayerData() + { + } - @Expose - private String uniqueId = ""; - /** - * Challenge map, where key = unique challenge name and Value = number of times completed - */ - @Expose - private Map challengeStatus = new HashMap<>(); - @Expose - private Map challengesTimestamp = new HashMap<>(); - @Expose - private Set levelsDone = new HashSet<>(); - // Required for bean instantiation - public ChallengesPlayerData() {} + /** + * Creates a player data entry + * + * @param uniqueId - the player's UUID in string format + */ + public ChallengesPlayerData(String uniqueId) + { + this.uniqueId = uniqueId; + } - /** - * Mark a challenge as having been completed. Will increment the number of times and timestamp - * @param world - world of challenge - * @param challengeName - unique challenge name - */ - public void setChallengeDone(World world, String challengeName) { - String name = Util.getWorld(world).getName() + challengeName; - int times = challengeStatus.getOrDefault(name, 0) + 1; - challengeStatus.put(name, times); - challengesTimestamp.put(name, System.currentTimeMillis()); - } - /** - * Set the number of times a challenge has been done - * @param world - world of challenge - * @param challengeName - unique challenge name - * @param times - the number of times to set - * - */ - public void setChallengeTimes(World world, String challengeName, int times) { - String name = Util.getWorld(world).getName() + challengeName; - challengeStatus.put(name, times); - challengesTimestamp.put(name, System.currentTimeMillis()); - } +// --------------------------------------------------------------------- +// Section: Variables +// --------------------------------------------------------------------- - /** - * Check if a challenge has been done - * @param challengeName - unique challenge name - * @return true if done at least once - */ - public boolean isChallengeDone(World world, String challengeName) { - return getTimes(world, challengeName) > 0; - } - /** - * Check how many times a challenge has been done - * @param challengeName - unique challenge name - * @return - number of times - */ - public int getTimes(World world, String challengeName) { - return challengeStatus.getOrDefault(Util.getWorld(world).getName() + challengeName, 0); - } + /** + * This variable stores each player UUID as string. + */ + @Expose + private String uniqueId = ""; - /** - * Creates a player data entry - * @param uniqueId - the player's UUID in string format - */ - public ChallengesPlayerData(String uniqueId) { - this.uniqueId = uniqueId; - } + /** + * Challenge map, where key = unique challenge name and Value = number of times + * completed + */ + @Expose + private Map challengeStatus = new HashMap<>(); - /* (non-Javadoc) - * @see world.bentobox.bbox.database.objects.DataObject#getUniqueId() - */ - @Override - public String getUniqueId() { - return uniqueId; - } + /** + * Map of challenges completion time where key is challenges unique id and value is + * timestamp when challenge was completed last time. + */ + @Expose + private Map challengesTimestamp = new HashMap<>(); - /* (non-Javadoc) - * @see world.bentobox.bbox.database.objects.DataObject#setUniqueId(java.lang.String) - */ - @Override - public void setUniqueId(String uniqueId) { - this.uniqueId = uniqueId; - } + /** + * Set of Strings that contains all challenge levels that are completed. + */ + @Expose + private Set levelsDone = new HashSet<>(); - /** - * @return the challengeStatus - */ - public Map getChallengeStatus() { - return challengeStatus; - } - /** - * @param challengeStatus the challengeStatus to set - */ - public void setChallengeStatus(Map challengeStatus) { - this.challengeStatus = challengeStatus; - } - /** - * @return the challengesTimestamp - */ - public Map getChallengesTimestamp() { - return challengesTimestamp; - } - /** - * @param challengesTimestamp the challengesTimestamp to set - */ - public void setChallengesTimestamp(Map challengesTimestamp) { - this.challengesTimestamp = challengesTimestamp; - } - /** - * @return the levelsDone - */ - public Set getLevelsDone() { - return levelsDone; - } - /** - * @param levelsDone the levelsDone to set - */ - public void setLevelsDone(Set levelsDone) { - this.levelsDone = levelsDone; - } +// --------------------------------------------------------------------- +// Section: Getters +// --------------------------------------------------------------------- - /* (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 ChallengesPlayerData)) { - return false; - } - ChallengesPlayerData other = (ChallengesPlayerData) obj; - if (uniqueId == null) { - if (other.uniqueId != null) { - return false; - } - } else if (!uniqueId.equals(other.uniqueId)) { - return false; - } - return true; - } + /** + * @return uniqueID + * @see DataObject#getUniqueId() + */ + @Override + public String getUniqueId() + { + return uniqueId; + } - /** - * Resets all challenges and levels in world for this player - * @param world - */ - public void reset(World world) { - String worldName = Util.getWorld(world).getName(); - challengeStatus.keySet().removeIf(n -> n.startsWith(worldName)); - challengesTimestamp.keySet().removeIf(n -> n.startsWith(worldName)); - levelsDone.removeIf(n -> n.startsWith(worldName)); - } -} + /** + * This method returns the challengeStatus value. + * @return the value of challengeStatus. + */ + public Map getChallengeStatus() + { + return challengeStatus; + } + + + /** + * This method returns the challengesTimestamp value. + * @return the value of challengesTimestamp. + */ + public Map getChallengesTimestamp() + { + return challengesTimestamp; + } + + + /** + * This method returns the levelsDone value. + * @return the value of levelsDone. + */ + public Set getLevelsDone() + { + return levelsDone; + } + + +// --------------------------------------------------------------------- +// Section: Setters +// --------------------------------------------------------------------- + + + /** + * @param uniqueId - unique ID the uniqueId to set + * @see DataObject#setUniqueId(String) + */ + @Override + public void setUniqueId(String uniqueId) + { + this.uniqueId = uniqueId; + } + + + /** + * This method sets the challengeStatus value. + * @param challengeStatus the challengeStatus new value. + * + */ + public void setChallengeStatus(Map challengeStatus) + { + this.challengeStatus = challengeStatus; + } + + + /** + * This method sets the challengesTimestamp value. + * @param challengesTimestamp the challengesTimestamp new value. + * + */ + public void setChallengesTimestamp(Map challengesTimestamp) + { + this.challengesTimestamp = challengesTimestamp; + } + + + /** + * This method sets the levelsDone value. + * @param levelsDone the levelsDone new value. + * + */ + public void setLevelsDone(Set levelsDone) + { + this.levelsDone = levelsDone; + } + + +// --------------------------------------------------------------------- +// Section: Other Methods +// --------------------------------------------------------------------- + + + /** + * Resets all challenges and levels in world for this player + * + * @param world world which challenges must be reset. + */ + public void reset(World world) + { + String worldName = Util.getWorld(world).getName(); + challengeStatus.keySet().removeIf(n -> n.startsWith(worldName)); + challengesTimestamp.keySet().removeIf(n -> n.startsWith(worldName)); + levelsDone.removeIf(n -> n.startsWith(worldName)); + } + + + /** + * Mark a challenge as having been completed. Will increment the number of times and + * timestamp + * + * @param challengeName - unique challenge name + */ + public void setChallengeDone(String challengeName) + { + int times = challengeStatus.getOrDefault(challengeName, 0) + 1; + challengeStatus.put(challengeName, times); + challengesTimestamp.put(challengeName, System.currentTimeMillis()); + } + + + /** + * Set the number of times a challenge has been done + * + * @param challengeName - unique challenge name + * @param times - the number of times to set + */ + public void setChallengeTimes(String challengeName, int times) + { + challengeStatus.put(challengeName, times); + challengesTimestamp.put(challengeName, System.currentTimeMillis()); + } + + + /** + * Check if a challenge has been done + * + * @param challengeName - unique challenge name + * @return true if done at least once + */ + public boolean isChallengeDone(String challengeName) + { + return this.getTimes(challengeName) > 0; + } + + + /** + * Check how many times a challenge has been done + * + * @param challengeName - unique challenge name + * @return - number of times + */ + public int getTimes(String challengeName) + { + return challengeStatus.getOrDefault(challengeName, 0); + } + + + /** + * @see Object#hashCode() + * @return object hashCode value. + */ + @Override + public int hashCode() + { + final int prime = 31; + int result = 1; + result = prime * result + ((uniqueId == null) ? 0 : uniqueId.hashCode()); + return result; + } + + + /** + * @see java.lang.Object#equals(java.lang.Object) + * @param obj Other object. + * @return boolean that indicate if objects are equals. + */ + @Override + public boolean equals(Object obj) + { + if (this == obj) + { + return true; + } + + if (!(obj instanceof ChallengesPlayerData)) + { + return false; + } + + ChallengesPlayerData other = (ChallengesPlayerData) obj; + + if (uniqueId == null) + { + return other.uniqueId == null; + } + else + { + return uniqueId.equals(other.uniqueId); + } + } +} \ No newline at end of file diff --git a/src/main/java/world/bentobox/challenges/panel/ChallengesPanels.java b/src/main/java/world/bentobox/challenges/panel/ChallengesPanels.java index ff58d80..f021c74 100644 --- a/src/main/java/world/bentobox/challenges/panel/ChallengesPanels.java +++ b/src/main/java/world/bentobox/challenges/panel/ChallengesPanels.java @@ -85,7 +85,6 @@ public class ChallengesPanels { * Creates a panel item for challenge if appropriate and adds it to panelBuilder * @param panelBuilder * @param challenge - * @param user */ private void createItem(PanelBuilder panelBuilder, Challenge challenge) { // Check completion @@ -100,16 +99,13 @@ public class ChallengesPanels { .description(challengeDescription(challenge)) .glow(completed) .clickHandler((panel, player, c, s) -> { - if (!challenge.getChallengeType().equals(ChallengeType.ICON)) { - new TryToComplete(addon).user(player).manager(manager).challenge(challenge) + new TryToComplete(addon).user(player).manager(manager).challenge(challenge) .world(world).permPrefix(permPrefix).label(label).build(); - //new TryToComplete(addon, player, manager, challenge, world, permPrefix, label); - } return true; }) .build(); - if (challenge.getSlot() >= 0) { - panelBuilder.item(challenge.getSlot(),item); + if (challenge.getOrder() >= 0) { + panelBuilder.item(challenge.getOrder(),item); } else { panelBuilder.item(item); } @@ -161,7 +157,6 @@ public class ChallengesPanels { * Creates the challenge description for the "item" in the inventory * * @param challenge - * @param player * @return List of strings splitting challenge string into 25 chars long */ private List challengeDescription(Challenge challenge) { @@ -210,7 +205,7 @@ public class ChallengesPanels { // First time moneyReward = challenge.getRewardMoney(); rewardText = challenge.getRewardText(); - expReward = challenge.getRewardExp(); + expReward = challenge.getRewardExperience(); if (!rewardText.isEmpty()) { result.addAll(splitTrans(user, "challenges.first-time-rewards")); } @@ -218,7 +213,7 @@ public class ChallengesPanels { // Repeat challenge moneyReward = challenge.getRepeatMoneyReward(); rewardText = challenge.getRepeatRewardText(); - expReward = challenge.getRepeatExpReward(); + expReward = challenge.getRepeatExperienceReward(); if (!rewardText.isEmpty()) { result.addAll(splitTrans(user, "challenges.repeat-rewards")); } diff --git a/src/main/java/world/bentobox/challenges/panel/ChallengesPanels2.java b/src/main/java/world/bentobox/challenges/panel/ChallengesPanels2.java index f52bf72..2f215c6 100644 --- a/src/main/java/world/bentobox/challenges/panel/ChallengesPanels2.java +++ b/src/main/java/world/bentobox/challenges/panel/ChallengesPanels2.java @@ -107,7 +107,6 @@ public class ChallengesPanels2 { * Creates a panel item for challenge if appropriate and adds it to panelBuilder * @param panelBuilder * @param challenge - * @param requester */ private void createItem(PanelBuilder panelBuilder, Challenge challenge) { // For admin, glow means activated. For user, glow means done @@ -138,33 +137,27 @@ public class ChallengesPanels2 { if (mode.equals(Mode.ADMIN)) { // Admin click itemBuilder.clickHandler((panel, player, c, s) -> { - if (!challenge.getChallengeType().equals(ChallengeType.ICON)) { - new AdminGUI(addon, player, challenge, world, permPrefix, label); - } + new AdminGUI(addon, player, challenge, world, permPrefix, label); return true; }); } else if (mode.equals(Mode.EDIT)) { // Admin edit click itemBuilder.clickHandler((panel, player, c, s) -> { - if (!challenge.getChallengeType().equals(ChallengeType.ICON)) { - new AdminEditGUI(addon, player, target, challenge, world, permPrefix, label); - } + new AdminEditGUI(addon, player, target, challenge, world, permPrefix, label); return true; }); } else { // Player click itemBuilder.clickHandler((panel, player, c, s) -> { - if (!challenge.getChallengeType().equals(ChallengeType.ICON)) { - new TryToComplete(addon, player, manager, challenge, world, permPrefix, label); - } + new TryToComplete(addon, player, manager, challenge, world, permPrefix, label); return true; }); } // If the challenge has a specific slot allocated, use it - if (challenge.getSlot() >= 0) { - panelBuilder.item(challenge.getSlot(),itemBuilder.build()); + if (challenge.getOrder() >= 0) { + panelBuilder.item(challenge.getOrder(),itemBuilder.build()); } else { panelBuilder.item(itemBuilder.build()); } @@ -216,7 +209,6 @@ public class ChallengesPanels2 { * Creates the challenge description for the "item" in the inventory * * @param challenge - * @param player * @return List of strings splitting challenge string into 25 chars long */ private List challengeDescription(Challenge challenge) { @@ -287,7 +279,7 @@ public class ChallengesPanels2 { // First time moneyReward = challenge.getRewardMoney(); rewardText = challenge.getRewardText(); - expReward = challenge.getRewardExp(); + expReward = challenge.getRewardExperience(); if (!rewardText.isEmpty()) { result.addAll(splitTrans(requester, "challenges.first-time-rewards")); } @@ -296,7 +288,7 @@ public class ChallengesPanels2 { // Repeat challenge moneyReward = challenge.getRepeatMoneyReward(); rewardText = challenge.getRepeatRewardText(); - expReward = challenge.getRepeatExpReward(); + expReward = challenge.getRepeatExperienceReward(); if (!rewardText.isEmpty()) { result.addAll(splitTrans(requester, "challenges.repeat-rewards")); } diff --git a/src/main/java/world/bentobox/challenges/panel/RequiredPanel.java b/src/main/java/world/bentobox/challenges/panel/RequiredPanel.java index 9e69652..76ff526 100644 --- a/src/main/java/world/bentobox/challenges/panel/RequiredPanel.java +++ b/src/main/java/world/bentobox/challenges/panel/RequiredPanel.java @@ -73,7 +73,7 @@ public class RequiredPanel implements ClickHandler, PanelListener { .clickHandler(this) .build()).forEach(pb::item); return pb.user(user).build(); - case LEVEL: + case OTHER: break; default: @@ -137,8 +137,6 @@ public class RequiredPanel implements ClickHandler, PanelListener { } // Save changes switch (challenge.getChallengeType()) { - case ICON: - break; case INVENTORY: List reqItems = new ArrayList<>(); // Skip first item @@ -154,7 +152,7 @@ public class RequiredPanel implements ClickHandler, PanelListener { break; case ISLAND: break; - case LEVEL: + case OTHER: break; default: break; diff --git a/src/main/java/world/bentobox/challenges/panel/TryToComplete.java b/src/main/java/world/bentobox/challenges/panel/TryToComplete.java index c5012f9..ffe8709 100644 --- a/src/main/java/world/bentobox/challenges/panel/TryToComplete.java +++ b/src/main/java/world/bentobox/challenges/panel/TryToComplete.java @@ -97,7 +97,7 @@ public class TryToComplete { vaultHook -> vaultHook.deposit(this.user, this.challenge.getRewardMoney())); // Give exp - user.getPlayer().giveExp(challenge.getRewardExp()); + user.getPlayer().giveExp(challenge.getRewardExperience()); // Run commands runCommands(challenge.getRewardCommands()); user.sendMessage("challenges.you-completed", "[challenge]", challenge.getFriendlyName()); @@ -118,7 +118,7 @@ public class TryToComplete { vaultHook -> vaultHook.deposit(this.user, this.challenge.getRepeatMoneyReward())); // Give exp - user.getPlayer().giveExp(challenge.getRepeatExpReward()); + user.getPlayer().giveExp(challenge.getRepeatExperienceReward()); // Run commands runCommands(challenge.getRepeatRewardCommands()); user.sendMessage("challenges.you-repeated", "[challenge]", challenge.getFriendlyName()); @@ -162,7 +162,7 @@ public class TryToComplete { vaultHook -> vaultHook.deposit(this.user, this.challenge.getRewardMoney())); // Give exp - user.getPlayer().giveExp(challenge.getRewardExp()); + user.getPlayer().giveExp(challenge.getRewardExperience()); // Run commands runCommands(challenge.getRewardCommands()); user.sendMessage("challenges.you-completed", "[challenge]", challenge.getFriendlyName()); @@ -183,7 +183,7 @@ public class TryToComplete { vaultHook -> vaultHook.deposit(this.user, this.challenge.getRepeatMoneyReward())); // Give exp - user.getPlayer().giveExp(challenge.getRepeatExpReward()); + user.getPlayer().giveExp(challenge.getRepeatExperienceReward()); // Run commands runCommands(challenge.getRepeatRewardCommands()); user.sendMessage("challenges.you-repeated", "[challenge]", challenge.getFriendlyName()); @@ -199,7 +199,7 @@ public class TryToComplete { */ private ChallengeResult checkIfCanCompleteChallenge() { // Check the world - if (!Util.getWorld(user.getWorld()).getName().equalsIgnoreCase(challenge.getWorld())) { + if (!challenge.getUniqueId().startsWith(Util.getWorld(world).getName())) { user.sendMessage("general.errors.wrong-world"); return new ChallengeResult(); } @@ -215,7 +215,7 @@ public class TryToComplete { } // Check repeatability if (manager.isChallengeComplete(user, challenge.getUniqueId(), world) - && (!challenge.isRepeatable() || challenge.getChallengeType().equals(ChallengeType.LEVEL) + && (!challenge.isRepeatable() || challenge.getChallengeType().equals(ChallengeType.OTHER) || challenge.getChallengeType().equals(ChallengeType.ISLAND))) { user.sendMessage("challenges.not-repeatable"); return new ChallengeResult(); @@ -226,24 +226,24 @@ public class TryToComplete { if (vaultHook.isPresent()) { - if (!vaultHook.get().has(this.user, this.challenge.getReqMoney())) + if (!vaultHook.get().has(this.user, this.challenge.getRequiredMoney())) { - this.user.sendMessage("challenges.not-enough-money", "[money]", Integer.toString(this.challenge.getReqMoney())); + this.user.sendMessage("challenges.not-enough-money", "[money]", Integer.toString(this.challenge.getRequiredMoney())); return new ChallengeResult(); } } // Check exp - if (this.user.getPlayer().getTotalExperience() < this.challenge.getReqExp()) + if (this.user.getPlayer().getTotalExperience() < this.challenge.getRequiredExperience()) { - this.user.sendMessage("challenges.not-enough-exp", "[xp]", Integer.toString(this.challenge.getReqExp())); + this.user.sendMessage("challenges.not-enough-exp", "[xp]", Integer.toString(this.challenge.getRequiredExperience())); return new ChallengeResult(); } switch (challenge.getChallengeType()) { case INVENTORY: return checkInventory(); - case LEVEL: + case OTHER: return checkLevel(); case ISLAND: return checkSurrounding(); @@ -303,9 +303,9 @@ public class TryToComplete { if (vaultHook.isPresent() && this.challenge.isTakeMoney() && - this.challenge.getReqMoney() > 0) + this.challenge.getRequiredMoney() > 0) { - vaultHook.get().withdraw(this.user, this.challenge.getReqMoney()); + vaultHook.get().withdraw(this.user, this.challenge.getRequiredMoney()); } } @@ -346,12 +346,12 @@ public class TryToComplete { // Check if the level addon is installed or not long level = addon.getAddonByName("Level") .map(l -> ((Level)l).getIslandLevel(world, user.getUniqueId())).orElse(0L); - if (level >= challenge.getReqIslandlevel()) { + if (level >= challenge.getRequiredIslandLevel()) { // process money removal this.removeMoney(); return new ChallengeResult().setMeetsRequirements(); } else { - user.sendMessage("challenges.error.island-level", TextVariables.NUMBER, String.valueOf(challenge.getReqIslandlevel())); + user.sendMessage("challenges.error.island-level", TextVariables.NUMBER, String.valueOf(challenge.getRequiredIslandLevel())); return new ChallengeResult(); } } @@ -428,7 +428,6 @@ public class TryToComplete { private boolean meetsRequirements; private boolean repeat; /** - * @param meetsRequirements the meetsRequirements to set */ public ChallengeResult setMeetsRequirements() { this.meetsRequirements = true; diff --git a/src/main/java/world/bentobox/challenges/panel/admin/EditChallengeGUI.java b/src/main/java/world/bentobox/challenges/panel/admin/EditChallengeGUI.java index 5271864..203b3c6 100644 --- a/src/main/java/world/bentobox/challenges/panel/admin/EditChallengeGUI.java +++ b/src/main/java/world/bentobox/challenges/panel/admin/EditChallengeGUI.java @@ -102,7 +102,7 @@ public class EditChallengeGUI extends CommonGUI case ISLAND: this.buildIslandRequirementsPanel(panelBuilder); break; - case LEVEL: + case OTHER: this.buildOtherRequirementsPanel(panelBuilder); break; } @@ -320,7 +320,7 @@ public class EditChallengeGUI extends CommonGUI { icon = new ItemStack(Material.CHEST); } - else if (this.challenge.getChallengeType().equals(Challenge.ChallengeType.LEVEL)) + else if (this.challenge.getChallengeType().equals(Challenge.ChallengeType.OTHER)) { icon = new ItemStack(Material.EXPERIENCE_BOTTLE); } @@ -427,13 +427,13 @@ public class EditChallengeGUI extends CommonGUI description = Collections.singletonList( this.user.getTranslation("challenges.gui.admin.descriptions.order", "[value]", - Integer.toString(this.challenge.getSlot()))); + Integer.toString(this.challenge.getOrder()))); icon = new ItemStack(Material.DROPPER); clickHandler = (panel, user, clickType, slot) -> { - new NumberGUI(this.user, this.challenge.getSlot(), -1, 54, (status, value) -> { + new NumberGUI(this.user, this.challenge.getOrder(), -1, 54, (status, value) -> { if (status) { - this.challenge.setSlot(value); + this.challenge.setOrder(value); } this.build(); @@ -640,13 +640,13 @@ public class EditChallengeGUI extends CommonGUI case REQUIRED_PERMISSIONS: { name = this.user.getTranslation("challenges.gui.admin.buttons.permissions"); - description = new ArrayList<>(this.challenge.getReqPerms()); + description = new ArrayList<>(this.challenge.getRequiredPermissions()); icon = new ItemStack(Material.REDSTONE_LAMP); clickHandler = (panel, user, clickType, slot) -> { - new StringListGUI(this.user, this.challenge.getReqPerms(), (status, value) -> { + new StringListGUI(this.user, this.challenge.getRequiredPermissions(), (status, value) -> { if (status) { - this.challenge.setReqPerms(new HashSet<>(value)); + this.challenge.setRequiredPermissions(new HashSet<>(value)); } this.build(); @@ -713,13 +713,13 @@ public class EditChallengeGUI extends CommonGUI description = Collections.singletonList( this.user.getTranslation("challenges.gui.admin.descriptions.required-exp", "[value]", - Integer.toString(this.challenge.getMaxTimes()))); + Integer.toString(this.challenge.getRequiredExperience()))); icon = new ItemStack(Material.EXPERIENCE_BOTTLE); clickHandler = (panel, user, clickType, slot) -> { - new NumberGUI(this.user, this.challenge.getReqExp(), 0, (status, value) -> { + new NumberGUI(this.user, this.challenge.getRequiredExperience(), 0, (status, value) -> { if (status) { - this.challenge.setReqExp(value); + this.challenge.setRequiredExperience(value); } this.build(); @@ -758,13 +758,13 @@ public class EditChallengeGUI extends CommonGUI description = Collections.singletonList( this.user.getTranslation("challenges.gui.admin.descriptions.required-level", "[value]", - Long.toString(this.challenge.getReqIslandlevel()))); + Long.toString(this.challenge.getRequiredIslandLevel()))); icon = new ItemStack(Material.BEACON); clickHandler = (panel, user, clickType, slot) -> { - new NumberGUI(this.user, (int) this.challenge.getReqIslandlevel(), (status, value) -> { + new NumberGUI(this.user, (int) this.challenge.getRequiredIslandLevel(), (status, value) -> { if (status) { - this.challenge.setReqIslandlevel(value); + this.challenge.setRequiredIslandLevel(value); } this.build(); @@ -781,13 +781,13 @@ public class EditChallengeGUI extends CommonGUI description = Collections.singletonList( this.user.getTranslation("challenges.gui.admin.descriptions.required-money", "[value]", - Integer.toString(this.challenge.getReqMoney()))); + Integer.toString(this.challenge.getRequiredMoney()))); icon = new ItemStack(Material.GOLD_INGOT); clickHandler = (panel, user, clickType, slot) -> { - new NumberGUI(this.user, this.challenge.getReqMoney(), 0, (status, value) -> { + new NumberGUI(this.user, this.challenge.getRequiredMoney(), 0, (status, value) -> { if (status) { - this.challenge.setReqMoney(value); + this.challenge.setRequiredMoney(value); } this.build(); @@ -874,13 +874,13 @@ public class EditChallengeGUI extends CommonGUI description = Collections.singletonList( this.user.getTranslation("challenges.gui.admin.descriptions.reward-exp", "[value]", - Integer.toString(this.challenge.getRewardExp()))); + Integer.toString(this.challenge.getRewardExperience()))); icon = new ItemStack(Material.EXPERIENCE_BOTTLE); clickHandler = (panel, user, clickType, slot) -> { - new NumberGUI(this.user, this.challenge.getReqExp(), 0, (status, value) -> { + new NumberGUI(this.user, this.challenge.getRewardExperience(), 0, (status, value) -> { if (status) { - this.challenge.setRewardExp(value); + this.challenge.setRewardExperience(value); } this.build(); @@ -1035,13 +1035,13 @@ public class EditChallengeGUI extends CommonGUI description = Collections.singletonList( this.user.getTranslation("challenges.gui.admin.descriptions.repeat-reward-exp", "[value]", - Integer.toString(this.challenge.getRepeatExpReward()))); + Integer.toString(this.challenge.getRepeatExperienceReward()))); icon = new ItemStack(Material.GLASS_BOTTLE); clickHandler = (panel, user, clickType, slot) -> { - new NumberGUI(this.user, this.challenge.getRepeatExpReward(), 0, (status, value) -> { + new NumberGUI(this.user, this.challenge.getRepeatExperienceReward(), 0, (status, value) -> { if (status) { - this.challenge.setRepeatExpReward(value); + this.challenge.setRepeatExperienceReward(value); } this.build(); @@ -1234,4 +1234,4 @@ public class EditChallengeGUI extends CommonGUI * Variable holds current active menu. */ private MenuType currentMenuType; -} +} \ No newline at end of file diff --git a/src/main/java/world/bentobox/challenges/panel/admin/EditLevelGUI.java b/src/main/java/world/bentobox/challenges/panel/admin/EditLevelGUI.java index 912aa87..fbcf53c 100644 --- a/src/main/java/world/bentobox/challenges/panel/admin/EditLevelGUI.java +++ b/src/main/java/world/bentobox/challenges/panel/admin/EditLevelGUI.java @@ -398,13 +398,13 @@ public class EditLevelGUI extends CommonGUI description = Collections.singletonList( this.user.getTranslation("challenges.gui.admin.descriptions.waiver-amount", "[value]", - Integer.toString(this.challengeLevel.getWaiveramount()))); + Integer.toString(this.challengeLevel.getWaiverAmount()))); icon = new ItemStack(Material.REDSTONE_TORCH); clickHandler = (panel, user, clickType, slot) -> { - new NumberGUI(this.user, this.challengeLevel.getWaiveramount(), 0, (status, value) -> { + new NumberGUI(this.user, this.challengeLevel.getWaiverAmount(), 0, (status, value) -> { if (status) { - this.challengeLevel.setWaiveramount(value); + this.challengeLevel.setWaiverAmount(value); } this.build(); @@ -419,14 +419,14 @@ public class EditLevelGUI extends CommonGUI case REWARD_DESCRIPTION: { name = this.user.getTranslation("challenges.gui.admin.buttons.reward-text"); - description = Collections.singletonList(this.challengeLevel.getRewardDescription()); + description = Collections.singletonList(this.challengeLevel.getRewardText()); icon = new ItemStack(Material.WRITTEN_BOOK); clickHandler = (panel, user, clickType, slot) -> { new AnvilGUI(this.addon.getPlugin(), this.user.getPlayer(), - this.challengeLevel.getRewardDescription(), + this.challengeLevel.getRewardText(), (player, reply) -> { - this.challengeLevel.setRewardDescription(reply); + this.challengeLevel.setRewardText(reply); this.build(); return reply; }); @@ -468,13 +468,13 @@ public class EditLevelGUI extends CommonGUI description = Collections.singletonList( this.user.getTranslation("challenges.gui.admin.descriptions.reward-exp", "[value]", - Integer.toString(this.challengeLevel.getExpReward()))); + Integer.toString(this.challengeLevel.getRewardExperience()))); icon = new ItemStack(Material.EXPERIENCE_BOTTLE); clickHandler = (panel, user, clickType, slot) -> { - new NumberGUI(this.user, this.challengeLevel.getExpReward(), 0, (status, value) -> { + new NumberGUI(this.user, this.challengeLevel.getRewardExperience(), 0, (status, value) -> { if (status) { - this.challengeLevel.setExpReward(value); + this.challengeLevel.setRewardExperience(value); } this.build(); @@ -491,13 +491,13 @@ public class EditLevelGUI extends CommonGUI description = Collections.singletonList( this.user.getTranslation("challenges.gui.admin.descriptions.reward-money", "[value]", - Integer.toString(this.challengeLevel.getMoneyReward()))); + Integer.toString(this.challengeLevel.getRewardMoney()))); icon = new ItemStack(Material.GOLD_INGOT); clickHandler = (panel, user, clickType, slot) -> { - new NumberGUI(this.user, this.challengeLevel.getMoneyReward(), 0, (status, value) -> { + new NumberGUI(this.user, this.challengeLevel.getRewardMoney(), 0, (status, value) -> { if (status) { - this.challengeLevel.setMoneyReward(value); + this.challengeLevel.setRewardMoney(value); } this.build(); @@ -544,7 +544,7 @@ public class EditLevelGUI extends CommonGUI new SelectChallengeGUI(this.user, challengeList, (status, value) -> { if (status) { - manager.linkChallenge(this.challengeLevel, value); + manager.addChallengeToLevel(value, this.challengeLevel); } this.build(); @@ -636,4 +636,4 @@ public class EditLevelGUI extends CommonGUI * Variable holds current active menu. */ private MenuType currentMenuType; -} +} \ No newline at end of file diff --git a/src/main/java/world/bentobox/challenges/panel/user/ChallengesGUI.java b/src/main/java/world/bentobox/challenges/panel/user/ChallengesGUI.java index 098fe0a..894bd75 100644 --- a/src/main/java/world/bentobox/challenges/panel/user/ChallengesGUI.java +++ b/src/main/java/world/bentobox/challenges/panel/user/ChallengesGUI.java @@ -443,13 +443,13 @@ public class ChallengesGUI extends CommonGUI { rewardText = challenge.getRewardText(); rewardMoney = challenge.getRewardMoney(); - rewardExperience = challenge.getRewardExp(); + rewardExperience = challenge.getRewardExperience(); } else { rewardText = challenge.getRepeatRewardText(); rewardMoney = challenge.getRepeatMoneyReward(); - rewardExperience = challenge.getRepeatExpReward(); + rewardExperience = challenge.getRepeatExperienceReward(); } List result = new ArrayList<>();