From fd3e7a928f605f1802f1cc7f660911ebdd6bf874 Mon Sep 17 00:00:00 2001 From: Tastybento Date: Sun, 11 Mar 2018 17:36:06 -0700 Subject: [PATCH] WIP - updated to use latest Panel API --- pom.xml | 21 +++- .../addon/challenges/ChallengesAddon.java | 89 +++++++++++++- .../addon/challenges/ChallengesManager.java | 2 +- .../commands/ChallengesCommand.java | 2 +- .../admin/ChallengesAdminCommand.java | 2 +- .../commands/admin/CreateChallenge.java | 10 +- .../commands/admin/CreateSurrounding.java | 2 +- .../challenges/commands/admin/MakeLevel.java | 2 +- .../commands/admin/SetDeployed.java | 2 +- .../commands/admin/SetDescription.java | 2 +- .../challenges/commands/admin/SetExp.java | 2 +- .../commands/admin/SetFriendlyName.java | 2 +- .../challenges/commands/admin/SetLevel.java | 2 +- .../commands/admin/SetMaxTimes.java | 2 +- .../challenges/commands/admin/SetPerm.java | 2 +- .../commands/admin/SetRepeatable.java | 2 +- .../challenges/commands/admin/SetReward.java | 2 +- .../challenges/commands/admin/SetType.java | 2 +- .../admin/SurroundChallengeBuilder.java | 2 +- .../challenges/commands/admin/TakeItems.java | 2 +- .../challenges/panel/ChallengesPanels.java | 12 +- .../panel/CreateChallengeListener.java | 2 +- .../panel/CreateChallengePanel.java | 4 +- .../addon/challenges/panel/TryToComplete.java | 2 +- .../addon/challenges/ChallengesAddonTest.java | 114 ++++++++++++++++++ 25 files changed, 254 insertions(+), 34 deletions(-) create mode 100644 src/test/java/bskyblock/addon/challenges/ChallengesAddonTest.java diff --git a/pom.xml b/pom.xml index 153d5b4..fd9ce64 100644 --- a/pom.xml +++ b/pom.xml @@ -5,9 +5,9 @@ jar UTF-8 + 1.7.1 - src clean package install @@ -58,6 +58,25 @@ 0.0.1-SNAPSHOT provided + + org.mockito + mockito-all + 1.10.19 + test + + + org.powermock + powermock-module-junit4 + ${powermock.version} + test + + + org.powermock + powermock-api-mockito + ${powermock.version} + test + + diff --git a/src/main/java/bskyblock/addon/challenges/ChallengesAddon.java b/src/main/java/bskyblock/addon/challenges/ChallengesAddon.java index 32157ec..8051ef3 100644 --- a/src/main/java/bskyblock/addon/challenges/ChallengesAddon.java +++ b/src/main/java/bskyblock/addon/challenges/ChallengesAddon.java @@ -1,11 +1,34 @@ package bskyblock.addon.challenges; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import java.util.logging.Logger; + import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.PotionMeta; +import org.bukkit.potion.PotionData; +import org.bukkit.potion.PotionType; + +import com.google.gson.Gson; import bskyblock.addon.challenges.commands.ChallengesCommand; import bskyblock.addon.challenges.commands.admin.ChallengesAdminCommand; import bskyblock.addon.challenges.config.PluginConfig; +import bskyblock.addon.challenges.database.object.Challenges; +import bskyblock.addon.challenges.database.object.Challenges.ChallengeType; +import us.tastybento.bskyblock.BSkyBlock; import us.tastybento.bskyblock.api.addons.Addon; +import us.tastybento.bskyblock.database.DatabaseConnectionSettingsImpl; +import us.tastybento.bskyblock.database.mysql.MySQLDatabaseConnecter; /** * Add-on to BSkyBlock that enables challenges @@ -26,13 +49,77 @@ public class ChallengesAddon extends Addon { this.setEnabled(false); return; } - + // Challenges Manager challengesManager = new ChallengesManager(this); // Register commands new ChallengesCommand(this); new ChallengesAdminCommand(this); // Done + Gson gson = new Gson(); + Challenges challenges = new Challenges(); + challenges.setChallengeType(ChallengeType.SURROUNDING); + Map map = new HashMap<>(); + map.put(Material.DIRT, 5); + map.put(Material.ACACIA_FENCE_GATE, 3); + challenges.setRequiredBlocks(map); + challenges.setIcon(new ItemStack(Material.ACACIA_FENCE_GATE)); + List requiredItems = new ArrayList<>(); + ItemStack result = new ItemStack(Material.POTION, 55); + ItemStack result2 = new ItemStack(Material.SPLASH_POTION, 22); + ItemStack result3 = new ItemStack(Material.LINGERING_POTION, 11); + + PotionMeta potionMeta = (PotionMeta) result.getItemMeta(); + PotionData potionData = new PotionData(PotionType.FIRE_RESISTANCE, true, false); + potionMeta.setBasePotionData(potionData); + result.setItemMeta(potionMeta); + + PotionMeta potionMeta2 = (PotionMeta) result2.getItemMeta(); + PotionData potionData2 = new PotionData(PotionType.SPEED, true, false); + potionMeta2.setBasePotionData(potionData2); + potionMeta2.addEnchant(Enchantment.BINDING_CURSE, 1, true); + result2.setItemMeta(potionMeta2); + + requiredItems.add(result); + requiredItems.add(result2); + requiredItems.add(result3); + challenges.setRequiredItems(requiredItems); + challenges.setUniqueId(UUID.randomUUID().toString()); + String json = gson.toJson(challenges); + + Logger.getAnonymousLogger().info(json); + + BSkyBlock plugin = BSkyBlock.getInstance(); + MySQLDatabaseConnecter conn = new MySQLDatabaseConnecter(new DatabaseConnectionSettingsImpl( + plugin.getSettings().getDbHost(), + plugin.getSettings().getDbPort(), + plugin.getSettings().getDbName(), + plugin.getSettings().getDbUsername(), + plugin.getSettings().getDbPassword() + )); + try (Connection connection = conn.createConnection()) { + StringBuilder sql = new StringBuilder(); + sql.append("create table if not exists test (json JSON, uniqueId VARCHAR(255) GENERATED ALWAYS AS (json->\"$.uniqueId\"), INDEX i (uniqueId) );"); + // Prepare and execute the database statements + try (PreparedStatement pstmt = connection.prepareStatement(sql.toString())) { + pstmt.executeUpdate(); + } catch (SQLException e) { + plugin.getLogger().severe(() -> "Problem trying to create schema for data object "); + } + sql = new StringBuilder(); + sql.append("INSERT INTO `TEST` (`json`) VALUES (?)"); + try (PreparedStatement pstmt = connection.prepareStatement(sql.toString())) { + pstmt.setString(1, json); + pstmt.executeUpdate(); + } catch (SQLException e) { + plugin.getLogger().severe(() -> "Problem trying to create data object "); + e.printStackTrace(); + } + + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } @Override diff --git a/src/main/java/bskyblock/addon/challenges/ChallengesManager.java b/src/main/java/bskyblock/addon/challenges/ChallengesManager.java index 4a7fc9b..a8c352f 100644 --- a/src/main/java/bskyblock/addon/challenges/ChallengesManager.java +++ b/src/main/java/bskyblock/addon/challenges/ChallengesManager.java @@ -19,8 +19,8 @@ import bskyblock.addon.challenges.database.object.Challenges; import bskyblock.addon.challenges.database.object.Challenges.ChallengeType; import bskyblock.addon.challenges.panel.ChallengesPanels; import us.tastybento.bskyblock.BSkyBlock; -import us.tastybento.bskyblock.api.commands.User; import us.tastybento.bskyblock.api.configuration.BSBConfig; +import us.tastybento.bskyblock.api.user.User; public class ChallengesManager { diff --git a/src/main/java/bskyblock/addon/challenges/commands/ChallengesCommand.java b/src/main/java/bskyblock/addon/challenges/commands/ChallengesCommand.java index 9e5db7e..e5f0bd7 100644 --- a/src/main/java/bskyblock/addon/challenges/commands/ChallengesCommand.java +++ b/src/main/java/bskyblock/addon/challenges/commands/ChallengesCommand.java @@ -5,7 +5,7 @@ import java.util.List; import bskyblock.addon.challenges.ChallengesAddon; import us.tastybento.bskyblock.Constants; import us.tastybento.bskyblock.api.commands.CompositeCommand; -import us.tastybento.bskyblock.api.commands.User; +import us.tastybento.bskyblock.api.user.User; public class ChallengesCommand extends CompositeCommand { private static final String CHALLENGE_COMMAND = "challenges"; diff --git a/src/main/java/bskyblock/addon/challenges/commands/admin/ChallengesAdminCommand.java b/src/main/java/bskyblock/addon/challenges/commands/admin/ChallengesAdminCommand.java index 892a33d..e46e54f 100644 --- a/src/main/java/bskyblock/addon/challenges/commands/admin/ChallengesAdminCommand.java +++ b/src/main/java/bskyblock/addon/challenges/commands/admin/ChallengesAdminCommand.java @@ -5,7 +5,7 @@ import java.util.List; import bskyblock.addon.challenges.ChallengesAddon; import us.tastybento.bskyblock.Constants; import us.tastybento.bskyblock.api.commands.CompositeCommand; -import us.tastybento.bskyblock.api.commands.User; +import us.tastybento.bskyblock.api.user.User; public class ChallengesAdminCommand extends CompositeCommand { private static final String CHALLENGE_ADMIN_COMMAND = "cadmin"; diff --git a/src/main/java/bskyblock/addon/challenges/commands/admin/CreateChallenge.java b/src/main/java/bskyblock/addon/challenges/commands/admin/CreateChallenge.java index aa2a8d3..99b7ac4 100644 --- a/src/main/java/bskyblock/addon/challenges/commands/admin/CreateChallenge.java +++ b/src/main/java/bskyblock/addon/challenges/commands/admin/CreateChallenge.java @@ -6,8 +6,8 @@ import bskyblock.addon.challenges.ChallengesAddon; import bskyblock.addon.challenges.panel.CreateChallengeListener; import us.tastybento.bskyblock.Constants; import us.tastybento.bskyblock.api.commands.CompositeCommand; -import us.tastybento.bskyblock.api.commands.User; import us.tastybento.bskyblock.api.panels.builders.PanelBuilder; +import us.tastybento.bskyblock.api.user.User; public class CreateChallenge extends CompositeCommand { @@ -41,10 +41,10 @@ public class CreateChallenge extends CompositeCommand { return false; } new PanelBuilder() - .setName(args.get(0)) - .setSize(49) - .setListener(new CreateChallengeListener(addon, user)) - .setUser(user) + .name(args.get(0)) + .size(49) + .listener(new CreateChallengeListener(addon, user)) + .user(user) .build(); return true; } diff --git a/src/main/java/bskyblock/addon/challenges/commands/admin/CreateSurrounding.java b/src/main/java/bskyblock/addon/challenges/commands/admin/CreateSurrounding.java index f15d268..adc6b54 100644 --- a/src/main/java/bskyblock/addon/challenges/commands/admin/CreateSurrounding.java +++ b/src/main/java/bskyblock/addon/challenges/commands/admin/CreateSurrounding.java @@ -19,7 +19,7 @@ import org.bukkit.event.player.PlayerQuitEvent; import bskyblock.addon.challenges.ChallengesAddon; import us.tastybento.bskyblock.Constants; import us.tastybento.bskyblock.api.commands.CompositeCommand; -import us.tastybento.bskyblock.api.commands.User; +import us.tastybento.bskyblock.api.user.User; import us.tastybento.bskyblock.util.Util; /** diff --git a/src/main/java/bskyblock/addon/challenges/commands/admin/MakeLevel.java b/src/main/java/bskyblock/addon/challenges/commands/admin/MakeLevel.java index c9866de..7781498 100644 --- a/src/main/java/bskyblock/addon/challenges/commands/admin/MakeLevel.java +++ b/src/main/java/bskyblock/addon/challenges/commands/admin/MakeLevel.java @@ -7,7 +7,7 @@ import java.util.List; import us.tastybento.bskyblock.BSkyBlock; import us.tastybento.bskyblock.api.commands.CompositeCommand; -import us.tastybento.bskyblock.api.commands.User; +import us.tastybento.bskyblock.api.user.User; /** * @author tastybento diff --git a/src/main/java/bskyblock/addon/challenges/commands/admin/SetDeployed.java b/src/main/java/bskyblock/addon/challenges/commands/admin/SetDeployed.java index 699c3d2..289a187 100644 --- a/src/main/java/bskyblock/addon/challenges/commands/admin/SetDeployed.java +++ b/src/main/java/bskyblock/addon/challenges/commands/admin/SetDeployed.java @@ -7,7 +7,7 @@ import java.util.List; import us.tastybento.bskyblock.BSkyBlock; import us.tastybento.bskyblock.api.commands.CompositeCommand; -import us.tastybento.bskyblock.api.commands.User; +import us.tastybento.bskyblock.api.user.User; /** * @author tastybento diff --git a/src/main/java/bskyblock/addon/challenges/commands/admin/SetDescription.java b/src/main/java/bskyblock/addon/challenges/commands/admin/SetDescription.java index 8b2539a..6e5ea0c 100644 --- a/src/main/java/bskyblock/addon/challenges/commands/admin/SetDescription.java +++ b/src/main/java/bskyblock/addon/challenges/commands/admin/SetDescription.java @@ -7,7 +7,7 @@ import java.util.List; import us.tastybento.bskyblock.BSkyBlock; import us.tastybento.bskyblock.api.commands.CompositeCommand; -import us.tastybento.bskyblock.api.commands.User; +import us.tastybento.bskyblock.api.user.User; /** * @author tastybento diff --git a/src/main/java/bskyblock/addon/challenges/commands/admin/SetExp.java b/src/main/java/bskyblock/addon/challenges/commands/admin/SetExp.java index 593f500..5890100 100644 --- a/src/main/java/bskyblock/addon/challenges/commands/admin/SetExp.java +++ b/src/main/java/bskyblock/addon/challenges/commands/admin/SetExp.java @@ -7,7 +7,7 @@ import java.util.List; import us.tastybento.bskyblock.BSkyBlock; import us.tastybento.bskyblock.api.commands.CompositeCommand; -import us.tastybento.bskyblock.api.commands.User; +import us.tastybento.bskyblock.api.user.User; /** * @author tastybento diff --git a/src/main/java/bskyblock/addon/challenges/commands/admin/SetFriendlyName.java b/src/main/java/bskyblock/addon/challenges/commands/admin/SetFriendlyName.java index 6d7cffd..8cbc6ca 100644 --- a/src/main/java/bskyblock/addon/challenges/commands/admin/SetFriendlyName.java +++ b/src/main/java/bskyblock/addon/challenges/commands/admin/SetFriendlyName.java @@ -7,7 +7,7 @@ import java.util.List; import us.tastybento.bskyblock.BSkyBlock; import us.tastybento.bskyblock.api.commands.CompositeCommand; -import us.tastybento.bskyblock.api.commands.User; +import us.tastybento.bskyblock.api.user.User; /** * @author tastybento diff --git a/src/main/java/bskyblock/addon/challenges/commands/admin/SetLevel.java b/src/main/java/bskyblock/addon/challenges/commands/admin/SetLevel.java index 159e54b..c304dad 100644 --- a/src/main/java/bskyblock/addon/challenges/commands/admin/SetLevel.java +++ b/src/main/java/bskyblock/addon/challenges/commands/admin/SetLevel.java @@ -7,7 +7,7 @@ import java.util.List; import us.tastybento.bskyblock.BSkyBlock; import us.tastybento.bskyblock.api.commands.CompositeCommand; -import us.tastybento.bskyblock.api.commands.User; +import us.tastybento.bskyblock.api.user.User; /** * @author tastybento diff --git a/src/main/java/bskyblock/addon/challenges/commands/admin/SetMaxTimes.java b/src/main/java/bskyblock/addon/challenges/commands/admin/SetMaxTimes.java index 4f7644c..cd56209 100644 --- a/src/main/java/bskyblock/addon/challenges/commands/admin/SetMaxTimes.java +++ b/src/main/java/bskyblock/addon/challenges/commands/admin/SetMaxTimes.java @@ -7,7 +7,7 @@ import java.util.List; import us.tastybento.bskyblock.BSkyBlock; import us.tastybento.bskyblock.api.commands.CompositeCommand; -import us.tastybento.bskyblock.api.commands.User; +import us.tastybento.bskyblock.api.user.User; /** * @author tastybento diff --git a/src/main/java/bskyblock/addon/challenges/commands/admin/SetPerm.java b/src/main/java/bskyblock/addon/challenges/commands/admin/SetPerm.java index 9f65c36..65bcdde 100644 --- a/src/main/java/bskyblock/addon/challenges/commands/admin/SetPerm.java +++ b/src/main/java/bskyblock/addon/challenges/commands/admin/SetPerm.java @@ -7,7 +7,7 @@ import java.util.List; import us.tastybento.bskyblock.BSkyBlock; import us.tastybento.bskyblock.api.commands.CompositeCommand; -import us.tastybento.bskyblock.api.commands.User; +import us.tastybento.bskyblock.api.user.User; /** * @author tastybento diff --git a/src/main/java/bskyblock/addon/challenges/commands/admin/SetRepeatable.java b/src/main/java/bskyblock/addon/challenges/commands/admin/SetRepeatable.java index 83e85bd..8e79c9d 100644 --- a/src/main/java/bskyblock/addon/challenges/commands/admin/SetRepeatable.java +++ b/src/main/java/bskyblock/addon/challenges/commands/admin/SetRepeatable.java @@ -7,7 +7,7 @@ import java.util.List; import us.tastybento.bskyblock.BSkyBlock; import us.tastybento.bskyblock.api.commands.CompositeCommand; -import us.tastybento.bskyblock.api.commands.User; +import us.tastybento.bskyblock.api.user.User; /** * @author tastybento diff --git a/src/main/java/bskyblock/addon/challenges/commands/admin/SetReward.java b/src/main/java/bskyblock/addon/challenges/commands/admin/SetReward.java index 2cd33d0..3b52d05 100644 --- a/src/main/java/bskyblock/addon/challenges/commands/admin/SetReward.java +++ b/src/main/java/bskyblock/addon/challenges/commands/admin/SetReward.java @@ -7,7 +7,7 @@ import java.util.List; import us.tastybento.bskyblock.BSkyBlock; import us.tastybento.bskyblock.api.commands.CompositeCommand; -import us.tastybento.bskyblock.api.commands.User; +import us.tastybento.bskyblock.api.user.User; /** * @author tastybento diff --git a/src/main/java/bskyblock/addon/challenges/commands/admin/SetType.java b/src/main/java/bskyblock/addon/challenges/commands/admin/SetType.java index 883e87e..62ce573 100644 --- a/src/main/java/bskyblock/addon/challenges/commands/admin/SetType.java +++ b/src/main/java/bskyblock/addon/challenges/commands/admin/SetType.java @@ -7,7 +7,7 @@ import java.util.List; import us.tastybento.bskyblock.BSkyBlock; import us.tastybento.bskyblock.api.commands.CompositeCommand; -import us.tastybento.bskyblock.api.commands.User; +import us.tastybento.bskyblock.api.user.User; /** * @author tastybento diff --git a/src/main/java/bskyblock/addon/challenges/commands/admin/SurroundChallengeBuilder.java b/src/main/java/bskyblock/addon/challenges/commands/admin/SurroundChallengeBuilder.java index 0b85d08..af02ac5 100644 --- a/src/main/java/bskyblock/addon/challenges/commands/admin/SurroundChallengeBuilder.java +++ b/src/main/java/bskyblock/addon/challenges/commands/admin/SurroundChallengeBuilder.java @@ -7,7 +7,7 @@ import org.bukkit.Material; import org.bukkit.entity.EntityType; import bskyblock.addon.challenges.ChallengesAddon; -import us.tastybento.bskyblock.api.commands.User; +import us.tastybento.bskyblock.api.user.User; /** * Enables the state of a Surrounding Challenge to be stored as it is built diff --git a/src/main/java/bskyblock/addon/challenges/commands/admin/TakeItems.java b/src/main/java/bskyblock/addon/challenges/commands/admin/TakeItems.java index bb65589..b636006 100644 --- a/src/main/java/bskyblock/addon/challenges/commands/admin/TakeItems.java +++ b/src/main/java/bskyblock/addon/challenges/commands/admin/TakeItems.java @@ -7,7 +7,7 @@ import java.util.List; import us.tastybento.bskyblock.BSkyBlock; import us.tastybento.bskyblock.api.commands.CompositeCommand; -import us.tastybento.bskyblock.api.commands.User; +import us.tastybento.bskyblock.api.user.User; /** * @author tastybento diff --git a/src/main/java/bskyblock/addon/challenges/panel/ChallengesPanels.java b/src/main/java/bskyblock/addon/challenges/panel/ChallengesPanels.java index d61bdca..3cc2c79 100644 --- a/src/main/java/bskyblock/addon/challenges/panel/ChallengesPanels.java +++ b/src/main/java/bskyblock/addon/challenges/panel/ChallengesPanels.java @@ -12,12 +12,12 @@ import bskyblock.addon.challenges.ChallengesManager; import bskyblock.addon.challenges.LevelStatus; import bskyblock.addon.challenges.database.object.Challenges; import bskyblock.addon.challenges.database.object.Challenges.ChallengeType; -import us.tastybento.bskyblock.api.commands.User; import us.tastybento.bskyblock.api.panels.ClickType; import us.tastybento.bskyblock.api.panels.Panel; import us.tastybento.bskyblock.api.panels.PanelItem; import us.tastybento.bskyblock.api.panels.builders.PanelBuilder; import us.tastybento.bskyblock.api.panels.builders.PanelItemBuilder; +import us.tastybento.bskyblock.api.user.User; public class ChallengesPanels { @@ -45,7 +45,7 @@ public class ChallengesPanels { public void getChallenges(User user, String level) { addon.getLogger().info("DEBUG: level requested = " + level); PanelBuilder panelBuilder = new PanelBuilder() - .setName(user.getTranslation("challenges.guiTitle")); + .name(user.getTranslation("challenges.guiTitle")); addChallengeItems(panelBuilder, user, level); addFreeChallanges(panelBuilder); @@ -106,9 +106,9 @@ public class ChallengesPanels { .build(); addon.getLogger().info("requested slot" + challenge.getSlot()); if (challenge.getSlot() >= 0) { - panelBuilder.addItem(challenge.getSlot(),item); + panelBuilder.item(challenge.getSlot(),item); } else { - panelBuilder.addItem(item); + panelBuilder.item(item); } } @@ -136,7 +136,7 @@ public class ChallengesPanels { }) //.setCommand(CHALLENGE_COMMAND + " c " + status.getLevel().getUniqueId()) .build(); - panelBuilder.addItem(item); + panelBuilder.item(item); } else { // Clicking on this icon will do nothing because the challenge is not unlocked yet String previousLevelName = ChatColor.GOLD + (status.getPreviousLevel().getFriendlyName().isEmpty() ? status.getPreviousLevel().getUniqueId() : status.getPreviousLevel().getFriendlyName()); @@ -145,7 +145,7 @@ public class ChallengesPanels { .name(name) .description(Arrays.asList(user.getTranslation("challenges.toComplete", "[challengesToDo]",String.valueOf(status.getNumberOfChallengesStillToDo()), "[thisLevel]", previousLevelName))) .build(); - panelBuilder.addItem(item); + panelBuilder.item(item); } } } diff --git a/src/main/java/bskyblock/addon/challenges/panel/CreateChallengeListener.java b/src/main/java/bskyblock/addon/challenges/panel/CreateChallengeListener.java index 6dfefeb..b84e68a 100644 --- a/src/main/java/bskyblock/addon/challenges/panel/CreateChallengeListener.java +++ b/src/main/java/bskyblock/addon/challenges/panel/CreateChallengeListener.java @@ -4,8 +4,8 @@ import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; import bskyblock.addon.challenges.ChallengesAddon; -import us.tastybento.bskyblock.api.commands.User; import us.tastybento.bskyblock.api.panels.PanelListener; +import us.tastybento.bskyblock.api.user.User; public class CreateChallengeListener implements PanelListener { diff --git a/src/main/java/bskyblock/addon/challenges/panel/CreateChallengePanel.java b/src/main/java/bskyblock/addon/challenges/panel/CreateChallengePanel.java index 5765524..7e99123 100644 --- a/src/main/java/bskyblock/addon/challenges/panel/CreateChallengePanel.java +++ b/src/main/java/bskyblock/addon/challenges/panel/CreateChallengePanel.java @@ -1,13 +1,13 @@ package bskyblock.addon.challenges.panel; import bskyblock.addon.challenges.ChallengesAddon; -import us.tastybento.bskyblock.api.commands.User; import us.tastybento.bskyblock.api.panels.builders.PanelBuilder; +import us.tastybento.bskyblock.api.user.User; public class CreateChallengePanel { public CreateChallengePanel(ChallengesAddon addon, User user) { - new PanelBuilder().setSize(49).setListener(new CreateChallengeListener(addon, user)).setUser(user).build(); + new PanelBuilder().size(49).listener(new CreateChallengeListener(addon, user)).user(user).build(); } } diff --git a/src/main/java/bskyblock/addon/challenges/panel/TryToComplete.java b/src/main/java/bskyblock/addon/challenges/panel/TryToComplete.java index 053080e..51a0a4a 100644 --- a/src/main/java/bskyblock/addon/challenges/panel/TryToComplete.java +++ b/src/main/java/bskyblock/addon/challenges/panel/TryToComplete.java @@ -20,7 +20,7 @@ import bskyblock.addon.challenges.database.object.Challenges; import bskyblock.addon.challenges.database.object.Challenges.ChallengeType; import bskyblock.addon.level.Level; import us.tastybento.bskyblock.Constants; -import us.tastybento.bskyblock.api.commands.User; +import us.tastybento.bskyblock.api.user.User; import us.tastybento.bskyblock.util.Util; /** diff --git a/src/test/java/bskyblock/addon/challenges/ChallengesAddonTest.java b/src/test/java/bskyblock/addon/challenges/ChallengesAddonTest.java new file mode 100644 index 0000000..9153f8a --- /dev/null +++ b/src/test/java/bskyblock/addon/challenges/ChallengesAddonTest.java @@ -0,0 +1,114 @@ +/** + * + */ +package bskyblock.addon.challenges; + +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import java.util.logging.Logger; + +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; +import org.bukkit.World; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemFactory; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.PotionMeta; +import org.bukkit.plugin.PluginManager; +import org.bukkit.potion.PotionData; +import org.bukkit.potion.PotionType; +import org.junit.BeforeClass; +import org.junit.Test; +import org.mockito.Mockito; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +import bskyblock.addon.challenges.database.object.Challenges; +import bskyblock.addon.challenges.database.object.Challenges.ChallengeType; + +/** + * @author tastybento + * + */ +public class ChallengesAddonTest { + + /** + * @throws java.lang.Exception + */ + @BeforeClass + public static void setUpBeforeClass() throws Exception { + Server server = mock(Server.class); + World world = mock(World.class); + world = mock(World.class); + Mockito.when(server.getLogger()).thenReturn(Logger.getAnonymousLogger()); + Mockito.when(server.getWorld("world")).thenReturn(world); + Mockito.when(server.getVersion()).thenReturn("BSB_Mocking"); + + PluginManager pluginManager = mock(PluginManager.class); + when(server.getPluginManager()).thenReturn(pluginManager); + + ItemFactory itemFactory = mock(ItemFactory.class); + when(server.getItemFactory()).thenReturn(itemFactory); + + Bukkit.setServer(server); + + PotionMeta potionMeta = mock(PotionMeta.class); + when(itemFactory.getItemMeta(any())).thenReturn(potionMeta); + + OfflinePlayer offlinePlayer = mock(OfflinePlayer.class); + when(Bukkit.getOfflinePlayer(any(UUID.class))).thenReturn(offlinePlayer); + when(offlinePlayer.getName()).thenReturn("tastybento"); + + when(Bukkit.getItemFactory()).thenReturn(itemFactory); + when(Bukkit.getLogger()).thenReturn(Logger.getAnonymousLogger()); + + } + + @Test + public void test() { + + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + Challenges challenges = new Challenges(); + challenges.setChallengeType(ChallengeType.SURROUNDING); + Map map = new HashMap<>(); + map.put(Material.DIRT, 5); + map.put(Material.ACACIA_FENCE_GATE, 3); + challenges.setRequiredBlocks(map); + challenges.setIcon(new ItemStack(Material.ACACIA_FENCE_GATE)); + List requiredItems = new ArrayList<>(); + ItemStack result = new ItemStack(Material.POTION, 55); + ItemStack result2 = new ItemStack(Material.SPLASH_POTION, 22); + ItemStack result3 = new ItemStack(Material.LINGERING_POTION, 11); + + PotionMeta potionMeta = (PotionMeta) result.getItemMeta(); + PotionData potionData = new PotionData(PotionType.FIRE_RESISTANCE, true, false); + potionMeta.setBasePotionData(potionData); + result.setItemMeta(potionMeta); + + PotionMeta potionMeta2 = (PotionMeta) result2.getItemMeta(); + PotionData potionData2 = new PotionData(PotionType.SPEED, true, false); + potionMeta2.setBasePotionData(potionData2); + potionMeta2.addEnchant(Enchantment.BINDING_CURSE, 1, true); + result2.setItemMeta(potionMeta2); + + requiredItems.add(result); + requiredItems.add(result2); + requiredItems.add(result3); + challenges.setRequiredItems(requiredItems); + String json = gson.toJson(challenges); + + Logger.getAnonymousLogger().info(json); + + } + +}