getTriggers() {
+ return triggers;
+ }
+
+ public boolean checkConditions(Block block) {
+ for (BlockCondition condition : conditions)
+ if (!condition.check(block))
+ return false;
+ return true;
+ }
+
+ public static enum BlockInfoOption {
+
+ /**
+ * When disabled, removes the vanilla drops when a block is mined
+ */
+ VANILLA_DROPS(true),
+
+ /**
+ * When disabled, removes exp holograms when mined
+ */
+ EXP_HOLOGRAMS(true);
+
+ private final boolean def;
+
+ private BlockInfoOption(boolean def) {
+ this.def = def;
+ }
+
+ public boolean getDefault() {
+ return def;
+ }
+ }
+
+ public static class RegeneratingBlock {
+ private final BlockData data;
+ private final Location loc;
+ private final BlockInfo regenerating;
+
+ private final long date = System.currentTimeMillis();
+
+ public RegeneratingBlock(BlockData data, Location loc, BlockInfo regenerating) {
+ this.data = data;
+ this.loc = loc;
+ this.regenerating = regenerating;
+ }
+
+ public boolean isTimedOut() {
+ return date + regenerating.getRegenerationInfo().getTime() * 50 < System.currentTimeMillis();
+ }
+
+ public BlockData getBlockData() {
+ return data;
+ }
+
+ public Location getLocation() {
+ return loc;
+ }
+
+ public BlockInfo getRegeneratingBlock() {
+ return regenerating;
+ }
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/api/block/BlockType.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/BlockType.java
similarity index 77%
rename from src/main/java/net/Indyuce/mmocore/api/block/BlockType.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/BlockType.java
index aa86aa21..f375f96f 100644
--- a/src/main/java/net/Indyuce/mmocore/api/block/BlockType.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/BlockType.java
@@ -1,31 +1,29 @@
-package net.Indyuce.mmocore.api.block;
-
-import org.bukkit.block.Block;
-
-import net.Indyuce.mmocore.api.block.BlockInfo.RegeneratingBlock;
-
-public interface BlockType {
-
- /**
- * Called when placing temporary blocks
- */
- void place(RegeneratingBlock placed);
-
- /**
- * Called when regenerating an older block with block regen
- */
- void regenerate(RegeneratingBlock regenerating);
-
- /**
- * Generates a key used to store the BlockInfo instance in the manager map,
- * the key depends on the block type to make sure there is no interference
- */
- String generateKey();
-
- /**
- * Applies some extra break restrictions; returns TRUE if the block can be
- * broken. This method is used to prevent non mature crops from being broken
- * for example
- */
- boolean breakRestrictions(Block block);
-}
+package net.Indyuce.mmocore.api.block;
+
+import org.bukkit.block.Block;
+
+public interface BlockType {
+
+ /**
+ * Called when placing temporary blocks
+ */
+ void place(BlockInfo.RegeneratingBlock placed);
+
+ /**
+ * Called when regenerating an older block with block regen
+ */
+ void regenerate(BlockInfo.RegeneratingBlock regenerating);
+
+ /**
+ * Generates a key used to store the BlockInfo instance in the manager map,
+ * the key depends on the block type to make sure there is no interference
+ */
+ String generateKey();
+
+ /**
+ * Applies some extra break restrictions; returns TRUE if the block can be
+ * broken. This method is used to prevent non mature crops from being broken
+ * for example
+ */
+ boolean breakRestrictions(Block block);
+}
diff --git a/src/main/java/net/Indyuce/mmocore/api/block/RegenInfo.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/RegenInfo.java
similarity index 96%
rename from src/main/java/net/Indyuce/mmocore/api/block/RegenInfo.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/RegenInfo.java
index c33183ab..851c7eb0 100644
--- a/src/main/java/net/Indyuce/mmocore/api/block/RegenInfo.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/RegenInfo.java
@@ -1,31 +1,31 @@
-package net.Indyuce.mmocore.api.block;
-
-import org.apache.commons.lang.Validate;
-import org.bukkit.configuration.ConfigurationSection;
-
-import net.Indyuce.mmocore.MMOCore;
-import io.lumine.mythic.lib.api.MMOLineConfig;
-
-public class RegenInfo {
- private final BlockType temporary;
- private final int regenTime;
-
- public RegenInfo(ConfigurationSection config) {
- Validate.notNull(config, "Could not read regen info config");
-
- temporary = config.contains("temp-block") ? MMOCore.plugin.loadManager.loadBlockType(new MMOLineConfig(config.getString("temp-block"))) : null;
- regenTime = config.getInt("time", 2 * 60 * 20);
- }
-
- public int getTime() {
- return regenTime;
- }
-
- public boolean hasTemporaryBlock() {
- return temporary != null;
- }
-
- public BlockType getTemporaryBlock() {
- return temporary;
- }
-}
+package net.Indyuce.mmocore.api.block;
+
+import net.Indyuce.mmocore.MMOCore;
+import org.apache.commons.lang.Validate;
+import org.bukkit.configuration.ConfigurationSection;
+
+import io.lumine.mythic.lib.api.MMOLineConfig;
+
+public class RegenInfo {
+ private final BlockType temporary;
+ private final int regenTime;
+
+ public RegenInfo(ConfigurationSection config) {
+ Validate.notNull(config, "Could not read regen info config");
+
+ temporary = config.contains("temp-block") ? MMOCore.plugin.loadManager.loadBlockType(new MMOLineConfig(config.getString("temp-block"))) : null;
+ regenTime = config.getInt("time", 2 * 60 * 20);
+ }
+
+ public int getTime() {
+ return regenTime;
+ }
+
+ public boolean hasTemporaryBlock() {
+ return temporary != null;
+ }
+
+ public BlockType getTemporaryBlock() {
+ return temporary;
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java
similarity index 96%
rename from src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java
index b3d01e3b..2c6d1cc8 100644
--- a/src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java
@@ -1,59 +1,59 @@
-package net.Indyuce.mmocore.api.block;
-
-import org.bukkit.Location;
-import org.bukkit.block.Block;
-
-import net.Indyuce.mmocore.api.block.BlockInfo.RegeneratingBlock;
-import net.Indyuce.mmocore.api.util.MMOCoreUtils;
-import io.lumine.mythic.lib.MythicLib;
-import io.lumine.mythic.lib.api.MMOLineConfig;
-import io.lumine.mythic.lib.version.VersionMaterial;
-
-public class SkullBlockType implements BlockType {
- private final String value;
-
- public SkullBlockType(MMOLineConfig config) {
- config.validate("value");
-
- value = config.getString("value");
- }
-
- public SkullBlockType(Block block) {
- value = MythicLib.plugin.getVersion().getWrapper().getSkullValue(block);
- }
-
- public String getValue() {
- return value;
- }
-
- @Override
- public void place(RegeneratingBlock block) {
- Location loc = block.getLocation();
- loc.getBlock().setType(VersionMaterial.PLAYER_HEAD.toMaterial());
-
- // save skull orientation if replaced block is a player head
- if (MMOCoreUtils.isPlayerHead(block.getBlockData().getMaterial()))
- loc.getBlock().setBlockData(block.getBlockData());
-
- MythicLib.plugin.getVersion().getWrapper().setSkullValue(loc.getBlock(), value);
- }
-
- @Override
- public void regenerate(RegeneratingBlock block) {
- Location loc = block.getLocation();
- // This makes sure that if a skull loses its original rotation
- // it can revert back to it when the base block is regenerated
- loc.getBlock().setBlockData(block.getBlockData());
- MythicLib.plugin.getVersion().getWrapper().setSkullValue(loc.getBlock(), value);
- }
-
- @Override
- public String generateKey() {
- return "vanilla-skull-" + value;
- }
-
- @Override
- public boolean breakRestrictions(Block block) {
- return true;
- }
-}
+package net.Indyuce.mmocore.api.block;
+
+import org.bukkit.Location;
+import org.bukkit.block.Block;
+
+import net.Indyuce.mmocore.api.block.BlockInfo.RegeneratingBlock;
+import net.Indyuce.mmocore.api.util.MMOCoreUtils;
+import io.lumine.mythic.lib.MythicLib;
+import io.lumine.mythic.lib.api.MMOLineConfig;
+import io.lumine.mythic.lib.version.VersionMaterial;
+
+public class SkullBlockType implements BlockType {
+ private final String value;
+
+ public SkullBlockType(MMOLineConfig config) {
+ config.validate("value");
+
+ value = config.getString("value");
+ }
+
+ public SkullBlockType(Block block) {
+ value = MythicLib.plugin.getVersion().getWrapper().getSkullValue(block);
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public void place(RegeneratingBlock block) {
+ Location loc = block.getLocation();
+ loc.getBlock().setType(VersionMaterial.PLAYER_HEAD.toMaterial());
+
+ // save skull orientation if replaced block is a player head
+ if (MMOCoreUtils.isPlayerHead(block.getBlockData().getMaterial()))
+ loc.getBlock().setBlockData(block.getBlockData());
+
+ MythicLib.plugin.getVersion().getWrapper().setSkullValue(loc.getBlock(), value);
+ }
+
+ @Override
+ public void regenerate(RegeneratingBlock block) {
+ Location loc = block.getLocation();
+ // This makes sure that if a skull loses its original rotation
+ // it can revert back to it when the base block is regenerated
+ loc.getBlock().setBlockData(block.getBlockData());
+ MythicLib.plugin.getVersion().getWrapper().setSkullValue(loc.getBlock(), value);
+ }
+
+ @Override
+ public String generateKey() {
+ return "vanilla-skull-" + value;
+ }
+
+ @Override
+ public boolean breakRestrictions(Block block) {
+ return true;
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/api/block/VanillaBlockType.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/VanillaBlockType.java
similarity index 96%
rename from src/main/java/net/Indyuce/mmocore/api/block/VanillaBlockType.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/VanillaBlockType.java
index 121538b0..e0076cf0 100644
--- a/src/main/java/net/Indyuce/mmocore/api/block/VanillaBlockType.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/VanillaBlockType.java
@@ -1,69 +1,69 @@
-package net.Indyuce.mmocore.api.block;
-
-import org.apache.commons.lang.Validate;
-import org.bukkit.Location;
-import org.bukkit.Material;
-import org.bukkit.block.Block;
-import org.bukkit.block.data.Ageable;
-import org.bukkit.block.data.BlockData;
-
-import net.Indyuce.mmocore.api.block.BlockInfo.RegeneratingBlock;
-import io.lumine.mythic.lib.api.MMOLineConfig;
-
-public class VanillaBlockType implements BlockType {
- private final Material type;
-
- /*
- * allows to plant back crops with a custom age so that it does not always
- * have to full grow again-
- */
- private final int age;
-
- public VanillaBlockType(MMOLineConfig config) {
- config.validate("type");
-
- type = Material.valueOf(config.getString("type").toUpperCase().replace("-", "_").replace(" ", "_"));
- age = config.getInt("age", 0);
-
- Validate.isTrue(age >= 0 && age < 8, "Age must be between 0 and 7");
- }
-
- public VanillaBlockType(Block block) {
- type = block.getType();
- age = 0;
- }
-
- public Material getType() {
- return type;
- }
-
- @Override
- public void place(RegeneratingBlock block) {
- Location loc = block.getLocation();
- block.getLocation().getBlock().setType(type);
-
- BlockData state = block.getLocation().getBlock().getBlockData();
- if (age > 0 && state instanceof Ageable) {
- ((Ageable) state).setAge(age);
- loc.getBlock().setBlockData(state);
- }
- }
-
- @Override
- public void regenerate(RegeneratingBlock block) {
- Location loc = block.getLocation();
- loc.getBlock().setType(type);
- // Sets the original blocks old data (only when regenerating)
- loc.getBlock().setBlockData(block.getBlockData());
- }
-
- @Override
- public String generateKey() {
- return "vanilla-block-" + type.name();
- }
-
- @Override
- public boolean breakRestrictions(Block block) {
- return age == 0 || (block.getBlockData() instanceof Ageable && ((Ageable) block.getBlockData()).getAge() >= age);
- }
-}
+package net.Indyuce.mmocore.api.block;
+
+import org.apache.commons.lang.Validate;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.block.Block;
+import org.bukkit.block.data.Ageable;
+import org.bukkit.block.data.BlockData;
+
+import net.Indyuce.mmocore.api.block.BlockInfo.RegeneratingBlock;
+import io.lumine.mythic.lib.api.MMOLineConfig;
+
+public class VanillaBlockType implements BlockType {
+ private final Material type;
+
+ /*
+ * allows to plant back crops with a custom age so that it does not always
+ * have to full grow again-
+ */
+ private final int age;
+
+ public VanillaBlockType(MMOLineConfig config) {
+ config.validate("type");
+
+ type = Material.valueOf(config.getString("type").toUpperCase().replace("-", "_").replace(" ", "_"));
+ age = config.getInt("age", 0);
+
+ Validate.isTrue(age >= 0 && age < 8, "Age must be between 0 and 7");
+ }
+
+ public VanillaBlockType(Block block) {
+ type = block.getType();
+ age = 0;
+ }
+
+ public Material getType() {
+ return type;
+ }
+
+ @Override
+ public void place(RegeneratingBlock block) {
+ Location loc = block.getLocation();
+ block.getLocation().getBlock().setType(type);
+
+ BlockData state = block.getLocation().getBlock().getBlockData();
+ if (age > 0 && state instanceof Ageable) {
+ ((Ageable) state).setAge(age);
+ loc.getBlock().setBlockData(state);
+ }
+ }
+
+ @Override
+ public void regenerate(RegeneratingBlock block) {
+ Location loc = block.getLocation();
+ loc.getBlock().setType(type);
+ // Sets the original blocks old data (only when regenerating)
+ loc.getBlock().setBlockData(block.getBlockData());
+ }
+
+ @Override
+ public String generateKey() {
+ return "vanilla-block-" + type.name();
+ }
+
+ @Override
+ public boolean breakRestrictions(Block block) {
+ return age == 0 || (block.getBlockData() instanceof Ageable && ((Ageable) block.getBlockData()).getAge() >= age);
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/api/eco/Withdraw.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/eco/Withdraw.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/eco/Withdraw.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/eco/Withdraw.java
index e143c2b7..9b46af96 100644
--- a/src/main/java/net/Indyuce/mmocore/api/eco/Withdraw.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/eco/Withdraw.java
@@ -4,6 +4,7 @@ import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
+import net.Indyuce.mmocore.MMOCore;
import org.bukkit.Bukkit;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
@@ -16,7 +17,6 @@ import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.inventory.ItemStack;
-import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.util.item.CurrencyItemBuilder;
import io.lumine.mythic.lib.api.util.SmartGive;
diff --git a/src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataEvent.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataEvent.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataEvent.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataLoadEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataLoadEvent.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataLoadEvent.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataLoadEvent.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/event/CustomBlockMineEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/CustomBlockMineEvent.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/event/CustomBlockMineEvent.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/CustomBlockMineEvent.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/event/CustomPlayerFishEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/CustomPlayerFishEvent.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/event/CustomPlayerFishEvent.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/CustomPlayerFishEvent.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/event/LootChestSpawnEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/LootChestSpawnEvent.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/event/LootChestSpawnEvent.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/LootChestSpawnEvent.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/event/MMOCommandEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/MMOCommandEvent.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/event/MMOCommandEvent.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/MMOCommandEvent.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/event/PlayerAttributeUseEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerAttributeUseEvent.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/event/PlayerAttributeUseEvent.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerAttributeUseEvent.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/event/PlayerChangeClassEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerChangeClassEvent.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/event/PlayerChangeClassEvent.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerChangeClassEvent.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/event/PlayerCombatEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerCombatEvent.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/event/PlayerCombatEvent.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerCombatEvent.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/event/PlayerDataEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerDataEvent.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/event/PlayerDataEvent.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerDataEvent.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/event/PlayerDataLoadEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerDataLoadEvent.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/event/PlayerDataLoadEvent.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerDataLoadEvent.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/event/PlayerExperienceGainEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerExperienceGainEvent.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/event/PlayerExperienceGainEvent.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerExperienceGainEvent.java
index bd48b40d..eebb698b 100644
--- a/src/main/java/net/Indyuce/mmocore/api/event/PlayerExperienceGainEvent.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerExperienceGainEvent.java
@@ -2,10 +2,10 @@ package net.Indyuce.mmocore.api.event;
import javax.annotation.Nullable;
+import net.Indyuce.mmocore.experience.EXPSource;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
-import net.Indyuce.mmocore.experience.EXPSource;
import net.Indyuce.mmocore.experience.Profession;
import net.Indyuce.mmocore.api.player.PlayerData;
diff --git a/src/main/java/net/Indyuce/mmocore/api/event/PlayerKeyPressEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerKeyPressEvent.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/event/PlayerKeyPressEvent.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerKeyPressEvent.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/event/PlayerLevelUpEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerLevelUpEvent.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/event/PlayerLevelUpEvent.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerLevelUpEvent.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/event/PlayerResourceUpdateEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerResourceUpdateEvent.java
similarity index 86%
rename from src/main/java/net/Indyuce/mmocore/api/event/PlayerResourceUpdateEvent.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerResourceUpdateEvent.java
index 291f4876..6a10469e 100644
--- a/src/main/java/net/Indyuce/mmocore/api/event/PlayerResourceUpdateEvent.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerResourceUpdateEvent.java
@@ -1,5 +1,9 @@
package net.Indyuce.mmocore.api.event;
+import net.Indyuce.mmocore.api.quest.trigger.ManaTrigger;
+import net.Indyuce.mmocore.api.quest.trigger.StaminaTrigger;
+import net.Indyuce.mmocore.api.quest.trigger.StelliumTrigger;
+import net.Indyuce.mmocore.command.rpg.admin.ResourceCommandTreeNode;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.profess.resource.PlayerResource;
import net.Indyuce.mmocore.skill.list.Neptune_Gift;
@@ -104,14 +108,14 @@ public class PlayerResourceUpdateEvent extends PlayerDataEvent implements Cancel
/**
* Used by quests triggers
- * - {@link net.Indyuce.mmocore.api.quest.trigger.ManaTrigger}
- * - {@link net.Indyuce.mmocore.api.quest.trigger.StaminaTrigger}
- * - {@link net.Indyuce.mmocore.api.quest.trigger.StelliumTrigger}
+ * - {@link ManaTrigger}
+ * - {@link StaminaTrigger}
+ * - {@link StelliumTrigger}
*/
TRIGGER,
/**
- * When using the resource command {@link net.Indyuce.mmocore.command.rpg.admin.ResourceCommandTreeNode}
+ * When using the resource command {@link ResourceCommandTreeNode}
*/
COMMAND,
diff --git a/src/main/java/net/Indyuce/mmocore/api/event/social/GuildChatEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/social/GuildChatEvent.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/event/social/GuildChatEvent.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/social/GuildChatEvent.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/event/social/PartyChatEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/social/PartyChatEvent.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/event/social/PartyChatEvent.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/social/PartyChatEvent.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java
index 9ec22aca..da0ec28f 100644
--- a/src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java
@@ -1,13 +1,13 @@
package net.Indyuce.mmocore.api.load;
+import net.Indyuce.mmocore.api.block.BlockType;
+import net.Indyuce.mmocore.api.block.SkullBlockType;
+import net.Indyuce.mmocore.api.block.VanillaBlockType;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.*;
import net.Indyuce.mmocore.loot.chest.condition.*;
import org.bukkit.configuration.ConfigurationSection;
-import net.Indyuce.mmocore.api.block.BlockType;
-import net.Indyuce.mmocore.api.block.SkullBlockType;
-import net.Indyuce.mmocore.api.block.VanillaBlockType;
import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem;
import net.Indyuce.mmocore.loot.droptable.dropitem.DropTableDropItem;
diff --git a/src/main/java/net/Indyuce/mmocore/api/load/MMOLoader.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/load/MMOLoader.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/load/MMOLoader.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/load/MMOLoader.java
index c1bed441..51564421 100644
--- a/src/main/java/net/Indyuce/mmocore/api/load/MMOLoader.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/load/MMOLoader.java
@@ -2,12 +2,12 @@ package net.Indyuce.mmocore.api.load;
import io.lumine.mythic.lib.api.MMOLineConfig;
import net.Indyuce.mmocore.api.block.BlockType;
+import net.Indyuce.mmocore.api.quest.trigger.Trigger;
import net.Indyuce.mmocore.loot.chest.condition.Condition;
import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.ExperienceSource;
import net.Indyuce.mmocore.api.quest.objective.Objective;
-import net.Indyuce.mmocore.api.quest.trigger.Trigger;
import org.bukkit.configuration.ConfigurationSection;
/**
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/CombatRunnable.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/CombatRunnable.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/player/CombatRunnable.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/CombatRunnable.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/OfflinePlayerData.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/OfflinePlayerData.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/player/OfflinePlayerData.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/OfflinePlayerData.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/PlayerActivity.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/PlayerActivity.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/player/PlayerActivity.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/PlayerActivity.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java
index a98ef3ae..52210361 100644
--- a/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java
@@ -1,5 +1,7 @@
package net.Indyuce.mmocore.api.player;
+import com.google.gson.JsonObject;
+import io.lumine.mythic.lib.MythicLib;
import io.lumine.mythic.lib.api.player.MMOPlayerData;
import io.lumine.mythic.lib.player.TemporaryPlayerData;
import io.lumine.mythic.lib.player.cooldown.CooldownMap;
@@ -22,12 +24,10 @@ import net.Indyuce.mmocore.api.util.Closable;
import net.Indyuce.mmocore.api.util.MMOCoreUtils;
import net.Indyuce.mmocore.experience.EXPSource;
import net.Indyuce.mmocore.experience.ExperienceObject;
-import net.Indyuce.mmocore.experience.ExperienceTableClaimer;
-import net.Indyuce.mmocore.experience.PlayerProfessions;
import net.Indyuce.mmocore.experience.droptable.ExperienceItem;
import net.Indyuce.mmocore.experience.droptable.ExperienceTable;
import net.Indyuce.mmocore.guild.provided.Guild;
-import net.Indyuce.mmocore.loot.chest.particle.SmallParticleEffect;
+import net.Indyuce.mmocore.manager.data.mysql.MySQLTableEditor;
import net.Indyuce.mmocore.party.AbstractParty;
import net.Indyuce.mmocore.party.provided.Party;
import net.Indyuce.mmocore.player.Unlockable;
@@ -36,6 +36,9 @@ import net.Indyuce.mmocore.skill.RegisteredSkill;
import net.Indyuce.mmocore.skill.cast.SkillCastingHandler;
import net.Indyuce.mmocore.waypoint.Waypoint;
import net.Indyuce.mmocore.waypoint.WaypointOption;
+import net.Indyuce.mmocore.experience.ExperienceTableClaimer;
+import net.Indyuce.mmocore.experience.PlayerProfessions;
+import net.Indyuce.mmocore.loot.chest.particle.SmallParticleEffect;
import net.md_5.bungee.api.ChatMessageType;
import net.md_5.bungee.api.chat.TextComponent;
import org.apache.commons.lang.Validate;
@@ -50,6 +53,7 @@ import org.jetbrains.annotations.NotNull;
import javax.annotation.Nullable;
import java.util.*;
import java.util.logging.Level;
+import java.util.stream.Collectors;
public class PlayerData extends OfflinePlayerData implements Closable, ExperienceTableClaimer {
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/attribute/AttributeModifier.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/AttributeModifier.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/player/attribute/AttributeModifier.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/AttributeModifier.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttribute.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttribute.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttribute.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttribute.java
index af2f7ad5..b2858e48 100644
--- a/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttribute.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttribute.java
@@ -3,11 +3,11 @@ package net.Indyuce.mmocore.api.player.attribute;
import io.lumine.mythic.lib.MythicLib;
import io.lumine.mythic.lib.api.stat.modifier.StatModifier;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.experience.EXPSource;
+import net.Indyuce.mmocore.experience.droptable.ExperienceTable;
+import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.experience.ExpCurve;
import net.Indyuce.mmocore.experience.ExperienceObject;
-import net.Indyuce.mmocore.experience.droptable.ExperienceTable;
import org.apache.commons.lang.Validate;
import org.bukkit.Location;
import org.bukkit.configuration.ConfigurationSection;
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttributes.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttributes.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttributes.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttributes.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/ClassOption.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/ClassOption.java
similarity index 93%
rename from src/main/java/net/Indyuce/mmocore/api/player/profess/ClassOption.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/ClassOption.java
index 5a6e5e29..d0f6a72a 100644
--- a/src/main/java/net/Indyuce/mmocore/api/player/profess/ClassOption.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/ClassOption.java
@@ -1,52 +1,52 @@
-package net.Indyuce.mmocore.api.player.profess;
-
-public enum ClassOption {
-
- /**
- * If the class should be applied to newcomers
- */
- DEFAULT,
-
- /**
- * If the class should in the /class GUI
- */
- DISPLAY(true),
-
- /**
- * Health only regens when out of combat
- */
- OFF_COMBAT_HEALTH_REGEN,
-
- /**
- * Mana only regens when out of combat
- */
- OFF_COMBAT_MANA_REGEN,
-
- /**
- * Stamina only regens when out of combat
- */
- OFF_COMBAT_STAMINA_REGEN,
-
- /**
- * Stellium only regens when out of combat
- */
- OFF_COMBAT_STELLIUM_REGEN;
-
- private final boolean def;
-
- ClassOption() {
- this(false);
- }
-
- ClassOption(boolean def) {
- this.def = def;
- }
-
- public boolean getDefault() {
- return def;
- }
-
- public String getPath() {
- return name().toLowerCase().replace("_", "-");
- }
+package net.Indyuce.mmocore.api.player.profess;
+
+public enum ClassOption {
+
+ /**
+ * If the class should be applied to newcomers
+ */
+ DEFAULT,
+
+ /**
+ * If the class should in the /class GUI
+ */
+ DISPLAY(true),
+
+ /**
+ * Health only regens when out of combat
+ */
+ OFF_COMBAT_HEALTH_REGEN,
+
+ /**
+ * Mana only regens when out of combat
+ */
+ OFF_COMBAT_MANA_REGEN,
+
+ /**
+ * Stamina only regens when out of combat
+ */
+ OFF_COMBAT_STAMINA_REGEN,
+
+ /**
+ * Stellium only regens when out of combat
+ */
+ OFF_COMBAT_STELLIUM_REGEN;
+
+ private final boolean def;
+
+ ClassOption() {
+ this(false);
+ }
+
+ ClassOption(boolean def) {
+ this.def = def;
+ }
+
+ public boolean getDefault() {
+ return def;
+ }
+
+ public String getPath() {
+ return name().toLowerCase().replace("_", "-");
+ }
}
\ No newline at end of file
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java
index eb1fc759..48246532 100644
--- a/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java
@@ -8,6 +8,9 @@ import io.lumine.mythic.lib.api.MMOLineConfig;
import io.lumine.mythic.lib.api.util.PostLoadObject;
import io.lumine.mythic.lib.version.VersionMaterial;
import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.experience.EXPSource;
+import net.Indyuce.mmocore.skill.list.Ambers;
+import net.Indyuce.mmocore.skill.list.Neptune_Gift;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.profess.event.EventTrigger;
import net.Indyuce.mmocore.api.player.profess.resource.ManaDisplayOptions;
@@ -15,7 +18,6 @@ import net.Indyuce.mmocore.api.player.profess.resource.PlayerResource;
import net.Indyuce.mmocore.api.player.profess.resource.ResourceRegeneration;
import net.Indyuce.mmocore.api.util.MMOCoreUtils;
import net.Indyuce.mmocore.api.util.math.formula.LinearValue;
-import net.Indyuce.mmocore.experience.EXPSource;
import net.Indyuce.mmocore.experience.ExpCurve;
import net.Indyuce.mmocore.experience.ExperienceObject;
import net.Indyuce.mmocore.experience.droptable.ExperienceTable;
@@ -374,8 +376,8 @@ public class PlayerClass extends PostLoadObject implements ExperienceObject {
* commonly called like EntityDamageEvent or regen events.
*
* Examples:
- * - {@link net.Indyuce.mmocore.skill.list.Neptune_Gift}
- * - {@link net.Indyuce.mmocore.skill.list.Ambers}
+ * - {@link Neptune_Gift}
+ * - {@link Ambers}
*/
public Optional findSkill(RegisteredSkill skill) {
ClassSkill found = skills.get(skill.getHandler().getId());
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/SavedClassInformation.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/SavedClassInformation.java
similarity index 97%
rename from src/main/java/net/Indyuce/mmocore/api/player/profess/SavedClassInformation.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/SavedClassInformation.java
index f5d2698e..52e06d1f 100644
--- a/src/main/java/net/Indyuce/mmocore/api/player/profess/SavedClassInformation.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/SavedClassInformation.java
@@ -6,15 +6,15 @@ import java.util.Map.Entry;
import java.util.Set;
import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute;
+import net.Indyuce.mmocore.manager.data.PlayerDataManager;
+import net.Indyuce.mmocore.skill.RegisteredSkill;
import org.bukkit.configuration.ConfigurationSection;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute;
-import net.Indyuce.mmocore.skill.RegisteredSkill;
-import net.Indyuce.mmocore.manager.data.PlayerDataManager.DefaultPlayerData;
public class SavedClassInformation {
private final int level, skillPoints, attributePoints, attributeReallocationPoints;
@@ -60,7 +60,7 @@ public class SavedClassInformation {
player.getAttributes().mapPoints(), player.mapSkillLevels());
}
- public SavedClassInformation(DefaultPlayerData data) {
+ public SavedClassInformation(PlayerDataManager.DefaultPlayerData data) {
this(data.getLevel(), 0, data.getSkillPoints(), data.getAttributePoints(), data.getAttrReallocPoints());
}
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/Subclass.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/Subclass.java
similarity index 95%
rename from src/main/java/net/Indyuce/mmocore/api/player/profess/Subclass.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/Subclass.java
index 5a088a88..9bfd4fde 100644
--- a/src/main/java/net/Indyuce/mmocore/api/player/profess/Subclass.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/Subclass.java
@@ -1,23 +1,23 @@
-package net.Indyuce.mmocore.api.player.profess;
-
-import org.apache.commons.lang.Validate;
-
-public class Subclass {
- private final PlayerClass profess;
- private final int level;
-
- public Subclass(PlayerClass profess, int level) {
- Validate.notNull(profess, "Subclass cannot be null");
-
- this.profess = profess;
- this.level = level;
- }
-
- public PlayerClass getProfess() {
- return profess;
- }
-
- public int getLevel() {
- return level;
- }
+package net.Indyuce.mmocore.api.player.profess;
+
+import org.apache.commons.lang.Validate;
+
+public class Subclass {
+ private final PlayerClass profess;
+ private final int level;
+
+ public Subclass(PlayerClass profess, int level) {
+ Validate.notNull(profess, "Subclass cannot be null");
+
+ this.profess = profess;
+ this.level = level;
+ }
+
+ public PlayerClass getProfess() {
+ return profess;
+ }
+
+ public int getLevel() {
+ return level;
+ }
}
\ No newline at end of file
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTrigger.java
similarity index 95%
rename from src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTrigger.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTrigger.java
index 17923fbd..fca598b2 100644
--- a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTrigger.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTrigger.java
@@ -3,7 +3,6 @@ package net.Indyuce.mmocore.api.player.profess.event;
import io.lumine.mythic.lib.api.MMOLineConfig;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.quest.trigger.Trigger;
-import net.Indyuce.mmocore.experience.droptable.ExperienceTable;
import org.apache.commons.lang.Validate;
import java.util.LinkedHashSet;
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTriggerHandler.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTriggerHandler.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTriggerHandler.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTriggerHandler.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/AttackEventTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/AttackEventTrigger.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/AttackEventTrigger.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/AttackEventTrigger.java
index e2b3d8e7..87f2e978 100644
--- a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/AttackEventTrigger.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/AttackEventTrigger.java
@@ -2,8 +2,8 @@ package net.Indyuce.mmocore.api.player.profess.event.trigger;
import io.lumine.mythic.lib.api.event.PlayerAttackEvent;
import io.lumine.mythic.lib.damage.DamageType;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.profess.PlayerClass;
+import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.profess.event.EventTriggerHandler;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockBrokenTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockBrokenTrigger.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockBrokenTrigger.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockBrokenTrigger.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockPlacedTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockPlacedTrigger.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockPlacedTrigger.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockPlacedTrigger.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/ClassChosenEventTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/ClassChosenEventTrigger.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/ClassChosenEventTrigger.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/ClassChosenEventTrigger.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java
index 325aaf5d..40d25462 100644
--- a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java
@@ -1,11 +1,11 @@
package net.Indyuce.mmocore.api.player.profess.event.trigger;
+import net.Indyuce.mmocore.api.event.PlayerLevelUpEvent;
+import net.Indyuce.mmocore.api.player.profess.PlayerClass;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import net.Indyuce.mmocore.api.event.PlayerLevelUpEvent;
import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.api.player.profess.PlayerClass;
import net.Indyuce.mmocore.api.player.profess.event.EventTriggerHandler;
@Deprecated
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java
index 20f4800b..0844a62b 100644
--- a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java
@@ -1,8 +1,8 @@
package net.Indyuce.mmocore.api.player.profess.event.trigger;
import net.Indyuce.mmocore.api.event.PlayerLevelUpEvent;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.profess.PlayerClass;
+import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.profess.event.EventTriggerHandler;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ManaDisplayOptions.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ManaDisplayOptions.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ManaDisplayOptions.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ManaDisplayOptions.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/PlayerResource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/PlayerResource.java
similarity index 97%
rename from src/main/java/net/Indyuce/mmocore/api/player/profess/resource/PlayerResource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/PlayerResource.java
index 56aeb9b5..d5c4de3b 100644
--- a/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/PlayerResource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/PlayerResource.java
@@ -1,9 +1,10 @@
package net.Indyuce.mmocore.api.player.profess.resource;
import net.Indyuce.mmocore.api.event.PlayerResourceUpdateEvent;
+import net.Indyuce.mmocore.api.quest.trigger.ManaTrigger;
+import net.Indyuce.mmocore.command.rpg.admin.ResourceCommandTreeNode;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.profess.ClassOption;
-import net.Indyuce.mmocore.api.quest.trigger.ManaTrigger;
import org.bukkit.attribute.Attribute;
import java.util.function.BiConsumer;
@@ -111,7 +112,7 @@ public enum PlayerResource {
}
/**
- * Used by MMOCore admin commands here: {@link net.Indyuce.mmocore.command.rpg.admin.ResourceCommandTreeNode}
+ * Used by MMOCore admin commands here: {@link ResourceCommandTreeNode}
*/
public BiConsumer getConsumer(ManaTrigger.Operation operation) {
switch (operation) {
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ResourceRegeneration.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ResourceRegeneration.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ResourceRegeneration.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ResourceRegeneration.java
index 071fe4b7..6062cf11 100644
--- a/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ResourceRegeneration.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ResourceRegeneration.java
@@ -1,7 +1,7 @@
package net.Indyuce.mmocore.api.player.profess.resource;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.util.math.formula.LinearValue;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.apache.commons.lang.Validate;
import org.bukkit.configuration.ConfigurationSection;
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/social/FriendRequest.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/social/FriendRequest.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/player/social/FriendRequest.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/social/FriendRequest.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/social/Request.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/social/Request.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/player/social/Request.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/social/Request.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/stats/PlayerStats.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/stats/PlayerStats.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/player/stats/PlayerStats.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/stats/PlayerStats.java
index 0682683c..56204d7f 100644
--- a/src/main/java/net/Indyuce/mmocore/api/player/stats/PlayerStats.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/stats/PlayerStats.java
@@ -6,10 +6,10 @@ import io.lumine.mythic.lib.api.stat.StatMap;
import io.lumine.mythic.lib.api.stat.modifier.StatModifier;
import io.lumine.mythic.lib.player.modifier.ModifierSource;
import io.lumine.mythic.lib.player.modifier.ModifierType;
+import net.Indyuce.mmocore.skill.ClassSkill;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.experience.Profession;
import net.Indyuce.mmocore.player.stats.StatInfo;
-import net.Indyuce.mmocore.skill.ClassSkill;
public class PlayerStats {
private final PlayerData data;
diff --git a/src/main/java/net/Indyuce/mmocore/api/player/stats/StatType.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/stats/StatType.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/player/stats/StatType.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/stats/StatType.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/ObjectiveProgress.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/ObjectiveProgress.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/quest/ObjectiveProgress.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/ObjectiveProgress.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/Quest.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/Quest.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/quest/Quest.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/Quest.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/QuestProgress.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/QuestProgress.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/quest/QuestProgress.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/QuestProgress.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/objective/ClickonObjective.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/ClickonObjective.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/quest/objective/ClickonObjective.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/ClickonObjective.java
index 506b13c2..c3e8b0ed 100644
--- a/src/main/java/net/Indyuce/mmocore/api/quest/objective/ClickonObjective.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/ClickonObjective.java
@@ -1,5 +1,7 @@
package net.Indyuce.mmocore.api.quest.objective;
+import net.Indyuce.mmocore.api.quest.ObjectiveProgress;
+import net.Indyuce.mmocore.api.quest.QuestProgress;
import org.apache.commons.lang.Validate;
import org.bukkit.Bukkit;
import org.bukkit.Location;
@@ -11,8 +13,6 @@ import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
-import net.Indyuce.mmocore.api.quest.ObjectiveProgress;
-import net.Indyuce.mmocore.api.quest.QuestProgress;
import io.lumine.mythic.lib.api.MMOLineConfig;
public class ClickonObjective extends Objective {
diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/objective/GoToObjective.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/GoToObjective.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/quest/objective/GoToObjective.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/GoToObjective.java
index ee85470a..59e65860 100644
--- a/src/main/java/net/Indyuce/mmocore/api/quest/objective/GoToObjective.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/GoToObjective.java
@@ -1,5 +1,7 @@
package net.Indyuce.mmocore.api.quest.objective;
+import net.Indyuce.mmocore.api.quest.ObjectiveProgress;
+import net.Indyuce.mmocore.api.quest.QuestProgress;
import org.apache.commons.lang.Validate;
import org.bukkit.Bukkit;
import org.bukkit.Location;
@@ -10,8 +12,6 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
-import net.Indyuce.mmocore.api.quest.ObjectiveProgress;
-import net.Indyuce.mmocore.api.quest.QuestProgress;
import io.lumine.mythic.lib.api.MMOLineConfig;
public class GoToObjective extends Objective {
diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/objective/KillMobObjective.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/KillMobObjective.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/quest/objective/KillMobObjective.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/KillMobObjective.java
index 7af8e7fd..9cfaee40 100644
--- a/src/main/java/net/Indyuce/mmocore/api/quest/objective/KillMobObjective.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/KillMobObjective.java
@@ -1,13 +1,13 @@
package net.Indyuce.mmocore.api.quest.objective;
import io.lumine.mythic.lib.api.event.PlayerKillEntityEvent;
+import net.Indyuce.mmocore.api.quest.ObjectiveProgress;
+import net.Indyuce.mmocore.api.quest.QuestProgress;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.EntityType;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
-import net.Indyuce.mmocore.api.quest.ObjectiveProgress;
-import net.Indyuce.mmocore.api.quest.QuestProgress;
import io.lumine.mythic.lib.api.MMOLineConfig;
public class KillMobObjective extends Objective {
diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/objective/MineBlockObjective.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/MineBlockObjective.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/quest/objective/MineBlockObjective.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/MineBlockObjective.java
index 59ddf77c..c01a2c38 100644
--- a/src/main/java/net/Indyuce/mmocore/api/quest/objective/MineBlockObjective.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/MineBlockObjective.java
@@ -1,5 +1,8 @@
package net.Indyuce.mmocore.api.quest.objective;
+import net.Indyuce.mmocore.api.event.CustomBlockMineEvent;
+import net.Indyuce.mmocore.api.quest.ObjectiveProgress;
+import net.Indyuce.mmocore.api.quest.QuestProgress;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.event.EventHandler;
@@ -7,9 +10,6 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
-import net.Indyuce.mmocore.api.event.CustomBlockMineEvent;
-import net.Indyuce.mmocore.api.quest.ObjectiveProgress;
-import net.Indyuce.mmocore.api.quest.QuestProgress;
import io.lumine.mythic.lib.api.MMOLineConfig;
public class MineBlockObjective extends Objective {
diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/objective/Objective.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/Objective.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/quest/objective/Objective.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/Objective.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/CommandTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/CommandTrigger.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/quest/trigger/CommandTrigger.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/CommandTrigger.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ExperienceTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ExperienceTrigger.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/quest/trigger/ExperienceTrigger.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ExperienceTrigger.java
index a7181940..6a9c0b9c 100644
--- a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ExperienceTrigger.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ExperienceTrigger.java
@@ -1,11 +1,11 @@
package net.Indyuce.mmocore.api.quest.trigger;
+import net.Indyuce.mmocore.experience.EXPSource;
import net.Indyuce.mmocore.experience.SimpleExperienceObject;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import org.apache.commons.lang.Validate;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.experience.EXPSource;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.util.math.formula.RandomAmount;
import io.lumine.mythic.lib.api.MMOLineConfig;
diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ItemTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ItemTrigger.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/quest/trigger/ItemTrigger.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ItemTrigger.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ManaTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ManaTrigger.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/quest/trigger/ManaTrigger.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ManaTrigger.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/MessageTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/MessageTrigger.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/quest/trigger/MessageTrigger.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/MessageTrigger.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/SoundTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/SoundTrigger.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/quest/trigger/SoundTrigger.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/SoundTrigger.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/StaminaTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/StaminaTrigger.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/quest/trigger/StaminaTrigger.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/StaminaTrigger.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/StelliumTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/StelliumTrigger.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/quest/trigger/StelliumTrigger.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/StelliumTrigger.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/Trigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/Trigger.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/quest/trigger/Trigger.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/Trigger.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/util/Closable.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/Closable.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/util/Closable.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/Closable.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/util/MMOCoreUtils.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/MMOCoreUtils.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/util/MMOCoreUtils.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/MMOCoreUtils.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/util/debug/ActionBarRunnable.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/debug/ActionBarRunnable.java
similarity index 96%
rename from src/main/java/net/Indyuce/mmocore/api/util/debug/ActionBarRunnable.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/debug/ActionBarRunnable.java
index 452dd438..bc9fbe41 100644
--- a/src/main/java/net/Indyuce/mmocore/api/util/debug/ActionBarRunnable.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/debug/ActionBarRunnable.java
@@ -1,32 +1,32 @@
-package net.Indyuce.mmocore.api.util.debug;
-
-import org.bukkit.Bukkit;
-import org.bukkit.entity.Player;
-import org.bukkit.scheduler.BukkitRunnable;
-
-import net.Indyuce.mmocore.MMOCore;
-import net.md_5.bungee.api.ChatMessageType;
-import net.md_5.bungee.api.chat.TextComponent;
-
-public class ActionBarRunnable extends BukkitRunnable {
-
- /*
- * how to enable it: set 'debug' to true in the config and use the
- * 'debug-action-bar' string parameter. hot changes, only need /mmocore
- * reload.
- */
-
- @Override
- public void run() {
- Bukkit.getOnlinePlayers().forEach(this::sendActionBar);
- }
-
- private void sendActionBar(Player player) {
- player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(MMOCore.plugin.placeholderParser.parse(player, getMessage())));
- }
-
- private String getMessage() {
- String str = MMOCore.plugin.getConfig().getString("debug-action-bar.format");
- return str == null ? "" : str;
- }
-}
+package net.Indyuce.mmocore.api.util.debug;
+
+import net.Indyuce.mmocore.MMOCore;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+import org.bukkit.scheduler.BukkitRunnable;
+
+import net.md_5.bungee.api.ChatMessageType;
+import net.md_5.bungee.api.chat.TextComponent;
+
+public class ActionBarRunnable extends BukkitRunnable {
+
+ /*
+ * how to enable it: set 'debug' to true in the config and use the
+ * 'debug-action-bar' string parameter. hot changes, only need /mmocore
+ * reload.
+ */
+
+ @Override
+ public void run() {
+ Bukkit.getOnlinePlayers().forEach(this::sendActionBar);
+ }
+
+ private void sendActionBar(Player player) {
+ player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(MMOCore.plugin.placeholderParser.parse(player, getMessage())));
+ }
+
+ private String getMessage() {
+ String str = MMOCore.plugin.getConfig().getString("debug-action-bar.format");
+ return str == null ? "" : str;
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/api/util/debug/DebugMode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/debug/DebugMode.java
similarity index 95%
rename from src/main/java/net/Indyuce/mmocore/api/util/debug/DebugMode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/debug/DebugMode.java
index b5033900..a4b00706 100644
--- a/src/main/java/net/Indyuce/mmocore/api/util/debug/DebugMode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/debug/DebugMode.java
@@ -1,25 +1,25 @@
-package net.Indyuce.mmocore.api.util.debug;
-
-import net.Indyuce.mmocore.MMOCore;
-
-public class DebugMode {
- /*
- * Debug Levels:
- * 1:
- * - Print WorldGuard Flag Registry
- * 2:
- * - Print Profession Trigger Things
- * 3:
- * - Debug Action Bar
- */
- public static int level = 0;
-
- public static void setLevel(int i) {
- level = i;
- }
-
- public static void enableActionBar() {
- if (level > 2 && MMOCore.plugin.getConfig().getBoolean("debug-action-bar.enabled"))
- new ActionBarRunnable().runTaskTimer(MMOCore.plugin, 0, 10);
- }
-}
+package net.Indyuce.mmocore.api.util.debug;
+
+import net.Indyuce.mmocore.MMOCore;
+
+public class DebugMode {
+ /*
+ * Debug Levels:
+ * 1:
+ * - Print WorldGuard Flag Registry
+ * 2:
+ * - Print Profession Trigger Things
+ * 3:
+ * - Debug Action Bar
+ */
+ public static int level = 0;
+
+ public static void setLevel(int i) {
+ level = i;
+ }
+
+ public static void enableActionBar() {
+ if (level > 2 && MMOCore.plugin.getConfig().getBoolean("debug-action-bar.enabled"))
+ new ActionBarRunnable().runTaskTimer(MMOCore.plugin, 0, 10);
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/api/util/input/AnvilGUI.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/AnvilGUI.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/util/input/AnvilGUI.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/AnvilGUI.java
index 45e3a4f4..2363716b 100644
--- a/src/main/java/net/Indyuce/mmocore/api/util/input/AnvilGUI.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/AnvilGUI.java
@@ -1,5 +1,6 @@
package net.Indyuce.mmocore.api.util.input;
+import net.Indyuce.mmocore.MMOCore;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -11,7 +12,6 @@ import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.util.Consumer;
-import net.Indyuce.mmocore.MMOCore;
import io.lumine.mythic.lib.MythicLib;
public class AnvilGUI extends PlayerInput {
diff --git a/src/main/java/net/Indyuce/mmocore/api/util/input/ChatInput.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/ChatInput.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/api/util/input/ChatInput.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/ChatInput.java
index 001e6214..a5b94106 100644
--- a/src/main/java/net/Indyuce/mmocore/api/util/input/ChatInput.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/ChatInput.java
@@ -1,5 +1,6 @@
package net.Indyuce.mmocore.api.util.input;
+import net.Indyuce.mmocore.MMOCore;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -8,8 +9,6 @@ import org.bukkit.event.inventory.InventoryOpenEvent;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.util.Consumer;
-import net.Indyuce.mmocore.MMOCore;
-
public class ChatInput extends PlayerInput {
public ChatInput(Player player, InputType type, Consumer output) {
super(player, output);
diff --git a/src/main/java/net/Indyuce/mmocore/api/util/input/PlayerInput.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/PlayerInput.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/api/util/input/PlayerInput.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/PlayerInput.java
index aa1f374f..e2934f3f 100644
--- a/src/main/java/net/Indyuce/mmocore/api/util/input/PlayerInput.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/PlayerInput.java
@@ -1,12 +1,11 @@
package net.Indyuce.mmocore.api.util.input;
+import net.Indyuce.mmocore.MMOCore;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.util.Consumer;
-import net.Indyuce.mmocore.MMOCore;
-
public abstract class PlayerInput implements Listener {
private final Player player;
private final Consumer output;
diff --git a/src/main/java/net/Indyuce/mmocore/api/util/math/Line3D.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/Line3D.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/util/math/Line3D.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/Line3D.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/util/math/VectorRotation.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/VectorRotation.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/util/math/VectorRotation.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/VectorRotation.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/util/math/format/DelayFormat.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/format/DelayFormat.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/util/math/format/DelayFormat.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/format/DelayFormat.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/util/math/formula/IntegerLinearValue.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/formula/IntegerLinearValue.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/util/math/formula/IntegerLinearValue.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/formula/IntegerLinearValue.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/util/math/formula/LinearValue.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/formula/LinearValue.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/util/math/formula/LinearValue.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/formula/LinearValue.java
diff --git a/src/main/java/net/Indyuce/mmocore/api/util/math/formula/RandomAmount.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/formula/RandomAmount.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/api/util/math/formula/RandomAmount.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/formula/RandomAmount.java
diff --git a/src/main/java/net/Indyuce/mmocore/command/AttributesCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/AttributesCommand.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/AttributesCommand.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/AttributesCommand.java
index 4c5240b0..8f800686 100644
--- a/src/main/java/net/Indyuce/mmocore/command/AttributesCommand.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/AttributesCommand.java
@@ -1,5 +1,7 @@
package net.Indyuce.mmocore.command;
+import net.Indyuce.mmocore.api.event.MMOCommandEvent;
+import net.Indyuce.mmocore.manager.InventoryManager;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
@@ -7,9 +9,7 @@ import org.bukkit.command.defaults.BukkitCommand;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
-import net.Indyuce.mmocore.api.event.MMOCommandEvent;
import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.manager.InventoryManager;
public class AttributesCommand extends BukkitCommand {
public AttributesCommand(ConfigurationSection config) {
diff --git a/src/main/java/net/Indyuce/mmocore/command/ClassCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/ClassCommand.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/ClassCommand.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/ClassCommand.java
index 2691ad07..3927741d 100644
--- a/src/main/java/net/Indyuce/mmocore/command/ClassCommand.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/ClassCommand.java
@@ -1,5 +1,7 @@
package net.Indyuce.mmocore.command;
+import net.Indyuce.mmocore.api.event.MMOCommandEvent;
+import net.Indyuce.mmocore.manager.InventoryManager;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
@@ -7,9 +9,7 @@ import org.bukkit.command.defaults.BukkitCommand;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
-import net.Indyuce.mmocore.api.event.MMOCommandEvent;
import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.manager.InventoryManager;
public class ClassCommand extends BukkitCommand {
public ClassCommand(ConfigurationSection config) {
diff --git a/src/main/java/net/Indyuce/mmocore/command/CommandVerbose.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/CommandVerbose.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/CommandVerbose.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/CommandVerbose.java
diff --git a/src/main/java/net/Indyuce/mmocore/command/DepositCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/DepositCommand.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/command/DepositCommand.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/DepositCommand.java
index 214334e4..75c8bd69 100644
--- a/src/main/java/net/Indyuce/mmocore/command/DepositCommand.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/DepositCommand.java
@@ -1,5 +1,6 @@
package net.Indyuce.mmocore.command;
+import net.Indyuce.mmocore.gui.eco.DepositMenu;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
@@ -7,8 +8,6 @@ import org.bukkit.command.defaults.BukkitCommand;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
-import net.Indyuce.mmocore.gui.eco.DepositMenu;
-
public class DepositCommand extends BukkitCommand {
public DepositCommand(ConfigurationSection config) {
super(config.getString("main"));
diff --git a/src/main/java/net/Indyuce/mmocore/command/FriendsCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/FriendsCommand.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/FriendsCommand.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/FriendsCommand.java
index e4ad152e..41af99ec 100644
--- a/src/main/java/net/Indyuce/mmocore/command/FriendsCommand.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/FriendsCommand.java
@@ -2,11 +2,11 @@ package net.Indyuce.mmocore.command;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.event.MMOCommandEvent;
+import net.Indyuce.mmocore.manager.InventoryManager;
import net.Indyuce.mmocore.api.player.OfflinePlayerData;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.social.FriendRequest;
import net.Indyuce.mmocore.api.player.social.Request;
-import net.Indyuce.mmocore.manager.InventoryManager;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
diff --git a/src/main/java/net/Indyuce/mmocore/command/GuildCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/GuildCommand.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/GuildCommand.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/GuildCommand.java
index 30f6efc9..c67f8b85 100644
--- a/src/main/java/net/Indyuce/mmocore/command/GuildCommand.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/GuildCommand.java
@@ -2,6 +2,9 @@ package net.Indyuce.mmocore.command;
import java.util.UUID;
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.api.event.MMOCommandEvent;
+import net.Indyuce.mmocore.manager.InventoryManager;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.OfflinePlayer;
@@ -10,12 +13,9 @@ import org.bukkit.command.defaults.BukkitCommand;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
-import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.event.MMOCommandEvent;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.social.Request;
import net.Indyuce.mmocore.guild.provided.GuildInvite;
-import net.Indyuce.mmocore.manager.InventoryManager;
public class GuildCommand extends BukkitCommand {
diff --git a/src/main/java/net/Indyuce/mmocore/command/MMOCoreCommandTreeRoot.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/MMOCoreCommandTreeRoot.java
similarity index 97%
rename from src/main/java/net/Indyuce/mmocore/command/MMOCoreCommandTreeRoot.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/MMOCoreCommandTreeRoot.java
index dcefd387..49806a5d 100644
--- a/src/main/java/net/Indyuce/mmocore/command/MMOCoreCommandTreeRoot.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/MMOCoreCommandTreeRoot.java
@@ -23,7 +23,7 @@ public class MMOCoreCommandTreeRoot extends CommandTreeRoot implements CommandEx
(explorer, list) -> MMOCore.plugin.questManager.getAll().forEach(quest -> list.add(quest.getId())));
public MMOCoreCommandTreeRoot() {
- super("mmocore", "mmocore.admin");
+ super("net/Indyuce/mmocore", "mmocore.admin");
addChild(new ReloadCommandTreeNode(this));
addChild(new CoinsCommandTreeNode(this));
diff --git a/src/main/java/net/Indyuce/mmocore/command/PartyCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/PartyCommand.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/PartyCommand.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/PartyCommand.java
index 603ca617..ab7a6bef 100644
--- a/src/main/java/net/Indyuce/mmocore/command/PartyCommand.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/PartyCommand.java
@@ -2,6 +2,9 @@ package net.Indyuce.mmocore.command;
import java.util.UUID;
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.api.event.MMOCommandEvent;
+import net.Indyuce.mmocore.manager.InventoryManager;
import net.Indyuce.mmocore.party.provided.MMOCorePartyModule;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
@@ -11,12 +14,9 @@ import org.bukkit.command.defaults.BukkitCommand;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
-import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.event.MMOCommandEvent;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.party.provided.PartyInvite;
import net.Indyuce.mmocore.api.player.social.Request;
-import net.Indyuce.mmocore.manager.InventoryManager;
public class PartyCommand extends BukkitCommand {
diff --git a/src/main/java/net/Indyuce/mmocore/command/PlayerStatsCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/PlayerStatsCommand.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/PlayerStatsCommand.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/PlayerStatsCommand.java
index a8bfe6fa..edcbe743 100644
--- a/src/main/java/net/Indyuce/mmocore/command/PlayerStatsCommand.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/PlayerStatsCommand.java
@@ -1,5 +1,7 @@
package net.Indyuce.mmocore.command;
+import net.Indyuce.mmocore.api.event.MMOCommandEvent;
+import net.Indyuce.mmocore.manager.InventoryManager;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
@@ -7,9 +9,7 @@ import org.bukkit.command.defaults.BukkitCommand;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
-import net.Indyuce.mmocore.api.event.MMOCommandEvent;
import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.manager.InventoryManager;
public class PlayerStatsCommand extends BukkitCommand {
public PlayerStatsCommand(ConfigurationSection config) {
diff --git a/src/main/java/net/Indyuce/mmocore/command/QuestsCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/QuestsCommand.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/QuestsCommand.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/QuestsCommand.java
index 2eebc76b..4bf898a5 100644
--- a/src/main/java/net/Indyuce/mmocore/command/QuestsCommand.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/QuestsCommand.java
@@ -1,14 +1,14 @@
package net.Indyuce.mmocore.command;
+import net.Indyuce.mmocore.api.event.MMOCommandEvent;
+import net.Indyuce.mmocore.manager.InventoryManager;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.command.defaults.BukkitCommand;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
-import net.Indyuce.mmocore.api.event.MMOCommandEvent;
import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.manager.InventoryManager;
public class QuestsCommand extends BukkitCommand {
public QuestsCommand(ConfigurationSection config) {
diff --git a/src/main/java/net/Indyuce/mmocore/command/SkillsCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/SkillsCommand.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/SkillsCommand.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/SkillsCommand.java
index a13b5c1f..cd49dcf6 100644
--- a/src/main/java/net/Indyuce/mmocore/command/SkillsCommand.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/SkillsCommand.java
@@ -1,15 +1,15 @@
package net.Indyuce.mmocore.command;
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.api.event.MMOCommandEvent;
+import net.Indyuce.mmocore.manager.InventoryManager;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.command.defaults.BukkitCommand;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
-import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.event.MMOCommandEvent;
import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.manager.InventoryManager;
public class SkillsCommand extends BukkitCommand {
public SkillsCommand(ConfigurationSection config) {
diff --git a/src/main/java/net/Indyuce/mmocore/command/WaypointsCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/WaypointsCommand.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/WaypointsCommand.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/WaypointsCommand.java
index 0e958636..9726333c 100644
--- a/src/main/java/net/Indyuce/mmocore/command/WaypointsCommand.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/WaypointsCommand.java
@@ -1,12 +1,12 @@
package net.Indyuce.mmocore.command;
+import net.Indyuce.mmocore.api.event.MMOCommandEvent;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.command.defaults.BukkitCommand;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
-import net.Indyuce.mmocore.api.event.MMOCommandEvent;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.manager.InventoryManager;
diff --git a/src/main/java/net/Indyuce/mmocore/command/WithdrawCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/WithdrawCommand.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/WithdrawCommand.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/WithdrawCommand.java
index 4b5c03e2..361b38b2 100644
--- a/src/main/java/net/Indyuce/mmocore/command/WithdrawCommand.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/WithdrawCommand.java
@@ -1,5 +1,6 @@
package net.Indyuce.mmocore.command;
+import net.Indyuce.mmocore.MMOCore;
import org.apache.commons.lang.Validate;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
@@ -9,7 +10,6 @@ import org.bukkit.command.defaults.BukkitCommand;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
-import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.eco.Withdraw;
public class WithdrawCommand extends BukkitCommand {
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/CoinsCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/CoinsCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/CoinsCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/CoinsCommandTreeNode.java
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/NoteCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/NoteCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/NoteCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/NoteCommandTreeNode.java
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/ReloadCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/ReloadCommandTreeNode.java
similarity index 95%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/ReloadCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/ReloadCommandTreeNode.java
index c85df307..c7df1d41 100644
--- a/src/main/java/net/Indyuce/mmocore/command/rpg/ReloadCommandTreeNode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/ReloadCommandTreeNode.java
@@ -1,10 +1,9 @@
package net.Indyuce.mmocore.command.rpg;
+import net.Indyuce.mmocore.MMOCore;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
-import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.PlayerData;
import io.lumine.mythic.lib.command.api.CommandTreeNode;
public class ReloadCommandTreeNode extends CommandTreeNode {
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AdminCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AdminCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/AdminCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AdminCommandTreeNode.java
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AttributeCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AttributeCommandTreeNode.java
similarity index 95%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/AttributeCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AttributeCommandTreeNode.java
index c1682b00..f4adcb6d 100644
--- a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AttributeCommandTreeNode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AttributeCommandTreeNode.java
@@ -1,15 +1,15 @@
package net.Indyuce.mmocore.command.rpg.admin;
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute;
+import net.Indyuce.mmocore.api.player.attribute.PlayerAttributes;
import net.Indyuce.mmocore.command.CommandVerbose;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute;
-import net.Indyuce.mmocore.api.player.attribute.PlayerAttributes.AttributeInstance;
import io.lumine.mythic.lib.command.api.CommandTreeNode;
import io.lumine.mythic.lib.command.api.Parameter;
@@ -61,7 +61,7 @@ public class AttributeCommandTreeNode extends CommandTreeNode {
return CommandResult.FAILURE;
}
- AttributeInstance instance = PlayerData.get(player).getAttributes().getInstance(attribute);
+ PlayerAttributes.AttributeInstance instance = PlayerData.get(player).getAttributes().getInstance(attribute);
instance.setBase(Math.min(attribute.getMax(), instance.getBase() + c * amount));
CommandVerbose.verbose(sender, CommandVerbose.CommandType.ATTRIBUTE, ChatColor.GOLD + player.getName() + ChatColor.YELLOW
+ " now has " + ChatColor.GOLD + instance.getBase() + ChatColor.YELLOW + " " + attribute.getName() + ".");
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ClassCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ClassCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/ClassCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ClassCommandTreeNode.java
index 4328fa8a..a25c10f4 100644
--- a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ClassCommandTreeNode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ClassCommandTreeNode.java
@@ -1,15 +1,15 @@
package net.Indyuce.mmocore.command.rpg.admin;
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.api.event.PlayerChangeClassEvent;
+import net.Indyuce.mmocore.api.player.profess.PlayerClass;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Sound;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.event.PlayerChangeClassEvent;
import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.api.player.profess.PlayerClass;
import net.Indyuce.mmocore.api.player.profess.SavedClassInformation;
import net.Indyuce.mmocore.command.CommandVerbose;
import io.lumine.mythic.lib.command.api.CommandTreeNode;
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ExperienceCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ExperienceCommandTreeNode.java
similarity index 97%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/ExperienceCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ExperienceCommandTreeNode.java
index 9bf465de..e025fc2c 100644
--- a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ExperienceCommandTreeNode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ExperienceCommandTreeNode.java
@@ -4,10 +4,10 @@ import io.lumine.mythic.lib.MythicLib;
import io.lumine.mythic.lib.command.api.CommandTreeNode;
import io.lumine.mythic.lib.command.api.Parameter;
import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.experience.EXPSource;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.command.CommandVerbose;
import net.Indyuce.mmocore.command.MMOCoreCommandTreeRoot;
-import net.Indyuce.mmocore.experience.EXPSource;
import net.Indyuce.mmocore.experience.PlayerProfessions;
import net.Indyuce.mmocore.experience.Profession;
import org.apache.commons.lang.Validate;
@@ -24,7 +24,7 @@ public class ExperienceCommandTreeNode extends CommandTreeNode {
addChild(new ActionCommandTreeNode(this, "set", PlayerData::setExperience, PlayerProfessions::setExperience));
addChild(new ActionCommandTreeNode(this, "give", (data, value) -> data.giveExperience(value, EXPSource.COMMAND), (professions, profession,
- value) -> professions.giveExperience(profession, value, EXPSource.COMMAND)));
+ value) -> professions.giveExperience(profession, value, EXPSource.COMMAND)));
addChild(new ActionCommandTreeNode(this, "take", (data, value) -> data.giveExperience(-value, EXPSource.COMMAND), (professions, profession,
value) -> professions.giveExperience(profession, -value, EXPSource.COMMAND)));
}
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ForceClassCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ForceClassCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/ForceClassCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ForceClassCommandTreeNode.java
index 17bdcbce..6fded3c4 100644
--- a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ForceClassCommandTreeNode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ForceClassCommandTreeNode.java
@@ -1,14 +1,14 @@
package net.Indyuce.mmocore.command.rpg.admin;
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.api.player.profess.PlayerClass;
import net.Indyuce.mmocore.command.CommandVerbose;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.api.player.profess.PlayerClass;
import io.lumine.mythic.lib.command.api.CommandTreeNode;
import io.lumine.mythic.lib.command.api.Parameter;
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/HideActionBarCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/HideActionBarCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/HideActionBarCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/HideActionBarCommandTreeNode.java
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/InfoCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/InfoCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/InfoCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/InfoCommandTreeNode.java
index fcb7416b..7590a394 100644
--- a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/InfoCommandTreeNode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/InfoCommandTreeNode.java
@@ -1,12 +1,12 @@
package net.Indyuce.mmocore.command.rpg.admin;
import io.lumine.mythic.lib.MythicLib;
+import net.Indyuce.mmocore.MMOCore;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.experience.Profession;
import net.Indyuce.mmocore.api.player.PlayerData;
import io.lumine.mythic.lib.command.api.CommandTreeNode;
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/LevelCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/LevelCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/LevelCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/LevelCommandTreeNode.java
index 512c187a..6e2d874d 100644
--- a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/LevelCommandTreeNode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/LevelCommandTreeNode.java
@@ -2,14 +2,14 @@ package net.Indyuce.mmocore.command.rpg.admin;
import java.util.function.BiConsumer;
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.experience.EXPSource;
import net.Indyuce.mmocore.command.CommandVerbose;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.experience.EXPSource;
import net.Indyuce.mmocore.experience.PlayerProfessions;
import net.Indyuce.mmocore.experience.Profession;
import net.Indyuce.mmocore.api.player.PlayerData;
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/NoCooldownCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/NoCooldownCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/NoCooldownCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/NoCooldownCommandTreeNode.java
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/PointsCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/PointsCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/PointsCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/PointsCommandTreeNode.java
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResetCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResetCommandTreeNode.java
similarity index 98%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResetCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResetCommandTreeNode.java
index de2b6824..cb7df301 100644
--- a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResetCommandTreeNode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResetCommandTreeNode.java
@@ -1,14 +1,14 @@
package net.Indyuce.mmocore.command.rpg.admin;
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.api.player.attribute.PlayerAttributes;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.experience.Profession;
import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.api.player.attribute.PlayerAttributes.AttributeInstance;
import net.Indyuce.mmocore.command.CommandVerbose;
import io.lumine.mythic.lib.command.api.CommandTreeNode;
import io.lumine.mythic.lib.command.api.Parameter;
@@ -171,7 +171,7 @@ public class ResetCommandTreeNode extends CommandTreeNode {
if (args.length > 4 && args[4].equalsIgnoreCase("-reallocate")) {
int points = 0;
- for (AttributeInstance ins : data.getAttributes().getInstances()) {
+ for (PlayerAttributes.AttributeInstance ins : data.getAttributes().getInstances()) {
points += ins.getBase();
ins.setBase(0);
}
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResourceCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResourceCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResourceCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResourceCommandTreeNode.java
index 9f453a35..4dc947bd 100644
--- a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResourceCommandTreeNode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResourceCommandTreeNode.java
@@ -2,9 +2,9 @@ package net.Indyuce.mmocore.command.rpg.admin;
import io.lumine.mythic.lib.command.api.CommandTreeNode;
import io.lumine.mythic.lib.command.api.Parameter;
+import net.Indyuce.mmocore.api.quest.trigger.ManaTrigger;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.profess.resource.PlayerResource;
-import net.Indyuce.mmocore.api.quest.trigger.ManaTrigger;
import net.Indyuce.mmocore.command.CommandVerbose;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/booster/BoosterCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/BoosterCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/booster/BoosterCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/BoosterCommandTreeNode.java
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/booster/CreateCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/CreateCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/booster/CreateCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/CreateCommandTreeNode.java
index 99b0742d..2139d37f 100644
--- a/src/main/java/net/Indyuce/mmocore/command/rpg/booster/CreateCommandTreeNode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/CreateCommandTreeNode.java
@@ -2,12 +2,12 @@ package net.Indyuce.mmocore.command.rpg.booster;
import java.util.Arrays;
+import net.Indyuce.mmocore.MMOCore;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Sound;
import org.bukkit.command.CommandSender;
-import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.ConfigMessage;
import net.Indyuce.mmocore.experience.Booster;
import net.Indyuce.mmocore.experience.Profession;
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/booster/ListCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/ListCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/booster/ListCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/ListCommandTreeNode.java
index ecaba7d3..6c504fd0 100644
--- a/src/main/java/net/Indyuce/mmocore/command/rpg/booster/ListCommandTreeNode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/ListCommandTreeNode.java
@@ -1,10 +1,10 @@
package net.Indyuce.mmocore.command.rpg.booster;
+import net.Indyuce.mmocore.MMOCore;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.experience.Booster;
import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
import io.lumine.mythic.lib.MythicLib;
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/booster/RemoveCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/RemoveCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/booster/RemoveCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/RemoveCommandTreeNode.java
index 03ce630f..4ee4186c 100644
--- a/src/main/java/net/Indyuce/mmocore/command/rpg/booster/RemoveCommandTreeNode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/RemoveCommandTreeNode.java
@@ -3,10 +3,10 @@ package net.Indyuce.mmocore.command.rpg.booster;
import java.util.Iterator;
import java.util.UUID;
+import net.Indyuce.mmocore.MMOCore;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
-import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.experience.Booster;
import io.lumine.mythic.lib.command.api.CommandTreeNode;
import io.lumine.mythic.lib.command.api.Parameter;
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/debug/DebugCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/debug/DebugCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/debug/DebugCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/debug/DebugCommandTreeNode.java
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatModifiersCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatModifiersCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatModifiersCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatModifiersCommandTreeNode.java
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatValueCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatValueCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatValueCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatValueCommandTreeNode.java
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/quest/CancelCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/CancelCommandTreeNode.java
similarity index 96%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/quest/CancelCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/CancelCommandTreeNode.java
index 1556da28..c3731a6d 100644
--- a/src/main/java/net/Indyuce/mmocore/command/rpg/quest/CancelCommandTreeNode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/CancelCommandTreeNode.java
@@ -1,43 +1,43 @@
-package net.Indyuce.mmocore.command.rpg.quest;
-
-import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.api.quest.PlayerQuests;
-import io.lumine.mythic.lib.command.api.CommandTreeNode;
-import io.lumine.mythic.lib.command.api.Parameter;
-
-public class CancelCommandTreeNode extends CommandTreeNode {
- public CancelCommandTreeNode(CommandTreeNode parent) {
- super(parent, "cancel");
-
- addParameter(Parameter.PLAYER);
- }
-
- @Override
- public CommandResult execute(CommandSender sender, String[] args) {
- if (args.length < 3)
- return CommandResult.THROW_USAGE;
-
- Player player = Bukkit.getPlayer(args[2]);
- if (player == null) {
- sender.sendMessage(ChatColor.RED + "Could not find player called " + args[2] + ".");
- return CommandResult.FAILURE;
- }
-
- PlayerQuests quests = PlayerData.get(player).getQuestData();
- if (!quests.hasCurrent()) {
- if (sender instanceof Player)
- sender.sendMessage(ChatColor.RED + player.getName() + " has no ongoing quest.");
- return CommandResult.SUCCESS;
- }
-
- quests.start(null);
- if (sender instanceof Player)
- sender.sendMessage(ChatColor.YELLOW + player.getName() + " no longer has any ongoing quest.");
- return CommandResult.SUCCESS;
- }
-}
+package net.Indyuce.mmocore.command.rpg.quest;
+
+import net.Indyuce.mmocore.api.quest.PlayerQuests;
+import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+import net.Indyuce.mmocore.api.player.PlayerData;
+import io.lumine.mythic.lib.command.api.CommandTreeNode;
+import io.lumine.mythic.lib.command.api.Parameter;
+
+public class CancelCommandTreeNode extends CommandTreeNode {
+ public CancelCommandTreeNode(CommandTreeNode parent) {
+ super(parent, "cancel");
+
+ addParameter(Parameter.PLAYER);
+ }
+
+ @Override
+ public CommandResult execute(CommandSender sender, String[] args) {
+ if (args.length < 3)
+ return CommandResult.THROW_USAGE;
+
+ Player player = Bukkit.getPlayer(args[2]);
+ if (player == null) {
+ sender.sendMessage(ChatColor.RED + "Could not find player called " + args[2] + ".");
+ return CommandResult.FAILURE;
+ }
+
+ PlayerQuests quests = PlayerData.get(player).getQuestData();
+ if (!quests.hasCurrent()) {
+ if (sender instanceof Player)
+ sender.sendMessage(ChatColor.RED + player.getName() + " has no ongoing quest.");
+ return CommandResult.SUCCESS;
+ }
+
+ quests.start(null);
+ if (sender instanceof Player)
+ sender.sendMessage(ChatColor.YELLOW + player.getName() + " no longer has any ongoing quest.");
+ return CommandResult.SUCCESS;
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/quest/FinishCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/FinishCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/quest/FinishCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/FinishCommandTreeNode.java
index 5514bfbb..779a918b 100644
--- a/src/main/java/net/Indyuce/mmocore/command/rpg/quest/FinishCommandTreeNode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/FinishCommandTreeNode.java
@@ -2,8 +2,8 @@ package net.Indyuce.mmocore.command.rpg.quest;
import io.lumine.mythic.lib.command.api.CommandTreeNode;
import io.lumine.mythic.lib.command.api.Parameter;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.quest.PlayerQuests;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/quest/QuestCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/QuestCommandTreeNode.java
similarity index 96%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/quest/QuestCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/QuestCommandTreeNode.java
index 866b6981..2cb909ad 100644
--- a/src/main/java/net/Indyuce/mmocore/command/rpg/quest/QuestCommandTreeNode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/QuestCommandTreeNode.java
@@ -1,21 +1,21 @@
-package net.Indyuce.mmocore.command.rpg.quest;
-
-import org.bukkit.command.CommandSender;
-
-import io.lumine.mythic.lib.command.api.CommandTreeNode;
-
-public class QuestCommandTreeNode extends CommandTreeNode {
-
- public QuestCommandTreeNode(CommandTreeNode parent) {
- super(parent, "quest");
-
- addChild(new StartCommandTreeNode(this));
- addChild(new CancelCommandTreeNode(this));
- addChild(new FinishCommandTreeNode(this));
- }
-
- @Override
- public CommandResult execute(CommandSender sender, String[] args) {
- return CommandResult.THROW_USAGE;
- }
-}
+package net.Indyuce.mmocore.command.rpg.quest;
+
+import org.bukkit.command.CommandSender;
+
+import io.lumine.mythic.lib.command.api.CommandTreeNode;
+
+public class QuestCommandTreeNode extends CommandTreeNode {
+
+ public QuestCommandTreeNode(CommandTreeNode parent) {
+ super(parent, "quest");
+
+ addChild(new StartCommandTreeNode(this));
+ addChild(new CancelCommandTreeNode(this));
+ addChild(new FinishCommandTreeNode(this));
+ }
+
+ @Override
+ public CommandResult execute(CommandSender sender, String[] args) {
+ return CommandResult.THROW_USAGE;
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/quest/StartCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/StartCommandTreeNode.java
similarity index 97%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/quest/StartCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/StartCommandTreeNode.java
index 079c262c..e2941ebc 100644
--- a/src/main/java/net/Indyuce/mmocore/command/rpg/quest/StartCommandTreeNode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/StartCommandTreeNode.java
@@ -1,55 +1,55 @@
-package net.Indyuce.mmocore.command.rpg.quest;
-
-import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.api.quest.PlayerQuests;
-import net.Indyuce.mmocore.api.quest.Quest;
-import net.Indyuce.mmocore.command.MMOCoreCommandTreeRoot;
-import io.lumine.mythic.lib.command.api.CommandTreeNode;
-import io.lumine.mythic.lib.command.api.Parameter;
-
-public class StartCommandTreeNode extends CommandTreeNode {
- public StartCommandTreeNode(CommandTreeNode parent) {
- super(parent, "start");
-
- addParameter(Parameter.PLAYER);
- addParameter(MMOCoreCommandTreeRoot.QUEST);
- }
-
- @Override
- public CommandResult execute(CommandSender sender, String[] args) {
- if (args.length < 4)
- return CommandResult.THROW_USAGE;
-
- Player player = Bukkit.getPlayer(args[2]);
- if (player == null) {
- sender.sendMessage(ChatColor.RED + "Could not find player called " + args[2] + ".");
- return CommandResult.FAILURE;
- }
-
- Quest quest;
- try {
- quest = MMOCore.plugin.questManager.get(args[3].replace("_", "-").toLowerCase());
- } catch (Exception exception) {
- sender.sendMessage(ChatColor.RED + "Could not find quest with ID " + args[3].replace("_", "-").toLowerCase() + ".");
- return CommandResult.FAILURE;
- }
-
- PlayerQuests quests = PlayerData.get(player).getQuestData();
- if (quests.hasCurrent()) {
- if (sender instanceof Player)
- sender.sendMessage(ChatColor.RED + player.getName() + " already has an ongoing quest.");
- return CommandResult.SUCCESS;
- }
-
- quests.start(quest);
- if (sender instanceof Player)
- sender.sendMessage(ChatColor.YELLOW + player.getName() + " successfully started " + quest.getName() + ".");
- return CommandResult.SUCCESS;
- }
-}
+package net.Indyuce.mmocore.command.rpg.quest;
+
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.api.quest.PlayerQuests;
+import net.Indyuce.mmocore.api.quest.Quest;
+import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+import net.Indyuce.mmocore.api.player.PlayerData;
+import net.Indyuce.mmocore.command.MMOCoreCommandTreeRoot;
+import io.lumine.mythic.lib.command.api.CommandTreeNode;
+import io.lumine.mythic.lib.command.api.Parameter;
+
+public class StartCommandTreeNode extends CommandTreeNode {
+ public StartCommandTreeNode(CommandTreeNode parent) {
+ super(parent, "start");
+
+ addParameter(Parameter.PLAYER);
+ addParameter(MMOCoreCommandTreeRoot.QUEST);
+ }
+
+ @Override
+ public CommandResult execute(CommandSender sender, String[] args) {
+ if (args.length < 4)
+ return CommandResult.THROW_USAGE;
+
+ Player player = Bukkit.getPlayer(args[2]);
+ if (player == null) {
+ sender.sendMessage(ChatColor.RED + "Could not find player called " + args[2] + ".");
+ return CommandResult.FAILURE;
+ }
+
+ Quest quest;
+ try {
+ quest = MMOCore.plugin.questManager.get(args[3].replace("_", "-").toLowerCase());
+ } catch (Exception exception) {
+ sender.sendMessage(ChatColor.RED + "Could not find quest with ID " + args[3].replace("_", "-").toLowerCase() + ".");
+ return CommandResult.FAILURE;
+ }
+
+ PlayerQuests quests = PlayerData.get(player).getQuestData();
+ if (quests.hasCurrent()) {
+ if (sender instanceof Player)
+ sender.sendMessage(ChatColor.RED + player.getName() + " already has an ongoing quest.");
+ return CommandResult.SUCCESS;
+ }
+
+ quests.start(quest);
+ if (sender instanceof Player)
+ sender.sendMessage(ChatColor.YELLOW + player.getName() + " successfully started " + quest.getName() + ".");
+ return CommandResult.SUCCESS;
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/ItemCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/ItemCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/ItemCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/ItemCommandTreeNode.java
index d66f5eac..a8279746 100644
--- a/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/ItemCommandTreeNode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/ItemCommandTreeNode.java
@@ -4,8 +4,8 @@ import io.lumine.mythic.lib.api.util.SmartGive;
import io.lumine.mythic.lib.command.api.CommandTreeNode;
import io.lumine.mythic.lib.command.api.Parameter;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.util.item.WaypointBookBuilder;
import net.Indyuce.mmocore.waypoint.Waypoint;
+import net.Indyuce.mmocore.util.item.WaypointBookBuilder;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/OpenCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/OpenCommandTreeNode.java
similarity index 87%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/OpenCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/OpenCommandTreeNode.java
index 84f1ac91..ec41723d 100644
--- a/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/OpenCommandTreeNode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/OpenCommandTreeNode.java
@@ -1,5 +1,6 @@
package net.Indyuce.mmocore.command.rpg.waypoint;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
@@ -27,7 +28,7 @@ public class OpenCommandTreeNode extends CommandTreeNode {
return CommandResult.FAILURE;
}
- InventoryManager.WAYPOINTS.newInventory(net.Indyuce.mmocore.api.player.PlayerData.get(player)).open();
+ InventoryManager.WAYPOINTS.newInventory(PlayerData.get(player)).open();
return CommandResult.SUCCESS;
}
}
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/TeleportCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/TeleportCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/TeleportCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/TeleportCommandTreeNode.java
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/UnlockCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/UnlockCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/UnlockCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/UnlockCommandTreeNode.java
index a33e7a30..94386fdb 100644
--- a/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/UnlockCommandTreeNode.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/UnlockCommandTreeNode.java
@@ -1,12 +1,12 @@
package net.Indyuce.mmocore.command.rpg.waypoint;
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.waypoint.Waypoint;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.waypoint.Waypoint;
import net.Indyuce.mmocore.api.player.PlayerData;
import io.lumine.mythic.lib.command.api.CommandTreeNode;
import io.lumine.mythic.lib.command.api.Parameter;
diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/WaypointsCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/WaypointsCommandTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/WaypointsCommandTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/WaypointsCommandTreeNode.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEvent.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEvent.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEvent.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEventListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEventListener.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEventListener.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEventListener.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizensMMOLoader.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizensMMOLoader.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/citizens/CitizensMMOLoader.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizensMMOLoader.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/citizens/GetItemObjective.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/GetItemObjective.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/citizens/GetItemObjective.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/GetItemObjective.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/citizens/TalktoCitizenObjective.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/TalktoCitizenObjective.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/citizens/TalktoCitizenObjective.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/TalktoCitizenObjective.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicHook.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicHook.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicHook.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicHook.java
index bbcc4a53..e6d72660 100644
--- a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicHook.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicHook.java
@@ -4,11 +4,11 @@ import io.lumine.mythic.bukkit.MythicBukkit;
import io.lumine.mythic.bukkit.events.MythicDropLoadEvent;
import io.lumine.mythic.bukkit.events.MythicReloadedEvent;
import io.lumine.mythic.core.skills.placeholders.Placeholder;
+import net.Indyuce.mmocore.comp.mythicmobs.load.CurrencyItemDrop;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute;
import net.Indyuce.mmocore.api.player.attribute.PlayerAttributes;
-import net.Indyuce.mmocore.comp.mythicmobs.load.CurrencyItemDrop;
import net.Indyuce.mmocore.comp.mythicmobs.load.GoldPouchDrop;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java
index 8a197ee8..83f4aa1f 100644
--- a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java
@@ -1,10 +1,10 @@
package net.Indyuce.mmocore.comp.mythicmobs;
import io.lumine.mythic.lib.api.MMOLineConfig;
+import net.Indyuce.mmocore.comp.mythicmobs.load.*;
import net.Indyuce.mmocore.api.load.MMOLoader;
import net.Indyuce.mmocore.api.quest.objective.Objective;
import net.Indyuce.mmocore.api.quest.trigger.Trigger;
-import net.Indyuce.mmocore.comp.mythicmobs.load.*;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.ExperienceSource;
import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem;
diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/CurrencyItemDrop.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/CurrencyItemDrop.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/CurrencyItemDrop.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/CurrencyItemDrop.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/GoldPouchDrop.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/GoldPouchDrop.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/GoldPouchDrop.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/GoldPouchDrop.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionExperienceSource.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionExperienceSource.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionObjective.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionObjective.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionObjective.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionObjective.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobExperienceSource.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobExperienceSource.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobObjective.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobObjective.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobObjective.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobObjective.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MMDropTableDropItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MMDropTableDropItem.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MMDropTableDropItem.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MMDropTableDropItem.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MythicSkillTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MythicSkillTrigger.java
similarity index 95%
rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MythicSkillTrigger.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MythicSkillTrigger.java
index b4c3fcba..90b59722 100644
--- a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MythicSkillTrigger.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MythicSkillTrigger.java
@@ -5,7 +5,6 @@ import io.lumine.mythic.api.mobs.GenericCaster;
import io.lumine.mythic.api.skills.Skill;
import io.lumine.mythic.api.skills.SkillCaster;
import io.lumine.mythic.api.skills.SkillMetadata;
-import io.lumine.mythic.api.skills.SkillTrigger;
import io.lumine.mythic.bukkit.BukkitAdapter;
import io.lumine.mythic.bukkit.MythicBukkit;
import io.lumine.mythic.core.skills.SkillMetadataImpl;
@@ -15,7 +14,6 @@ import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.quest.trigger.Trigger;
import org.apache.commons.lang.Validate;
-import java.util.ArrayList;
import java.util.HashSet;
import java.util.Optional;
diff --git a/src/main/java/net/Indyuce/mmocore/comp/placeholder/DefaultParser.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/DefaultParser.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/placeholder/DefaultParser.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/DefaultParser.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderAPIParser.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderAPIParser.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderAPIParser.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderAPIParser.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderParser.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderParser.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderParser.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderParser.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/placeholder/RPGPlaceholders.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/RPGPlaceholders.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/comp/placeholder/RPGPlaceholders.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/RPGPlaceholders.java
index ca6556eb..40307abd 100644
--- a/src/main/java/net/Indyuce/mmocore/comp/placeholder/RPGPlaceholders.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/RPGPlaceholders.java
@@ -4,9 +4,9 @@ import io.lumine.mythic.lib.MythicLib;
import io.lumine.mythic.lib.api.util.AltChar;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.api.quest.PlayerQuests;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.player.stats.StatInfo;
-import net.Indyuce.mmocore.api.quest.PlayerQuests;
import net.Indyuce.mmocore.experience.PlayerProfessions;
import net.Indyuce.mmocore.experience.Profession;
import net.Indyuce.mmocore.party.AbstractParty;
@@ -37,7 +37,7 @@ public class RPGPlaceholders extends PlaceholderExpansion {
@Override
public String getIdentifier() {
- return "mmocore";
+ return "net/Indyuce/mmocore";
}
@Override
diff --git a/src/main/java/net/Indyuce/mmocore/comp/region/DefaultRegionHandler.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/DefaultRegionHandler.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/region/DefaultRegionHandler.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/DefaultRegionHandler.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/region/RegionCondition.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/RegionCondition.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/region/RegionCondition.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/RegionCondition.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/region/RegionHandler.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/RegionHandler.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/region/RegionHandler.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/RegionHandler.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardMMOLoader.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardMMOLoader.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardMMOLoader.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardMMOLoader.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardRegionHandler.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardRegionHandler.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardRegionHandler.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardRegionHandler.java
diff --git a/src/main/java/net/Indyuce/mmocore/comp/vault/MoneyTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/MoneyTrigger.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/vault/MoneyTrigger.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/MoneyTrigger.java
index 94b16b01..16fee03e 100644
--- a/src/main/java/net/Indyuce/mmocore/comp/vault/MoneyTrigger.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/MoneyTrigger.java
@@ -1,8 +1,8 @@
package net.Indyuce.mmocore.comp.vault;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.quest.trigger.Trigger;
+import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.util.math.formula.RandomAmount;
import io.lumine.mythic.lib.api.MMOLineConfig;
diff --git a/src/main/java/net/Indyuce/mmocore/comp/vault/VaultEconomy.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/VaultEconomy.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/vault/VaultEconomy.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/VaultEconomy.java
index a9fe6a51..139e0e41 100644
--- a/src/main/java/net/Indyuce/mmocore/comp/vault/VaultEconomy.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/VaultEconomy.java
@@ -2,9 +2,9 @@ package net.Indyuce.mmocore.comp.vault;
import java.util.logging.Level;
+import net.Indyuce.mmocore.MMOCore;
import org.bukkit.Bukkit;
-import net.Indyuce.mmocore.MMOCore;
import net.milkbowl.vault.economy.Economy;
public class VaultEconomy {
diff --git a/src/main/java/net/Indyuce/mmocore/comp/vault/VaultMMOLoader.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/VaultMMOLoader.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/comp/vault/VaultMMOLoader.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/VaultMMOLoader.java
index a77f69f7..1cadefc0 100644
--- a/src/main/java/net/Indyuce/mmocore/comp/vault/VaultMMOLoader.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/VaultMMOLoader.java
@@ -1,7 +1,7 @@
package net.Indyuce.mmocore.comp.vault;
-import net.Indyuce.mmocore.api.load.MMOLoader;
import net.Indyuce.mmocore.api.quest.trigger.Trigger;
+import net.Indyuce.mmocore.api.load.MMOLoader;
import io.lumine.mythic.lib.api.MMOLineConfig;
public class VaultMMOLoader extends MMOLoader {
diff --git a/src/main/java/net/Indyuce/mmocore/experience/Booster.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/Booster.java
similarity index 96%
rename from src/main/java/net/Indyuce/mmocore/experience/Booster.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/Booster.java
index c15d6928..28f609a5 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/Booster.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/Booster.java
@@ -1,5 +1,7 @@
package net.Indyuce.mmocore.experience;
+import net.Indyuce.mmocore.manager.social.BoosterManager;
+
import java.util.Objects;
import java.util.UUID;
@@ -14,7 +16,7 @@ public class Booster {
* Length is not final because boosters can stacks. This allows to reduce
* the amount of boosters displayed in the main player menu
*
- * See {@link net.Indyuce.mmocore.manager.social.BoosterManager#register(Booster)}
+ * See {@link BoosterManager#register(Booster)}
*/
private long length;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/EXPSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/EXPSource.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/EXPSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/EXPSource.java
diff --git a/src/main/java/net/Indyuce/mmocore/experience/ExpCurve.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExpCurve.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/ExpCurve.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExpCurve.java
diff --git a/src/main/java/net/Indyuce/mmocore/experience/ExperienceObject.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExperienceObject.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/ExperienceObject.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExperienceObject.java
index c14f0232..b51b1033 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/ExperienceObject.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExperienceObject.java
@@ -1,7 +1,7 @@
package net.Indyuce.mmocore.experience;
-import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.droptable.ExperienceTable;
+import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import org.jetbrains.annotations.NotNull;
import javax.annotation.Nullable;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/ExperienceTableClaimer.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExperienceTableClaimer.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/ExperienceTableClaimer.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExperienceTableClaimer.java
diff --git a/src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java
diff --git a/src/main/java/net/Indyuce/mmocore/experience/Profession.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/Profession.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/Profession.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/Profession.java
diff --git a/src/main/java/net/Indyuce/mmocore/experience/SimpleExperienceObject.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/SimpleExperienceObject.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/SimpleExperienceObject.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/SimpleExperienceObject.java
diff --git a/src/main/java/net/Indyuce/mmocore/experience/dispenser/ExperienceDispenser.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/dispenser/ExperienceDispenser.java
similarity index 94%
rename from src/main/java/net/Indyuce/mmocore/experience/dispenser/ExperienceDispenser.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/dispenser/ExperienceDispenser.java
index 0d2af5f5..f5c1d2f8 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/dispenser/ExperienceDispenser.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/dispenser/ExperienceDispenser.java
@@ -1,8 +1,9 @@
package net.Indyuce.mmocore.experience.dispenser;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.util.MMOCoreUtils;
import net.Indyuce.mmocore.experience.EXPSource;
+import net.Indyuce.mmocore.experience.ExperienceObject;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.bukkit.Location;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -12,7 +13,7 @@ import org.jetbrains.annotations.Nullable;
* experience given in a specific profession. Also being used to
* monitor EXP holograms.
*
- * @deprecated Merged with {@link net.Indyuce.mmocore.experience.ExperienceObject}
+ * @deprecated Merged with {@link ExperienceObject}
*/
@Deprecated
public interface ExperienceDispenser {
diff --git a/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceItem.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceItem.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceItem.java
index 31698af7..1504c000 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceItem.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceItem.java
@@ -2,8 +2,8 @@ package net.Indyuce.mmocore.experience.droptable;
import io.lumine.mythic.lib.api.MMOLineConfig;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.quest.trigger.Trigger;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.apache.commons.lang.Validate;
import org.bukkit.configuration.ConfigurationSection;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceTable.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceTable.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceTable.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceTable.java
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/BrewPotionExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/BrewPotionExperienceSource.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/source/BrewPotionExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/BrewPotionExperienceSource.java
index a0f6b5bf..8934ce22 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/BrewPotionExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/BrewPotionExperienceSource.java
@@ -1,8 +1,8 @@
package net.Indyuce.mmocore.experience.source;
import io.lumine.mythic.lib.api.MMOLineConfig;
-import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.experience.EXPSource;
+import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.ExperienceSource;
import net.Indyuce.mmocore.api.player.PlayerData;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/ClimbExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ClimbExperienceSource.java
similarity index 98%
rename from src/main/java/net/Indyuce/mmocore/experience/source/ClimbExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ClimbExperienceSource.java
index dd27e927..2563a746 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/ClimbExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ClimbExperienceSource.java
@@ -6,11 +6,9 @@ import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource;
import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
import org.apache.commons.lang.Validate;
-import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerMoveEvent;
-import org.bukkit.util.Vector;
public class ClimbExperienceSource extends SpecificExperienceSource {
//Can be Ladder,Vines,Twisting Vines,Weeping Vines.
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/CraftItemExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/CraftItemExperienceSource.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/source/CraftItemExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/CraftItemExperienceSource.java
index 55de061c..b53d6dd6 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/CraftItemExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/CraftItemExperienceSource.java
@@ -2,10 +2,10 @@ package net.Indyuce.mmocore.experience.source;
import io.lumine.mythic.lib.api.MMOLineConfig;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource;
import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.apache.commons.lang.Validate;
import org.bukkit.Bukkit;
import org.bukkit.Material;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/DamageDealtExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/DamageDealtExperienceSource.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/experience/source/DamageDealtExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/DamageDealtExperienceSource.java
index 7e1c91ac..5b31b7aa 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/DamageDealtExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/DamageDealtExperienceSource.java
@@ -4,13 +4,12 @@ import io.lumine.mythic.lib.api.MMOLineConfig;
import io.lumine.mythic.lib.api.event.PlayerAttackEvent;
import io.lumine.mythic.lib.damage.DamagePacket;
import io.lumine.mythic.lib.damage.DamageType;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource;
import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.apache.commons.lang.Validate;
import org.bukkit.event.EventHandler;
-import scala.Enumeration;
import java.util.Arrays;
import java.util.Objects;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/DamageTakenExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/DamageTakenExperienceSource.java
similarity index 98%
rename from src/main/java/net/Indyuce/mmocore/experience/source/DamageTakenExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/DamageTakenExperienceSource.java
index d361d3a4..aece97e4 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/DamageTakenExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/DamageTakenExperienceSource.java
@@ -1,12 +1,11 @@
package net.Indyuce.mmocore.experience.source;
import io.lumine.mythic.lib.api.MMOLineConfig;
-import io.lumine.mythic.lib.damage.DamageType;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource;
import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.apache.commons.lang.Validate;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/EatExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/EatExperienceSource.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/source/EatExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/EatExperienceSource.java
index b6db5451..b312b5ac 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/EatExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/EatExperienceSource.java
@@ -1,10 +1,10 @@
package net.Indyuce.mmocore.experience.source;
import io.lumine.mythic.lib.api.MMOLineConfig;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource;
import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.apache.commons.lang3.Validate;
import org.bukkit.Material;
import org.bukkit.OfflinePlayer;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/EnchantItemExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/EnchantItemExperienceSource.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/source/EnchantItemExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/EnchantItemExperienceSource.java
index 3a9c334d..679ec2e2 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/EnchantItemExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/EnchantItemExperienceSource.java
@@ -3,11 +3,11 @@ package net.Indyuce.mmocore.experience.source;
import io.lumine.mythic.lib.MythicLib;
import io.lumine.mythic.lib.api.MMOLineConfig;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.experience.EXPSource;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.ExperienceSource;
import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/FishItemExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/FishItemExperienceSource.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/source/FishItemExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/FishItemExperienceSource.java
index 6bf23620..9a5f2184 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/FishItemExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/FishItemExperienceSource.java
@@ -3,8 +3,8 @@ package net.Indyuce.mmocore.experience.source;
import io.lumine.mythic.lib.api.MMOLineConfig;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.bukkit.Material;
import org.bukkit.entity.Item;
import org.bukkit.event.EventHandler;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/KillMobExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/KillMobExperienceSource.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/source/KillMobExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/KillMobExperienceSource.java
index 3596a77d..96c3a7be 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/KillMobExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/KillMobExperienceSource.java
@@ -3,11 +3,11 @@ package net.Indyuce.mmocore.experience.source;
import io.lumine.mythic.lib.api.MMOLineConfig;
import io.lumine.mythic.lib.api.event.PlayerKillEntityEvent;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.util.MMOCoreUtils;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource;
import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.bukkit.Bukkit;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/MineBlockExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/MineBlockExperienceSource.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/source/MineBlockExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/MineBlockExperienceSource.java
index fcc457a4..b1442871 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/MineBlockExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/MineBlockExperienceSource.java
@@ -2,10 +2,10 @@ package net.Indyuce.mmocore.experience.source;
import io.lumine.mythic.lib.MythicLib;
import io.lumine.mythic.lib.api.MMOLineConfig;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource;
import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/MoveExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/MoveExperienceSource.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/source/MoveExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/MoveExperienceSource.java
index 66ae8959..6f94ee61 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/MoveExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/MoveExperienceSource.java
@@ -1,10 +1,10 @@
package net.Indyuce.mmocore.experience.source;
import io.lumine.mythic.lib.api.MMOLineConfig;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource;
import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.apache.commons.lang.Validate;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/PlaceBlockExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/PlaceBlockExperienceSource.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/source/PlaceBlockExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/PlaceBlockExperienceSource.java
index fcd19b70..d586609c 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/PlaceBlockExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/PlaceBlockExperienceSource.java
@@ -3,8 +3,8 @@ package net.Indyuce.mmocore.experience.source;
import io.lumine.mythic.lib.api.MMOLineConfig;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/PlayExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/PlayExperienceSource.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/source/PlayExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/PlayExperienceSource.java
index b2f49d62..e0a5a43d 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/PlayExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/PlayExperienceSource.java
@@ -2,10 +2,10 @@ package net.Indyuce.mmocore.experience.source;
import io.lumine.mythic.lib.api.MMOLineConfig;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource;
import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/ProjectileExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ProjectileExperienceSource.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/source/ProjectileExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ProjectileExperienceSource.java
index c3ac3578..bc9d7995 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/ProjectileExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ProjectileExperienceSource.java
@@ -2,10 +2,10 @@ package net.Indyuce.mmocore.experience.source;
import io.lumine.mythic.lib.api.MMOLineConfig;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource;
import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.apache.commons.lang.Validate;
import org.bukkit.Location;
import org.bukkit.entity.Arrow;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/RepairItemExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/RepairItemExperienceSource.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/source/RepairItemExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/RepairItemExperienceSource.java
index 070e5e24..4615cf7a 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/RepairItemExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/RepairItemExperienceSource.java
@@ -5,8 +5,8 @@ import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.experience.EXPSource;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.ExperienceSource;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/ResourceExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ResourceExperienceSource.java
similarity index 96%
rename from src/main/java/net/Indyuce/mmocore/experience/source/ResourceExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ResourceExperienceSource.java
index d1e40e84..4ceec1ee 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/ResourceExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ResourceExperienceSource.java
@@ -2,18 +2,14 @@ package net.Indyuce.mmocore.experience.source;
import io.lumine.mythic.lib.api.MMOLineConfig;
import net.Indyuce.mmocore.api.event.PlayerResourceUpdateEvent;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.profess.resource.PlayerResource;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource;
import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.apache.commons.lang.Validate;
import org.bukkit.event.EventHandler;
-import java.util.Arrays;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
public class ResourceExperienceSource extends SpecificExperienceSource {
private final PlayerResource resource;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/RideExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/RideExperienceSource.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/experience/source/RideExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/RideExperienceSource.java
index 9c9578ce..6841884f 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/RideExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/RideExperienceSource.java
@@ -1,12 +1,11 @@
package net.Indyuce.mmocore.experience.source;
import io.lumine.mythic.lib.api.MMOLineConfig;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource;
import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.apache.commons.lang.Validate;
-import org.bukkit.Bukkit;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.event.EventHandler;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/SmeltItemExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/SmeltItemExperienceSource.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/source/SmeltItemExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/SmeltItemExperienceSource.java
index 8993515d..0d745b5d 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/SmeltItemExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/SmeltItemExperienceSource.java
@@ -1,10 +1,10 @@
package net.Indyuce.mmocore.experience.source;
import io.lumine.mythic.lib.api.MMOLineConfig;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource;
import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Player;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/TameExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/TameExperienceSource.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/source/TameExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/TameExperienceSource.java
index 83a455c6..4e2f10a6 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/TameExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/TameExperienceSource.java
@@ -1,11 +1,11 @@
package net.Indyuce.mmocore.experience.source;
import io.lumine.mythic.lib.api.MMOLineConfig;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.util.MMOCoreUtils;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource;
import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import org.bukkit.entity.Wolf;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/type/ExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/type/ExperienceSource.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/experience/source/type/ExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/type/ExperienceSource.java
index 66d3e7dd..96ca8e05 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/type/ExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/type/ExperienceSource.java
@@ -1,8 +1,8 @@
package net.Indyuce.mmocore.experience.source.type;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
+import net.Indyuce.mmocore.api.player.PlayerData;
public abstract class ExperienceSource {
private final ExperienceDispenser dispenser;
diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/type/SpecificExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/type/SpecificExperienceSource.java
similarity index 98%
rename from src/main/java/net/Indyuce/mmocore/experience/source/type/SpecificExperienceSource.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/type/SpecificExperienceSource.java
index 05cf0b3d..e877be29 100644
--- a/src/main/java/net/Indyuce/mmocore/experience/source/type/SpecificExperienceSource.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/type/SpecificExperienceSource.java
@@ -1,11 +1,10 @@
package net.Indyuce.mmocore.experience.source.type;
import io.lumine.mythic.lib.api.MMOLineConfig;
+import net.Indyuce.mmocore.api.util.math.formula.RandomAmount;
import net.Indyuce.mmocore.experience.EXPSource;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.api.util.math.formula.RandomAmount;
-import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.jetbrains.annotations.Nullable;
diff --git a/src/main/java/net/Indyuce/mmocore/gui/AttributeView.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/AttributeView.java
similarity index 96%
rename from src/main/java/net/Indyuce/mmocore/gui/AttributeView.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/AttributeView.java
index 058694a8..6898d5d8 100644
--- a/src/main/java/net/Indyuce/mmocore/gui/AttributeView.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/AttributeView.java
@@ -1,18 +1,16 @@
package net.Indyuce.mmocore.gui;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.SoundEvent;
import net.Indyuce.mmocore.api.event.PlayerAttributeUseEvent;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute;
-import net.Indyuce.mmocore.api.player.attribute.PlayerAttributes.AttributeInstance;
-import net.Indyuce.mmocore.gui.api.EditableInventory;
+import net.Indyuce.mmocore.api.player.attribute.PlayerAttributes;
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
-import net.Indyuce.mmocore.gui.api.PluginInventory;
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
-import net.Indyuce.mmocore.gui.api.item.Placeholders;
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
-import net.Indyuce.mmocore.manager.SoundManager;
+import net.Indyuce.mmocore.api.SoundEvent;
+import net.Indyuce.mmocore.api.player.PlayerData;
+import net.Indyuce.mmocore.gui.api.EditableInventory;
+import net.Indyuce.mmocore.gui.api.item.Placeholders;
import net.Indyuce.mmocore.player.stats.StatInfo;
import org.bukkit.Bukkit;
import org.bukkit.configuration.ConfigurationSection;
@@ -119,7 +117,7 @@ public class AttributeView extends EditableInventory {
return;
}
- AttributeInstance ins = playerData.getAttributes().getInstance(attribute);
+ PlayerAttributes.AttributeInstance ins = playerData.getAttributes().getInstance(attribute);
if (attribute.hasMax() && ins.getBase() >= attribute.getMax()) {
MMOCore.plugin.configManager.getSimpleMessage("attribute-max-points-hit").send(player);
MMOCore.plugin.soundManager.getSound(SoundEvent.NOT_ENOUGH_POINTS).playTo(getPlayer());
diff --git a/src/main/java/net/Indyuce/mmocore/gui/ClassConfirmation.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/ClassConfirmation.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/gui/ClassConfirmation.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/ClassConfirmation.java
index 6e6c65ad..dad42be6 100644
--- a/src/main/java/net/Indyuce/mmocore/gui/ClassConfirmation.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/ClassConfirmation.java
@@ -1,18 +1,17 @@
package net.Indyuce.mmocore.gui;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.SoundEvent;
import net.Indyuce.mmocore.api.event.PlayerChangeClassEvent;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.profess.PlayerClass;
-import net.Indyuce.mmocore.api.player.profess.SavedClassInformation;
import net.Indyuce.mmocore.gui.api.EditableInventory;
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
import net.Indyuce.mmocore.gui.api.PluginInventory;
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
import net.Indyuce.mmocore.gui.api.item.Placeholders;
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
-import net.Indyuce.mmocore.manager.SoundManager;
+import net.Indyuce.mmocore.api.SoundEvent;
+import net.Indyuce.mmocore.api.player.PlayerData;
+import net.Indyuce.mmocore.api.player.profess.SavedClassInformation;
import org.apache.commons.lang.Validate;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
diff --git a/src/main/java/net/Indyuce/mmocore/gui/ClassSelect.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/ClassSelect.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/gui/ClassSelect.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/ClassSelect.java
index dc62d6db..da5d505a 100644
--- a/src/main/java/net/Indyuce/mmocore/gui/ClassSelect.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/ClassSelect.java
@@ -4,17 +4,16 @@ import io.lumine.mythic.lib.MythicLib;
import io.lumine.mythic.lib.api.item.ItemTag;
import io.lumine.mythic.lib.api.item.NBTItem;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.ConfigMessage;
-import net.Indyuce.mmocore.api.SoundEvent;
-import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.api.player.profess.ClassOption;
import net.Indyuce.mmocore.api.player.profess.PlayerClass;
import net.Indyuce.mmocore.gui.api.EditableInventory;
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
import net.Indyuce.mmocore.manager.InventoryManager;
-import net.Indyuce.mmocore.manager.SoundManager;
+import net.Indyuce.mmocore.api.ConfigMessage;
+import net.Indyuce.mmocore.api.SoundEvent;
+import net.Indyuce.mmocore.api.player.PlayerData;
+import net.Indyuce.mmocore.api.player.profess.ClassOption;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.event.inventory.InventoryClickEvent;
diff --git a/src/main/java/net/Indyuce/mmocore/gui/PlayerStats.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/PlayerStats.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/gui/PlayerStats.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/PlayerStats.java
index 9f306d65..481c7267 100644
--- a/src/main/java/net/Indyuce/mmocore/gui/PlayerStats.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/PlayerStats.java
@@ -5,17 +5,17 @@ import io.lumine.mythic.lib.UtilityMethods;
import io.lumine.mythic.lib.api.stat.modifier.StatModifier;
import io.lumine.mythic.lib.version.VersionMaterial;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute;
-import net.Indyuce.mmocore.player.stats.StatInfo;
-import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
-import net.Indyuce.mmocore.experience.Booster;
-import net.Indyuce.mmocore.experience.Profession;
import net.Indyuce.mmocore.gui.api.EditableInventory;
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
import net.Indyuce.mmocore.gui.api.item.Placeholders;
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
+import net.Indyuce.mmocore.api.player.PlayerData;
+import net.Indyuce.mmocore.player.stats.StatInfo;
+import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
+import net.Indyuce.mmocore.experience.Booster;
+import net.Indyuce.mmocore.experience.Profession;
import net.Indyuce.mmocore.party.AbstractParty;
import org.apache.commons.lang.Validate;
import org.bukkit.ChatColor;
diff --git a/src/main/java/net/Indyuce/mmocore/gui/QuestViewer.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/QuestViewer.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/gui/QuestViewer.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/QuestViewer.java
index 66e2193d..8623599b 100644
--- a/src/main/java/net/Indyuce/mmocore/gui/QuestViewer.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/QuestViewer.java
@@ -3,17 +3,16 @@ package net.Indyuce.mmocore.gui;
import io.lumine.mythic.lib.api.item.ItemTag;
import io.lumine.mythic.lib.api.item.NBTItem;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.SoundEvent;
-import net.Indyuce.mmocore.experience.Profession;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.quest.Quest;
-import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
import net.Indyuce.mmocore.gui.api.EditableInventory;
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
import net.Indyuce.mmocore.gui.api.item.Placeholders;
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
-import net.Indyuce.mmocore.manager.SoundManager;
+import net.Indyuce.mmocore.api.SoundEvent;
+import net.Indyuce.mmocore.experience.Profession;
+import net.Indyuce.mmocore.api.player.PlayerData;
+import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
import org.apache.commons.lang.Validate;
import org.bukkit.ChatColor;
import org.bukkit.configuration.ConfigurationSection;
diff --git a/src/main/java/net/Indyuce/mmocore/gui/SkillList.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/SkillList.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/gui/SkillList.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/SkillList.java
index 1699f0ef..d547dd13 100644
--- a/src/main/java/net/Indyuce/mmocore/gui/SkillList.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/SkillList.java
@@ -4,13 +4,13 @@ import io.lumine.mythic.lib.MythicLib;
import io.lumine.mythic.lib.api.item.ItemTag;
import io.lumine.mythic.lib.api.item.NBTItem;
import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.gui.api.item.InventoryItem;
+import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.util.MMOCoreUtils;
import net.Indyuce.mmocore.gui.api.EditableInventory;
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
-import net.Indyuce.mmocore.gui.api.item.InventoryItem;
import net.Indyuce.mmocore.gui.api.item.Placeholders;
-import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
import net.Indyuce.mmocore.skill.ClassSkill;
import net.Indyuce.mmocore.skill.RegisteredSkill;
import org.bukkit.ChatColor;
diff --git a/src/main/java/net/Indyuce/mmocore/gui/SubclassConfirmation.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/SubclassConfirmation.java
similarity index 98%
rename from src/main/java/net/Indyuce/mmocore/gui/SubclassConfirmation.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/SubclassConfirmation.java
index cd499e10..bc64667d 100644
--- a/src/main/java/net/Indyuce/mmocore/gui/SubclassConfirmation.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/SubclassConfirmation.java
@@ -1,9 +1,7 @@
package net.Indyuce.mmocore.gui;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.SoundEvent;
import net.Indyuce.mmocore.api.event.PlayerChangeClassEvent;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.profess.PlayerClass;
import net.Indyuce.mmocore.gui.api.EditableInventory;
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
@@ -11,7 +9,8 @@ import net.Indyuce.mmocore.gui.api.PluginInventory;
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
import net.Indyuce.mmocore.gui.api.item.Placeholders;
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
-import net.Indyuce.mmocore.manager.SoundManager;
+import net.Indyuce.mmocore.api.SoundEvent;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.bukkit.Bukkit;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.event.inventory.InventoryClickEvent;
diff --git a/src/main/java/net/Indyuce/mmocore/gui/SubclassSelect.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/SubclassSelect.java
similarity index 98%
rename from src/main/java/net/Indyuce/mmocore/gui/SubclassSelect.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/SubclassSelect.java
index d7080135..1e85268b 100644
--- a/src/main/java/net/Indyuce/mmocore/gui/SubclassSelect.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/SubclassSelect.java
@@ -4,17 +4,16 @@ import io.lumine.mythic.lib.MythicLib;
import io.lumine.mythic.lib.api.item.ItemTag;
import io.lumine.mythic.lib.api.item.NBTItem;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.ConfigMessage;
-import net.Indyuce.mmocore.api.SoundEvent;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.profess.PlayerClass;
-import net.Indyuce.mmocore.api.player.profess.Subclass;
import net.Indyuce.mmocore.gui.api.EditableInventory;
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
import net.Indyuce.mmocore.manager.InventoryManager;
-import net.Indyuce.mmocore.manager.SoundManager;
+import net.Indyuce.mmocore.api.ConfigMessage;
+import net.Indyuce.mmocore.api.SoundEvent;
+import net.Indyuce.mmocore.api.player.PlayerData;
+import net.Indyuce.mmocore.api.player.profess.Subclass;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.event.inventory.InventoryClickEvent;
diff --git a/src/main/java/net/Indyuce/mmocore/gui/WaypointViewer.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/WaypointViewer.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/gui/WaypointViewer.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/WaypointViewer.java
index 6dfbfb56..668c6b15 100644
--- a/src/main/java/net/Indyuce/mmocore/gui/WaypointViewer.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/WaypointViewer.java
@@ -1,13 +1,13 @@
package net.Indyuce.mmocore.gui;
import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.gui.api.item.InventoryItem;
+import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
import net.Indyuce.mmocore.api.player.PlayerActivity;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.gui.api.EditableInventory;
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
-import net.Indyuce.mmocore.gui.api.item.InventoryItem;
import net.Indyuce.mmocore.gui.api.item.Placeholders;
-import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
import net.Indyuce.mmocore.waypoint.Waypoint;
import net.Indyuce.mmocore.waypoint.WaypointPath;
import org.apache.commons.lang.Validate;
diff --git a/src/main/java/net/Indyuce/mmocore/gui/api/EditableInventory.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/EditableInventory.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/gui/api/EditableInventory.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/EditableInventory.java
diff --git a/src/main/java/net/Indyuce/mmocore/gui/api/GeneratedInventory.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/GeneratedInventory.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/gui/api/GeneratedInventory.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/GeneratedInventory.java
index 85be0d26..163ae7f5 100644
--- a/src/main/java/net/Indyuce/mmocore/gui/api/GeneratedInventory.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/GeneratedInventory.java
@@ -2,8 +2,8 @@ package net.Indyuce.mmocore.gui.api;
import io.lumine.mythic.lib.MythicLib;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
+import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.gui.api.item.TriggerItem;
import org.bukkit.Bukkit;
import org.bukkit.event.inventory.InventoryClickEvent;
diff --git a/src/main/java/net/Indyuce/mmocore/gui/api/PluginInventory.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/PluginInventory.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/gui/api/PluginInventory.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/PluginInventory.java
diff --git a/src/main/java/net/Indyuce/mmocore/gui/api/item/InventoryItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/item/InventoryItem.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/gui/api/item/InventoryItem.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/item/InventoryItem.java
diff --git a/src/main/java/net/Indyuce/mmocore/gui/api/item/Placeholders.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/item/Placeholders.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/gui/api/item/Placeholders.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/item/Placeholders.java
diff --git a/src/main/java/net/Indyuce/mmocore/gui/api/item/SimplePlaceholderItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/item/SimplePlaceholderItem.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/gui/api/item/SimplePlaceholderItem.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/item/SimplePlaceholderItem.java
diff --git a/src/main/java/net/Indyuce/mmocore/gui/api/item/TriggerItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/item/TriggerItem.java
similarity index 93%
rename from src/main/java/net/Indyuce/mmocore/gui/api/item/TriggerItem.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/item/TriggerItem.java
index 28c0df3b..78f0c65d 100644
--- a/src/main/java/net/Indyuce/mmocore/gui/api/item/TriggerItem.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/item/TriggerItem.java
@@ -4,7 +4,6 @@ import io.lumine.mythic.lib.api.MMOLineConfig;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.quest.trigger.Trigger;
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
-import net.Indyuce.mmocore.gui.api.PluginInventory;
import org.bukkit.configuration.ConfigurationSection;
public class TriggerItem extends InventoryItem {
diff --git a/src/main/java/net/Indyuce/mmocore/gui/eco/DepositMenu.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/eco/DepositMenu.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/gui/eco/DepositMenu.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/eco/DepositMenu.java
index 3260490c..f443e970 100644
--- a/src/main/java/net/Indyuce/mmocore/gui/eco/DepositMenu.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/eco/DepositMenu.java
@@ -1,5 +1,6 @@
package net.Indyuce.mmocore.gui.eco;
+import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.util.item.SimpleItemBuilder;
import net.milkbowl.vault.economy.EconomyResponse;
import org.bukkit.Bukkit;
@@ -12,7 +13,6 @@ import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.scheduler.BukkitRunnable;
-import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.util.MMOCoreUtils;
import net.Indyuce.mmocore.gui.api.PluginInventory;
import io.lumine.mythic.lib.api.item.NBTItem;
diff --git a/src/main/java/net/Indyuce/mmocore/gui/eco/GoldPouch.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/eco/GoldPouch.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/gui/eco/GoldPouch.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/eco/GoldPouch.java
diff --git a/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendList.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendList.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendList.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendList.java
index 040ff023..c222a255 100644
--- a/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendList.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendList.java
@@ -1,15 +1,15 @@
package net.Indyuce.mmocore.gui.social.friend;
import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.gui.api.GeneratedInventory;
+import net.Indyuce.mmocore.gui.api.item.InventoryItem;
+import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
import net.Indyuce.mmocore.api.player.PlayerActivity;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.util.input.PlayerInput.InputType;
import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
import net.Indyuce.mmocore.gui.api.EditableInventory;
-import net.Indyuce.mmocore.gui.api.GeneratedInventory;
-import net.Indyuce.mmocore.gui.api.item.InventoryItem;
import net.Indyuce.mmocore.gui.api.item.Placeholders;
-import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
import net.Indyuce.mmocore.manager.InventoryManager;
import org.apache.commons.lang.Validate;
import org.bukkit.Bukkit;
diff --git a/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendRemoval.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendRemoval.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendRemoval.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendRemoval.java
index 2ed26b27..e0ae0bea 100644
--- a/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendRemoval.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendRemoval.java
@@ -1,11 +1,11 @@
package net.Indyuce.mmocore.gui.social.friend;
import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.gui.api.GeneratedInventory;
+import net.Indyuce.mmocore.gui.api.item.InventoryItem;
import net.Indyuce.mmocore.api.player.OfflinePlayerData;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.gui.api.EditableInventory;
-import net.Indyuce.mmocore.gui.api.GeneratedInventory;
-import net.Indyuce.mmocore.gui.api.item.InventoryItem;
import net.Indyuce.mmocore.gui.api.item.Placeholders;
import org.bukkit.OfflinePlayer;
import org.bukkit.Sound;
diff --git a/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildAdmin.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildAdmin.java
similarity index 97%
rename from src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildAdmin.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildAdmin.java
index 33fca626..f3a7218e 100644
--- a/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildAdmin.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildAdmin.java
@@ -1,14 +1,14 @@
package net.Indyuce.mmocore.gui.social.guild;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.api.util.input.PlayerInput.InputType;
-import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
-import net.Indyuce.mmocore.gui.api.EditableInventory;
+import net.Indyuce.mmocore.api.util.input.PlayerInput;
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
-import net.Indyuce.mmocore.gui.api.item.Placeholders;
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
+import net.Indyuce.mmocore.api.player.PlayerData;
+import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
+import net.Indyuce.mmocore.gui.api.EditableInventory;
+import net.Indyuce.mmocore.gui.api.item.Placeholders;
import org.apache.commons.lang.Validate;
import org.bukkit.Bukkit;
import org.bukkit.NamespacedKey;
@@ -151,7 +151,7 @@ public class EditableGuildAdmin extends EditableInventory {
return;
}
- MMOCore.plugin.configManager.newPlayerInput(player, InputType.GUILD_INVITE, (input) -> {
+ MMOCore.plugin.configManager.newPlayerInput(player, PlayerInput.InputType.GUILD_INVITE, (input) -> {
Player target = Bukkit.getPlayer(input);
if (target == null) {
MMOCore.plugin.configManager.getSimpleMessage("not-online-player", "player", input).send(player);
diff --git a/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildCreation.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildCreation.java
similarity index 92%
rename from src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildCreation.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildCreation.java
index 83e936e7..ae6e78e8 100644
--- a/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildCreation.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildCreation.java
@@ -1,12 +1,12 @@
package net.Indyuce.mmocore.gui.social.guild;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.api.util.input.PlayerInput.InputType;
-import net.Indyuce.mmocore.gui.api.EditableInventory;
+import net.Indyuce.mmocore.api.util.input.PlayerInput;
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
+import net.Indyuce.mmocore.api.player.PlayerData;
+import net.Indyuce.mmocore.gui.api.EditableInventory;
import net.Indyuce.mmocore.manager.InventoryManager;
import net.Indyuce.mmocore.manager.data.GuildDataManager.GuildConfiguration.NamingRules;
import org.bukkit.Sound;
@@ -39,14 +39,14 @@ public class EditableGuildCreation extends EditableInventory {
return;
if (item.getFunction().equals("create")) {
- MMOCore.plugin.configManager.newPlayerInput(player, InputType.GUILD_CREATION_TAG, (input) -> {
+ MMOCore.plugin.configManager.newPlayerInput(player, PlayerInput.InputType.GUILD_CREATION_TAG, (input) -> {
if(MMOCore.plugin.dataProvider.getGuildManager().getConfig().shouldUppercaseTags())
input = input.toUpperCase();
if(check(player, input, MMOCore.plugin.dataProvider.getGuildManager().getConfig().getTagRules())) {
String tag = input;
- MMOCore.plugin.configManager.newPlayerInput(player, InputType.GUILD_CREATION_NAME, (name) -> {
+ MMOCore.plugin.configManager.newPlayerInput(player, PlayerInput.InputType.GUILD_CREATION_NAME, (name) -> {
if(check(player, name, MMOCore.plugin.dataProvider.getGuildManager().getConfig().getNameRules())) {
MMOCore.plugin.dataProvider.getGuildManager().newRegisteredGuild(playerData.getUniqueId(), name, tag);
MMOCore.plugin.dataProvider.getGuildManager().getGuild(tag.toLowerCase()).addMember(playerData.getUniqueId());
diff --git a/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildView.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildView.java
similarity index 98%
rename from src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildView.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildView.java
index 450c1228..3ae1ccd5 100644
--- a/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildView.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildView.java
@@ -1,15 +1,15 @@
package net.Indyuce.mmocore.gui.social.guild;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.OfflinePlayerData;
-import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.api.util.input.PlayerInput.InputType;
-import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
-import net.Indyuce.mmocore.gui.api.EditableInventory;
+import net.Indyuce.mmocore.api.util.input.PlayerInput;
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
-import net.Indyuce.mmocore.gui.api.item.Placeholders;
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
+import net.Indyuce.mmocore.api.player.OfflinePlayerData;
+import net.Indyuce.mmocore.api.player.PlayerData;
+import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
+import net.Indyuce.mmocore.gui.api.EditableInventory;
+import net.Indyuce.mmocore.gui.api.item.Placeholders;
import org.apache.commons.lang.Validate;
import org.bukkit.*;
import org.bukkit.configuration.ConfigurationSection;
@@ -200,7 +200,7 @@ public class EditableGuildView extends EditableInventory {
* Sound.ENTITY_VILLAGER_NO, 1, 1); return; }
*/
- MMOCore.plugin.configManager.newPlayerInput(player, InputType.GUILD_INVITE, (input) -> {
+ MMOCore.plugin.configManager.newPlayerInput(player, PlayerInput.InputType.GUILD_INVITE, (input) -> {
Player target = Bukkit.getPlayer(input);
if (target == null) {
MMOCore.plugin.configManager.getSimpleMessage("not-online-player", "player", input).send(player);
diff --git a/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyCreation.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyCreation.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyCreation.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyCreation.java
index c1e9b2ed..5cfdb14f 100644
--- a/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyCreation.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyCreation.java
@@ -1,11 +1,11 @@
package net.Indyuce.mmocore.gui.social.party;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.gui.api.EditableInventory;
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
+import net.Indyuce.mmocore.api.player.PlayerData;
+import net.Indyuce.mmocore.gui.api.EditableInventory;
import net.Indyuce.mmocore.manager.InventoryManager;
import net.Indyuce.mmocore.party.provided.MMOCorePartyModule;
import org.bukkit.Sound;
diff --git a/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyView.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyView.java
similarity index 98%
rename from src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyView.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyView.java
index aa93e292..e15d038a 100644
--- a/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyView.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyView.java
@@ -1,14 +1,14 @@
package net.Indyuce.mmocore.gui.social.party;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.api.util.input.PlayerInput.InputType;
-import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
-import net.Indyuce.mmocore.gui.api.EditableInventory;
+import net.Indyuce.mmocore.api.util.input.PlayerInput;
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
-import net.Indyuce.mmocore.gui.api.item.Placeholders;
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
+import net.Indyuce.mmocore.api.player.PlayerData;
+import net.Indyuce.mmocore.api.util.math.format.DelayFormat;
+import net.Indyuce.mmocore.gui.api.EditableInventory;
+import net.Indyuce.mmocore.gui.api.item.Placeholders;
import net.Indyuce.mmocore.party.provided.Party;
import org.apache.commons.lang.Validate;
import org.bukkit.*;
@@ -148,7 +148,7 @@ public class EditablePartyView extends EditableInventory {
return;
}
- MMOCore.plugin.configManager.newPlayerInput(player, InputType.PARTY_INVITE, (input) -> {
+ MMOCore.plugin.configManager.newPlayerInput(player, PlayerInput.InputType.PARTY_INVITE, (input) -> {
Player target = Bukkit.getPlayer(input);
if (target == null) {
MMOCore.plugin.configManager.getSimpleMessage("not-online-player", "player", input).send(player);
diff --git a/src/main/java/net/Indyuce/mmocore/guild/AbstractGuild.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/AbstractGuild.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/guild/AbstractGuild.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/AbstractGuild.java
diff --git a/src/main/java/net/Indyuce/mmocore/guild/GuildModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/GuildModule.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/guild/GuildModule.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/GuildModule.java
diff --git a/src/main/java/net/Indyuce/mmocore/guild/GuildModuleType.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/GuildModuleType.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/guild/GuildModuleType.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/GuildModuleType.java
diff --git a/src/main/java/net/Indyuce/mmocore/guild/compat/FactionsGuildModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/compat/FactionsGuildModule.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/guild/compat/FactionsGuildModule.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/compat/FactionsGuildModule.java
diff --git a/src/main/java/net/Indyuce/mmocore/guild/compat/GuildsGuildModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/compat/GuildsGuildModule.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/guild/compat/GuildsGuildModule.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/compat/GuildsGuildModule.java
diff --git a/src/main/java/net/Indyuce/mmocore/guild/compat/KingdomsXGuildModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/compat/KingdomsXGuildModule.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/guild/compat/KingdomsXGuildModule.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/compat/KingdomsXGuildModule.java
diff --git a/src/main/java/net/Indyuce/mmocore/guild/compat/UltimateClansGuildModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/compat/UltimateClansGuildModule.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/guild/compat/UltimateClansGuildModule.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/compat/UltimateClansGuildModule.java
diff --git a/src/main/java/net/Indyuce/mmocore/guild/provided/Guild.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/provided/Guild.java
similarity index 94%
rename from src/main/java/net/Indyuce/mmocore/guild/provided/Guild.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/provided/Guild.java
index 33aefcab..a5d624dc 100644
--- a/src/main/java/net/Indyuce/mmocore/guild/provided/Guild.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/provided/Guild.java
@@ -1,13 +1,13 @@
package net.Indyuce.mmocore.guild.provided;
import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.gui.api.PluginInventory;
+import net.Indyuce.mmocore.gui.social.guild.EditableGuildView;
+import net.Indyuce.mmocore.manager.InventoryManager;
import net.Indyuce.mmocore.api.ConfigMessage;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.social.Request;
-import net.Indyuce.mmocore.gui.api.PluginInventory;
-import net.Indyuce.mmocore.gui.social.guild.EditableGuildView.GuildViewInventory;
import net.Indyuce.mmocore.guild.AbstractGuild;
-import net.Indyuce.mmocore.manager.InventoryManager;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
@@ -63,7 +63,7 @@ public class Guild implements AbstractGuild {
// Disband boolean is to prevent co-modification exception when disbanding a guild
public void removeMember(UUID uuid, boolean disband) {
PlayerData data = PlayerData.get(uuid);
- if (data != null && data.isOnline() && data.getPlayer().getOpenInventory() != null && data.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof GuildViewInventory)
+ if (data != null && data.isOnline() && data.getPlayer().getOpenInventory() != null && data.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof EditableGuildView.GuildViewInventory)
InventoryManager.GUILD_CREATION.newInventory(data).open();
if (!disband)
@@ -103,7 +103,7 @@ public class Guild implements AbstractGuild {
public void reopenInventories() {
for (UUID uuid : members) {
PlayerData member = PlayerData.get(uuid);
- if (member != null && member.isOnline() && member.getPlayer().getOpenInventory() != null && member.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof GuildViewInventory)
+ if (member != null && member.isOnline() && member.getPlayer().getOpenInventory() != null && member.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof EditableGuildView.GuildViewInventory)
((PluginInventory) member.getPlayer().getOpenInventory().getTopInventory().getHolder()).open();
}
}
diff --git a/src/main/java/net/Indyuce/mmocore/guild/provided/GuildInvite.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/provided/GuildInvite.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/guild/provided/GuildInvite.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/provided/GuildInvite.java
index 7c6a9a9b..f7a78108 100644
--- a/src/main/java/net/Indyuce/mmocore/guild/provided/GuildInvite.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/provided/GuildInvite.java
@@ -1,9 +1,9 @@
package net.Indyuce.mmocore.guild.provided;
import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.manager.InventoryManager;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.social.Request;
-import net.Indyuce.mmocore.manager.InventoryManager;
import org.bukkit.Bukkit;
public class GuildInvite extends Request {
diff --git a/src/main/java/net/Indyuce/mmocore/guild/provided/MMOCoreGuildModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/provided/MMOCoreGuildModule.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/guild/provided/MMOCoreGuildModule.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/provided/MMOCoreGuildModule.java
diff --git a/src/main/java/net/Indyuce/mmocore/listener/BlockListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/BlockListener.java
similarity index 98%
rename from src/main/java/net/Indyuce/mmocore/listener/BlockListener.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/BlockListener.java
index 2ff6c505..aee6211b 100644
--- a/src/main/java/net/Indyuce/mmocore/listener/BlockListener.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/BlockListener.java
@@ -4,7 +4,6 @@ import io.lumine.mythic.lib.UtilityMethods;
import io.lumine.mythic.utils.Schedulers;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.block.BlockInfo;
-import net.Indyuce.mmocore.api.block.BlockInfo.BlockInfoOption;
import net.Indyuce.mmocore.api.block.VanillaBlockType;
import net.Indyuce.mmocore.api.event.CustomBlockMineEvent;
import net.Indyuce.mmocore.api.player.PlayerData;
@@ -106,7 +105,7 @@ public class BlockListener implements Listener {
* decreases the durability of the item
* used to mine the block.
*/
- if (!info.getOption(BlockInfoOption.VANILLA_DROPS)) {
+ if (!info.getOption(BlockInfo.BlockInfoOption.VANILLA_DROPS)) {
event.setCancelled(true);
event.getBlock().setType(Material.AIR);
MMOCoreUtils.decreaseDurability(player, EquipmentSlot.HAND, 1);
diff --git a/src/main/java/net/Indyuce/mmocore/listener/ClassTriggers.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/ClassTriggers.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/listener/ClassTriggers.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/ClassTriggers.java
diff --git a/src/main/java/net/Indyuce/mmocore/listener/GoldPouchesListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/GoldPouchesListener.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/listener/GoldPouchesListener.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/GoldPouchesListener.java
diff --git a/src/main/java/net/Indyuce/mmocore/listener/GuildListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/GuildListener.java
similarity index 78%
rename from src/main/java/net/Indyuce/mmocore/listener/GuildListener.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/GuildListener.java
index 43aaad9b..4e25df06 100644
--- a/src/main/java/net/Indyuce/mmocore/listener/GuildListener.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/GuildListener.java
@@ -1,5 +1,8 @@
package net.Indyuce.mmocore.listener;
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.api.event.social.GuildChatEvent;
+import net.Indyuce.mmocore.manager.ConfigManager;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -7,10 +10,7 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
-import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.event.social.GuildChatEvent;
import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.manager.ConfigManager.SimpleMessage;
public class GuildListener implements Listener {
@EventHandler(priority = EventPriority.LOW)
@@ -28,7 +28,7 @@ public class GuildListener implements Listener {
* running it in a delayed task is recommended
*/
Bukkit.getScheduler().scheduleSyncDelayedTask(MMOCore.plugin, () -> {
- SimpleMessage format = MMOCore.plugin.configManager.getSimpleMessage("guild-chat", "player", data.getPlayer().getName(), "tag", data.getGuild().getTag(), "message", event.getMessage().substring(MMOCore.plugin.dataProvider.getGuildManager().getConfig().getPrefix().length()));
+ ConfigManager.SimpleMessage format = MMOCore.plugin.configManager.getSimpleMessage("guild-chat", "player", data.getPlayer().getName(), "tag", data.getGuild().getTag(), "message", event.getMessage().substring(MMOCore.plugin.dataProvider.getGuildManager().getConfig().getPrefix().length()));
GuildChatEvent called = new GuildChatEvent(data, format.message());
Bukkit.getPluginManager().callEvent(called);
if (!called.isCancelled())
diff --git a/src/main/java/net/Indyuce/mmocore/listener/LootableChestsListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/LootableChestsListener.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/listener/LootableChestsListener.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/LootableChestsListener.java
diff --git a/src/main/java/net/Indyuce/mmocore/listener/PlayerListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/PlayerListener.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/listener/PlayerListener.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/PlayerListener.java
diff --git a/src/main/java/net/Indyuce/mmocore/listener/WaypointsListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/WaypointsListener.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/listener/WaypointsListener.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/WaypointsListener.java
index c703c607..d48ed573 100644
--- a/src/main/java/net/Indyuce/mmocore/listener/WaypointsListener.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/WaypointsListener.java
@@ -2,12 +2,12 @@ package net.Indyuce.mmocore.listener;
import io.lumine.mythic.lib.api.item.NBTItem;
import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.waypoint.Waypoint;
+import net.Indyuce.mmocore.waypoint.WaypointOption;
import net.Indyuce.mmocore.api.SoundEvent;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.loot.chest.particle.SmallParticleEffect;
import net.Indyuce.mmocore.manager.InventoryManager;
-import net.Indyuce.mmocore.waypoint.Waypoint;
-import net.Indyuce.mmocore.waypoint.WaypointOption;
import org.bukkit.Particle;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
diff --git a/src/main/java/net/Indyuce/mmocore/listener/bungee/GetMMOCorePlayerListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/bungee/GetMMOCorePlayerListener.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/listener/bungee/GetMMOCorePlayerListener.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/bungee/GetMMOCorePlayerListener.java
diff --git a/src/main/java/net/Indyuce/mmocore/listener/event/PlayerPressKeyListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/event/PlayerPressKeyListener.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/listener/event/PlayerPressKeyListener.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/event/PlayerPressKeyListener.java
diff --git a/src/main/java/net/Indyuce/mmocore/listener/option/DeathExperienceLoss.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/DeathExperienceLoss.java
similarity index 97%
rename from src/main/java/net/Indyuce/mmocore/listener/option/DeathExperienceLoss.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/DeathExperienceLoss.java
index b6afa74d..410f8ee1 100644
--- a/src/main/java/net/Indyuce/mmocore/listener/option/DeathExperienceLoss.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/DeathExperienceLoss.java
@@ -1,25 +1,25 @@
-package net.Indyuce.mmocore.listener.option;
-
-import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.ConfigMessage;
-import net.Indyuce.mmocore.api.player.PlayerData;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.EventPriority;
-import org.bukkit.event.Listener;
-import org.bukkit.event.entity.PlayerDeathEvent;
-
-public class DeathExperienceLoss implements Listener {
- private final double loss = MMOCore.plugin.getConfig().getDouble("death-exp-loss.percent") / 100;
-
- @EventHandler(priority = EventPriority.HIGH)
- public void a(PlayerDeathEvent event) {
- if (!PlayerData.has(event.getEntity()))
- return;
-
- PlayerData data = PlayerData.get(event.getEntity());
- int loss = (int) (data.getExperience() * this.loss);
- data.setExperience(data.getExperience() - loss);
- if (data.isOnline())
- new ConfigMessage("death-exp-loss").addPlaceholders("loss", "" + loss).send(data.getPlayer());
- }
-}
+package net.Indyuce.mmocore.listener.option;
+
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.api.ConfigMessage;
+import net.Indyuce.mmocore.api.player.PlayerData;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.EventPriority;
+import org.bukkit.event.Listener;
+import org.bukkit.event.entity.PlayerDeathEvent;
+
+public class DeathExperienceLoss implements Listener {
+ private final double loss = MMOCore.plugin.getConfig().getDouble("death-exp-loss.percent") / 100;
+
+ @EventHandler(priority = EventPriority.HIGH)
+ public void a(PlayerDeathEvent event) {
+ if (!PlayerData.has(event.getEntity()))
+ return;
+
+ PlayerData data = PlayerData.get(event.getEntity());
+ int loss = (int) (data.getExperience() * this.loss);
+ data.setExperience(data.getExperience() - loss);
+ if (data.isOnline())
+ new ConfigMessage("death-exp-loss").addPlaceholders("loss", "" + loss).send(data.getPlayer());
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/listener/option/HotbarSwap.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/HotbarSwap.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/listener/option/HotbarSwap.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/HotbarSwap.java
index 157c9211..6945b610 100644
--- a/src/main/java/net/Indyuce/mmocore/listener/option/HotbarSwap.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/HotbarSwap.java
@@ -2,8 +2,8 @@ package net.Indyuce.mmocore.listener.option;
import io.lumine.mythic.lib.UtilityMethods;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.SoundEvent;
import net.Indyuce.mmocore.api.event.PlayerKeyPressEvent;
+import net.Indyuce.mmocore.api.SoundEvent;
import net.Indyuce.mmocore.skill.cast.PlayerKey;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
diff --git a/src/main/java/net/Indyuce/mmocore/listener/option/NoSpawnerEXP.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/NoSpawnerEXP.java
similarity index 96%
rename from src/main/java/net/Indyuce/mmocore/listener/option/NoSpawnerEXP.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/NoSpawnerEXP.java
index 192644f7..d5382c8c 100644
--- a/src/main/java/net/Indyuce/mmocore/listener/option/NoSpawnerEXP.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/NoSpawnerEXP.java
@@ -1,17 +1,16 @@
-package net.Indyuce.mmocore.listener.option;
-
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.entity.CreatureSpawnEvent;
-import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
-import org.bukkit.metadata.FixedMetadataValue;
-
-import net.Indyuce.mmocore.MMOCore;
-
-public class NoSpawnerEXP implements Listener {
- @EventHandler
- public void a(CreatureSpawnEvent event) {
- if(event.getSpawnReason() == SpawnReason.SPAWNER)
- event.getEntity().setMetadata("spawner_spawned", new FixedMetadataValue(MMOCore.plugin, true));
- }
-}
+package net.Indyuce.mmocore.listener.option;
+
+import net.Indyuce.mmocore.MMOCore;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.entity.CreatureSpawnEvent;
+import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
+import org.bukkit.metadata.FixedMetadataValue;
+
+public class NoSpawnerEXP implements Listener {
+ @EventHandler
+ public void a(CreatureSpawnEvent event) {
+ if(event.getSpawnReason() == SpawnReason.SPAWNER)
+ event.getEntity().setMetadata("spawner_spawned", new FixedMetadataValue(MMOCore.plugin, true));
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/listener/option/PlayerProfileCheck.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/PlayerProfileCheck.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/listener/option/PlayerProfileCheck.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/PlayerProfileCheck.java
diff --git a/src/main/java/net/Indyuce/mmocore/listener/option/RedirectVanillaExp.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/RedirectVanillaExp.java
similarity index 96%
rename from src/main/java/net/Indyuce/mmocore/listener/option/RedirectVanillaExp.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/RedirectVanillaExp.java
index 49a19c45..68df53bd 100644
--- a/src/main/java/net/Indyuce/mmocore/listener/option/RedirectVanillaExp.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/RedirectVanillaExp.java
@@ -1,23 +1,23 @@
-package net.Indyuce.mmocore.listener.option;
-
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.player.PlayerExpChangeEvent;
-
-import net.Indyuce.mmocore.experience.EXPSource;
-import net.Indyuce.mmocore.api.player.PlayerData;
-
-public class RedirectVanillaExp implements Listener {
- private final double ratio;
-
- public RedirectVanillaExp(double ratio) {
- this.ratio = ratio;
- }
-
- @EventHandler
- public void a(PlayerExpChangeEvent event) {
- double a = (event.getAmount() * ratio);
- if (a > 0)
- PlayerData.get(event.getPlayer()).giveExperience(a, EXPSource.VANILLA);
- }
-}
+package net.Indyuce.mmocore.listener.option;
+
+import net.Indyuce.mmocore.experience.EXPSource;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.PlayerExpChangeEvent;
+
+import net.Indyuce.mmocore.api.player.PlayerData;
+
+public class RedirectVanillaExp implements Listener {
+ private final double ratio;
+
+ public RedirectVanillaExp(double ratio) {
+ this.ratio = ratio;
+ }
+
+ @EventHandler
+ public void a(PlayerExpChangeEvent event) {
+ double a = (event.getAmount() * ratio);
+ if (a > 0)
+ PlayerData.get(event.getPlayer()).giveExperience(a, EXPSource.VANILLA);
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/listener/option/VanillaExperienceOverride.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/VanillaExperienceOverride.java
similarity index 97%
rename from src/main/java/net/Indyuce/mmocore/listener/option/VanillaExperienceOverride.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/VanillaExperienceOverride.java
index 14b22c46..530390f7 100644
--- a/src/main/java/net/Indyuce/mmocore/listener/option/VanillaExperienceOverride.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/VanillaExperienceOverride.java
@@ -1,35 +1,35 @@
-package net.Indyuce.mmocore.listener.option;
-
-import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.PlayerData;
-import org.bukkit.Bukkit;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.EventPriority;
-import org.bukkit.event.Listener;
-import org.bukkit.event.enchantment.EnchantItemEvent;
-import org.bukkit.event.player.PlayerExpChangeEvent;
-
-public class VanillaExperienceOverride implements Listener {
-
- /**
- * When picking up exp orbs or any action like that
- */
- @EventHandler(priority = EventPriority.HIGHEST)
- public void a(PlayerExpChangeEvent event) {
- event.setAmount(0);
- }
-
- /**
- * This event is not supported by the expChangeEvent. Since the event is
- * actually called before applying the enchant and consuming levels, we must
- * update the player level using a delayed task.
- *
- * {@link EnchantItemEvent#setExpLevelCost(int)} does NOT work
- */
- @EventHandler
- public void b(EnchantItemEvent event) {
- Player player = event.getEnchanter();
- Bukkit.getScheduler().runTask(MMOCore.plugin, () -> player.setLevel(PlayerData.get(player).getLevel()));
- }
-}
+package net.Indyuce.mmocore.listener.option;
+
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.api.player.PlayerData;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.EventPriority;
+import org.bukkit.event.Listener;
+import org.bukkit.event.enchantment.EnchantItemEvent;
+import org.bukkit.event.player.PlayerExpChangeEvent;
+
+public class VanillaExperienceOverride implements Listener {
+
+ /**
+ * When picking up exp orbs or any action like that
+ */
+ @EventHandler(priority = EventPriority.HIGHEST)
+ public void a(PlayerExpChangeEvent event) {
+ event.setAmount(0);
+ }
+
+ /**
+ * This event is not supported by the expChangeEvent. Since the event is
+ * actually called before applying the enchant and consuming levels, we must
+ * update the player level using a delayed task.
+ *
+ * {@link EnchantItemEvent#setExpLevelCost(int)} does NOT work
+ */
+ @EventHandler
+ public void b(EnchantItemEvent event) {
+ Player player = event.getEnchanter();
+ Bukkit.getScheduler().runTask(MMOCore.plugin, () -> player.setLevel(PlayerData.get(player).getLevel()));
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/listener/profession/FishingListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/profession/FishingListener.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/listener/profession/FishingListener.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/profession/FishingListener.java
index 4f1e0588..43c927ec 100644
--- a/src/main/java/net/Indyuce/mmocore/listener/profession/FishingListener.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/profession/FishingListener.java
@@ -3,9 +3,9 @@ package net.Indyuce.mmocore.listener.profession;
import io.lumine.mythic.lib.version.VersionSound;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.event.CustomPlayerFishEvent;
+import net.Indyuce.mmocore.experience.EXPSource;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.util.MMOCoreUtils;
-import net.Indyuce.mmocore.experience.EXPSource;
import net.Indyuce.mmocore.loot.LootBuilder;
import net.Indyuce.mmocore.loot.droptable.dropitem.fishing.FishingDropItem;
import net.Indyuce.mmocore.manager.profession.FishingManager.FishingDropTable;
diff --git a/src/main/java/net/Indyuce/mmocore/listener/profession/PlayerCollectStats.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/profession/PlayerCollectStats.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/listener/profession/PlayerCollectStats.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/profession/PlayerCollectStats.java
diff --git a/src/main/java/net/Indyuce/mmocore/loot/LootBuilder.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/LootBuilder.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/loot/LootBuilder.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/LootBuilder.java
index b5a5ae7e..c23136ce 100644
--- a/src/main/java/net/Indyuce/mmocore/loot/LootBuilder.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/LootBuilder.java
@@ -3,9 +3,8 @@ package net.Indyuce.mmocore.loot;
import java.util.ArrayList;
import java.util.List;
-import org.bukkit.inventory.ItemStack;
-
import net.Indyuce.mmocore.api.player.PlayerData;
+import org.bukkit.inventory.ItemStack;
public class LootBuilder {
private final PlayerData player;
diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/ChestAlgorithmOptions.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/ChestAlgorithmOptions.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/loot/chest/ChestAlgorithmOptions.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/ChestAlgorithmOptions.java
diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/ChestTier.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/ChestTier.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/loot/chest/ChestTier.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/ChestTier.java
index de9ea2a3..3d33006a 100644
--- a/src/main/java/net/Indyuce/mmocore/loot/chest/ChestTier.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/ChestTier.java
@@ -2,8 +2,8 @@ package net.Indyuce.mmocore.loot.chest;
import io.lumine.mythic.lib.api.math.ScalingFormula;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.loot.droptable.DropTable;
import net.Indyuce.mmocore.api.player.PlayerData;
+import net.Indyuce.mmocore.loot.droptable.DropTable;
import org.bukkit.configuration.ConfigurationSection;
public class ChestTier {
diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/LootChest.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/LootChest.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/loot/chest/LootChest.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/LootChest.java
diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/LootChestRegion.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/LootChestRegion.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/loot/chest/LootChestRegion.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/LootChestRegion.java
diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/RegionBounds.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/RegionBounds.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/loot/chest/RegionBounds.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/RegionBounds.java
index 1e25507b..5b5cf8de 100644
--- a/src/main/java/net/Indyuce/mmocore/loot/chest/RegionBounds.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/RegionBounds.java
@@ -2,6 +2,7 @@ package net.Indyuce.mmocore.loot.chest;
import java.util.stream.Stream;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.apache.commons.lang.Validate;
import org.bukkit.Bukkit;
import org.bukkit.Location;
@@ -9,8 +10,6 @@ import org.bukkit.World;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
-import net.Indyuce.mmocore.api.player.PlayerData;
-
public class RegionBounds {
private final World world;
private final int x1, z1, x2, z2;
diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/TierEffect.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/TierEffect.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/loot/chest/TierEffect.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/TierEffect.java
index cf80f6d5..d44be8b5 100644
--- a/src/main/java/net/Indyuce/mmocore/loot/chest/TierEffect.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/TierEffect.java
@@ -1,14 +1,13 @@
package net.Indyuce.mmocore.loot.chest;
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.loot.chest.particle.ChestParticleEffect;
import org.apache.commons.lang.Validate;
import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.scheduler.BukkitRunnable;
-import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.loot.chest.particle.ChestParticleEffect;
-
public class TierEffect {
private final ChestParticleEffect type;
private final Particle particle;
diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/condition/BiomeCondition.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/BiomeCondition.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/loot/chest/condition/BiomeCondition.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/BiomeCondition.java
diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/condition/Condition.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/Condition.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/loot/chest/condition/Condition.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/Condition.java
diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/condition/ConditionInstance.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/ConditionInstance.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/loot/chest/condition/ConditionInstance.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/ConditionInstance.java
index 1666ee8e..02629763 100644
--- a/src/main/java/net/Indyuce/mmocore/loot/chest/condition/ConditionInstance.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/ConditionInstance.java
@@ -3,11 +3,10 @@ package net.Indyuce.mmocore.loot.chest.condition;
import java.util.List;
import java.util.stream.Stream;
+import net.Indyuce.mmocore.MMOCore;
import org.bukkit.Location;
import org.bukkit.entity.Entity;
-import net.Indyuce.mmocore.MMOCore;
-
public class ConditionInstance {
private final Entity entity;
private final Location applied;
diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/condition/DistanceCondition.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/DistanceCondition.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/loot/chest/condition/DistanceCondition.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/DistanceCondition.java
diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/condition/LevelCondition.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/LevelCondition.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/loot/chest/condition/LevelCondition.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/LevelCondition.java
diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/condition/PermissionCondition.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/PermissionCondition.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/loot/chest/condition/PermissionCondition.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/PermissionCondition.java
diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/condition/WorldCondition.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/WorldCondition.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/loot/chest/condition/WorldCondition.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/WorldCondition.java
diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/particle/CastingParticle.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/CastingParticle.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/loot/chest/particle/CastingParticle.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/CastingParticle.java
diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ChestParticleEffect.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ChestParticleEffect.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/loot/chest/particle/ChestParticleEffect.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ChestParticleEffect.java
index 00bb6c66..c66b5cd2 100644
--- a/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ChestParticleEffect.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ChestParticleEffect.java
@@ -2,12 +2,11 @@ package net.Indyuce.mmocore.loot.chest.particle;
import java.util.function.BiConsumer;
+import net.Indyuce.mmocore.MMOCore;
import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.scheduler.BukkitRunnable;
-import net.Indyuce.mmocore.MMOCore;
-
public enum ChestParticleEffect {
HELIX((loc, particle) -> {
diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ParabolicProjectile.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ParabolicProjectile.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/loot/chest/particle/ParabolicProjectile.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ParabolicProjectile.java
index a1615350..c53732bf 100644
--- a/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ParabolicProjectile.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ParabolicProjectile.java
@@ -2,14 +2,13 @@ package net.Indyuce.mmocore.loot.chest.particle;
import java.util.function.Consumer;
+import net.Indyuce.mmocore.MMOCore;
import org.bukkit.Color;
import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;
-import net.Indyuce.mmocore.MMOCore;
-
public class ParabolicProjectile extends BukkitRunnable {
private final Location target;
private final Consumer display;
diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/particle/PotionParticles.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/PotionParticles.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/loot/chest/particle/PotionParticles.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/PotionParticles.java
index 63a9343a..25d4e522 100644
--- a/src/main/java/net/Indyuce/mmocore/loot/chest/particle/PotionParticles.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/PotionParticles.java
@@ -1,13 +1,12 @@
package net.Indyuce.mmocore.loot.chest.particle;
+import net.Indyuce.mmocore.MMOCore;
import org.bukkit.Color;
import org.bukkit.Particle;
import org.bukkit.entity.ThrownPotion;
import org.bukkit.inventory.meta.PotionMeta;
import org.bukkit.scheduler.BukkitRunnable;
-import net.Indyuce.mmocore.MMOCore;
-
public class PotionParticles extends BukkitRunnable {
private double r, g, b;
private final ThrownPotion potion;
diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/particle/SmallParticleEffect.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/SmallParticleEffect.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/loot/chest/particle/SmallParticleEffect.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/SmallParticleEffect.java
index 0b0cdef5..9502604c 100644
--- a/src/main/java/net/Indyuce/mmocore/loot/chest/particle/SmallParticleEffect.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/SmallParticleEffect.java
@@ -1,12 +1,11 @@
package net.Indyuce.mmocore.loot.chest.particle;
+import net.Indyuce.mmocore.MMOCore;
import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.entity.Entity;
import org.bukkit.scheduler.BukkitRunnable;
-import net.Indyuce.mmocore.MMOCore;
-
public class SmallParticleEffect extends BukkitRunnable {
private final Location loc;
private final Particle particle;
diff --git a/src/main/java/net/Indyuce/mmocore/loot/droptable/DropTable.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/DropTable.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/loot/droptable/DropTable.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/DropTable.java
index c8588074..ffc90a61 100644
--- a/src/main/java/net/Indyuce/mmocore/loot/droptable/DropTable.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/DropTable.java
@@ -5,14 +5,14 @@ import java.util.List;
import java.util.Set;
import java.util.logging.Level;
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem;
import net.Indyuce.mmocore.loot.chest.condition.Condition;
import net.Indyuce.mmocore.loot.chest.condition.ConditionInstance;
-import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem;
import org.apache.commons.lang.Validate;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.inventory.ItemStack;
-import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.loot.LootBuilder;
import io.lumine.mythic.lib.api.MMOLineConfig;
import io.lumine.mythic.lib.api.util.PostLoadObject;
diff --git a/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropItem.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropItem.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropItem.java
index 8febb7bb..b84e5cc3 100644
--- a/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropItem.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropItem.java
@@ -2,9 +2,9 @@ package net.Indyuce.mmocore.loot.droptable.dropitem;
import java.util.Random;
+import net.Indyuce.mmocore.api.util.math.formula.RandomAmount;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.loot.LootBuilder;
-import net.Indyuce.mmocore.api.util.math.formula.RandomAmount;
import io.lumine.mythic.lib.api.MMOLineConfig;
public abstract class DropItem {
diff --git a/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropTableDropItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropTableDropItem.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropTableDropItem.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropTableDropItem.java
diff --git a/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/GoldDropItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/GoldDropItem.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/GoldDropItem.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/GoldDropItem.java
diff --git a/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/NoteDropItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/NoteDropItem.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/NoteDropItem.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/NoteDropItem.java
diff --git a/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/VanillaDropItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/VanillaDropItem.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/VanillaDropItem.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/VanillaDropItem.java
diff --git a/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/fishing/FishingDropItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/fishing/FishingDropItem.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/fishing/FishingDropItem.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/fishing/FishingDropItem.java
diff --git a/src/main/java/net/Indyuce/mmocore/manager/AttributeManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/AttributeManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/AttributeManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/AttributeManager.java
index ab85face..fc1a50b9 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/AttributeManager.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/AttributeManager.java
@@ -6,8 +6,8 @@ import java.util.Map;
import java.util.logging.Level;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.ConfigFile;
import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute;
+import net.Indyuce.mmocore.api.ConfigFile;
public class AttributeManager implements MMOCoreManager {
private final Map map = new HashMap<>();
diff --git a/src/main/java/net/Indyuce/mmocore/manager/ClassManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ClassManager.java
similarity index 98%
rename from src/main/java/net/Indyuce/mmocore/manager/ClassManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ClassManager.java
index e94bb005..8d0356c0 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/ClassManager.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ClassManager.java
@@ -1,9 +1,8 @@
package net.Indyuce.mmocore.manager;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.api.player.profess.ClassOption;
import net.Indyuce.mmocore.api.player.profess.PlayerClass;
+import net.Indyuce.mmocore.api.player.profess.ClassOption;
import net.Indyuce.mmocore.api.player.profess.event.EventTriggerHandler;
import net.Indyuce.mmocore.api.player.profess.event.trigger.*;
import org.apache.commons.lang.Validate;
diff --git a/src/main/java/net/Indyuce/mmocore/manager/ConfigItemManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ConfigItemManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/ConfigItemManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ConfigItemManager.java
index 46439ec5..38d895ad 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/ConfigItemManager.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ConfigItemManager.java
@@ -1,8 +1,8 @@
package net.Indyuce.mmocore.manager;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.ConfigFile;
import net.Indyuce.mmocore.util.item.ConfigItem;
+import net.Indyuce.mmocore.api.ConfigFile;
import org.bukkit.configuration.file.FileConfiguration;
import org.jetbrains.annotations.Nullable;
diff --git a/src/main/java/net/Indyuce/mmocore/manager/ConfigManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ConfigManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/ConfigManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ConfigManager.java
diff --git a/src/main/java/net/Indyuce/mmocore/manager/DropTableManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/DropTableManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/DropTableManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/DropTableManager.java
index 00e21b48..4819eb72 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/DropTableManager.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/DropTableManager.java
@@ -8,12 +8,12 @@ import java.util.Set;
import java.util.logging.Level;
import io.lumine.mythic.lib.api.util.PostLoadObject;
+import net.Indyuce.mmocore.MMOCore;
import org.bukkit.Bukkit;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
-import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.loot.droptable.DropTable;
public class DropTableManager implements MMOCoreManager {
diff --git a/src/main/java/net/Indyuce/mmocore/manager/ExperienceManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ExperienceManager.java
similarity index 97%
rename from src/main/java/net/Indyuce/mmocore/manager/ExperienceManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ExperienceManager.java
index 3f941a7b..c84ecbd1 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/ExperienceManager.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ExperienceManager.java
@@ -1,110 +1,110 @@
-package net.Indyuce.mmocore.manager;
-
-import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.ConfigFile;
-import net.Indyuce.mmocore.experience.ExpCurve;
-import net.Indyuce.mmocore.experience.droptable.ExperienceTable;
-import net.Indyuce.mmocore.experience.source.type.ExperienceSource;
-import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
-import org.apache.commons.lang.Validate;
-import org.bukkit.configuration.ConfigurationSection;
-import org.bukkit.configuration.file.FileConfiguration;
-import org.bukkit.event.HandlerList;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-import java.util.logging.Level;
-
-public class ExperienceManager implements MMOCoreManager {
- private final Map expCurves = new HashMap<>();
- private final Map expTables = new HashMap<>();
-
- /**
- * Saves different experience sources based on experience source type.
- */
- private final Map, ExperienceSourceManager>> managers = new HashMap<>();
-
- @SuppressWarnings("unchecked")
- public ExperienceSourceManager getManager(Class t) {
- return (ExperienceSourceManager) managers.get(t);
- }
-
- @SuppressWarnings("unchecked")
- public void registerSource(T source) {
- Class path = (Class) source.getClass();
-
- if (!managers.containsKey(path))
- managers.put(path, source.newManager());
- getManager(path).registerSource(source);
- }
-
- public boolean hasCurve(String id) {
- return expCurves.containsKey(id);
- }
-
- public ExpCurve getCurveOrThrow(String id) {
- Validate.isTrue(hasCurve(id), "Could not find exp curve with ID '" + id + "'");
- return expCurves.get(id);
- }
-
- public boolean hasTable(String id) {
- return expTables.containsKey(id);
- }
-
- public ExperienceTable getTableOrThrow(String id) {
- return Objects.requireNonNull(expTables.get(id), "Could not find exp table with ID '" + id + "'");
- }
-
- public ExperienceTable loadExperienceTable(Object obj) {
-
- if (obj instanceof ConfigurationSection)
- return new ExperienceTable((ConfigurationSection) obj);
-
- if (obj instanceof String)
- return MMOCore.plugin.experience.getTableOrThrow(obj.toString());
-
- throw new IllegalArgumentException("Please provide either a string (exp table name) or a config section (locally define an exp table)");
- }
-
- public Collection getCurves() {
- return expCurves.values();
- }
-
- public Collection getTables() {
- return expTables.values();
- }
-
- @Override
- public void initialize(boolean clearBefore) {
- if (clearBefore) {
- expCurves.clear();
- expTables.clear();
-
- managers.values().forEach(HandlerList::unregisterAll);
- managers.clear();
- }
-
- expCurves.clear();
- for (File file : new File(MMOCore.plugin.getDataFolder() + "/expcurves").listFiles())
- try {
- ExpCurve curve = new ExpCurve(file);
- expCurves.put(curve.getId(), curve);
- } catch (IllegalArgumentException | IOException exception) {
- MMOCore.plugin.getLogger().log(Level.WARNING, "Could not load exp curve '" + file.getName() + "': " + exception.getMessage());
- }
-
- expTables.clear();
- FileConfiguration expTablesConfig = new ConfigFile("exp-tables").getConfig();
- for (String key : expTablesConfig.getKeys(false))
- try {
- ExperienceTable table = new ExperienceTable(expTablesConfig.getConfigurationSection(key));
- expTables.put(table.getId(), table);
- } catch (RuntimeException exception) {
- MMOCore.plugin.getLogger().log(Level.WARNING, "Could not load exp table '" + key + "': " + exception.getMessage());
- }
- }
-}
+package net.Indyuce.mmocore.manager;
+
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.experience.droptable.ExperienceTable;
+import net.Indyuce.mmocore.api.ConfigFile;
+import net.Indyuce.mmocore.experience.ExpCurve;
+import net.Indyuce.mmocore.experience.source.type.ExperienceSource;
+import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager;
+import org.apache.commons.lang.Validate;
+import org.bukkit.configuration.ConfigurationSection;
+import org.bukkit.configuration.file.FileConfiguration;
+import org.bukkit.event.HandlerList;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+import java.util.logging.Level;
+
+public class ExperienceManager implements MMOCoreManager {
+ private final Map expCurves = new HashMap<>();
+ private final Map expTables = new HashMap<>();
+
+ /**
+ * Saves different experience sources based on experience source type.
+ */
+ private final Map, ExperienceSourceManager>> managers = new HashMap<>();
+
+ @SuppressWarnings("unchecked")
+ public ExperienceSourceManager getManager(Class t) {
+ return (ExperienceSourceManager) managers.get(t);
+ }
+
+ @SuppressWarnings("unchecked")
+ public void registerSource(T source) {
+ Class path = (Class) source.getClass();
+
+ if (!managers.containsKey(path))
+ managers.put(path, source.newManager());
+ getManager(path).registerSource(source);
+ }
+
+ public boolean hasCurve(String id) {
+ return expCurves.containsKey(id);
+ }
+
+ public ExpCurve getCurveOrThrow(String id) {
+ Validate.isTrue(hasCurve(id), "Could not find exp curve with ID '" + id + "'");
+ return expCurves.get(id);
+ }
+
+ public boolean hasTable(String id) {
+ return expTables.containsKey(id);
+ }
+
+ public ExperienceTable getTableOrThrow(String id) {
+ return Objects.requireNonNull(expTables.get(id), "Could not find exp table with ID '" + id + "'");
+ }
+
+ public ExperienceTable loadExperienceTable(Object obj) {
+
+ if (obj instanceof ConfigurationSection)
+ return new ExperienceTable((ConfigurationSection) obj);
+
+ if (obj instanceof String)
+ return MMOCore.plugin.experience.getTableOrThrow(obj.toString());
+
+ throw new IllegalArgumentException("Please provide either a string (exp table name) or a config section (locally define an exp table)");
+ }
+
+ public Collection getCurves() {
+ return expCurves.values();
+ }
+
+ public Collection getTables() {
+ return expTables.values();
+ }
+
+ @Override
+ public void initialize(boolean clearBefore) {
+ if (clearBefore) {
+ expCurves.clear();
+ expTables.clear();
+
+ managers.values().forEach(HandlerList::unregisterAll);
+ managers.clear();
+ }
+
+ expCurves.clear();
+ for (File file : new File(MMOCore.plugin.getDataFolder() + "/expcurves").listFiles())
+ try {
+ ExpCurve curve = new ExpCurve(file);
+ expCurves.put(curve.getId(), curve);
+ } catch (IllegalArgumentException | IOException exception) {
+ MMOCore.plugin.getLogger().log(Level.WARNING, "Could not load exp curve '" + file.getName() + "': " + exception.getMessage());
+ }
+
+ expTables.clear();
+ FileConfiguration expTablesConfig = new ConfigFile("exp-tables").getConfig();
+ for (String key : expTablesConfig.getKeys(false))
+ try {
+ ExperienceTable table = new ExperienceTable(expTablesConfig.getConfigurationSection(key));
+ expTables.put(table.getId(), table);
+ } catch (RuntimeException exception) {
+ MMOCore.plugin.getLogger().log(Level.WARNING, "Could not load exp table '" + key + "': " + exception.getMessage());
+ }
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/manager/InventoryManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/InventoryManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/InventoryManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/InventoryManager.java
index 46b9a8f6..a5a6beb0 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/InventoryManager.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/InventoryManager.java
@@ -5,23 +5,23 @@ import java.util.List;
import java.util.logging.Level;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.ConfigFile;
import net.Indyuce.mmocore.gui.AttributeView;
-import net.Indyuce.mmocore.gui.ClassConfirmation;
-import net.Indyuce.mmocore.gui.ClassSelect;
-import net.Indyuce.mmocore.gui.PlayerStats;
-import net.Indyuce.mmocore.gui.QuestViewer;
import net.Indyuce.mmocore.gui.SkillList;
-import net.Indyuce.mmocore.gui.SubclassConfirmation;
-import net.Indyuce.mmocore.gui.SubclassSelect;
import net.Indyuce.mmocore.gui.WaypointViewer;
-import net.Indyuce.mmocore.gui.api.EditableInventory;
import net.Indyuce.mmocore.gui.social.friend.EditableFriendList;
import net.Indyuce.mmocore.gui.social.friend.EditableFriendRemoval;
import net.Indyuce.mmocore.gui.social.guild.EditableGuildCreation;
import net.Indyuce.mmocore.gui.social.guild.EditableGuildView;
import net.Indyuce.mmocore.gui.social.party.EditablePartyCreation;
import net.Indyuce.mmocore.gui.social.party.EditablePartyView;
+import net.Indyuce.mmocore.api.ConfigFile;
+import net.Indyuce.mmocore.gui.ClassConfirmation;
+import net.Indyuce.mmocore.gui.ClassSelect;
+import net.Indyuce.mmocore.gui.PlayerStats;
+import net.Indyuce.mmocore.gui.QuestViewer;
+import net.Indyuce.mmocore.gui.SubclassConfirmation;
+import net.Indyuce.mmocore.gui.SubclassSelect;
+import net.Indyuce.mmocore.gui.api.EditableInventory;
public class InventoryManager {
public static final PlayerStats PLAYER_STATS = new PlayerStats();
diff --git a/src/main/java/net/Indyuce/mmocore/manager/LootChestManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/LootChestManager.java
similarity index 96%
rename from src/main/java/net/Indyuce/mmocore/manager/LootChestManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/LootChestManager.java
index 96317c16..090f188f 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/LootChestManager.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/LootChestManager.java
@@ -1,82 +1,82 @@
-package net.Indyuce.mmocore.manager;
-
-import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.ConfigFile;
-import net.Indyuce.mmocore.loot.chest.LootChest;
-import net.Indyuce.mmocore.loot.chest.LootChestRegion;
-import net.Indyuce.mmocore.util.HashableLocation;
-import org.bukkit.Location;
-import org.bukkit.configuration.file.FileConfiguration;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-import java.util.logging.Level;
-
-public class LootChestManager implements MMOCoreManager {
-
- /**
- * Active loot chests in the server
- */
- private final Map active = new HashMap<>();
-
- /**
- * Registered loot chest regions
- */
- private final Map regions = new HashMap<>();
-
- public boolean hasRegion(String id) {
- return regions.containsKey(id);
- }
-
- /**
- * @return Region with specific identifier
- * @throws NullPointerException if not found
- */
- @NotNull
- public LootChestRegion getRegion(String id) {
- return Objects.requireNonNull(regions.get(id), "Could not find region with ID '" + id + "'");
- }
-
- public Collection getRegions() {
- return regions.values();
- }
-
- public Collection getActive() {
- return active.values();
- }
-
- public void register(LootChest chest) {
- active.put(chest.getBlock().getLocation(), chest);
- }
-
- public void unregister(LootChest chest) {
- active.remove(chest.getBlock().getLocation());
- }
-
- @Nullable
- public LootChest getChest(Location loc) {
- return active.get(new HashableLocation(loc));
- }
-
- @Override
- public void initialize(boolean clearBefore) {
- if (clearBefore) {
- regions.values().forEach(region -> region.getRunnable().cancel());
- regions.clear();
- }
-
- FileConfiguration config = new ConfigFile("loot-chests").getConfig();
- for (String key : config.getKeys(false))
- try {
- LootChestRegion region = new LootChestRegion(config.getConfigurationSection(key));
- regions.put(region.getId(), region);
- } catch (IllegalArgumentException exception) {
- MMOCore.plugin.getLogger().log(Level.WARNING,
- "An error occured while trying to load loot chest region '" + key + "': " + exception.getMessage());
- }
- }
-}
+package net.Indyuce.mmocore.manager;
+
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.api.ConfigFile;
+import net.Indyuce.mmocore.loot.chest.LootChest;
+import net.Indyuce.mmocore.loot.chest.LootChestRegion;
+import net.Indyuce.mmocore.util.HashableLocation;
+import org.bukkit.Location;
+import org.bukkit.configuration.file.FileConfiguration;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+import java.util.logging.Level;
+
+public class LootChestManager implements MMOCoreManager {
+
+ /**
+ * Active loot chests in the server
+ */
+ private final Map active = new HashMap<>();
+
+ /**
+ * Registered loot chest regions
+ */
+ private final Map regions = new HashMap<>();
+
+ public boolean hasRegion(String id) {
+ return regions.containsKey(id);
+ }
+
+ /**
+ * @return Region with specific identifier
+ * @throws NullPointerException if not found
+ */
+ @NotNull
+ public LootChestRegion getRegion(String id) {
+ return Objects.requireNonNull(regions.get(id), "Could not find region with ID '" + id + "'");
+ }
+
+ public Collection getRegions() {
+ return regions.values();
+ }
+
+ public Collection getActive() {
+ return active.values();
+ }
+
+ public void register(LootChest chest) {
+ active.put(chest.getBlock().getLocation(), chest);
+ }
+
+ public void unregister(LootChest chest) {
+ active.remove(chest.getBlock().getLocation());
+ }
+
+ @Nullable
+ public LootChest getChest(Location loc) {
+ return active.get(new HashableLocation(loc));
+ }
+
+ @Override
+ public void initialize(boolean clearBefore) {
+ if (clearBefore) {
+ regions.values().forEach(region -> region.getRunnable().cancel());
+ regions.clear();
+ }
+
+ FileConfiguration config = new ConfigFile("loot-chests").getConfig();
+ for (String key : config.getKeys(false))
+ try {
+ LootChestRegion region = new LootChestRegion(config.getConfigurationSection(key));
+ regions.put(region.getId(), region);
+ } catch (IllegalArgumentException exception) {
+ MMOCore.plugin.getLogger().log(Level.WARNING,
+ "An error occured while trying to load loot chest region '" + key + "': " + exception.getMessage());
+ }
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/manager/MMOCoreManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/MMOCoreManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/MMOCoreManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/MMOCoreManager.java
diff --git a/src/main/java/net/Indyuce/mmocore/manager/MMOLoadManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/MMOLoadManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/MMOLoadManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/MMOLoadManager.java
index 30f506d4..15c49d03 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/MMOLoadManager.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/MMOLoadManager.java
@@ -4,20 +4,20 @@ import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
+import net.Indyuce.mmocore.api.block.BlockType;
+import net.Indyuce.mmocore.api.quest.trigger.Trigger;
import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser;
import org.apache.commons.lang.Validate;
import org.bukkit.configuration.ConfigurationSection;
import com.google.gson.JsonParseException;
-import net.Indyuce.mmocore.api.block.BlockType;
import net.Indyuce.mmocore.loot.chest.condition.Condition;
import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem;
import net.Indyuce.mmocore.experience.source.type.ExperienceSource;
import net.Indyuce.mmocore.api.load.DefaultMMOLoader;
import net.Indyuce.mmocore.api.load.MMOLoader;
import net.Indyuce.mmocore.api.quest.objective.Objective;
-import net.Indyuce.mmocore.api.quest.trigger.Trigger;
import io.lumine.mythic.lib.api.MMOLineConfig;
public class MMOLoadManager {
diff --git a/src/main/java/net/Indyuce/mmocore/manager/QuestManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/QuestManager.java
similarity index 99%
rename from src/main/java/net/Indyuce/mmocore/manager/QuestManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/QuestManager.java
index 31768d61..44ca127f 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/QuestManager.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/QuestManager.java
@@ -7,11 +7,10 @@ import java.util.LinkedHashMap;
import java.util.Map;
import java.util.logging.Level;
-import org.apache.commons.lang.Validate;
-import org.bukkit.configuration.file.YamlConfiguration;
-
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.quest.Quest;
+import org.apache.commons.lang.Validate;
+import org.bukkit.configuration.file.YamlConfiguration;
public class QuestManager implements MMOCoreManager {
private final Map quests = new LinkedHashMap<>();
diff --git a/src/main/java/net/Indyuce/mmocore/manager/RestrictionManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/RestrictionManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/RestrictionManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/RestrictionManager.java
index 503a2b95..4d06cdc6 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/RestrictionManager.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/RestrictionManager.java
@@ -5,8 +5,8 @@ import io.lumine.mythic.lib.api.MMOLineConfig;
import io.lumine.mythic.lib.api.itemtype.ItemType;
import io.lumine.mythic.lib.api.util.PostLoadObject;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.ConfigFile;
import net.Indyuce.mmocore.api.block.BlockType;
+import net.Indyuce.mmocore.api.ConfigFile;
import org.apache.commons.lang.Validate;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
diff --git a/src/main/java/net/Indyuce/mmocore/manager/SkillManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/SkillManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/SkillManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/SkillManager.java
index 25a6d67b..2f95fdb1 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/SkillManager.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/SkillManager.java
@@ -2,13 +2,13 @@ package net.Indyuce.mmocore.manager;
import io.lumine.mythic.lib.MythicLib;
import io.lumine.mythic.lib.skill.handler.SkillHandler;
+import net.Indyuce.mmocore.skill.list.Sneaky_Picky;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.ConfigFile;
import net.Indyuce.mmocore.api.util.MMOCoreUtils;
import net.Indyuce.mmocore.skill.RegisteredSkill;
import net.Indyuce.mmocore.skill.list.Ambers;
import net.Indyuce.mmocore.skill.list.Neptune_Gift;
-import net.Indyuce.mmocore.skill.list.Sneaky_Picky;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/src/main/java/net/Indyuce/mmocore/manager/SkillTreeManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/SkillTreeManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/SkillTreeManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/SkillTreeManager.java
diff --git a/src/main/java/net/Indyuce/mmocore/manager/SoundManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/SoundManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/SoundManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/SoundManager.java
diff --git a/src/main/java/net/Indyuce/mmocore/manager/StatManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/StatManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/StatManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/StatManager.java
diff --git a/src/main/java/net/Indyuce/mmocore/manager/WaypointManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/WaypointManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/WaypointManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/WaypointManager.java
index 97bb5a00..5ae15590 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/WaypointManager.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/WaypointManager.java
@@ -1,8 +1,8 @@
package net.Indyuce.mmocore.manager;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.ConfigFile;
import net.Indyuce.mmocore.waypoint.Waypoint;
+import net.Indyuce.mmocore.api.ConfigFile;
import org.apache.commons.lang.Validate;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/DataProvider.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/DataProvider.java
similarity index 96%
rename from src/main/java/net/Indyuce/mmocore/manager/data/DataProvider.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/DataProvider.java
index 1114a86a..e992a5cd 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/data/DataProvider.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/DataProvider.java
@@ -1,15 +1,15 @@
-package net.Indyuce.mmocore.manager.data;
-
-/**
- * Used to separate MySQL data storage from YAML data storage.
- *
- * There is one data provider per storage mecanism (one for YAML, one for MySQL).
- * A data provider provides corresponding MMOManagers to correctly save and load
- * data
- */
-public interface DataProvider {
-
- PlayerDataManager getDataManager();
-
- GuildDataManager getGuildManager();
-}
+package net.Indyuce.mmocore.manager.data;
+
+/**
+ * Used to separate MySQL data storage from YAML data storage.
+ *
+ * There is one data provider per storage mecanism (one for YAML, one for MySQL).
+ * A data provider provides corresponding MMOManagers to correctly save and load
+ * data
+ */
+public interface DataProvider {
+
+ PlayerDataManager getDataManager();
+
+ GuildDataManager getGuildManager();
+}
diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/GuildDataManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/GuildDataManager.java
similarity index 95%
rename from src/main/java/net/Indyuce/mmocore/manager/data/GuildDataManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/GuildDataManager.java
index 1c3a8f43..a8a6bfe6 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/data/GuildDataManager.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/GuildDataManager.java
@@ -1,127 +1,127 @@
-package net.Indyuce.mmocore.manager.data;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-
-import org.bukkit.configuration.ConfigurationSection;
-import org.bukkit.configuration.file.FileConfiguration;
-
-import net.Indyuce.mmocore.api.ConfigFile;
-import net.Indyuce.mmocore.guild.provided.Guild;
-
-public abstract class GuildDataManager {
- protected final Map guilds = new HashMap<>();
-
- public Guild newRegisteredGuild(UUID owner, String name, String tag) {
- Guild guild = new Guild(owner, name, tag);
- registerGuild(guild);
- return guild;
- }
-
- public void registerGuild(Guild guild) {
- guilds.put(guild.getId(), guild);
- }
-
- public boolean isRegistered(Guild guild) {
- return guilds.containsValue(guild);
- }
-
- public boolean isRegistered(String tag) {
- return guilds.containsKey(tag);
- }
-
- public void unregisterGuild(Guild guild) {
- guild.forEachMember(member -> guild.removeMember(member, true));
- // guild.getMembers().clear();
- guilds.remove(guild.getId());
- delete(guild);
- }
-
- public Guild getGuild(String guild) {
- return guilds.get(guild);
- }
-
- public Collection getAll() {
- return guilds.values();
- }
-
- @Deprecated
- public void reload() {
- for (Guild guild : guilds.values())
- save(guild);
- guilds.clear();
- load();
- config = new GuildConfiguration();
- }
-
- public abstract void save(Guild guild);
-
- // TODO move to constructor, useless to handle vie abstract method
- public abstract void load();
-
- public abstract void delete(Guild guild);
-
- // TODO fix this
- // Shitty code for loading config values for guilds.
- private GuildConfiguration config;
-
- public GuildConfiguration getConfig() {
- return config == null ? config = new GuildConfiguration() : config;
- }
-
- public static class GuildConfiguration {
- private final String prefix;
- private final boolean uppercaseTags;
- private final NamingRules tagRules, nameRules;
-
- public GuildConfiguration() {
- FileConfiguration config = new ConfigFile("guilds").getConfig();
-
- this.prefix = config.getString("chat-prefix", "*");
- this.uppercaseTags = config.getBoolean("uppercase-tags", true);
- this.tagRules = new NamingRules(config.getConfigurationSection("rules.tag"));
- this.nameRules = new NamingRules(config.getConfigurationSection("rules.name"));
- }
-
- public String getPrefix() {
- return prefix;
- }
-
- public boolean shouldUppercaseTags() {
- return uppercaseTags;
- }
-
- public NamingRules getTagRules() {
- return tagRules;
- }
-
- public NamingRules getNameRules() {
- return nameRules;
- }
-
- public static class NamingRules {
- private final String regex;
- private final int min, max;
-
- public NamingRules(ConfigurationSection config) {
- regex = config.getString("matches", "[a-zA-Z-_!?]+");
- min = config.getInt("min-length", 3);
- max = config.getInt("max-length", 5);
- }
-
- public String getRegex() {
- return regex;
- }
-
- public int getMin() {
- return min;
- }
-
- public int getMax() {
- return max;
- }
- }
- }
-}
+package net.Indyuce.mmocore.manager.data;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.bukkit.configuration.ConfigurationSection;
+import org.bukkit.configuration.file.FileConfiguration;
+
+import net.Indyuce.mmocore.api.ConfigFile;
+import net.Indyuce.mmocore.guild.provided.Guild;
+
+public abstract class GuildDataManager {
+ protected final Map guilds = new HashMap<>();
+
+ public Guild newRegisteredGuild(UUID owner, String name, String tag) {
+ Guild guild = new Guild(owner, name, tag);
+ registerGuild(guild);
+ return guild;
+ }
+
+ public void registerGuild(Guild guild) {
+ guilds.put(guild.getId(), guild);
+ }
+
+ public boolean isRegistered(Guild guild) {
+ return guilds.containsValue(guild);
+ }
+
+ public boolean isRegistered(String tag) {
+ return guilds.containsKey(tag);
+ }
+
+ public void unregisterGuild(Guild guild) {
+ guild.forEachMember(member -> guild.removeMember(member, true));
+ // guild.getMembers().clear();
+ guilds.remove(guild.getId());
+ delete(guild);
+ }
+
+ public Guild getGuild(String guild) {
+ return guilds.get(guild);
+ }
+
+ public Collection getAll() {
+ return guilds.values();
+ }
+
+ @Deprecated
+ public void reload() {
+ for (Guild guild : guilds.values())
+ save(guild);
+ guilds.clear();
+ load();
+ config = new GuildConfiguration();
+ }
+
+ public abstract void save(Guild guild);
+
+ // TODO move to constructor, useless to handle vie abstract method
+ public abstract void load();
+
+ public abstract void delete(Guild guild);
+
+ // TODO fix this
+ // Shitty code for loading config values for guilds.
+ private GuildConfiguration config;
+
+ public GuildConfiguration getConfig() {
+ return config == null ? config = new GuildConfiguration() : config;
+ }
+
+ public static class GuildConfiguration {
+ private final String prefix;
+ private final boolean uppercaseTags;
+ private final NamingRules tagRules, nameRules;
+
+ public GuildConfiguration() {
+ FileConfiguration config = new ConfigFile("guilds").getConfig();
+
+ this.prefix = config.getString("chat-prefix", "*");
+ this.uppercaseTags = config.getBoolean("uppercase-tags", true);
+ this.tagRules = new NamingRules(config.getConfigurationSection("rules.tag"));
+ this.nameRules = new NamingRules(config.getConfigurationSection("rules.name"));
+ }
+
+ public String getPrefix() {
+ return prefix;
+ }
+
+ public boolean shouldUppercaseTags() {
+ return uppercaseTags;
+ }
+
+ public NamingRules getTagRules() {
+ return tagRules;
+ }
+
+ public NamingRules getNameRules() {
+ return nameRules;
+ }
+
+ public static class NamingRules {
+ private final String regex;
+ private final int min, max;
+
+ public NamingRules(ConfigurationSection config) {
+ regex = config.getString("matches", "[a-zA-Z-_!?]+");
+ min = config.getInt("min-length", 3);
+ max = config.getInt("max-length", 5);
+ }
+
+ public String getRegex() {
+ return regex;
+ }
+
+ public int getMin() {
+ return min;
+ }
+
+ public int getMax() {
+ return max;
+ }
+ }
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/PlayerDataManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/PlayerDataManager.java
similarity index 96%
rename from src/main/java/net/Indyuce/mmocore/manager/data/PlayerDataManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/PlayerDataManager.java
index bb5f148a..ef1745bd 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/data/PlayerDataManager.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/PlayerDataManager.java
@@ -1,255 +1,254 @@
-package net.Indyuce.mmocore.manager.data;
-
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-import io.lumine.mythic.lib.MythicLib;
-import io.lumine.mythic.lib.api.player.MMOPlayerData;
-import io.lumine.mythic.lib.player.TemporaryPlayerData;
-import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.event.AsyncPlayerDataLoadEvent;
-import net.Indyuce.mmocore.api.event.PlayerDataLoadEvent;
-import net.Indyuce.mmocore.api.player.OfflinePlayerData;
-import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.api.player.profess.PlayerClass;
-import net.Indyuce.mmocore.api.player.profess.SavedClassInformation;
-import net.Indyuce.mmocore.api.util.MMOCoreUtils;
-import net.Indyuce.mmocore.guild.provided.Guild;
-import org.apache.commons.lang.Validate;
-import org.bukkit.Bukkit;
-import org.bukkit.OfflinePlayer;
-import org.bukkit.configuration.ConfigurationSection;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.*;
-import java.util.logging.Level;
-
-public abstract class PlayerDataManager {
- private final static Map data = Collections.synchronizedMap(new HashMap<>());
-
- private DefaultPlayerData defaultData = new DefaultPlayerData(1, 0, 0, 0, 0);
-
- public PlayerData get(OfflinePlayer player) {
- return get(player.getUniqueId());
- }
-
- /**
- * Gets the player data, or throws an exception if not found.
- * The player data should be loaded when the player logs in
- * so it's really bad practice to setup the player data if it's not loaded.
- *
- * @param uuid Player UUID
- * @return Player data, if it's loaded
- */
- public PlayerData get(UUID uuid) {
- return Objects.requireNonNull(data.get(uuid), "Player data is not loaded");
- }
-
-
- public static void loadDataFromJson(PlayerData data, String json) {
- JsonObject object = MythicLib.plugin.getJson().parse(json, JsonObject.class);
-
- data.setClassPoints(object.get("class_points").getAsInt());
- data.setSkillPoints(object.get("skill_points").getAsInt());
- data.setAttributePoints(object.get("attribute_points").getAsInt());
- data.setAttributeReallocationPoints(object.get("attribute_realloc_points").getAsInt());
- data.setLevel(object.get("level").getAsInt());
- data.setExperience(object.get("experience").getAsInt());
- if (object.has("class"))
- data.setClass(MMOCore.plugin.classManager.get(object.get(("class")).getAsString()));
-
- if (object.has("times_claimed")) {
- JsonObject timesClaimed =object.get(("times_claimed")).getAsJsonObject();
- timesClaimed.entrySet().forEach(entry -> data.getItemClaims().put(entry.getKey(), entry.getValue().getAsInt()));
- }
-
- if (object.has(("guild"))) {
- Guild guild = MMOCore.plugin.dataProvider.getGuildManager().getGuild(object.get("guild").getAsString());
- data.setGuild(guild.getMembers().has(data.getUniqueId()) ? guild : null);
- }
- if (object.has(("attributes"))) data.getAttributes().load(object.get("attributes").getAsString());
- if (object.has(("professions")))
- data.getCollectionSkills().load(object.get("professions").getAsString());
- if (object.has(("quests"))) data.getQuestData().load(object.get("quests").getAsString());
- data.getQuestData().updateBossBar();
- if (object.has(("waypoints")))
- data.getWaypoints().addAll(MMOCoreUtils.jsonArrayToList(object.get("waypoints").getAsString()));
- if (object.has(("friends")))
- MMOCoreUtils.jsonArrayToList(object.get("friends").getAsString()).forEach(str -> data.getFriends().add(UUID.fromString(str)))
- ;
- if (object.has(("skills"))) {
- JsonObject skillsObject = object.get("skills").getAsJsonObject();
- for (Map.Entry entry : skillsObject.entrySet())
- data.setSkillLevel(entry.getKey(), entry.getValue().getAsInt());
- }
- if (object.has(("bound_skills")))
- for (String skill : MMOCoreUtils.jsonArrayToList(object.get("bound_skills").getAsString()))
- if (data.getProfess().hasSkill(skill))
- data.getBoundSkills().add(data.getProfess().getSkill(skill));
- if (object.has(("class_info"))) {
- JsonObject classObject = object.get("class_info").getAsJsonObject();
- for (Map.Entry entry : classObject.entrySet()) {
- try {
- PlayerClass profess = MMOCore.plugin.classManager.get(entry.getKey());
- Validate.notNull(profess, "Could not find class '" + entry.getKey() + "'");
- data.applyClassInfo(profess, new SavedClassInformation(entry.getValue().getAsJsonObject()));
- } catch (IllegalArgumentException exception) {
- MMOCore.log(Level.WARNING, "Could not load class info '" + entry.getKey() + "': " + exception.getMessage());
- }
- }
- }
-
- }
-
-
- /**
- * Safely unregisters the player data from the map.
- * This saves the player data either through SQL or YAML,
- * then closes the player data and clears it from the data map.
- *
- * @param playerData PLayer data to unregister
- */
- public void unregisterSafe(PlayerData playerData) {
-
- // Save data async if required
- if (playerData.isFullyLoaded())
- Bukkit.getScheduler().runTaskAsynchronously(MMOCore.plugin, () -> {
- saveData(playerData);
-
- // Unregister once the data was saved
- playerData.close();
- data.remove(playerData.getUniqueId());
- });
-
- // Just unregister data without saving
- else {
- playerData.close();
- data.remove(playerData.getUniqueId());
- }
- }
-
- /**
- * Offline player data is used to handle processes like friend removal
- * which can still occur if one of the two players is offline.
- *
- * Unlike {@link #get(UUID)} this method never returns a null instance
- *
- * @param uuid Player unique id
- * @return Offline player data
- */
- @NotNull
- public abstract OfflinePlayerData getOffline(UUID uuid);
-
- /**
- * Called when a player logs in, loading the player data inside the map.
- *
- * For YAML configs or SQL databases, data is loaded as not to overload
- * the main thread with SQL requests. Therefore, the player data returned
- * by that method, when the player joined for the first time, is not
- * fully loaded YET.
- *
- * @param uniqueId Player UUID
- * @return The loaded player data.
- */
- public PlayerData setup(UUID uniqueId) {
- // Load player data if it does not exist
- if (!data.containsKey(uniqueId)) {
- PlayerData newData = TemporaryPlayerData.has(uniqueId) ? new PlayerData(MMOPlayerData.get(uniqueId), TemporaryPlayerData.get(uniqueId)) : new PlayerData(MMOPlayerData.get(uniqueId));
-
- // Schedule async data loading
- Bukkit.getScheduler().runTaskAsynchronously(MMOCore.plugin, () -> {
- loadData(newData);
- newData.getStats().updateStats();
- Bukkit.getPluginManager().callEvent(new AsyncPlayerDataLoadEvent(newData));
- Bukkit.getScheduler().runTask(MMOCore.plugin, () -> Bukkit.getPluginManager().callEvent(new PlayerDataLoadEvent(newData)));
- });
-
- // Update data map
- data.put(uniqueId, newData);
-
- return newData;
- }
-
- return data.get(uniqueId);
- }
-
- public DefaultPlayerData getDefaultData() {
- return defaultData;
- }
-
- public void loadDefaultData(ConfigurationSection config) {
- defaultData = new DefaultPlayerData(config);
- }
-
- public boolean isLoaded(UUID uuid) {
- return data.containsKey(uuid);
- }
-
- public Collection getLoaded() {
- return data.values();
- }
-
- /**
- * Called when player data must be loaded from database or config.
- *
- * @param data Player data to load
- */
- public abstract void loadData(PlayerData data);
-
- /**
- * Called when player data must be saved in configs or database.
- * This method should always be called sync because it DOES register
- * an async task in case MySQL storage is used.
- *
- * @param data Player data to save
- */
- public abstract void saveData(PlayerData data);
-
- public class DefaultPlayerData {
- private final int level, classPoints, skillPoints, attributePoints, attrReallocPoints;
-
- public DefaultPlayerData(ConfigurationSection config) {
- level = config.getInt("level", 1);
- classPoints = config.getInt("class-points");
- skillPoints = config.getInt("skill-points");
- attributePoints = config.getInt("attribute-points");
- attrReallocPoints = config.getInt("attribute-realloc-points");
- }
-
- public DefaultPlayerData(int level, int classPoints, int skillPoints, int attributePoints, int attrReallocPoints) {
- this.level = level;
- this.classPoints = classPoints;
- this.skillPoints = skillPoints;
- this.attributePoints = attributePoints;
- this.attrReallocPoints = attrReallocPoints;
- }
-
- public int getLevel() {
- return level;
- }
-
- public int getSkillPoints() {
- return skillPoints;
- }
-
- public int getClassPoints() {
- return classPoints;
- }
-
- public int getAttrReallocPoints() {
- return attrReallocPoints;
- }
-
- public int getAttributePoints() {
- return attributePoints;
- }
-
- public void apply(PlayerData player) {
- player.setLevel(level);
- player.setClassPoints(classPoints);
- player.setSkillPoints(skillPoints);
- player.setAttributePoints(attributePoints);
- player.setAttributeReallocationPoints(attrReallocPoints);
- }
- }
-}
+package net.Indyuce.mmocore.manager.data;
+
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import io.lumine.mythic.lib.MythicLib;
+import io.lumine.mythic.lib.api.player.MMOPlayerData;
+import io.lumine.mythic.lib.player.TemporaryPlayerData;
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.api.event.AsyncPlayerDataLoadEvent;
+import net.Indyuce.mmocore.api.event.PlayerDataLoadEvent;
+import net.Indyuce.mmocore.api.player.profess.PlayerClass;
+import net.Indyuce.mmocore.api.player.OfflinePlayerData;
+import net.Indyuce.mmocore.api.player.PlayerData;
+import net.Indyuce.mmocore.api.player.profess.SavedClassInformation;
+import net.Indyuce.mmocore.api.util.MMOCoreUtils;
+import net.Indyuce.mmocore.guild.provided.Guild;
+import org.apache.commons.lang.Validate;
+import org.bukkit.Bukkit;
+import org.bukkit.OfflinePlayer;
+import org.bukkit.configuration.ConfigurationSection;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.*;
+import java.util.logging.Level;
+
+public abstract class PlayerDataManager {
+ private final static Map data = Collections.synchronizedMap(new HashMap<>());
+
+ private DefaultPlayerData defaultData = new DefaultPlayerData(1, 0, 0, 0, 0);
+
+ public PlayerData get(OfflinePlayer player) {
+ return get(player.getUniqueId());
+ }
+
+ /**
+ * Gets the player data, or throws an exception if not found.
+ * The player data should be loaded when the player logs in
+ * so it's really bad practice to setup the player data if it's not loaded.
+ *
+ * @param uuid Player UUID
+ * @return Player data, if it's loaded
+ */
+ public PlayerData get(UUID uuid) {
+ return Objects.requireNonNull(data.get(uuid), "Player data is not loaded");
+ }
+
+
+ public static void loadDataFromJson(PlayerData data, String json) {
+ JsonObject object = MythicLib.plugin.getJson().parse(json, JsonObject.class);
+
+ data.setClassPoints(object.get("class_points").getAsInt());
+ data.setSkillPoints(object.get("skill_points").getAsInt());
+ data.setAttributePoints(object.get("attribute_points").getAsInt());
+ data.setAttributeReallocationPoints(object.get("attribute_realloc_points").getAsInt());
+ data.setLevel(object.get("level").getAsInt());
+ data.setExperience(object.get("experience").getAsInt());
+ if (object.has("class"))
+ data.setClass(MMOCore.plugin.classManager.get(object.get(("class")).getAsString()));
+
+ if (object.has("times_claimed")) {
+ JsonObject timesClaimed =object.get(("times_claimed")).getAsJsonObject();
+ timesClaimed.entrySet().forEach(entry -> data.getItemClaims().put(entry.getKey(), entry.getValue().getAsInt()));
+ }
+
+ if (object.has(("guild"))) {
+ Guild guild = MMOCore.plugin.dataProvider.getGuildManager().getGuild(object.get("guild").getAsString());
+ data.setGuild(guild.hasMember(data.getUniqueId()) ? guild : null);
+ }
+ if (object.has(("attributes"))) data.getAttributes().load(object.get("attributes").getAsString());
+ if (object.has(("professions")))
+ data.getCollectionSkills().load(object.get("professions").getAsString());
+ if (object.has(("quests"))) data.getQuestData().load(object.get("quests").getAsString());
+ data.getQuestData().updateBossBar();
+ if (object.has(("waypoints")))
+ data.getWaypoints().addAll(MMOCoreUtils.jsonArrayToList(object.get("waypoints").getAsString()));
+ if (object.has(("friends")))
+ MMOCoreUtils.jsonArrayToList(object.get("friends").getAsString()).forEach(str -> data.getFriends().add(UUID.fromString(str)))
+ ;
+ if (object.has(("skills"))) {
+ JsonObject skillsObject = object.get("skills").getAsJsonObject();
+ for (Map.Entry entry : skillsObject.entrySet())
+ data.setSkillLevel(entry.getKey(), entry.getValue().getAsInt());
+ }
+ if (object.has(("bound_skills")))
+ for (String skill : MMOCoreUtils.jsonArrayToList(object.get("bound_skills").getAsString()))
+ if (data.getProfess().hasSkill(skill))
+ data.getBoundSkills().add(data.getProfess().getSkill(skill));
+ if (object.has(("class_info"))) {
+ JsonObject classObject = object.get("class_info").getAsJsonObject();
+ for (Map.Entry entry : classObject.entrySet()) {
+ try {
+ PlayerClass profess = MMOCore.plugin.classManager.get(entry.getKey());
+ Validate.notNull(profess, "Could not find class '" + entry.getKey() + "'");
+ data.applyClassInfo(profess, new SavedClassInformation(entry.getValue().getAsJsonObject()));
+ } catch (IllegalArgumentException exception) {
+ MMOCore.log(Level.WARNING, "Could not load class info '" + entry.getKey() + "': " + exception.getMessage());
+ }
+ }
+ }
+
+ }
+
+
+ /**
+ * Safely unregisters the player data from the map.
+ * This saves the player data either through SQL or YAML,
+ * then closes the player data and clears it from the data map.
+ *
+ * @param playerData PLayer data to unregister
+ */
+ public void unregisterSafe(PlayerData playerData) {
+
+ // Save data async if required
+ if (playerData.isFullyLoaded())
+ Bukkit.getScheduler().runTaskAsynchronously(MMOCore.plugin, () -> {
+ saveData(playerData);
+
+ // Unregister once the data was saved
+ playerData.close();
+ data.remove(playerData.getUniqueId());
+ });
+
+ // Just unregister data without saving
+ else {
+ playerData.close();
+ data.remove(playerData.getUniqueId());
+ }
+ }
+
+ /**
+ * Offline player data is used to handle processes like friend removal
+ * which can still occur if one of the two players is offline.
+ *
+ * Unlike {@link #get(UUID)} this method never returns a null instance
+ *
+ * @param uuid Player unique id
+ * @return Offline player data
+ */
+ @NotNull
+ public abstract OfflinePlayerData getOffline(UUID uuid);
+
+ /**
+ * Called when a player logs in, loading the player data inside the map.
+ *
+ * For YAML configs or SQL databases, data is loaded as not to overload
+ * the main thread with SQL requests. Therefore, the player data returned
+ * by that method, when the player joined for the first time, is not
+ * fully loaded YET.
+ *
+ * @param uniqueId Player UUID
+ * @return The loaded player data.
+ */
+ public PlayerData setup(UUID uniqueId) {
+ // Load player data if it does not exist
+ if (!data.containsKey(uniqueId)) {
+ PlayerData newData = TemporaryPlayerData.has(uniqueId) ? new PlayerData(MMOPlayerData.get(uniqueId), TemporaryPlayerData.get(uniqueId)) : new PlayerData(MMOPlayerData.get(uniqueId));
+
+ // Schedule async data loading
+ Bukkit.getScheduler().runTaskAsynchronously(MMOCore.plugin, () -> {
+ loadData(newData);
+ newData.getStats().updateStats();
+ Bukkit.getPluginManager().callEvent(new AsyncPlayerDataLoadEvent(newData));
+ Bukkit.getScheduler().runTask(MMOCore.plugin, () -> Bukkit.getPluginManager().callEvent(new PlayerDataLoadEvent(newData)));
+ });
+
+ // Update data map
+ data.put(uniqueId, newData);
+
+ return newData;
+ }
+
+ return data.get(uniqueId);
+ }
+
+ public DefaultPlayerData getDefaultData() {
+ return defaultData;
+ }
+
+ public void loadDefaultData(ConfigurationSection config) {
+ defaultData = new DefaultPlayerData(config);
+ }
+
+ public boolean isLoaded(UUID uuid) {
+ return data.containsKey(uuid);
+ }
+
+ public Collection getLoaded() {
+ return data.values();
+ }
+
+ /**
+ * Called when player data must be loaded from database or config.
+ *
+ * @param data Player data to load
+ */
+ public abstract void loadData(PlayerData data);
+
+ /**
+ * Called when player data must be saved in configs or database.
+ * This method should always be called sync because it DOES register
+ * an async task in case MySQL storage is used.
+ *
+ * @param data Player data to save
+ */
+ public abstract void saveData(PlayerData data);
+
+ public class DefaultPlayerData {
+ private final int level, classPoints, skillPoints, attributePoints, attrReallocPoints;
+
+ public DefaultPlayerData(ConfigurationSection config) {
+ level = config.getInt("level", 1);
+ classPoints = config.getInt("class-points");
+ skillPoints = config.getInt("skill-points");
+ attributePoints = config.getInt("attribute-points");
+ attrReallocPoints = config.getInt("attribute-realloc-points");
+ }
+
+ public DefaultPlayerData(int level, int classPoints, int skillPoints, int attributePoints, int attrReallocPoints) {
+ this.level = level;
+ this.classPoints = classPoints;
+ this.skillPoints = skillPoints;
+ this.attributePoints = attributePoints;
+ this.attrReallocPoints = attrReallocPoints;
+ }
+
+ public int getLevel() {
+ return level;
+ }
+
+ public int getSkillPoints() {
+ return skillPoints;
+ }
+
+ public int getClassPoints() {
+ return classPoints;
+ }
+
+ public int getAttrReallocPoints() {
+ return attrReallocPoints;
+ }
+
+ public int getAttributePoints() {
+ return attributePoints;
+ }
+
+ public void apply(PlayerData player) {
+ player.setLevel(level);
+ player.setClassPoints(classPoints);
+ player.setSkillPoints(skillPoints);
+ player.setAttributePoints(attributePoints);
+ player.setAttributeReallocationPoints(attrReallocPoints);
+ }
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLDataProvider.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLDataProvider.java
similarity index 97%
rename from src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLDataProvider.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLDataProvider.java
index 38597892..b4917974 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLDataProvider.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLDataProvider.java
@@ -1,57 +1,57 @@
-package net.Indyuce.mmocore.manager.data.mysql;
-
-import io.lumine.mythic.lib.sql.MMODataSource;
-import net.Indyuce.mmocore.manager.data.DataProvider;
-import net.Indyuce.mmocore.manager.data.GuildDataManager;
-import net.Indyuce.mmocore.manager.data.PlayerDataManager;
-import net.Indyuce.mmocore.manager.data.yaml.YAMLGuildDataManager;
-import org.bukkit.configuration.file.FileConfiguration;
-
-public class MySQLDataProvider extends MMODataSource implements DataProvider {
- private final MySQLPlayerDataManager playerManager = new MySQLPlayerDataManager(this);
- private final YAMLGuildDataManager guildManager = new YAMLGuildDataManager();
-
- public MySQLDataProvider(FileConfiguration config) {
- this.setup(config);
- }
-
- @Override
- public void load() {
-
-
- /*TODO
- also move Debug function to mysql data provider
-
- String tableName = getPoolName();
-getResultAsync("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '" +getPoolName()+ "' AND TABLE_NAME = 'mmocore_playerdata' AND COLUMN_NAME = 'times_claimed'",
- result -> {
- if (!result.next())
- executeUpdateAsync()
- }):
- executeUpdateAsync();
-
-
- if (!provider.prepareStatement("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '" + provider.getDatabase()
- + "' AND TABLE_NAME = '" + provider.getBountyDataTable() + "' AND COLUMN_NAME = 'last_updated'").executeQuery().next())
- provider.prepareStatement("ALTER TABLE " + provider.getBountyDataTable() + " ADD COLUMN last_updated BIGINT").execute();*/
-
- executeUpdateAsync(
- "CREATE TABLE IF NOT EXISTS mmocore_playerdata(uuid VARCHAR(36),class_points "
- + "INT(11) DEFAULT 0,skill_points INT(11) DEFAULT 0,attribute_points INT(11) "
- + "DEFAULT 0,attribute_realloc_points INT(11) DEFAULT 0,level INT(11) DEFAULT 1,"
- + "experience INT(11) DEFAULT 0,class VARCHAR(20),guild VARCHAR(20),last_login LONG,"
- + "attributes LONGTEXT,professions LONGTEXT,times_claimed LONGTEXT,quests LONGTEXT,"
- + "waypoints LONGTEXT,friends LONGTEXT,skills LONGTEXT,bound_skills LONGTEXT,"
- + "class_info LONGTEXT, PRIMARY KEY (uuid));");
- }
-
- @Override
- public PlayerDataManager getDataManager() {
- return playerManager;
- }
-
- @Override
- public GuildDataManager getGuildManager() {
- return guildManager;
- }
-}
+package net.Indyuce.mmocore.manager.data.mysql;
+
+import io.lumine.mythic.lib.sql.MMODataSource;
+import net.Indyuce.mmocore.manager.data.DataProvider;
+import net.Indyuce.mmocore.manager.data.GuildDataManager;
+import net.Indyuce.mmocore.manager.data.PlayerDataManager;
+import net.Indyuce.mmocore.manager.data.yaml.YAMLGuildDataManager;
+import org.bukkit.configuration.file.FileConfiguration;
+
+public class MySQLDataProvider extends MMODataSource implements DataProvider {
+ private final MySQLPlayerDataManager playerManager = new MySQLPlayerDataManager(this);
+ private final YAMLGuildDataManager guildManager = new YAMLGuildDataManager();
+
+ public MySQLDataProvider(FileConfiguration config) {
+ this.setup(config);
+ }
+
+ @Override
+ public void load() {
+
+
+ /*TODO
+ also move Debug function to mysql data provider
+
+ String tableName = getPoolName();
+getResultAsync("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '" +getPoolName()+ "' AND TABLE_NAME = 'mmocore_playerdata' AND COLUMN_NAME = 'times_claimed'",
+ result -> {
+ if (!result.next())
+ executeUpdateAsync()
+ }):
+ executeUpdateAsync();
+
+
+ if (!provider.prepareStatement("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '" + provider.getDatabase()
+ + "' AND TABLE_NAME = '" + provider.getBountyDataTable() + "' AND COLUMN_NAME = 'last_updated'").executeQuery().next())
+ provider.prepareStatement("ALTER TABLE " + provider.getBountyDataTable() + " ADD COLUMN last_updated BIGINT").execute();*/
+
+ executeUpdateAsync(
+ "CREATE TABLE IF NOT EXISTS mmocore_playerdata(uuid VARCHAR(36),class_points "
+ + "INT(11) DEFAULT 0,skill_points INT(11) DEFAULT 0,attribute_points INT(11) "
+ + "DEFAULT 0,attribute_realloc_points INT(11) DEFAULT 0,level INT(11) DEFAULT 1,"
+ + "experience INT(11) DEFAULT 0,class VARCHAR(20),guild VARCHAR(20),last_login LONG,"
+ + "attributes LONGTEXT,professions LONGTEXT,times_claimed LONGTEXT,quests LONGTEXT,"
+ + "waypoints LONGTEXT,friends LONGTEXT,skills LONGTEXT,bound_skills LONGTEXT,"
+ + "class_info LONGTEXT, PRIMARY KEY (uuid));");
+ }
+
+ @Override
+ public PlayerDataManager getDataManager() {
+ return playerManager;
+ }
+
+ @Override
+ public GuildDataManager getGuildManager() {
+ return guildManager;
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLPlayerDataManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLPlayerDataManager.java
similarity index 94%
rename from src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLPlayerDataManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLPlayerDataManager.java
index 977b6784..f8d77bba 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLPlayerDataManager.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLPlayerDataManager.java
@@ -1,262 +1,260 @@
-package net.Indyuce.mmocore.manager.data.mysql;
-
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-import io.lumine.mythic.lib.MythicLib;
-import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.player.OfflinePlayerData;
-import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.api.player.profess.PlayerClass;
-import net.Indyuce.mmocore.api.player.profess.SavedClassInformation;
-import net.Indyuce.mmocore.api.util.MMOCoreUtils;
-import net.Indyuce.mmocore.guild.provided.Guild;
-import net.Indyuce.mmocore.manager.data.PlayerDataManager;
-import net.Indyuce.mmocore.manager.data.mysql.MySQLTableEditor.Table;
-import org.apache.commons.lang.Validate;
-import org.bukkit.Bukkit;
-import org.jetbrains.annotations.NotNull;
-
-import java.io.*;
-import java.net.Socket;
-import java.sql.SQLException;
-import java.util.*;
-import java.util.Map.Entry;
-import java.util.logging.Level;
-import java.util.stream.Collectors;
-
-import static net.Indyuce.mmocore.api.player.PlayerData.createClassInfoData;
-
-public class MySQLPlayerDataManager extends PlayerDataManager {
- private final MySQLDataProvider provider;
-
- public MySQLPlayerDataManager(MySQLDataProvider provider) {
- this.provider = provider;
- }
-
- @Override
- public void loadData(PlayerData data) {
- provider.getResult("SELECT * FROM mmocore_playerdata WHERE uuid = '" + data.getUniqueId() + "';", (result) -> {
- try {
- MMOCore.sqlDebug("Loading data for: '" + data.getUniqueId() + "'...");
-
- // Initialize custom resources
- if (!data.hasUsedTemporaryData()) {
- data.setMana(data.getStats().getStat("MAX_MANA"));
- data.setStamina(data.getStats().getStat("MAX_STAMINA"));
- data.setStellium(data.getStats().getStat("MAX_STELLIUM"));
- }
-
- if (!result.next()) {
- data.setLevel(getDefaultData().getLevel());
- data.setClassPoints(getDefaultData().getClassPoints());
- data.setSkillPoints(getDefaultData().getSkillPoints());
- data.setAttributePoints(getDefaultData().getAttributePoints());
- data.setAttributeReallocationPoints(getDefaultData().getAttrReallocPoints());
- data.setExperience(0);
- data.getQuestData().updateBossBar();
-
- data.setFullyLoaded();
- MMOCore.sqlDebug("Loaded DEFAULT data for: '" + data.getUniqueId() + "' as no saved data was found.");
- return;
- }
-
- data.setClassPoints(result.getInt("class_points"));
- data.setSkillPoints(result.getInt("skill_points"));
- data.setAttributePoints(result.getInt("attribute_points"));
- data.setAttributeReallocationPoints(result.getInt("attribute_realloc_points"));
- data.setLevel(result.getInt("level"));
- data.setExperience(result.getInt("experience"));
- if (!isEmpty(result.getString("class")))
- data.setClass(MMOCore.plugin.classManager.get(result.getString("class")));
-
- if (!isEmpty(result.getString("times_claimed"))) {
- JsonObject json = new JsonParser().parse(result.getString("times_claimed")).getAsJsonObject();
- json.entrySet().forEach(entry -> data.getItemClaims().put(entry.getKey(), entry.getValue().getAsInt()));
- }
-
- if (!isEmpty(result.getString("guild"))) {
- Guild guild = MMOCore.plugin.dataProvider.getGuildManager().getGuild(result.getString("guild"));
- data.setGuild(guild.getMembers().has(data.getUniqueId()) ? guild : null);
- }
- if (!isEmpty(result.getString("attributes"))) data.getAttributes().load(result.getString("attributes"));
- if (!isEmpty(result.getString("professions")))
- data.getCollectionSkills().load(result.getString("professions"));
- if (!isEmpty(result.getString("quests"))) data.getQuestData().load(result.getString("quests"));
- data.getQuestData().updateBossBar();
- if (!isEmpty(result.getString("waypoints")))
- data.getWaypoints().addAll(MMOCoreUtils.jsonArrayToList(result.getString("waypoints")));
- if (!isEmpty(result.getString("friends")))
- MMOCoreUtils.jsonArrayToList(result.getString("friends")).forEach(str -> data.getFriends().add(UUID.fromString(str)));
- if (!isEmpty(result.getString("skills"))) {
- JsonObject object = MythicLib.plugin.getJson().parse(result.getString("skills"), JsonObject.class);
- for (Entry entry : object.entrySet())
- data.setSkillLevel(entry.getKey(), entry.getValue().getAsInt());
- }
- if (!isEmpty(result.getString("bound_skills")))
- for (String skill : MMOCoreUtils.jsonArrayToList(result.getString("bound_skills")))
- if (data.getProfess().hasSkill(skill))
- data.getBoundSkills().add(data.getProfess().getSkill(skill));
- if (!isEmpty(result.getString("class_info"))) {
- JsonObject object = MythicLib.plugin.getJson().parse(result.getString("class_info"), JsonObject.class);
- for (Entry entry : object.entrySet()) {
- try {
- PlayerClass profess = MMOCore.plugin.classManager.get(entry.getKey());
- Validate.notNull(profess, "Could not find class '" + entry.getKey() + "'");
- data.applyClassInfo(profess, new SavedClassInformation(entry.getValue().getAsJsonObject()));
- } catch (IllegalArgumentException exception) {
- MMOCore.log(Level.WARNING, "Could not load class info '" + entry.getKey() + "': " + exception.getMessage());
- }
- }
- }
-
- //We now change the saved status to false because the data on SQL won't be the same as in the RAM
- MySQLTableEditor sql = new MySQLTableEditor(Table.PLAYERDATA, data.getUniqueId());
-
-
- data.setFullyLoaded();
- MMOCore.sqlDebug("Loaded saved data for: '" + data.getUniqueId() + "'!");
- MMOCore.sqlDebug(String.format("{ class: %s, level: %d }", data.getProfess().getId(), data.getLevel()));
- } catch (SQLException e) {
- e.printStackTrace();
- }
- });
- }
-
- private boolean isEmpty(String s) {
- return s == null || s.equalsIgnoreCase("null") || s.equalsIgnoreCase("{}") || s.equalsIgnoreCase("[]") || s.equalsIgnoreCase("");
- }
-
- @Override
- public void saveData(PlayerData data) {
-
- if (MMOCore.plugin.hasBungee) {
- //Initialize a connection with bungee using Sockets
- try {
- Socket socket=new Socket("localhost",25580);
- BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
- writer.write("BONJOUR");
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
-
-
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- DataOutputStream outStream = new DataOutputStream(out);
- try {
- outStream.writeChars(data.toJson());
- } catch (IOException e) {
- MMOCore.plugin.getLogger().log(Level.SEVERE, "Couldn't send the data to Bungee for player " + data.getPlayer().getName());
- return;
- }
- MMOCore.plugin.getLogger().log(Level.WARNING, "BUNGEE"+ Bukkit.getOnlinePlayers().size());
-
-
- MMOCore.sqlDebug("Sent data to bungee for: " + data.getUniqueId());
- MMOCore.sqlDebug(String.format("{ class: %s, level: %d }", data.getProfess().getId(), data.getLevel()));
-
-
- } else {
- MySQLTableEditor sql = new MySQLTableEditor(MySQLTableEditor.Table.PLAYERDATA, data.getUniqueId());
- MMOCore.sqlDebug("Saving data for: '" + data.getUniqueId() + "'...");
-
- sql.updateData("class_points", data.getClassPoints());
- sql.updateData("skill_points", data.getSkillPoints());
- sql.updateData("attribute_points", data.getAttributePoints());
- sql.updateData("attribute_realloc_points", data.getAttributeReallocationPoints());
- sql.updateData("level", data.getLevel());
- sql.updateData("experience", data.getExperience());
- sql.updateData("class", data.getProfess().getId());
- sql.updateData("last_login", data.getLastLogin());
- sql.updateData("guild", data.hasGuild() ? data.getGuild().getId() : null);
-
- sql.updateJSONArray("waypoints", data.getWaypoints());
- sql.updateJSONArray("friends", data.getFriends().stream().map(UUID::toString).collect(Collectors.toList()));
- sql.updateJSONArray("bound_skills", data.getBoundSkills().stream().map(skill -> skill.getSkill().getHandler().getId()).collect(Collectors.toList()));
-
- sql.updateJSONObject("skills", data.mapSkillLevels().entrySet());
- sql.updateJSONObject("times_claimed", data.getItemClaims().entrySet());
-
- sql.updateData("attributes", data.getAttributes().toJsonString());
- sql.updateData("professions", data.getCollectionSkills().toJsonString());
- sql.updateData("quests", data.getQuestData().toJsonString());
-
- sql.updateData("class_info", createClassInfoData(data).toString());
-
-
- MMOCore.sqlDebug("Saved data for: " + data.getUniqueId());
- MMOCore.sqlDebug(String.format("{ class: %s, level: %d }", data.getProfess().getId(), data.getLevel()));
-
-
- }
- }
-
-
- @NotNull
- @Override
- public OfflinePlayerData getOffline(UUID uuid) {
- return isLoaded(uuid) ? get(uuid) : new MySQLOfflinePlayerData(uuid);
- }
-
-
- public class MySQLOfflinePlayerData extends OfflinePlayerData {
- private int level;
- private long lastLogin;
- private PlayerClass profess;
- private List friends;
-
- public MySQLOfflinePlayerData(UUID uuid) {
- super(uuid);
-
- provider.getResult("SELECT * FROM mmocore_playerdata WHERE uuid = '" + uuid + "';", (result) -> {
- try {
- MMOCore.sqlDebug("Loading OFFLINE data for '" + uuid + "'.");
- if (!result.next()) {
- level = 0;
- lastLogin = 0;
- profess = MMOCore.plugin.classManager.getDefaultClass();
- friends = new ArrayList<>();
- MMOCore.sqlDebug("Default OFFLINE data loaded.");
- } else {
- level = result.getInt("level");
- lastLogin = result.getLong("last_login");
- profess = isEmpty(result.getString("class")) ? MMOCore.plugin.classManager.getDefaultClass() : MMOCore.plugin.classManager.get(result.getString("class"));
- if (!isEmpty(result.getString("friends")))
- MMOCoreUtils.jsonArrayToList(result.getString("friends")).forEach(str -> friends.add(UUID.fromString(str)));
- else friends = new ArrayList<>();
- MMOCore.sqlDebug("Saved OFFLINE data loaded.");
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- });
- }
-
- @Override
- public void removeFriend(UUID uuid) {
- friends.remove(uuid);
- new MySQLTableEditor(Table.PLAYERDATA, uuid).updateData("friends", friends.stream().map(UUID::toString).collect(Collectors.toList()));
- }
-
- @Override
- public boolean hasFriend(UUID uuid) {
- return friends.contains(uuid);
- }
-
- @Override
- public PlayerClass getProfess() {
- return profess;
- }
-
- @Override
- public int getLevel() {
- return level;
- }
-
- @Override
- public long getLastLogin() {
- return lastLogin;
- }
- }
-}
+package net.Indyuce.mmocore.manager.data.mysql;
+
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
+import io.lumine.mythic.lib.MythicLib;
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.api.player.OfflinePlayerData;
+import net.Indyuce.mmocore.api.player.PlayerData;
+import net.Indyuce.mmocore.api.player.profess.PlayerClass;
+import net.Indyuce.mmocore.api.player.profess.SavedClassInformation;
+import net.Indyuce.mmocore.api.util.MMOCoreUtils;
+import net.Indyuce.mmocore.guild.provided.Guild;
+import net.Indyuce.mmocore.manager.data.PlayerDataManager;
+import org.apache.commons.lang.Validate;
+import org.bukkit.Bukkit;
+import org.jetbrains.annotations.NotNull;
+
+import java.io.*;
+import java.net.Socket;
+import java.sql.SQLException;
+import java.util.*;
+import java.util.Map.Entry;
+import java.util.logging.Level;
+import java.util.stream.Collectors;
+
+import static net.Indyuce.mmocore.api.player.PlayerData.createClassInfoData;
+
+public class MySQLPlayerDataManager extends PlayerDataManager {
+ private final MySQLDataProvider provider;
+
+ public MySQLPlayerDataManager(MySQLDataProvider provider) {
+ this.provider = provider;
+ }
+
+ @Override
+ public void loadData(PlayerData data) {
+ provider.getResult("SELECT * FROM mmocore_playerdata WHERE uuid = '" + data.getUniqueId() + "';", (result) -> {
+ try {
+ MMOCore.sqlDebug("Loading data for: '" + data.getUniqueId() + "'...");
+
+ // Initialize custom resources
+ if (!data.hasUsedTemporaryData()) {
+ data.setMana(data.getStats().getStat("MAX_MANA"));
+ data.setStamina(data.getStats().getStat("MAX_STAMINA"));
+ data.setStellium(data.getStats().getStat("MAX_STELLIUM"));
+ }
+
+ if (!result.next()) {
+ data.setLevel(getDefaultData().getLevel());
+ data.setClassPoints(getDefaultData().getClassPoints());
+ data.setSkillPoints(getDefaultData().getSkillPoints());
+ data.setAttributePoints(getDefaultData().getAttributePoints());
+ data.setAttributeReallocationPoints(getDefaultData().getAttrReallocPoints());
+ data.setExperience(0);
+ data.getQuestData().updateBossBar();
+
+ data.setFullyLoaded();
+ MMOCore.sqlDebug("Loaded DEFAULT data for: '" + data.getUniqueId() + "' as no saved data was found.");
+ return;
+ }
+
+ data.setClassPoints(result.getInt("class_points"));
+ data.setSkillPoints(result.getInt("skill_points"));
+ data.setAttributePoints(result.getInt("attribute_points"));
+ data.setAttributeReallocationPoints(result.getInt("attribute_realloc_points"));
+ data.setLevel(result.getInt("level"));
+ data.setExperience(result.getInt("experience"));
+ if (!isEmpty(result.getString("class")))
+ data.setClass(MMOCore.plugin.classManager.get(result.getString("class")));
+
+ if (!isEmpty(result.getString("times_claimed"))) {
+ JsonObject json = new JsonParser().parse(result.getString("times_claimed")).getAsJsonObject();
+ json.entrySet().forEach(entry -> data.getItemClaims().put(entry.getKey(), entry.getValue().getAsInt()));
+ }
+
+ if (!isEmpty(result.getString("guild"))) {
+ Guild guild = MMOCore.plugin.dataProvider.getGuildManager().getGuild(result.getString("guild"));
+ data.setGuild(guild.hasMember(data.getUniqueId()) ? guild : null);
+ }
+ if (!isEmpty(result.getString("attributes"))) data.getAttributes().load(result.getString("attributes"));
+ if (!isEmpty(result.getString("professions")))
+ data.getCollectionSkills().load(result.getString("professions"));
+ if (!isEmpty(result.getString("quests"))) data.getQuestData().load(result.getString("quests"));
+ data.getQuestData().updateBossBar();
+ if (!isEmpty(result.getString("waypoints")))
+ data.getWaypoints().addAll(MMOCoreUtils.jsonArrayToList(result.getString("waypoints")));
+ if (!isEmpty(result.getString("friends")))
+ MMOCoreUtils.jsonArrayToList(result.getString("friends")).forEach(str -> data.getFriends().add(UUID.fromString(str)));
+ if (!isEmpty(result.getString("skills"))) {
+ JsonObject object = MythicLib.plugin.getJson().parse(result.getString("skills"), JsonObject.class);
+ for (Entry entry : object.entrySet())
+ data.setSkillLevel(entry.getKey(), entry.getValue().getAsInt());
+ }
+ if (!isEmpty(result.getString("bound_skills")))
+ for (String skill : MMOCoreUtils.jsonArrayToList(result.getString("bound_skills")))
+ if (data.getProfess().hasSkill(skill))
+ data.getBoundSkills().add(data.getProfess().getSkill(skill));
+ if (!isEmpty(result.getString("class_info"))) {
+ JsonObject object = MythicLib.plugin.getJson().parse(result.getString("class_info"), JsonObject.class);
+ for (Entry entry : object.entrySet()) {
+ try {
+ PlayerClass profess = MMOCore.plugin.classManager.get(entry.getKey());
+ Validate.notNull(profess, "Could not find class '" + entry.getKey() + "'");
+ data.applyClassInfo(profess, new SavedClassInformation(entry.getValue().getAsJsonObject()));
+ } catch (IllegalArgumentException exception) {
+ MMOCore.log(Level.WARNING, "Could not load class info '" + entry.getKey() + "': " + exception.getMessage());
+ }
+ }
+ }
+
+ //We now change the saved status to false because the data on SQL won't be the same as in the RAM
+ MySQLTableEditor sql = new MySQLTableEditor(MySQLTableEditor.Table.PLAYERDATA, data.getUniqueId());
+
+
+ data.setFullyLoaded();
+ MMOCore.sqlDebug("Loaded saved data for: '" + data.getUniqueId() + "'!");
+ MMOCore.sqlDebug(String.format("{ class: %s, level: %d }", data.getProfess().getId(), data.getLevel()));
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ });
+ }
+
+ private boolean isEmpty(String s) {
+ return s == null || s.equalsIgnoreCase("null") || s.equalsIgnoreCase("{}") || s.equalsIgnoreCase("[]") || s.equalsIgnoreCase("");
+ }
+
+ @Override
+ public void saveData(PlayerData data) {
+
+ if (MMOCore.plugin.hasBungee) {
+ //Initialize a connection with bungee using Sockets
+ try {
+ Socket socket=new Socket("localhost",25580);
+ BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
+ writer.write("BONJOUR");
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+
+
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ DataOutputStream outStream = new DataOutputStream(out);
+ try {
+ outStream.writeChars(data.toJson());
+ } catch (IOException e) {
+ MMOCore.plugin.getLogger().log(Level.SEVERE, "Couldn't send the data to Bungee for player " + data.getPlayer().getName());
+ return;
+ }
+ MMOCore.plugin.getLogger().log(Level.WARNING, "BUNGEE"+ Bukkit.getOnlinePlayers().size());
+
+
+ MMOCore.sqlDebug("Sent data to bungee for: " + data.getUniqueId());
+ MMOCore.sqlDebug(String.format("{ class: %s, level: %d }", data.getProfess().getId(), data.getLevel()));
+
+
+ } else {
+ MySQLTableEditor sql = new MySQLTableEditor(MySQLTableEditor.Table.PLAYERDATA, data.getUniqueId());
+ MMOCore.sqlDebug("Saving data for: '" + data.getUniqueId() + "'...");
+
+ sql.updateData("class_points", data.getClassPoints());
+ sql.updateData("skill_points", data.getSkillPoints());
+ sql.updateData("attribute_points", data.getAttributePoints());
+ sql.updateData("attribute_realloc_points", data.getAttributeReallocationPoints());
+ sql.updateData("level", data.getLevel());
+ sql.updateData("experience", data.getExperience());
+ sql.updateData("class", data.getProfess().getId());
+ sql.updateData("last_login", data.getLastLogin());
+ sql.updateData("guild", data.hasGuild() ? data.getGuild().getId() : null);
+
+ sql.updateJSONArray("waypoints", data.getWaypoints());
+ sql.updateJSONArray("friends", data.getFriends().stream().map(UUID::toString).collect(Collectors.toList()));
+ sql.updateJSONArray("bound_skills", data.getBoundSkills().stream().map(skill -> skill.getSkill().getHandler().getId()).collect(Collectors.toList()));
+
+ sql.updateJSONObject("skills", data.mapSkillLevels().entrySet());
+ sql.updateJSONObject("times_claimed", data.getItemClaims().entrySet());
+
+ sql.updateData("attributes", data.getAttributes().toJsonString());
+ sql.updateData("professions", data.getCollectionSkills().toJsonString());
+ sql.updateData("quests", data.getQuestData().toJsonString());
+
+ sql.updateData("class_info", createClassInfoData(data).toString());
+
+
+ MMOCore.sqlDebug("Saved data for: " + data.getUniqueId());
+ MMOCore.sqlDebug(String.format("{ class: %s, level: %d }", data.getProfess().getId(), data.getLevel()));
+
+
+ }
+ }
+
+
+ @NotNull
+ @Override
+ public OfflinePlayerData getOffline(UUID uuid) {
+ return isLoaded(uuid) ? get(uuid) : new MySQLOfflinePlayerData(uuid);
+ }
+
+
+ public class MySQLOfflinePlayerData extends OfflinePlayerData {
+ private int level;
+ private long lastLogin;
+ private PlayerClass profess;
+ private List friends;
+
+ public MySQLOfflinePlayerData(UUID uuid) {
+ super(uuid);
+
+ provider.getResult("SELECT * FROM mmocore_playerdata WHERE uuid = '" + uuid + "';", (result) -> {
+ try {
+ MMOCore.sqlDebug("Loading OFFLINE data for '" + uuid + "'.");
+ if (!result.next()) {
+ level = 0;
+ lastLogin = 0;
+ profess = MMOCore.plugin.classManager.getDefaultClass();
+ friends = new ArrayList<>();
+ MMOCore.sqlDebug("Default OFFLINE data loaded.");
+ } else {
+ level = result.getInt("level");
+ lastLogin = result.getLong("last_login");
+ profess = isEmpty(result.getString("class")) ? MMOCore.plugin.classManager.getDefaultClass() : MMOCore.plugin.classManager.get(result.getString("class"));
+ if (!isEmpty(result.getString("friends")))
+ MMOCoreUtils.jsonArrayToList(result.getString("friends")).forEach(str -> friends.add(UUID.fromString(str)));
+ else friends = new ArrayList<>();
+ MMOCore.sqlDebug("Saved OFFLINE data loaded.");
+ }
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ });
+ }
+
+ @Override
+ public void removeFriend(UUID uuid) {
+ friends.remove(uuid);
+ new MySQLTableEditor(MySQLTableEditor.Table.PLAYERDATA, uuid).updateData("friends", friends.stream().map(UUID::toString).collect(Collectors.toList()));
+ }
+
+ @Override
+ public boolean hasFriend(UUID uuid) {
+ return friends.contains(uuid);
+ }
+
+ @Override
+ public PlayerClass getProfess() {
+ return profess;
+ }
+
+ @Override
+ public int getLevel() {
+ return level;
+ }
+
+ @Override
+ public long getLastLogin() {
+ return lastLogin;
+ }
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLTableEditor.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLTableEditor.java
similarity index 96%
rename from src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLTableEditor.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLTableEditor.java
index f6d1a7ad..8f5cbea7 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLTableEditor.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLTableEditor.java
@@ -1,55 +1,55 @@
-package net.Indyuce.mmocore.manager.data.mysql;
-
-import java.util.Collection;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.UUID;
-
-import com.google.gson.JsonArray;
-import com.google.gson.JsonObject;
-
-import net.Indyuce.mmocore.MMOCore;
-
-public class MySQLTableEditor {
- private final Table table;
- private final UUID uuid;
-
- public MySQLTableEditor(Table table, UUID uuid) {
- this.table = table;
- this.uuid = uuid;
- }
-
- public void updateData(String key, Object value) {
- ((MySQLDataProvider) MMOCore.plugin.dataProvider).executeUpdate("INSERT INTO " + table + "(uuid, " + key
- + ") VALUES('" + uuid + "', '" + value + "') ON DUPLICATE KEY UPDATE " + key + "='" + value + "';");
- }
-
- public void updateJSONArray(String key, Collection collection) {
- JsonArray json = new JsonArray();
- for (String s : collection)
- json.add(s);
- updateData(key, json.toString());
- }
-
- public void updateJSONObject(String key, Set> collection) {
- JsonObject json = new JsonObject();
- for (Entry entry : collection)
- json.addProperty(entry.getKey(), entry.getValue());
- updateData(key, json.toString());
- }
-
- public enum Table {
- PLAYERDATA("mmocore_playerdata"), GUILDDATA("mmocore_guilddata");
-
- final String tableName;
-
- Table(String tN) {
- tableName = tN;
- }
-
- @Override
- public String toString() {
- return tableName;
- }
- }
-}
+package net.Indyuce.mmocore.manager.data.mysql;
+
+import java.util.Collection;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.UUID;
+
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
+
+import net.Indyuce.mmocore.MMOCore;
+
+public class MySQLTableEditor {
+ private final Table table;
+ private final UUID uuid;
+
+ public MySQLTableEditor(Table table, UUID uuid) {
+ this.table = table;
+ this.uuid = uuid;
+ }
+
+ public void updateData(String key, Object value) {
+ ((MySQLDataProvider) MMOCore.plugin.dataProvider).executeUpdate("INSERT INTO " + table + "(uuid, " + key
+ + ") VALUES('" + uuid + "', '" + value + "') ON DUPLICATE KEY UPDATE " + key + "='" + value + "';");
+ }
+
+ public void updateJSONArray(String key, Collection collection) {
+ JsonArray json = new JsonArray();
+ for (String s : collection)
+ json.add(s);
+ updateData(key, json.toString());
+ }
+
+ public void updateJSONObject(String key, Set> collection) {
+ JsonObject json = new JsonObject();
+ for (Entry entry : collection)
+ json.addProperty(entry.getKey(), entry.getValue());
+ updateData(key, json.toString());
+ }
+
+ public enum Table {
+ PLAYERDATA("mmocore_playerdata"), GUILDDATA("mmocore_guilddata");
+
+ final String tableName;
+
+ Table(String tN) {
+ tableName = tN;
+ }
+
+ @Override
+ public String toString() {
+ return tableName;
+ }
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLDataProvider.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLDataProvider.java
similarity index 96%
rename from src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLDataProvider.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLDataProvider.java
index d6ea6a2b..39d20dd5 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLDataProvider.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLDataProvider.java
@@ -1,20 +1,20 @@
-package net.Indyuce.mmocore.manager.data.yaml;
-
-import net.Indyuce.mmocore.manager.data.DataProvider;
-import net.Indyuce.mmocore.manager.data.GuildDataManager;
-import net.Indyuce.mmocore.manager.data.PlayerDataManager;
-
-public class YAMLDataProvider implements DataProvider {
- private final YAMLPlayerDataManager playerManager = new YAMLPlayerDataManager(this);
- private final YAMLGuildDataManager guildManager = new YAMLGuildDataManager();
-
- @Override
- public PlayerDataManager getDataManager() {
- return playerManager;
- }
-
- @Override
- public GuildDataManager getGuildManager() {
- return guildManager;
- }
-}
+package net.Indyuce.mmocore.manager.data.yaml;
+
+import net.Indyuce.mmocore.manager.data.DataProvider;
+import net.Indyuce.mmocore.manager.data.GuildDataManager;
+import net.Indyuce.mmocore.manager.data.PlayerDataManager;
+
+public class YAMLDataProvider implements DataProvider {
+ private final YAMLPlayerDataManager playerManager = new YAMLPlayerDataManager(this);
+ private final YAMLGuildDataManager guildManager = new YAMLGuildDataManager();
+
+ @Override
+ public PlayerDataManager getDataManager() {
+ return playerManager;
+ }
+
+ @Override
+ public GuildDataManager getGuildManager() {
+ return guildManager;
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLGuildDataManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLGuildDataManager.java
similarity index 97%
rename from src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLGuildDataManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLGuildDataManager.java
index 15d9e65e..ab2557ce 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLGuildDataManager.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLGuildDataManager.java
@@ -1,50 +1,50 @@
-package net.Indyuce.mmocore.manager.data.yaml;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-import org.bukkit.configuration.file.FileConfiguration;
-import org.bukkit.configuration.file.YamlConfiguration;
-
-import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.ConfigFile;
-import net.Indyuce.mmocore.guild.provided.Guild;
-import net.Indyuce.mmocore.manager.data.GuildDataManager;
-
-public class YAMLGuildDataManager extends GuildDataManager {
- @Override
- public void save(Guild guild) {
- ConfigFile config = new ConfigFile(guild);
- config.getConfig().set("name", guild.getName());
- config.getConfig().set("tag", guild.getTag());
- config.getConfig().set("owner", guild.getOwner().toString());
-
- List memberList = new ArrayList<>();
- guild.forEachMember(uuid -> memberList.add(uuid.toString()));
- config.getConfig().set("members", memberList);
-
- config.save();
- }
-
- @Override
- public void load() {
- File guildsFolder = new File(MMOCore.plugin.getDataFolder(), "guilds");
- if (!guildsFolder.exists())
- guildsFolder.mkdirs();
- for (File file : guildsFolder.listFiles()) {
- if (!file.isDirectory() && file.getName().substring(file.getName().lastIndexOf('.')).equalsIgnoreCase(".yml")) {
- FileConfiguration c = YamlConfiguration.loadConfiguration(file);
- Guild guild = newRegisteredGuild(UUID.fromString(c.getString("owner")), c.getString("name"), c.getString("tag"));
- for (String m : c.getStringList("members"))
- guild.registerMember(UUID.fromString(m));
- }
- }
- }
-
- @Override
- public void delete(Guild guild) {
- new ConfigFile(guild).delete();
- }
-}
+package net.Indyuce.mmocore.manager.data.yaml;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import net.Indyuce.mmocore.MMOCore;
+import org.bukkit.configuration.file.FileConfiguration;
+import org.bukkit.configuration.file.YamlConfiguration;
+
+import net.Indyuce.mmocore.api.ConfigFile;
+import net.Indyuce.mmocore.guild.provided.Guild;
+import net.Indyuce.mmocore.manager.data.GuildDataManager;
+
+public class YAMLGuildDataManager extends GuildDataManager {
+ @Override
+ public void save(Guild guild) {
+ ConfigFile config = new ConfigFile(guild);
+ config.getConfig().set("name", guild.getName());
+ config.getConfig().set("tag", guild.getTag());
+ config.getConfig().set("owner", guild.getOwner().toString());
+
+ List memberList = new ArrayList<>();
+ guild.forEachMember(uuid -> memberList.add(uuid.toString()));
+ config.getConfig().set("members", memberList);
+
+ config.save();
+ }
+
+ @Override
+ public void load() {
+ File guildsFolder = new File(MMOCore.plugin.getDataFolder(), "guilds");
+ if (!guildsFolder.exists())
+ guildsFolder.mkdirs();
+ for (File file : guildsFolder.listFiles()) {
+ if (!file.isDirectory() && file.getName().substring(file.getName().lastIndexOf('.')).equalsIgnoreCase(".yml")) {
+ FileConfiguration c = YamlConfiguration.loadConfiguration(file);
+ Guild guild = newRegisteredGuild(UUID.fromString(c.getString("owner")), c.getString("name"), c.getString("tag"));
+ for (String m : c.getStringList("members"))
+ guild.registerMember(UUID.fromString(m));
+ }
+ }
+ }
+
+ @Override
+ public void delete(Guild guild) {
+ new ConfigFile(guild).delete();
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLOfflinePlayerData.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLOfflinePlayerData.java
similarity index 96%
rename from src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLOfflinePlayerData.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLOfflinePlayerData.java
index c2eb4047..67de7675 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLOfflinePlayerData.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLOfflinePlayerData.java
@@ -1,51 +1,51 @@
-package net.Indyuce.mmocore.manager.data.yaml;
-
-import java.util.List;
-import java.util.UUID;
-
-import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.ConfigFile;
-import net.Indyuce.mmocore.api.player.OfflinePlayerData;
-import net.Indyuce.mmocore.api.player.profess.PlayerClass;
-
-public class YAMLOfflinePlayerData extends OfflinePlayerData {
- private final ConfigFile config;
-
- /**
- * Supports offline player data operations like friend removals which can't
- * be handled when their player data is not loaded in the data map.
- */
- public YAMLOfflinePlayerData(UUID uuid) {
- super(uuid);
-
- config = new ConfigFile(uuid);
- }
-
- @Override
- public void removeFriend(UUID uuid) {
- List friends = config.getConfig().getStringList("friends");
- friends.remove(uuid.toString());
- config.getConfig().set("friends", friends);
- config.save();
- }
-
- @Override
- public boolean hasFriend(UUID uuid) {
- return config.getConfig().getStringList("friends").contains(uuid.toString());
- }
-
- @Override
- public PlayerClass getProfess() {
- return config.getConfig().contains("class") ? MMOCore.plugin.classManager.get(config.getConfig().getString("class")) : MMOCore.plugin.classManager.getDefaultClass();
- }
-
- @Override
- public int getLevel() {
- return config.getConfig().getInt("level");
- }
-
- @Override
- public long getLastLogin() {
- return config.getConfig().getLong("last-login");
- }
-}
+package net.Indyuce.mmocore.manager.data.yaml;
+
+import java.util.List;
+import java.util.UUID;
+
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.api.player.profess.PlayerClass;
+import net.Indyuce.mmocore.api.ConfigFile;
+import net.Indyuce.mmocore.api.player.OfflinePlayerData;
+
+public class YAMLOfflinePlayerData extends OfflinePlayerData {
+ private final ConfigFile config;
+
+ /**
+ * Supports offline player data operations like friend removals which can't
+ * be handled when their player data is not loaded in the data map.
+ */
+ public YAMLOfflinePlayerData(UUID uuid) {
+ super(uuid);
+
+ config = new ConfigFile(uuid);
+ }
+
+ @Override
+ public void removeFriend(UUID uuid) {
+ List friends = config.getConfig().getStringList("friends");
+ friends.remove(uuid.toString());
+ config.getConfig().set("friends", friends);
+ config.save();
+ }
+
+ @Override
+ public boolean hasFriend(UUID uuid) {
+ return config.getConfig().getStringList("friends").contains(uuid.toString());
+ }
+
+ @Override
+ public PlayerClass getProfess() {
+ return config.getConfig().contains("class") ? MMOCore.plugin.classManager.get(config.getConfig().getString("class")) : MMOCore.plugin.classManager.getDefaultClass();
+ }
+
+ @Override
+ public int getLevel() {
+ return config.getConfig().getInt("level");
+ }
+
+ @Override
+ public long getLastLogin() {
+ return config.getConfig().getLong("last-login");
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLPlayerDataManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLPlayerDataManager.java
similarity index 97%
rename from src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLPlayerDataManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLPlayerDataManager.java
index e9f6986d..37cc03f7 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLPlayerDataManager.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLPlayerDataManager.java
@@ -1,147 +1,147 @@
-package net.Indyuce.mmocore.manager.data.yaml;
-
-import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.ConfigFile;
-import net.Indyuce.mmocore.api.player.OfflinePlayerData;
-import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.api.player.profess.PlayerClass;
-import net.Indyuce.mmocore.api.player.profess.SavedClassInformation;
-import net.Indyuce.mmocore.guild.provided.Guild;
-import net.Indyuce.mmocore.manager.data.DataProvider;
-import net.Indyuce.mmocore.manager.data.PlayerDataManager;
-import org.apache.commons.lang.Validate;
-import org.bukkit.configuration.file.FileConfiguration;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-import java.util.logging.Level;
-import java.util.stream.Collectors;
-
-public class YAMLPlayerDataManager extends PlayerDataManager {
- private final DataProvider provider;
-
- public YAMLPlayerDataManager(DataProvider provider) {
- this.provider = provider;
- }
-
- @Override
- public void loadData(PlayerData data) {
- FileConfiguration config = new ConfigFile(data.getUniqueId()).getConfig();
-
- data.setClassPoints(config.getInt("class-points", getDefaultData().getClassPoints()));
- data.setSkillPoints(config.getInt("skill-points", getDefaultData().getSkillPoints()));
- data.setAttributePoints(config.getInt("attribute-points", getDefaultData().getAttributePoints()));
- data.setAttributeReallocationPoints(config.getInt("attribute-realloc-points", getDefaultData().getAttrReallocPoints()));
- data.setLevel(config.getInt("level", getDefaultData().getLevel()));
- data.setExperience(config.getInt("experience"));
- if (config.contains("class"))
- data.setClass(MMOCore.plugin.classManager.get(config.getString("class")));
-
- if (!data.hasUsedTemporaryData()) {
- data.setMana(data.getStats().getStat("MAX_MANA"));
- data.setStamina(data.getStats().getStat("MAX_STAMINA"));
- data.setStellium(data.getStats().getStat("MAX_STELLIUM"));
- }
-
- if (config.contains("guild")) {
- Guild guild = provider.getGuildManager().getGuild(config.getString("guild"));
- data.setGuild(guild.hasMember(data.getUniqueId()) ? guild : null);
- }
- if (config.contains("attribute"))
- data.getAttributes().load(config.getConfigurationSection("attribute"));
- if (config.contains("profession"))
- data.getCollectionSkills().load(config.getConfigurationSection("profession"));
- if (config.contains("quest"))
- data.getQuestData().load(config.getConfigurationSection("quest"));
- data.getQuestData().updateBossBar();
- if (config.contains("waypoints"))
- data.getWaypoints().addAll(config.getStringList("waypoints"));
- if (config.contains("friends"))
- config.getStringList("friends").forEach(str -> data.getFriends().add(UUID.fromString(str)));
- if (config.contains("skill"))
- config.getConfigurationSection("skill").getKeys(false).forEach(id -> data.setSkillLevel(id, config.getInt("skill." + id)));
- if (config.contains("bound-skills"))
- for (String id : config.getStringList("bound-skills"))
- if (data.getProfess().hasSkill(id))
- data.getBoundSkills().add(data.getProfess().getSkill(id));
-
- if (config.contains("times-claimed"))
- for (String key : config.getConfigurationSection("times-claimed").getKeys(true))
- data.getItemClaims().put(key, config.getInt("times-claimed." + key));
-
- // Load class slots, use try so the player can log in.
- if (config.contains("class-info"))
- for (String key : config.getConfigurationSection("class-info").getKeys(false))
- try {
- PlayerClass profess = MMOCore.plugin.classManager.get(key);
- Validate.notNull(profess, "Could not find class '" + key + "'");
- data.applyClassInfo(profess, new SavedClassInformation(config.getConfigurationSection("class-info." + key)));
- } catch (IllegalArgumentException exception) {
- MMOCore.log(Level.WARNING, "Could not load class info '" + key + "': " + exception.getMessage());
- }
-
- data.setFullyLoaded();
- }
-
- @Override
- public void saveData(PlayerData data) {
- ConfigFile file = new ConfigFile(data.getUniqueId());
- FileConfiguration config = file.getConfig();
-
- config.set("class-points", data.getClassPoints());
- config.set("skill-points", data.getSkillPoints());
- config.set("attribute-points", data.getAttributePoints());
- // config.set("skill-realloc-points", skillReallocationPoints);
- config.set("attribute-realloc-points", data.getAttributeReallocationPoints());
- config.set("level", data.getLevel());
- config.set("experience", data.getExperience());
- config.set("class", data.getProfess().getId());
- config.set("waypoints", new ArrayList<>(data.getWaypoints()));
- config.set("friends", data.getFriends().stream().map(UUID::toString).collect(Collectors.toList()));
- config.set("last-login", data.getLastLogin());
- config.set("guild", data.hasGuild() ? data.getGuild().getId() : null);
-
- config.set("skill", null);
- data.mapSkillLevels().forEach((key1, value) -> config.set("skill." + key1, value));
- data.getItemClaims().forEach((key, times) -> config.set("times-claimed." + key, times));
-
- List boundSkills = new ArrayList<>();
- data.getBoundSkills().forEach(skill -> boundSkills.add(skill.getSkill().getHandler().getId()));
- config.set("bound-skills", boundSkills);
-
- config.set("attribute", null);
- config.createSection("attribute");
- data.getAttributes().save(config.getConfigurationSection("attribute"));
-
- config.set("profession", null);
- config.createSection("profession");
- data.getCollectionSkills().save(config.getConfigurationSection("profession"));
-
- config.set("quest", null);
- config.createSection("quest");
- data.getQuestData().save(config.getConfigurationSection("quest"));
-
- config.set("class-info", null);
- for (String key : data.getSavedClasses()) {
- SavedClassInformation info = data.getClassInfo(key);
- config.set("class-info." + key + ".level", info.getLevel());
- config.set("class-info." + key + ".experience", info.getExperience());
- config.set("class-info." + key + ".skill-points", info.getSkillPoints());
- config.set("class-info." + key + ".attribute-points", info.getAttributePoints());
- config.set("class-info." + key + ".attribute-realloc-points", info.getAttributeReallocationPoints());
- info.getSkillKeys().forEach(skill -> config.set("class-info." + key + ".skill." + skill, info.getSkillLevel(skill)));
- info.getAttributeKeys()
- .forEach(attribute -> config.set("class-info." + key + ".attribute." + attribute, info.getAttributeLevel(attribute)));
- }
-
- file.save();
- }
-
- @NotNull
- @Override
- public OfflinePlayerData getOffline(UUID uuid) {
- return isLoaded(uuid) ? get(uuid) : new YAMLOfflinePlayerData(uuid);
- }
-}
+package net.Indyuce.mmocore.manager.data.yaml;
+
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.api.player.profess.PlayerClass;
+import net.Indyuce.mmocore.api.ConfigFile;
+import net.Indyuce.mmocore.api.player.OfflinePlayerData;
+import net.Indyuce.mmocore.api.player.PlayerData;
+import net.Indyuce.mmocore.api.player.profess.SavedClassInformation;
+import net.Indyuce.mmocore.guild.provided.Guild;
+import net.Indyuce.mmocore.manager.data.DataProvider;
+import net.Indyuce.mmocore.manager.data.PlayerDataManager;
+import org.apache.commons.lang.Validate;
+import org.bukkit.configuration.file.FileConfiguration;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+import java.util.logging.Level;
+import java.util.stream.Collectors;
+
+public class YAMLPlayerDataManager extends PlayerDataManager {
+ private final DataProvider provider;
+
+ public YAMLPlayerDataManager(DataProvider provider) {
+ this.provider = provider;
+ }
+
+ @Override
+ public void loadData(PlayerData data) {
+ FileConfiguration config = new ConfigFile(data.getUniqueId()).getConfig();
+
+ data.setClassPoints(config.getInt("class-points", getDefaultData().getClassPoints()));
+ data.setSkillPoints(config.getInt("skill-points", getDefaultData().getSkillPoints()));
+ data.setAttributePoints(config.getInt("attribute-points", getDefaultData().getAttributePoints()));
+ data.setAttributeReallocationPoints(config.getInt("attribute-realloc-points", getDefaultData().getAttrReallocPoints()));
+ data.setLevel(config.getInt("level", getDefaultData().getLevel()));
+ data.setExperience(config.getInt("experience"));
+ if (config.contains("class"))
+ data.setClass(MMOCore.plugin.classManager.get(config.getString("class")));
+
+ if (!data.hasUsedTemporaryData()) {
+ data.setMana(data.getStats().getStat("MAX_MANA"));
+ data.setStamina(data.getStats().getStat("MAX_STAMINA"));
+ data.setStellium(data.getStats().getStat("MAX_STELLIUM"));
+ }
+
+ if (config.contains("guild")) {
+ Guild guild = provider.getGuildManager().getGuild(config.getString("guild"));
+ data.setGuild(guild.hasMember(data.getUniqueId()) ? guild : null);
+ }
+ if (config.contains("attribute"))
+ data.getAttributes().load(config.getConfigurationSection("attribute"));
+ if (config.contains("profession"))
+ data.getCollectionSkills().load(config.getConfigurationSection("profession"));
+ if (config.contains("quest"))
+ data.getQuestData().load(config.getConfigurationSection("quest"));
+ data.getQuestData().updateBossBar();
+ if (config.contains("waypoints"))
+ data.getWaypoints().addAll(config.getStringList("waypoints"));
+ if (config.contains("friends"))
+ config.getStringList("friends").forEach(str -> data.getFriends().add(UUID.fromString(str)));
+ if (config.contains("skill"))
+ config.getConfigurationSection("skill").getKeys(false).forEach(id -> data.setSkillLevel(id, config.getInt("skill." + id)));
+ if (config.contains("bound-skills"))
+ for (String id : config.getStringList("bound-skills"))
+ if (data.getProfess().hasSkill(id))
+ data.getBoundSkills().add(data.getProfess().getSkill(id));
+
+ if (config.contains("times-claimed"))
+ for (String key : config.getConfigurationSection("times-claimed").getKeys(true))
+ data.getItemClaims().put(key, config.getInt("times-claimed." + key));
+
+ // Load class slots, use try so the player can log in.
+ if (config.contains("class-info"))
+ for (String key : config.getConfigurationSection("class-info").getKeys(false))
+ try {
+ PlayerClass profess = MMOCore.plugin.classManager.get(key);
+ Validate.notNull(profess, "Could not find class '" + key + "'");
+ data.applyClassInfo(profess, new SavedClassInformation(config.getConfigurationSection("class-info." + key)));
+ } catch (IllegalArgumentException exception) {
+ MMOCore.log(Level.WARNING, "Could not load class info '" + key + "': " + exception.getMessage());
+ }
+
+ data.setFullyLoaded();
+ }
+
+ @Override
+ public void saveData(PlayerData data) {
+ ConfigFile file = new ConfigFile(data.getUniqueId());
+ FileConfiguration config = file.getConfig();
+
+ config.set("class-points", data.getClassPoints());
+ config.set("skill-points", data.getSkillPoints());
+ config.set("attribute-points", data.getAttributePoints());
+ // config.set("skill-realloc-points", skillReallocationPoints);
+ config.set("attribute-realloc-points", data.getAttributeReallocationPoints());
+ config.set("level", data.getLevel());
+ config.set("experience", data.getExperience());
+ config.set("class", data.getProfess().getId());
+ config.set("waypoints", new ArrayList<>(data.getWaypoints()));
+ config.set("friends", data.getFriends().stream().map(UUID::toString).collect(Collectors.toList()));
+ config.set("last-login", data.getLastLogin());
+ config.set("guild", data.hasGuild() ? data.getGuild().getId() : null);
+
+ config.set("skill", null);
+ data.mapSkillLevels().forEach((key1, value) -> config.set("skill." + key1, value));
+ data.getItemClaims().forEach((key, times) -> config.set("times-claimed." + key, times));
+
+ List boundSkills = new ArrayList<>();
+ data.getBoundSkills().forEach(skill -> boundSkills.add(skill.getSkill().getHandler().getId()));
+ config.set("bound-skills", boundSkills);
+
+ config.set("attribute", null);
+ config.createSection("attribute");
+ data.getAttributes().save(config.getConfigurationSection("attribute"));
+
+ config.set("profession", null);
+ config.createSection("profession");
+ data.getCollectionSkills().save(config.getConfigurationSection("profession"));
+
+ config.set("quest", null);
+ config.createSection("quest");
+ data.getQuestData().save(config.getConfigurationSection("quest"));
+
+ config.set("class-info", null);
+ for (String key : data.getSavedClasses()) {
+ SavedClassInformation info = data.getClassInfo(key);
+ config.set("class-info." + key + ".level", info.getLevel());
+ config.set("class-info." + key + ".experience", info.getExperience());
+ config.set("class-info." + key + ".skill-points", info.getSkillPoints());
+ config.set("class-info." + key + ".attribute-points", info.getAttributePoints());
+ config.set("class-info." + key + ".attribute-realloc-points", info.getAttributeReallocationPoints());
+ info.getSkillKeys().forEach(skill -> config.set("class-info." + key + ".skill." + skill, info.getSkillLevel(skill)));
+ info.getAttributeKeys()
+ .forEach(attribute -> config.set("class-info." + key + ".attribute." + attribute, info.getAttributeLevel(attribute)));
+ }
+
+ file.save();
+ }
+
+ @NotNull
+ @Override
+ public OfflinePlayerData getOffline(UUID uuid) {
+ return isLoaded(uuid) ? get(uuid) : new YAMLOfflinePlayerData(uuid);
+ }
+}
diff --git a/src/main/java/net/Indyuce/mmocore/manager/profession/AlchemyManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/AlchemyManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/profession/AlchemyManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/AlchemyManager.java
diff --git a/src/main/java/net/Indyuce/mmocore/manager/profession/CustomBlockManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/CustomBlockManager.java
similarity index 95%
rename from src/main/java/net/Indyuce/mmocore/manager/profession/CustomBlockManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/CustomBlockManager.java
index 5b69846d..4f089d10 100644
--- a/src/main/java/net/Indyuce/mmocore/manager/profession/CustomBlockManager.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/CustomBlockManager.java
@@ -3,7 +3,6 @@ package net.Indyuce.mmocore.manager.profession;
import io.papermc.lib.PaperLib;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.block.BlockInfo;
-import net.Indyuce.mmocore.api.block.BlockInfo.RegeneratingBlock;
import net.Indyuce.mmocore.api.block.BlockType;
import net.Indyuce.mmocore.api.block.SkullBlockType;
import net.Indyuce.mmocore.api.block.VanillaBlockType;
@@ -33,7 +32,7 @@ public class CustomBlockManager extends SpecificProfessionManager {
* Blocks that are regenerating and that must be refreshed whenever the
* server reloads or shuts down not to hurt the world map
*/
- private final Set active = new HashSet<>();
+ private final Set active = new HashSet<>();
/**
* Stores conditions which must be met to apply custom mining
@@ -93,7 +92,7 @@ public class CustomBlockManager extends SpecificProfessionManager {
* a "block chain", no regen should be scheduled as
* there is already one
*/
- public void initialize(RegeneratingBlock info, boolean scheduleRegen) {
+ public void initialize(BlockInfo.RegeneratingBlock info, boolean scheduleRegen) {
if (scheduleRegen) {
active.add(info);
Bukkit.getScheduler().runTaskLater(MMOCore.plugin, () -> regen(info, false), info.getRegeneratingBlock().getRegenerationInfo().getTime());
@@ -112,7 +111,7 @@ public class CustomBlockManager extends SpecificProfessionManager {
* the server shuts down, it iterates through active blocks.
* This prevents any issue when editing lists being iterated
*/
- private void regen(RegeneratingBlock info, boolean shutdown) {
+ private void regen(BlockInfo.RegeneratingBlock info, boolean shutdown) {
// Get the chunk and load it async if needed.
PaperLib.getChunkAtAsync(info.getLocation()).whenComplete((chunk, ex) -> {
@@ -138,7 +137,7 @@ public class CustomBlockManager extends SpecificProfessionManager {
*/
public boolean isTemporaryBlock(Block block) {
Location loc = block.getLocation();
- for (RegeneratingBlock info : active)
+ for (BlockInfo.RegeneratingBlock info : active)
if (info.getLocation().getBlockX() == loc.getBlockX() && info.getLocation().getBlockY() == loc.getBlockY()
&& info.getLocation().getBlockZ() == loc.getBlockZ())
return true;
diff --git a/src/main/java/net/Indyuce/mmocore/manager/profession/EnchantManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/EnchantManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/profession/EnchantManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/EnchantManager.java
diff --git a/src/main/java/net/Indyuce/mmocore/manager/profession/ExperienceSourceManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/ExperienceSourceManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/profession/ExperienceSourceManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/ExperienceSourceManager.java
diff --git a/src/main/java/net/Indyuce/mmocore/manager/profession/FishingManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/FishingManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/profession/FishingManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/FishingManager.java
diff --git a/src/main/java/net/Indyuce/mmocore/manager/profession/ProfessionManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/ProfessionManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/profession/ProfessionManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/ProfessionManager.java
diff --git a/src/main/java/net/Indyuce/mmocore/manager/profession/SmithingManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/SmithingManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/profession/SmithingManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/SmithingManager.java
diff --git a/src/main/java/net/Indyuce/mmocore/manager/profession/SpecificProfessionManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/SpecificProfessionManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/profession/SpecificProfessionManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/SpecificProfessionManager.java
diff --git a/src/main/java/net/Indyuce/mmocore/manager/registry/MMOCoreRegister.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/registry/MMOCoreRegister.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/registry/MMOCoreRegister.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/registry/MMOCoreRegister.java
diff --git a/src/main/java/net/Indyuce/mmocore/manager/registry/RegisterObject.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/registry/RegisterObject.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/registry/RegisterObject.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/registry/RegisterObject.java
diff --git a/src/main/java/net/Indyuce/mmocore/manager/social/BoosterManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/social/BoosterManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/social/BoosterManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/social/BoosterManager.java
diff --git a/src/main/java/net/Indyuce/mmocore/manager/social/PartyManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/social/PartyManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/social/PartyManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/social/PartyManager.java
diff --git a/src/main/java/net/Indyuce/mmocore/manager/social/RequestManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/social/RequestManager.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/manager/social/RequestManager.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/social/RequestManager.java
diff --git a/src/main/java/net/Indyuce/mmocore/party/AbstractParty.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/AbstractParty.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/party/AbstractParty.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/AbstractParty.java
diff --git a/src/main/java/net/Indyuce/mmocore/party/MMOCoreTargetRestriction.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/MMOCoreTargetRestriction.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/party/MMOCoreTargetRestriction.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/MMOCoreTargetRestriction.java
diff --git a/src/main/java/net/Indyuce/mmocore/party/PartyModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/PartyModule.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/party/PartyModule.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/PartyModule.java
diff --git a/src/main/java/net/Indyuce/mmocore/party/PartyModuleType.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/PartyModuleType.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/party/PartyModuleType.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/PartyModuleType.java
diff --git a/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsPartyModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsPartyModule.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/party/compat/DungeonsPartyModule.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsPartyModule.java
diff --git a/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsXLPartyModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsXLPartyModule.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/party/compat/DungeonsXLPartyModule.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsXLPartyModule.java
diff --git a/src/main/java/net/Indyuce/mmocore/party/compat/McMMOPartyModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/McMMOPartyModule.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/party/compat/McMMOPartyModule.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/McMMOPartyModule.java
diff --git a/src/main/java/net/Indyuce/mmocore/party/compat/PAFPartyModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/PAFPartyModule.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/party/compat/PAFPartyModule.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/PAFPartyModule.java
diff --git a/src/main/java/net/Indyuce/mmocore/party/compat/PartiesPartyModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/PartiesPartyModule.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/party/compat/PartiesPartyModule.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/PartiesPartyModule.java
diff --git a/src/main/java/net/Indyuce/mmocore/party/provided/MMOCorePartyModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/MMOCorePartyModule.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/party/provided/MMOCorePartyModule.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/MMOCorePartyModule.java
diff --git a/src/main/java/net/Indyuce/mmocore/party/provided/Party.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/Party.java
similarity index 96%
rename from src/main/java/net/Indyuce/mmocore/party/provided/Party.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/Party.java
index 218a830e..9bc6b2db 100644
--- a/src/main/java/net/Indyuce/mmocore/party/provided/Party.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/Party.java
@@ -1,12 +1,12 @@
package net.Indyuce.mmocore.party.provided;
import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.gui.api.PluginInventory;
+import net.Indyuce.mmocore.gui.social.party.EditablePartyView;
+import net.Indyuce.mmocore.manager.InventoryManager;
import net.Indyuce.mmocore.api.ConfigMessage;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.social.Request;
-import net.Indyuce.mmocore.gui.api.PluginInventory;
-import net.Indyuce.mmocore.gui.social.party.EditablePartyView.PartyViewInventory;
-import net.Indyuce.mmocore.manager.InventoryManager;
import net.Indyuce.mmocore.party.AbstractParty;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
@@ -107,7 +107,7 @@ public class Party implements AbstractParty {
public void removeMember(PlayerData data, boolean notify) {
if (data.isOnline() && data.getPlayer().getOpenInventory() != null
- && data.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof PartyViewInventory)
+ && data.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof EditablePartyView.PartyViewInventory)
InventoryManager.PARTY_CREATION.newInventory(data).open();
members.remove(data);
@@ -146,7 +146,7 @@ public class Party implements AbstractParty {
private void updateOpenInventories() {
for (PlayerData member : members)
if (member.isOnline() && member.getPlayer().getOpenInventory() != null
- && member.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof PartyViewInventory)
+ && member.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof EditablePartyView.PartyViewInventory)
((PluginInventory) member.getPlayer().getOpenInventory().getTopInventory().getHolder()).open();
}
diff --git a/src/main/java/net/Indyuce/mmocore/party/provided/PartyInvite.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/PartyInvite.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/party/provided/PartyInvite.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/PartyInvite.java
index 40d13a4c..e5010170 100644
--- a/src/main/java/net/Indyuce/mmocore/party/provided/PartyInvite.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/PartyInvite.java
@@ -1,9 +1,9 @@
package net.Indyuce.mmocore.party.provided;
import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.manager.InventoryManager;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.social.Request;
-import net.Indyuce.mmocore.manager.InventoryManager;
public class PartyInvite extends Request {
private final Party party;
diff --git a/src/main/java/net/Indyuce/mmocore/party/provided/PartyListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/PartyListener.java
similarity index 87%
rename from src/main/java/net/Indyuce/mmocore/party/provided/PartyListener.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/PartyListener.java
index 10d0a69d..943aa556 100644
--- a/src/main/java/net/Indyuce/mmocore/party/provided/PartyListener.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/PartyListener.java
@@ -2,8 +2,8 @@ package net.Indyuce.mmocore.party.provided;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.event.social.PartyChatEvent;
+import net.Indyuce.mmocore.manager.ConfigManager;
import net.Indyuce.mmocore.api.player.PlayerData;
-import net.Indyuce.mmocore.manager.ConfigManager.SimpleMessage;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -31,7 +31,7 @@ public class PartyListener implements Listener {
// Running it in a delayed task is recommended
Bukkit.getScheduler().scheduleSyncDelayedTask(MMOCore.plugin, () -> {
- SimpleMessage format = MMOCore.plugin.configManager.getSimpleMessage("party-chat", "player", data.getPlayer().getName(), "message",
+ ConfigManager.SimpleMessage format = MMOCore.plugin.configManager.getSimpleMessage("party-chat", "player", data.getPlayer().getName(), "message",
event.getMessage().substring(MMOCore.plugin.configManager.partyChatPrefix.length()));
PartyChatEvent called = new PartyChatEvent(party, data, format.message());
Bukkit.getPluginManager().callEvent(called);
diff --git a/src/main/java/net/Indyuce/mmocore/player/Unlockable.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/player/Unlockable.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/player/Unlockable.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/player/Unlockable.java
diff --git a/src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTrigger.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTrigger.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTrigger.java
diff --git a/src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTriggerType.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTriggerType.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTriggerType.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTriggerType.java
diff --git a/src/main/java/net/Indyuce/mmocore/player/stats/StatInfo.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/player/stats/StatInfo.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/player/stats/StatInfo.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/player/stats/StatInfo.java
diff --git a/src/main/java/net/Indyuce/mmocore/quest/AbstractQuest.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/AbstractQuest.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/quest/AbstractQuest.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/AbstractQuest.java
diff --git a/src/main/java/net/Indyuce/mmocore/quest/MMOCoreQuestModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/MMOCoreQuestModule.java
similarity index 93%
rename from src/main/java/net/Indyuce/mmocore/quest/MMOCoreQuestModule.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/MMOCoreQuestModule.java
index 1af7fdbc..7f97a26c 100644
--- a/src/main/java/net/Indyuce/mmocore/quest/MMOCoreQuestModule.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/MMOCoreQuestModule.java
@@ -8,7 +8,7 @@ import org.bukkit.entity.Player;
public class MMOCoreQuestModule implements QuestModule {
@Override
public AbstractQuest getQuestOrThrow(String id) {
- Quest quest=MMOCore.plugin.questManager.get(id);
+ Quest quest= MMOCore.plugin.questManager.get(id);
if(quest==null)
return null;
return new MMOCoreQuest(quest);
diff --git a/src/main/java/net/Indyuce/mmocore/quest/PlayerQuestData.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/PlayerQuestData.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/quest/PlayerQuestData.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/PlayerQuestData.java
diff --git a/src/main/java/net/Indyuce/mmocore/quest/QuestModuleType.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/QuestModuleType.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/quest/QuestModuleType.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/QuestModuleType.java
diff --git a/src/main/java/net/Indyuce/mmocore/quest/TODO.txt b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/TODO.txt
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/quest/TODO.txt
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/TODO.txt
diff --git a/src/main/java/net/Indyuce/mmocore/quest/compat/BeautyQuestsModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/BeautyQuestsModule.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/quest/compat/BeautyQuestsModule.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/BeautyQuestsModule.java
diff --git a/src/main/java/net/Indyuce/mmocore/quest/compat/BlackVeinQuestsModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/BlackVeinQuestsModule.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/quest/compat/BlackVeinQuestsModule.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/BlackVeinQuestsModule.java
diff --git a/src/main/java/net/Indyuce/mmocore/quest/compat/QuestCreatorModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/QuestCreatorModule.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/quest/compat/QuestCreatorModule.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/QuestCreatorModule.java
diff --git a/src/main/java/net/Indyuce/mmocore/quest/compat/QuestModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/QuestModule.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/quest/compat/QuestModule.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/QuestModule.java
diff --git a/src/main/java/net/Indyuce/mmocore/skill/CastableSkill.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/CastableSkill.java
similarity index 97%
rename from src/main/java/net/Indyuce/mmocore/skill/CastableSkill.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/CastableSkill.java
index 97748824..f3813ac6 100644
--- a/src/main/java/net/Indyuce/mmocore/skill/CastableSkill.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/CastableSkill.java
@@ -6,12 +6,10 @@ import io.lumine.mythic.lib.player.cooldown.CooldownInfo;
import io.lumine.mythic.lib.skill.Skill;
import io.lumine.mythic.lib.skill.SkillMetadata;
import io.lumine.mythic.lib.skill.handler.SkillHandler;
-import io.lumine.mythic.lib.skill.trigger.TriggerType;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.event.PlayerResourceUpdateEvent;
import net.Indyuce.mmocore.api.player.PlayerActivity;
import net.Indyuce.mmocore.api.player.PlayerData;
-import org.jetbrains.annotations.NotNull;
public class CastableSkill extends Skill {
private final ClassSkill skill;
diff --git a/src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java
index 841c76a2..386cd07a 100644
--- a/src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java
@@ -5,9 +5,9 @@ import io.lumine.mythic.lib.player.cooldown.CooldownObject;
import io.lumine.mythic.lib.player.modifier.ModifierSource;
import io.lumine.mythic.lib.player.skill.PassiveSkill;
import io.lumine.mythic.lib.skill.custom.condition.Condition;
-import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.util.math.formula.IntegerLinearValue;
import net.Indyuce.mmocore.api.util.math.formula.LinearValue;
+import net.Indyuce.mmocore.api.player.PlayerData;
import org.apache.commons.lang.Validate;
import org.bukkit.configuration.ConfigurationSection;
diff --git a/src/main/java/net/Indyuce/mmocore/skill/RegisteredSkill.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/RegisteredSkill.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/skill/RegisteredSkill.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/RegisteredSkill.java
diff --git a/src/main/java/net/Indyuce/mmocore/skill/cast/KeyCombo.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/KeyCombo.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/skill/cast/KeyCombo.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/KeyCombo.java
diff --git a/src/main/java/net/Indyuce/mmocore/skill/cast/PlayerKey.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/PlayerKey.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/skill/cast/PlayerKey.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/PlayerKey.java
diff --git a/src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingHandler.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingHandler.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingHandler.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingHandler.java
diff --git a/src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingMode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingMode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingMode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingMode.java
diff --git a/src/main/java/net/Indyuce/mmocore/skill/cast/listener/KeyCombos.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/KeyCombos.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/skill/cast/listener/KeyCombos.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/KeyCombos.java
index c33637e8..f59d888d 100644
--- a/src/main/java/net/Indyuce/mmocore/skill/cast/listener/KeyCombos.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/KeyCombos.java
@@ -8,8 +8,8 @@ import io.lumine.mythic.lib.player.PlayerMetadata;
import io.lumine.mythic.lib.skill.trigger.TriggerMetadata;
import io.lumine.mythic.lib.skill.trigger.TriggerType;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.SoundObject;
import net.Indyuce.mmocore.api.event.PlayerKeyPressEvent;
+import net.Indyuce.mmocore.api.SoundObject;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.skill.cast.KeyCombo;
import net.Indyuce.mmocore.skill.cast.PlayerKey;
diff --git a/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillBar.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillBar.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillBar.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillBar.java
index 3db7938d..46bac2f1 100644
--- a/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillBar.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillBar.java
@@ -5,8 +5,8 @@ import io.lumine.mythic.lib.api.player.EquipmentSlot;
import io.lumine.mythic.lib.player.PlayerMetadata;
import io.lumine.mythic.lib.skill.trigger.TriggerMetadata;
import net.Indyuce.mmocore.MMOCore;
-import net.Indyuce.mmocore.api.SoundEvent;
import net.Indyuce.mmocore.api.event.PlayerKeyPressEvent;
+import net.Indyuce.mmocore.api.SoundEvent;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.skill.ClassSkill;
import net.Indyuce.mmocore.skill.cast.PlayerKey;
diff --git a/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillScroller.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillScroller.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillScroller.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillScroller.java
index f9fdd078..43717196 100644
--- a/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillScroller.java
+++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillScroller.java
@@ -4,8 +4,8 @@ import io.lumine.mythic.lib.UtilityMethods;
import io.lumine.mythic.lib.api.player.EquipmentSlot;
import io.lumine.mythic.lib.player.PlayerMetadata;
import io.lumine.mythic.lib.skill.trigger.TriggerMetadata;
-import net.Indyuce.mmocore.api.SoundObject;
import net.Indyuce.mmocore.api.event.PlayerKeyPressEvent;
+import net.Indyuce.mmocore.api.SoundObject;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.skill.cast.PlayerKey;
import net.Indyuce.mmocore.skill.cast.SkillCastingHandler;
diff --git a/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/ManaMechanic.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/ManaMechanic.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/ManaMechanic.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/ManaMechanic.java
diff --git a/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StaminaMechanic.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StaminaMechanic.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StaminaMechanic.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StaminaMechanic.java
diff --git a/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StelliumMechanic.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StelliumMechanic.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StelliumMechanic.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StelliumMechanic.java
diff --git a/src/main/java/net/Indyuce/mmocore/skill/list/Ambers.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/list/Ambers.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/skill/list/Ambers.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/list/Ambers.java
diff --git a/src/main/java/net/Indyuce/mmocore/skill/list/Neptune_Gift.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/list/Neptune_Gift.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/skill/list/Neptune_Gift.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/list/Neptune_Gift.java
diff --git a/src/main/java/net/Indyuce/mmocore/skill/list/Sneaky_Picky.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/list/Sneaky_Picky.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/skill/list/Sneaky_Picky.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/list/Sneaky_Picky.java
diff --git a/src/main/java/net/Indyuce/mmocore/tree/IntegerCoordinates.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/IntegerCoordinates.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/tree/IntegerCoordinates.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/IntegerCoordinates.java
diff --git a/src/main/java/net/Indyuce/mmocore/tree/SkillTree.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/SkillTree.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/tree/SkillTree.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/SkillTree.java
diff --git a/src/main/java/net/Indyuce/mmocore/tree/SkillTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/SkillTreeNode.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/tree/SkillTreeNode.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/SkillTreeNode.java
diff --git a/src/main/java/net/Indyuce/mmocore/tree/modifier/UnlockSkillModifier.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/modifier/UnlockSkillModifier.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/tree/modifier/UnlockSkillModifier.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/modifier/UnlockSkillModifier.java
diff --git a/src/main/java/net/Indyuce/mmocore/util/HashableLocation.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/HashableLocation.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/util/HashableLocation.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/util/HashableLocation.java
diff --git a/src/main/java/net/Indyuce/mmocore/util/item/AbstractItemBuilder.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/AbstractItemBuilder.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/util/item/AbstractItemBuilder.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/AbstractItemBuilder.java
diff --git a/src/main/java/net/Indyuce/mmocore/util/item/ConfigItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/ConfigItem.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/util/item/ConfigItem.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/ConfigItem.java
diff --git a/src/main/java/net/Indyuce/mmocore/util/item/CurrencyItemBuilder.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/CurrencyItemBuilder.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/util/item/CurrencyItemBuilder.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/CurrencyItemBuilder.java
diff --git a/src/main/java/net/Indyuce/mmocore/util/item/SimpleItemBuilder.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/SimpleItemBuilder.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/util/item/SimpleItemBuilder.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/SimpleItemBuilder.java
diff --git a/src/main/java/net/Indyuce/mmocore/util/item/SkillBookBuilder.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/SkillBookBuilder.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/util/item/SkillBookBuilder.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/SkillBookBuilder.java
diff --git a/src/main/java/net/Indyuce/mmocore/util/item/WaypointBookBuilder.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/WaypointBookBuilder.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/util/item/WaypointBookBuilder.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/WaypointBookBuilder.java
diff --git a/src/main/java/net/Indyuce/mmocore/waypoint/Waypoint.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/waypoint/Waypoint.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/waypoint/Waypoint.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/waypoint/Waypoint.java
diff --git a/src/main/java/net/Indyuce/mmocore/waypoint/WaypointOption.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/waypoint/WaypointOption.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/waypoint/WaypointOption.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/waypoint/WaypointOption.java
diff --git a/src/main/java/net/Indyuce/mmocore/waypoint/WaypointPath.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/waypoint/WaypointPath.java
similarity index 100%
rename from src/main/java/net/Indyuce/mmocore/waypoint/WaypointPath.java
rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/waypoint/WaypointPath.java
diff --git a/src/main/resources/config.yml b/spigot-plugin/src/main/resources/config.yml
similarity index 100%
rename from src/main/resources/config.yml
rename to spigot-plugin/src/main/resources/config.yml
diff --git a/src/main/resources/default/attributes.yml b/spigot-plugin/src/main/resources/default/attributes.yml
similarity index 100%
rename from src/main/resources/default/attributes.yml
rename to spigot-plugin/src/main/resources/default/attributes.yml
diff --git a/src/main/resources/default/classes/arcane-mage.yml b/spigot-plugin/src/main/resources/default/classes/arcane-mage.yml
similarity index 100%
rename from src/main/resources/default/classes/arcane-mage.yml
rename to spigot-plugin/src/main/resources/default/classes/arcane-mage.yml
diff --git a/src/main/resources/default/classes/human.yml b/spigot-plugin/src/main/resources/default/classes/human.yml
similarity index 100%
rename from src/main/resources/default/classes/human.yml
rename to spigot-plugin/src/main/resources/default/classes/human.yml
diff --git a/src/main/resources/default/classes/mage.yml b/spigot-plugin/src/main/resources/default/classes/mage.yml
similarity index 100%
rename from src/main/resources/default/classes/mage.yml
rename to spigot-plugin/src/main/resources/default/classes/mage.yml
diff --git a/src/main/resources/default/classes/marksman.yml b/spigot-plugin/src/main/resources/default/classes/marksman.yml
similarity index 100%
rename from src/main/resources/default/classes/marksman.yml
rename to spigot-plugin/src/main/resources/default/classes/marksman.yml
diff --git a/src/main/resources/default/classes/paladin.yml b/spigot-plugin/src/main/resources/default/classes/paladin.yml
similarity index 100%
rename from src/main/resources/default/classes/paladin.yml
rename to spigot-plugin/src/main/resources/default/classes/paladin.yml
diff --git a/src/main/resources/default/classes/rogue.yml b/spigot-plugin/src/main/resources/default/classes/rogue.yml
similarity index 100%
rename from src/main/resources/default/classes/rogue.yml
rename to spigot-plugin/src/main/resources/default/classes/rogue.yml
diff --git a/src/main/resources/default/classes/warrior.yml b/spigot-plugin/src/main/resources/default/classes/warrior.yml
similarity index 100%
rename from src/main/resources/default/classes/warrior.yml
rename to spigot-plugin/src/main/resources/default/classes/warrior.yml
diff --git a/src/main/resources/default/commands.yml b/spigot-plugin/src/main/resources/default/commands.yml
similarity index 94%
rename from src/main/resources/default/commands.yml
rename to spigot-plugin/src/main/resources/default/commands.yml
index b6ddec29..83f70cc7 100644
--- a/src/main/resources/default/commands.yml
+++ b/spigot-plugin/src/main/resources/default/commands.yml
@@ -1,33 +1,33 @@
-player:
- main: "player"
- aliases: ["p", "profile"]
-attributes:
- main: "attributes"
- aliases: ["att", "stats"]
-class:
- main: "class"
- aliases: ["c"]
-waypoints:
- main: "waypoints"
- aliases: ["wp"]
-quests:
- main: "quests"
- aliases: ["q", "journal"]
-skills:
- main: "skills"
- aliases: ["s"]
-friends:
- main: "friends"
- aliases: ["f"]
-party:
- main: "party"
- aliases: []
-guild:
- main: "guild"
- aliases: []
-withdraw:
- main: "withdraw"
- aliases: ["w"]
-deposit:
- main: "deposit"
+player:
+ main: "player"
+ aliases: ["p", "profile"]
+attributes:
+ main: "attributes"
+ aliases: ["att", "stats"]
+class:
+ main: "class"
+ aliases: ["c"]
+waypoints:
+ main: "waypoints"
+ aliases: ["wp"]
+quests:
+ main: "quests"
+ aliases: ["q", "journal"]
+skills:
+ main: "skills"
+ aliases: ["s"]
+friends:
+ main: "friends"
+ aliases: ["f"]
+party:
+ main: "party"
+ aliases: []
+guild:
+ main: "guild"
+ aliases: []
+withdraw:
+ main: "withdraw"
+ aliases: ["w"]
+deposit:
+ main: "deposit"
aliases: ["d"]
\ No newline at end of file
diff --git a/src/main/resources/default/drop-tables/example-drop-tables.yml b/spigot-plugin/src/main/resources/default/drop-tables/example-drop-tables.yml
similarity index 100%
rename from src/main/resources/default/drop-tables/example-drop-tables.yml
rename to spigot-plugin/src/main/resources/default/drop-tables/example-drop-tables.yml
diff --git a/src/main/resources/default/exp-tables.yml b/spigot-plugin/src/main/resources/default/exp-tables.yml
similarity index 100%
rename from src/main/resources/default/exp-tables.yml
rename to spigot-plugin/src/main/resources/default/exp-tables.yml
diff --git a/src/main/resources/default/expcurves/levels.txt b/spigot-plugin/src/main/resources/default/expcurves/levels.txt
similarity index 100%
rename from src/main/resources/default/expcurves/levels.txt
rename to spigot-plugin/src/main/resources/default/expcurves/levels.txt
diff --git a/src/main/resources/default/expcurves/mining.txt b/spigot-plugin/src/main/resources/default/expcurves/mining.txt
similarity index 100%
rename from src/main/resources/default/expcurves/mining.txt
rename to spigot-plugin/src/main/resources/default/expcurves/mining.txt
diff --git a/src/main/resources/default/gui/attribute-view.yml b/spigot-plugin/src/main/resources/default/gui/attribute-view.yml
similarity index 100%
rename from src/main/resources/default/gui/attribute-view.yml
rename to spigot-plugin/src/main/resources/default/gui/attribute-view.yml
diff --git a/src/main/resources/default/gui/class-confirm.yml b/spigot-plugin/src/main/resources/default/gui/class-confirm.yml
similarity index 100%
rename from src/main/resources/default/gui/class-confirm.yml
rename to spigot-plugin/src/main/resources/default/gui/class-confirm.yml
diff --git a/src/main/resources/default/gui/class-select.yml b/spigot-plugin/src/main/resources/default/gui/class-select.yml
similarity index 100%
rename from src/main/resources/default/gui/class-select.yml
rename to spigot-plugin/src/main/resources/default/gui/class-select.yml
diff --git a/src/main/resources/default/gui/friend-list.yml b/spigot-plugin/src/main/resources/default/gui/friend-list.yml
similarity index 100%
rename from src/main/resources/default/gui/friend-list.yml
rename to spigot-plugin/src/main/resources/default/gui/friend-list.yml
diff --git a/src/main/resources/default/gui/friend-removal.yml b/spigot-plugin/src/main/resources/default/gui/friend-removal.yml
similarity index 100%
rename from src/main/resources/default/gui/friend-removal.yml
rename to spigot-plugin/src/main/resources/default/gui/friend-removal.yml
diff --git a/src/main/resources/default/gui/guild-creation.yml b/spigot-plugin/src/main/resources/default/gui/guild-creation.yml
similarity index 100%
rename from src/main/resources/default/gui/guild-creation.yml
rename to spigot-plugin/src/main/resources/default/gui/guild-creation.yml
diff --git a/src/main/resources/default/gui/guild-view.yml b/spigot-plugin/src/main/resources/default/gui/guild-view.yml
similarity index 100%
rename from src/main/resources/default/gui/guild-view.yml
rename to spigot-plugin/src/main/resources/default/gui/guild-view.yml
diff --git a/src/main/resources/default/gui/party-creation.yml b/spigot-plugin/src/main/resources/default/gui/party-creation.yml
similarity index 100%
rename from src/main/resources/default/gui/party-creation.yml
rename to spigot-plugin/src/main/resources/default/gui/party-creation.yml
diff --git a/src/main/resources/default/gui/party-view.yml b/spigot-plugin/src/main/resources/default/gui/party-view.yml
similarity index 100%
rename from src/main/resources/default/gui/party-view.yml
rename to spigot-plugin/src/main/resources/default/gui/party-view.yml
diff --git a/src/main/resources/default/gui/player-stats.yml b/spigot-plugin/src/main/resources/default/gui/player-stats.yml
similarity index 100%
rename from src/main/resources/default/gui/player-stats.yml
rename to spigot-plugin/src/main/resources/default/gui/player-stats.yml
diff --git a/src/main/resources/default/gui/quest-list.yml b/spigot-plugin/src/main/resources/default/gui/quest-list.yml
similarity index 100%
rename from src/main/resources/default/gui/quest-list.yml
rename to spigot-plugin/src/main/resources/default/gui/quest-list.yml
diff --git a/src/main/resources/default/gui/skill-list.yml b/spigot-plugin/src/main/resources/default/gui/skill-list.yml
similarity index 100%
rename from src/main/resources/default/gui/skill-list.yml
rename to spigot-plugin/src/main/resources/default/gui/skill-list.yml
diff --git a/src/main/resources/default/gui/subclass-confirm.yml b/spigot-plugin/src/main/resources/default/gui/subclass-confirm.yml
similarity index 100%
rename from src/main/resources/default/gui/subclass-confirm.yml
rename to spigot-plugin/src/main/resources/default/gui/subclass-confirm.yml
diff --git a/src/main/resources/default/gui/subclass-select.yml b/spigot-plugin/src/main/resources/default/gui/subclass-select.yml
similarity index 100%
rename from src/main/resources/default/gui/subclass-select.yml
rename to spigot-plugin/src/main/resources/default/gui/subclass-select.yml
diff --git a/src/main/resources/default/gui/waypoints.yml b/spigot-plugin/src/main/resources/default/gui/waypoints.yml
similarity index 100%
rename from src/main/resources/default/gui/waypoints.yml
rename to spigot-plugin/src/main/resources/default/gui/waypoints.yml
diff --git a/src/main/resources/default/guilds.yml b/spigot-plugin/src/main/resources/default/guilds.yml
similarity index 96%
rename from src/main/resources/default/guilds.yml
rename to spigot-plugin/src/main/resources/default/guilds.yml
index 77177910..7d50864c 100644
--- a/src/main/resources/default/guilds.yml
+++ b/spigot-plugin/src/main/resources/default/guilds.yml
@@ -1,41 +1,41 @@
-# WARNING! Please note that this file will be changed
-# A LOT during the different phases of Guilds.
-# The layout and settings displayed here are NOT final!
-
-# The prefix character needed for typing in the guild chat.
-# Guild Chat format can be found in 'messages.yml'
-chat-prefix: "*"
-
-# Set to true if guild tags should automatically be
-# converted to Uppercase upon creation.
-uppercase-tags: true
-rules:
- tag:
- # The tag characters must match this RegEx string
- # or the guild creation will fail.
- # !!! If you don't know RegEx I wouldn't mess with this!
- # You can always test your expression here: https://regexr.com/
- matches: "[a-zA-Z-_!?]+"
- # Minimum and Maximum lengt of a tag
- min-length: 3
- max-length: 4
- name:
- # The name characters must match this RegEx string
- # or the guild creation will fail.
- # !!! If you don't know RegEx I wouldn't mess with this!
- # You can always test your expression here: https://regexr.com/
- matches: "[a-zA-Z -_!?]+"
- # Minimum and Maximum lengt of a tag
- min-length: 3
- max-length: 14
-
-
-
-
-
-# Max allowed members
-max-size: 40
-
-# "Guilds 1.0 doesn't have the max members feature
-# A hotfix will be out before Christmas!"
+# WARNING! Please note that this file will be changed
+# A LOT during the different phases of Guilds.
+# The layout and settings displayed here are NOT final!
+
+# The prefix character needed for typing in the guild chat.
+# Guild Chat format can be found in 'messages.yml'
+chat-prefix: "*"
+
+# Set to true if guild tags should automatically be
+# converted to Uppercase upon creation.
+uppercase-tags: true
+rules:
+ tag:
+ # The tag characters must match this RegEx string
+ # or the guild creation will fail.
+ # !!! If you don't know RegEx I wouldn't mess with this!
+ # You can always test your expression here: https://regexr.com/
+ matches: "[a-zA-Z-_!?]+"
+ # Minimum and Maximum lengt of a tag
+ min-length: 3
+ max-length: 4
+ name:
+ # The name characters must match this RegEx string
+ # or the guild creation will fail.
+ # !!! If you don't know RegEx I wouldn't mess with this!
+ # You can always test your expression here: https://regexr.com/
+ matches: "[a-zA-Z -_!?]+"
+ # Minimum and Maximum lengt of a tag
+ min-length: 3
+ max-length: 14
+
+
+
+
+
+# Max allowed members
+max-size: 40
+
+# "Guilds 1.0 doesn't have the max members feature
+# A hotfix will be out before Christmas!"
# - Aria
\ No newline at end of file
diff --git a/src/main/resources/default/items.yml b/spigot-plugin/src/main/resources/default/items.yml
similarity index 100%
rename from src/main/resources/default/items.yml
rename to spigot-plugin/src/main/resources/default/items.yml
diff --git a/src/main/resources/default/loot-chests.yml b/spigot-plugin/src/main/resources/default/loot-chests.yml
similarity index 100%
rename from src/main/resources/default/loot-chests.yml
rename to spigot-plugin/src/main/resources/default/loot-chests.yml
diff --git a/src/main/resources/default/messages.yml b/spigot-plugin/src/main/resources/default/messages.yml
similarity index 100%
rename from src/main/resources/default/messages.yml
rename to spigot-plugin/src/main/resources/default/messages.yml
diff --git a/src/main/resources/default/professions/alchemy.yml b/spigot-plugin/src/main/resources/default/professions/alchemy.yml
similarity index 100%
rename from src/main/resources/default/professions/alchemy.yml
rename to spigot-plugin/src/main/resources/default/professions/alchemy.yml
diff --git a/src/main/resources/default/professions/enchanting.yml b/spigot-plugin/src/main/resources/default/professions/enchanting.yml
similarity index 100%
rename from src/main/resources/default/professions/enchanting.yml
rename to spigot-plugin/src/main/resources/default/professions/enchanting.yml
diff --git a/src/main/resources/default/professions/farming.yml b/spigot-plugin/src/main/resources/default/professions/farming.yml
similarity index 100%
rename from src/main/resources/default/professions/farming.yml
rename to spigot-plugin/src/main/resources/default/professions/farming.yml
diff --git a/src/main/resources/default/professions/fishing.yml b/spigot-plugin/src/main/resources/default/professions/fishing.yml
similarity index 100%
rename from src/main/resources/default/professions/fishing.yml
rename to spigot-plugin/src/main/resources/default/professions/fishing.yml
diff --git a/src/main/resources/default/professions/mining.yml b/spigot-plugin/src/main/resources/default/professions/mining.yml
similarity index 100%
rename from src/main/resources/default/professions/mining.yml
rename to spigot-plugin/src/main/resources/default/professions/mining.yml
diff --git a/src/main/resources/default/professions/smelting.yml b/spigot-plugin/src/main/resources/default/professions/smelting.yml
similarity index 100%
rename from src/main/resources/default/professions/smelting.yml
rename to spigot-plugin/src/main/resources/default/professions/smelting.yml
diff --git a/src/main/resources/default/professions/smithing.yml b/spigot-plugin/src/main/resources/default/professions/smithing.yml
similarity index 100%
rename from src/main/resources/default/professions/smithing.yml
rename to spigot-plugin/src/main/resources/default/professions/smithing.yml
diff --git a/src/main/resources/default/professions/woodcutting.yml b/spigot-plugin/src/main/resources/default/professions/woodcutting.yml
similarity index 100%
rename from src/main/resources/default/professions/woodcutting.yml
rename to spigot-plugin/src/main/resources/default/professions/woodcutting.yml
diff --git a/src/main/resources/default/quests/adv-begins.yml b/spigot-plugin/src/main/resources/default/quests/adv-begins.yml
similarity index 100%
rename from src/main/resources/default/quests/adv-begins.yml
rename to spigot-plugin/src/main/resources/default/quests/adv-begins.yml
diff --git a/src/main/resources/default/quests/fetch-mango.yml b/spigot-plugin/src/main/resources/default/quests/fetch-mango.yml
similarity index 100%
rename from src/main/resources/default/quests/fetch-mango.yml
rename to spigot-plugin/src/main/resources/default/quests/fetch-mango.yml
diff --git a/src/main/resources/default/quests/tutorial.yml b/spigot-plugin/src/main/resources/default/quests/tutorial.yml
similarity index 100%
rename from src/main/resources/default/quests/tutorial.yml
rename to spigot-plugin/src/main/resources/default/quests/tutorial.yml
diff --git a/src/main/resources/default/recipes/brewing.yml b/spigot-plugin/src/main/resources/default/recipes/brewing.yml
similarity index 100%
rename from src/main/resources/default/recipes/brewing.yml
rename to spigot-plugin/src/main/resources/default/recipes/brewing.yml
diff --git a/src/main/resources/default/recipes/furnace.yml b/spigot-plugin/src/main/resources/default/recipes/furnace.yml
similarity index 100%
rename from src/main/resources/default/recipes/furnace.yml
rename to spigot-plugin/src/main/resources/default/recipes/furnace.yml
diff --git a/src/main/resources/default/restrictions.yml b/spigot-plugin/src/main/resources/default/restrictions.yml
similarity index 100%
rename from src/main/resources/default/restrictions.yml
rename to spigot-plugin/src/main/resources/default/restrictions.yml
diff --git a/src/main/resources/default/skills/ambers.yml b/spigot-plugin/src/main/resources/default/skills/ambers.yml
similarity index 100%
rename from src/main/resources/default/skills/ambers.yml
rename to spigot-plugin/src/main/resources/default/skills/ambers.yml
diff --git a/src/main/resources/default/skills/backstab.yml b/spigot-plugin/src/main/resources/default/skills/backstab.yml
similarity index 100%
rename from src/main/resources/default/skills/backstab.yml
rename to spigot-plugin/src/main/resources/default/skills/backstab.yml
diff --git a/src/main/resources/default/skills/combo-attack.yml b/spigot-plugin/src/main/resources/default/skills/combo-attack.yml
similarity index 100%
rename from src/main/resources/default/skills/combo-attack.yml
rename to spigot-plugin/src/main/resources/default/skills/combo-attack.yml
diff --git a/src/main/resources/default/skills/control.yml b/spigot-plugin/src/main/resources/default/skills/control.yml
similarity index 100%
rename from src/main/resources/default/skills/control.yml
rename to spigot-plugin/src/main/resources/default/skills/control.yml
diff --git a/src/main/resources/default/skills/deep-wound.yml b/spigot-plugin/src/main/resources/default/skills/deep-wound.yml
similarity index 100%
rename from src/main/resources/default/skills/deep-wound.yml
rename to spigot-plugin/src/main/resources/default/skills/deep-wound.yml
diff --git a/src/main/resources/default/skills/empowered-attack.yml b/spigot-plugin/src/main/resources/default/skills/empowered-attack.yml
similarity index 100%
rename from src/main/resources/default/skills/empowered-attack.yml
rename to spigot-plugin/src/main/resources/default/skills/empowered-attack.yml
diff --git a/src/main/resources/default/skills/evade.yml b/spigot-plugin/src/main/resources/default/skills/evade.yml
similarity index 100%
rename from src/main/resources/default/skills/evade.yml
rename to spigot-plugin/src/main/resources/default/skills/evade.yml
diff --git a/src/main/resources/default/skills/fire-berserker.yml b/spigot-plugin/src/main/resources/default/skills/fire-berserker.yml
similarity index 100%
rename from src/main/resources/default/skills/fire-berserker.yml
rename to spigot-plugin/src/main/resources/default/skills/fire-berserker.yml
diff --git a/src/main/resources/default/skills/fire-rage.yml b/spigot-plugin/src/main/resources/default/skills/fire-rage.yml
similarity index 100%
rename from src/main/resources/default/skills/fire-rage.yml
rename to spigot-plugin/src/main/resources/default/skills/fire-rage.yml
diff --git a/src/main/resources/default/skills/fire-storm.yml b/spigot-plugin/src/main/resources/default/skills/fire-storm.yml
similarity index 100%
rename from src/main/resources/default/skills/fire-storm.yml
rename to spigot-plugin/src/main/resources/default/skills/fire-storm.yml
diff --git a/src/main/resources/default/skills/fireball.yml b/spigot-plugin/src/main/resources/default/skills/fireball.yml
similarity index 100%
rename from src/main/resources/default/skills/fireball.yml
rename to spigot-plugin/src/main/resources/default/skills/fireball.yml
diff --git a/src/main/resources/default/skills/furtive-strike.yml b/spigot-plugin/src/main/resources/default/skills/furtive-strike.yml
similarity index 100%
rename from src/main/resources/default/skills/furtive-strike.yml
rename to spigot-plugin/src/main/resources/default/skills/furtive-strike.yml
diff --git a/src/main/resources/default/skills/greater-healings.yml b/spigot-plugin/src/main/resources/default/skills/greater-healings.yml
similarity index 100%
rename from src/main/resources/default/skills/greater-healings.yml
rename to spigot-plugin/src/main/resources/default/skills/greater-healings.yml
diff --git a/src/main/resources/default/skills/human-shield.yml b/spigot-plugin/src/main/resources/default/skills/human-shield.yml
similarity index 100%
rename from src/main/resources/default/skills/human-shield.yml
rename to spigot-plugin/src/main/resources/default/skills/human-shield.yml
diff --git a/src/main/resources/default/skills/ice-spikes.yml b/spigot-plugin/src/main/resources/default/skills/ice-spikes.yml
similarity index 100%
rename from src/main/resources/default/skills/ice-spikes.yml
rename to spigot-plugin/src/main/resources/default/skills/ice-spikes.yml
diff --git a/src/main/resources/default/skills/minor-healings.yml b/spigot-plugin/src/main/resources/default/skills/minor-healings.yml
similarity index 100%
rename from src/main/resources/default/skills/minor-healings.yml
rename to spigot-plugin/src/main/resources/default/skills/minor-healings.yml
diff --git a/src/main/resources/default/skills/neptune-gift.yml b/spigot-plugin/src/main/resources/default/skills/neptune-gift.yml
similarity index 100%
rename from src/main/resources/default/skills/neptune-gift.yml
rename to spigot-plugin/src/main/resources/default/skills/neptune-gift.yml
diff --git a/src/main/resources/default/skills/power-mark.yml b/spigot-plugin/src/main/resources/default/skills/power-mark.yml
similarity index 100%
rename from src/main/resources/default/skills/power-mark.yml
rename to spigot-plugin/src/main/resources/default/skills/power-mark.yml
diff --git a/src/main/resources/default/skills/sneaky-picky.yml b/spigot-plugin/src/main/resources/default/skills/sneaky-picky.yml
similarity index 100%
rename from src/main/resources/default/skills/sneaky-picky.yml
rename to spigot-plugin/src/main/resources/default/skills/sneaky-picky.yml
diff --git a/src/main/resources/default/skills/telekinesy.yml b/spigot-plugin/src/main/resources/default/skills/telekinesy.yml
similarity index 100%
rename from src/main/resources/default/skills/telekinesy.yml
rename to spigot-plugin/src/main/resources/default/skills/telekinesy.yml
diff --git a/src/main/resources/default/skills/warp.yml b/spigot-plugin/src/main/resources/default/skills/warp.yml
similarity index 100%
rename from src/main/resources/default/skills/warp.yml
rename to spigot-plugin/src/main/resources/default/skills/warp.yml
diff --git a/src/main/resources/default/skills/weaken.yml b/spigot-plugin/src/main/resources/default/skills/weaken.yml
similarity index 100%
rename from src/main/resources/default/skills/weaken.yml
rename to spigot-plugin/src/main/resources/default/skills/weaken.yml
diff --git a/src/main/resources/default/sounds.yml b/spigot-plugin/src/main/resources/default/sounds.yml
similarity index 100%
rename from src/main/resources/default/sounds.yml
rename to spigot-plugin/src/main/resources/default/sounds.yml
diff --git a/src/main/resources/default/stats.yml b/spigot-plugin/src/main/resources/default/stats.yml
similarity index 100%
rename from src/main/resources/default/stats.yml
rename to spigot-plugin/src/main/resources/default/stats.yml
diff --git a/src/main/resources/default/waypoints.yml b/spigot-plugin/src/main/resources/default/waypoints.yml
similarity index 100%
rename from src/main/resources/default/waypoints.yml
rename to spigot-plugin/src/main/resources/default/waypoints.yml
diff --git a/src/main/resources/plugin.yml b/spigot-plugin/src/main/resources/plugin.yml
similarity index 100%
rename from src/main/resources/plugin.yml
rename to spigot-plugin/src/main/resources/plugin.yml
diff --git a/src/main/resources/bungee.yml b/src/main/resources/bungee.yml
deleted file mode 100644
index 1495d76a..00000000
--- a/src/main/resources/bungee.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-name: MMOCore
-main: net.Indyuce.mmocore.bungee.Bungee
-author: Ka0rX