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);
+
+ }
+
+}