diff --git a/.m2/settings.xml b/.m2/settings.xml
index 84a53514..e962f923 100644
--- a/.m2/settings.xml
+++ b/.m2/settings.xml
@@ -4,6 +4,7 @@
nexus
${env.M2_REPO_USER}
${env.M2_REPO_PASS}
+ false
lumine
diff --git a/bungee-plugin/pom.xml b/bungee-plugin/pom.xml
deleted file mode 100644
index 9cb7151a..00000000
--- a/bungee-plugin/pom.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
- MMOCore
- net.Indyuce
- ${revision}
-
- 4.0.0
-
- bungee-plugin
-
-
- 16
- 16
-
-
-
-
-
- bungeecord-repo
- https://oss.sonatype.org/content/repositories/snapshots
-
-
-
-
-
-
- net.md-5
- bungeecord-api
- 1.19-R0.1-SNAPSHOT
- jar
- provided
-
-
-
-
-
-
\ No newline at end of file
diff --git a/bungee-plugin/src/main/java/fr/phoenix/mmocore/bungee/Bungee.java b/bungee-plugin/src/main/java/fr/phoenix/mmocore/bungee/Bungee.java
deleted file mode 100644
index 42e7daf2..00000000
--- a/bungee-plugin/src/main/java/fr/phoenix/mmocore/bungee/Bungee.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package fr.phoenix.mmocore.bungee;
-
-import net.md_5.bungee.api.plugin.Plugin;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.util.logging.Level;
-
-public class Bungee extends Plugin {
- public static Bungee plugin;
- public CacheManager cacheManager = new CacheManager();
-
- @Override
- public void onEnable() {
- //Register a new communication channel
- getProxy().registerChannel("give_mmocore_player");
- getProxy().registerChannel("get_mmocore_player");
- getProxy().getPluginManager().registerListener(this, new MessageListener());
-
-
- try {
- getProxy().getLogger().log(Level.WARNING,"enabling socket");
- ServerSocket serverSocket= new ServerSocket(25580);
- Socket clientSocket=serverSocket.accept();
- getProxy().getLogger().log(Level.WARNING,"port: "+clientSocket.getPort());
-
- BufferedReader bufferedReader= new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
- String line;
- while((line=bufferedReader.readLine())!=null) {
- getProxy().getLogger().log(Level.WARNING,line);
- }
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
-
- }
-
- @Override
- public void onDisable() {
-
- }
-
- @Override
- public void onLoad() {
- plugin = this;
- }
-}
diff --git a/bungee-plugin/src/main/java/fr/phoenix/mmocore/bungee/CacheManager.java b/bungee-plugin/src/main/java/fr/phoenix/mmocore/bungee/CacheManager.java
deleted file mode 100644
index c2c5e5b2..00000000
--- a/bungee-plugin/src/main/java/fr/phoenix/mmocore/bungee/CacheManager.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package fr.phoenix.mmocore.bungee;
-
-import java.util.HashMap;
-import java.util.UUID;
-
-public class CacheManager {
- private final HashMap cachedPlayers= new HashMap<>();
-
-
- public String getCachedPlayer(UUID uuid) {
- return cachedPlayers.get(uuid);
- }
- public boolean hasCachedPlayer(UUID uuid) {
- return cachedPlayers.containsKey(uuid);
- }
-
- public void addCachedPlayer(UUID uuid,String playerData) {
- cachedPlayers.put(uuid,playerData);
- }
-
-
- public void save() {
- }
-}
diff --git a/bungee-plugin/src/main/java/fr/phoenix/mmocore/bungee/MessageListener.java b/bungee-plugin/src/main/java/fr/phoenix/mmocore/bungee/MessageListener.java
deleted file mode 100644
index 67ff585c..00000000
--- a/bungee-plugin/src/main/java/fr/phoenix/mmocore/bungee/MessageListener.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package fr.phoenix.mmocore.bungee;
-
-import net.md_5.bungee.api.connection.ProxiedPlayer;
-import net.md_5.bungee.api.event.PluginMessageEvent;
-import net.md_5.bungee.api.plugin.Listener;
-import net.md_5.bungee.event.EventHandler;
-
-import java.io.*;
-import java.util.UUID;
-
-public class MessageListener implements Listener {
-
- /**
- * Used to register in the cached Players the data that is sent
- */
- @EventHandler
- public void onPluginMessage(PluginMessageEvent e) throws IOException {
-
- //When a server gives the player data
- if (e.getTag().equals("give_mmocore_player")) {
-
- byte[] data = e.getData();
- ByteArrayInputStream in = new ByteArrayInputStream(e.getData());
- DataInputStream inputStream = new DataInputStream(in);
-
- UUID uuid = UUID.fromString(inputStream.readUTF());
- String jsonMsg = inputStream.readUTF();
-
- //We put this data into the CacheManager
- Bungee.plugin.cacheManager.addCachedPlayer(uuid,jsonMsg);
- }
-
-
- //When a server asks for the player data
- if (e.getTag().equals("get_mmocore_player")) {
- byte[] data = e.getData();
- ByteArrayInputStream in = new ByteArrayInputStream(e.getData());
- DataInputStream inputStream = new DataInputStream(in);
- UUID uuid = UUID.fromString(inputStream.readUTF());
-
-
-
- String response=Bungee.plugin.cacheManager.hasCachedPlayer(uuid)?
- Bungee.plugin.cacheManager.getCachedPlayer(uuid):"{}";
- //We format the data corresponding to the player
- ByteArrayOutputStream out=new ByteArrayOutputStream();
- DataOutputStream outputStream= new DataOutputStream(out);
- outputStream.writeChars(response);
-
- //We get the corresponding player
- ProxiedPlayer proxiedPlayer= Bungee.plugin.getProxy().getPlayer(uuid);
- //We send the answer
- proxiedPlayer.getServer().getInfo().sendData("get_mmocore_player",out.toByteArray());
-
-
- }
-
- }
-}
-
diff --git a/bungee-plugin/src/main/resources/bungee.yml b/bungee-plugin/src/main/resources/bungee.yml
deleted file mode 100644
index f7b9ea21..00000000
--- a/bungee-plugin/src/main/resources/bungee.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-name: MMOCore
-main: fr.phoenix.mmocore.bungee.Bungee
-author: PhoenixDevelopment
diff --git a/dist/pom.xml b/dist/pom.xml
deleted file mode 100644
index ffadb113..00000000
--- a/dist/pom.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-
-
-
- MMOCore
- net.Indyuce
- ${revision}
-
- 4.0.0
-
- dist
-
-
- 16
- 16
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- 3.2.4
-
-
- package
-
- shade
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- 3.1.0
-
- MMOCore-${revision}
- ../target
-
-
-
-
-
- org.codehaus.mojo
- flatten-maven-plugin
- 1.2.2
-
- true
-
-
-
- flatten
- package
-
- flatten
-
-
-
- flatten.clean
- clean
-
- clean
-
-
-
-
-
-
-
-
-
-
-
- net.Indyuce
- bungee-plugin
- ${revision}
-
-
-
- net.Indyuce
- spigot-plugin
- ${revision}
-
-
-
-
-
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 00718dc4..88c9f1ee 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,44 +1,286 @@
- 4.0.0
- net.Indyuce
- MMOCore
- pom
- ${revision}
-
- bungee-plugin
- spigot-plugin
- dist
-
- MMOCore
- Offer your players a brand new RPG experience!!
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ 4.0.0
+ net.Indyuce
+ MMOCore
+ 1.9.3
+ MMOCore
+ Offer your players a brand new RPG experience!!
-
- 1.9.3
- false
- false
- UTF-8
- UTF-8
-
+
+ false
+ false
+ UTF-8
+ UTF-8
+
-
-
-
- maven-clean-plugin
- 3.1.0
-
-
- auto-clean
- initialize
-
- clean
-
-
-
-
-
-
+
+
+ nexus
+ Lumine Releases
+ https://mvn.lumine.io/repository/maven-releases/
+
+
+ nexus
+ Lumine Snapshots
+ https://mvn.lumine.io/repository/maven-snapshots/
+
+
+
+
+
+ ${project.name}-${project.version}
+
+
+ true
+ ${basedir}/src/main/resources/
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 2.3.1
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+
+
+ 9
+ UTF-8
+ -proc:none
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.2.4
+
+ false
+
+
+
+ package
+
+ shade
+
+
+
+
+
+
+
+
+
+
+
+ lumine
+ https://mvn.lumine.io/repository/maven/
+
+
+
+ placeholderapi
+ https://repo.extendedclip.com/content/repositories/placeholderapi/
+
+
+
+ jitpack.io
+ https://jitpack.io
+
+
+
+ spigot-repo
+ https://hub.spigotmc.org/nexus/content/repositories/snapshots/
+
+
+
+ sk89q-repo
+ https://maven.enginehub.org/repo/
+
+
+
+ papermc
+ https://papermc.io/repo/repository/maven-public/
+
+
+
+
+
+
+
+
+ org.spigotmc
+ spigot-1.17.1
+ dev
+ provided
+
+
+
+
+ org.jetbrains
+ annotations
+ 19.0.0
+ provided
+
+
+
+ io.papermc
+ paperlib
+ 1.0.5
+
+
+
+ org.projectlombok
+ lombok
+ 1.18.20
+ provided
+
+
+
+
+ io.lumine
+ MythicLib-dist
+ 1.3.1
+ provided
+
+
+
+ io.lumine
+ Mythic-Dist
+ 5.0.1
+ provided
+
+
+
+ me.clip
+ placeholderapi
+ 2.9.2
+ provided
+
+
+
+ com.github.MilkBowl
+ VaultAPI
+ 1.7
+ provided
+
+
+
+ com.sk89q.worldguard
+ worldguard-bukkit
+ 7.0.2-SNAPSHOT
+ provided
+
+
+
+ net.citizensnpcs
+ Citizens
+ 2.0.25
+ provided
+
+
+
+
+ de.simonsator
+ PartyAndFriends
+ 1.0.65
+ provided
+
+
+
+ com.alessiodp
+ Parties
+ 3.1.14
+ provided
+
+
+
+ com.gmail.nossr50
+ mcMMO
+ 2.1.209
+ provided
+
+
+
+ de.erethon
+ DungeonsXL
+ 0.18-PRE-02
+ provided
+
+
+
+ org.denizen
+ Dungeons
+ 1.0
+ provided
+
+
+
+
+ me.blackvein
+ Quests
+ 4.4.1-b340
+ provided
+
+
+ fr.skytasul.quests
+ BeautyQuests
+ 0.19.5
+ provided
+
+
+ com.guillaumevdn
+ QuestCreator
+ 6.39.0
+ provided
+
+
+ com.guillaumevdn
+ GCore
+ 8.39.0
+ provided
+
+
+
+
+
+ com.massivecraft
+ Factions
+ 1.6.9.5-2.9.8-RC
+ provided
+
+
+
+ me.ulrich
+ UltimateClans
+ 4.2.0
+ provided
+
+
+
+ me.glaremasters
+ Guilds
+ 3.5.6.0
+ provided
+
+
+
+ org.kingdoms.main
+ Kingdoms
+ 1.11.15.0.0.0.1.1
+ provided
+
+
+
+
+
diff --git a/spigot-plugin/pom.xml b/spigot-plugin/pom.xml
deleted file mode 100644
index 1798aa26..00000000
--- a/spigot-plugin/pom.xml
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-
- MMOCore
- net.Indyuce
- ${revision}
-
- 4.0.0
-
- spigot-plugin
-
-
- 16
- 16
-
-
-
-
-
- .
- true
- ${basedir}/src/main/resources/
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.8.1
-
-
-
- 9
- UTF-8
- -proc:none
-
-
-
-
-
-
-
-
-
- phoenix
- http://la-grange-evasion.pro.dns-orange.fr:8081/repository/maven-public/
-
-
-
- nexus
- https://mvn.lumine.io/repository/maven-public/
-
-
-
- jitpack.io
- https://jitpack.io
-
-
-
- spigot-repo
- https://hub.spigotmc.org/nexus/content/repositories/snapshots/
-
-
-
- sk89q-repo
- https://maven.enginehub.org/repo/
-
-
-
- papermc
- https://papermc.io/repo/repository/maven-public/
-
-
-
-
-
-
-
-
- org.spigotmc
- spigot-1.17.1
- dev
- provided
-
-
-
-
- org.jetbrains
- annotations
- 19.0.0
- provided
-
-
-
- io.papermc
- paperlib
- 1.0.5
-
-
-
- org.projectlombok
- lombok
- 1.18.20
- provided
-
-
-
-
- io.lumine
- MythicLib-dist
- 1.3.1
- provided
-
-
-
- io.lumine
- Mythic-Dist
- 5.0.1
- provided
-
-
-
- me.clip
- PlaceholderAPI
- 2.11.1
- provided
-
-
-
- com.github.MilkBowl
- VaultAPI
- 1.7
- provided
-
-
-
- com.sk89q.worldguard
- worldguard-bukkit
- 7.0.2-SNAPSHOT
- provided
-
-
-
- net.citizensnpcs
- Citizens
- 2.0.30-b2571
- provided
-
-
-
-
- de.simonsator
- PartyAndFriends
- 1.0.65
- provided
-
-
-
- com.alessiodp
- Parties
- 3.1.14
- provided
-
-
-
- com.gmail.nossr50
- mcMMO
- 2.1.209
- provided
-
-
-
- de.erethon
- DungeonsXL
- 0.18-PRE-02
- provided
-
-
-
- org.denizen
- Dungeons
- 1.0
- provided
-
-
-
-
- me.blackvein
- Quests
- 4.4.1-b340
- provided
-
-
- fr.skytasul.quests
- BeautyQuests
- 0.19.5
- provided
-
-
- com.guillaumevdn
- QuestCreator
- 6.39.0
- provided
-
-
- com.guillaumevdn
- GCore
- 8.39.0
- provided
-
-
-
-
-
- com.massivecraft
- Factions
- 1.6.9.5-2.9.8-RC
- provided
-
-
-
- me.ulrich
- UltimateClans
- 4.2.0
- provided
-
-
-
- me.glaremasters
- Guilds
- 3.5.6.0
- provided
-
-
-
- org.kingdoms.main
- Kingdoms
- 1.11.15.0.0.0.1.1
- provided
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/spigot-plugin/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
deleted file mode 100644
index f8d77bba..00000000
--- a/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLPlayerDataManager.java
+++ /dev/null
@@ -1,260 +0,0 @@
-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/spigot-plugin/src/main/java/net/Indyuce/mmocore/MMOCore.java b/src/main/java/net/Indyuce/mmocore/MMOCore.java
similarity index 99%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/MMOCore.java
rename to src/main/java/net/Indyuce/mmocore/MMOCore.java
index 38c7df42..640aa437 100644
--- a/spigot-plugin/src/main/java/net/Indyuce/mmocore/MMOCore.java
+++ b/src/main/java/net/Indyuce/mmocore/MMOCore.java
@@ -351,8 +351,8 @@ public class MMOCore extends LuminePlugin {
}
MMOCoreCommandTreeRoot mmoCoreCommand = new MMOCoreCommandTreeRoot();
- getCommand("net/Indyuce/mmocore").setExecutor(mmoCoreCommand);
- getCommand("net/Indyuce/mmocore").setTabCompleter(mmoCoreCommand);
+ getCommand("mmocore").setExecutor(mmoCoreCommand);
+ getCommand("mmocore").setTabCompleter(mmoCoreCommand);
if (getConfig().getBoolean("auto-save.enabled")) {
int autosave = getConfig().getInt("auto-save.interval") * 20;
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/ConfigFile.java b/src/main/java/net/Indyuce/mmocore/api/ConfigFile.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/ConfigFile.java
rename to src/main/java/net/Indyuce/mmocore/api/ConfigFile.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/ConfigMessage.java b/src/main/java/net/Indyuce/mmocore/api/ConfigMessage.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/ConfigMessage.java
rename to src/main/java/net/Indyuce/mmocore/api/ConfigMessage.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/MMOCoreAPI.java b/src/main/java/net/Indyuce/mmocore/api/MMOCoreAPI.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/MMOCoreAPI.java
rename to src/main/java/net/Indyuce/mmocore/api/MMOCoreAPI.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/PlayerActionBar.java b/src/main/java/net/Indyuce/mmocore/api/PlayerActionBar.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/PlayerActionBar.java
rename to src/main/java/net/Indyuce/mmocore/api/PlayerActionBar.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/SoundEvent.java b/src/main/java/net/Indyuce/mmocore/api/SoundEvent.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/SoundEvent.java
rename to src/main/java/net/Indyuce/mmocore/api/SoundEvent.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/SoundObject.java b/src/main/java/net/Indyuce/mmocore/api/SoundObject.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/SoundObject.java
rename to src/main/java/net/Indyuce/mmocore/api/SoundObject.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/BlockInfo.java b/src/main/java/net/Indyuce/mmocore/api/block/BlockInfo.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/BlockInfo.java
rename to src/main/java/net/Indyuce/mmocore/api/block/BlockInfo.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/BlockType.java b/src/main/java/net/Indyuce/mmocore/api/block/BlockType.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/BlockType.java
rename to src/main/java/net/Indyuce/mmocore/api/block/BlockType.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/RegenInfo.java b/src/main/java/net/Indyuce/mmocore/api/block/RegenInfo.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/RegenInfo.java
rename to src/main/java/net/Indyuce/mmocore/api/block/RegenInfo.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java b/src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java
rename to src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/VanillaBlockType.java b/src/main/java/net/Indyuce/mmocore/api/block/VanillaBlockType.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/VanillaBlockType.java
rename to src/main/java/net/Indyuce/mmocore/api/block/VanillaBlockType.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/eco/Withdraw.java b/src/main/java/net/Indyuce/mmocore/api/eco/Withdraw.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/eco/Withdraw.java
rename to src/main/java/net/Indyuce/mmocore/api/eco/Withdraw.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataEvent.java b/src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataEvent.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataEvent.java
rename to src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataEvent.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataLoadEvent.java b/src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataLoadEvent.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataLoadEvent.java
rename to src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataLoadEvent.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/CustomBlockMineEvent.java b/src/main/java/net/Indyuce/mmocore/api/event/CustomBlockMineEvent.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/CustomBlockMineEvent.java
rename to src/main/java/net/Indyuce/mmocore/api/event/CustomBlockMineEvent.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/CustomPlayerFishEvent.java b/src/main/java/net/Indyuce/mmocore/api/event/CustomPlayerFishEvent.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/CustomPlayerFishEvent.java
rename to src/main/java/net/Indyuce/mmocore/api/event/CustomPlayerFishEvent.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/LootChestSpawnEvent.java b/src/main/java/net/Indyuce/mmocore/api/event/LootChestSpawnEvent.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/LootChestSpawnEvent.java
rename to src/main/java/net/Indyuce/mmocore/api/event/LootChestSpawnEvent.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/MMOCommandEvent.java b/src/main/java/net/Indyuce/mmocore/api/event/MMOCommandEvent.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/MMOCommandEvent.java
rename to src/main/java/net/Indyuce/mmocore/api/event/MMOCommandEvent.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerAttributeUseEvent.java b/src/main/java/net/Indyuce/mmocore/api/event/PlayerAttributeUseEvent.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerAttributeUseEvent.java
rename to src/main/java/net/Indyuce/mmocore/api/event/PlayerAttributeUseEvent.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerChangeClassEvent.java b/src/main/java/net/Indyuce/mmocore/api/event/PlayerChangeClassEvent.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerChangeClassEvent.java
rename to src/main/java/net/Indyuce/mmocore/api/event/PlayerChangeClassEvent.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerCombatEvent.java b/src/main/java/net/Indyuce/mmocore/api/event/PlayerCombatEvent.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerCombatEvent.java
rename to src/main/java/net/Indyuce/mmocore/api/event/PlayerCombatEvent.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerDataEvent.java b/src/main/java/net/Indyuce/mmocore/api/event/PlayerDataEvent.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerDataEvent.java
rename to src/main/java/net/Indyuce/mmocore/api/event/PlayerDataEvent.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerDataLoadEvent.java b/src/main/java/net/Indyuce/mmocore/api/event/PlayerDataLoadEvent.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerDataLoadEvent.java
rename to src/main/java/net/Indyuce/mmocore/api/event/PlayerDataLoadEvent.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerExperienceGainEvent.java b/src/main/java/net/Indyuce/mmocore/api/event/PlayerExperienceGainEvent.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerExperienceGainEvent.java
rename to src/main/java/net/Indyuce/mmocore/api/event/PlayerExperienceGainEvent.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerKeyPressEvent.java b/src/main/java/net/Indyuce/mmocore/api/event/PlayerKeyPressEvent.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerKeyPressEvent.java
rename to src/main/java/net/Indyuce/mmocore/api/event/PlayerKeyPressEvent.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerLevelUpEvent.java b/src/main/java/net/Indyuce/mmocore/api/event/PlayerLevelUpEvent.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerLevelUpEvent.java
rename to src/main/java/net/Indyuce/mmocore/api/event/PlayerLevelUpEvent.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerResourceUpdateEvent.java b/src/main/java/net/Indyuce/mmocore/api/event/PlayerResourceUpdateEvent.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerResourceUpdateEvent.java
rename to src/main/java/net/Indyuce/mmocore/api/event/PlayerResourceUpdateEvent.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/social/GuildChatEvent.java b/src/main/java/net/Indyuce/mmocore/api/event/social/GuildChatEvent.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/social/GuildChatEvent.java
rename to src/main/java/net/Indyuce/mmocore/api/event/social/GuildChatEvent.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/social/PartyChatEvent.java b/src/main/java/net/Indyuce/mmocore/api/event/social/PartyChatEvent.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/social/PartyChatEvent.java
rename to src/main/java/net/Indyuce/mmocore/api/event/social/PartyChatEvent.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java b/src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java
rename to src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/load/MMOLoader.java b/src/main/java/net/Indyuce/mmocore/api/load/MMOLoader.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/load/MMOLoader.java
rename to src/main/java/net/Indyuce/mmocore/api/load/MMOLoader.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/CombatRunnable.java b/src/main/java/net/Indyuce/mmocore/api/player/CombatRunnable.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/CombatRunnable.java
rename to src/main/java/net/Indyuce/mmocore/api/player/CombatRunnable.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/OfflinePlayerData.java b/src/main/java/net/Indyuce/mmocore/api/player/OfflinePlayerData.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/OfflinePlayerData.java
rename to src/main/java/net/Indyuce/mmocore/api/player/OfflinePlayerData.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/PlayerActivity.java b/src/main/java/net/Indyuce/mmocore/api/player/PlayerActivity.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/PlayerActivity.java
rename to src/main/java/net/Indyuce/mmocore/api/player/PlayerActivity.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java b/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java
similarity index 99%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java
rename to src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java
index 52210361..7be781b5 100644
--- a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java
+++ b/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java
@@ -637,6 +637,10 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
experience -= needed;
level = getLevel() + 1;
+
+ // Apply class experience table
+ if (getProfess().hasExperienceTable())
+ getProfess().getExperienceTable().claim(this, level, getProfess());
}
if (level > oldLevel) {
@@ -648,9 +652,6 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
}
getStats().updateStats();
- // Apply class experience table
- if (getProfess().hasExperienceTable())
- getProfess().getExperienceTable().claim(this, level, getProfess());
}
refreshVanillaExp();
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/AttributeModifier.java b/src/main/java/net/Indyuce/mmocore/api/player/attribute/AttributeModifier.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/AttributeModifier.java
rename to src/main/java/net/Indyuce/mmocore/api/player/attribute/AttributeModifier.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttribute.java b/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttribute.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttribute.java
rename to src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttribute.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttributes.java b/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttributes.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttributes.java
rename to src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttributes.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/ClassOption.java b/src/main/java/net/Indyuce/mmocore/api/player/profess/ClassOption.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/ClassOption.java
rename to src/main/java/net/Indyuce/mmocore/api/player/profess/ClassOption.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java b/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java
rename to src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/SavedClassInformation.java b/src/main/java/net/Indyuce/mmocore/api/player/profess/SavedClassInformation.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/SavedClassInformation.java
rename to src/main/java/net/Indyuce/mmocore/api/player/profess/SavedClassInformation.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/Subclass.java b/src/main/java/net/Indyuce/mmocore/api/player/profess/Subclass.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/Subclass.java
rename to src/main/java/net/Indyuce/mmocore/api/player/profess/Subclass.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTrigger.java b/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTrigger.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTrigger.java
rename to src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTrigger.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTriggerHandler.java b/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTriggerHandler.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTriggerHandler.java
rename to src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTriggerHandler.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/AttackEventTrigger.java b/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/AttackEventTrigger.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/AttackEventTrigger.java
rename to src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/AttackEventTrigger.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockBrokenTrigger.java b/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockBrokenTrigger.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockBrokenTrigger.java
rename to src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockBrokenTrigger.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockPlacedTrigger.java b/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockPlacedTrigger.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockPlacedTrigger.java
rename to src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockPlacedTrigger.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/ClassChosenEventTrigger.java b/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/ClassChosenEventTrigger.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/ClassChosenEventTrigger.java
rename to src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/ClassChosenEventTrigger.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java b/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java
rename to src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java b/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java
rename to src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ManaDisplayOptions.java b/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ManaDisplayOptions.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ManaDisplayOptions.java
rename to src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ManaDisplayOptions.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/PlayerResource.java b/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/PlayerResource.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/PlayerResource.java
rename to src/main/java/net/Indyuce/mmocore/api/player/profess/resource/PlayerResource.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ResourceRegeneration.java b/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ResourceRegeneration.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ResourceRegeneration.java
rename to src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ResourceRegeneration.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/social/FriendRequest.java b/src/main/java/net/Indyuce/mmocore/api/player/social/FriendRequest.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/social/FriendRequest.java
rename to src/main/java/net/Indyuce/mmocore/api/player/social/FriendRequest.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/social/Request.java b/src/main/java/net/Indyuce/mmocore/api/player/social/Request.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/social/Request.java
rename to src/main/java/net/Indyuce/mmocore/api/player/social/Request.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/stats/PlayerStats.java b/src/main/java/net/Indyuce/mmocore/api/player/stats/PlayerStats.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/stats/PlayerStats.java
rename to src/main/java/net/Indyuce/mmocore/api/player/stats/PlayerStats.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/stats/StatType.java b/src/main/java/net/Indyuce/mmocore/api/player/stats/StatType.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/stats/StatType.java
rename to src/main/java/net/Indyuce/mmocore/api/player/stats/StatType.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/ObjectiveProgress.java b/src/main/java/net/Indyuce/mmocore/api/quest/ObjectiveProgress.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/ObjectiveProgress.java
rename to src/main/java/net/Indyuce/mmocore/api/quest/ObjectiveProgress.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java b/src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java
rename to src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/Quest.java b/src/main/java/net/Indyuce/mmocore/api/quest/Quest.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/Quest.java
rename to src/main/java/net/Indyuce/mmocore/api/quest/Quest.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/QuestProgress.java b/src/main/java/net/Indyuce/mmocore/api/quest/QuestProgress.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/QuestProgress.java
rename to src/main/java/net/Indyuce/mmocore/api/quest/QuestProgress.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/ClickonObjective.java b/src/main/java/net/Indyuce/mmocore/api/quest/objective/ClickonObjective.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/ClickonObjective.java
rename to src/main/java/net/Indyuce/mmocore/api/quest/objective/ClickonObjective.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/GoToObjective.java b/src/main/java/net/Indyuce/mmocore/api/quest/objective/GoToObjective.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/GoToObjective.java
rename to src/main/java/net/Indyuce/mmocore/api/quest/objective/GoToObjective.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/KillMobObjective.java b/src/main/java/net/Indyuce/mmocore/api/quest/objective/KillMobObjective.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/KillMobObjective.java
rename to src/main/java/net/Indyuce/mmocore/api/quest/objective/KillMobObjective.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/MineBlockObjective.java b/src/main/java/net/Indyuce/mmocore/api/quest/objective/MineBlockObjective.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/MineBlockObjective.java
rename to src/main/java/net/Indyuce/mmocore/api/quest/objective/MineBlockObjective.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/Objective.java b/src/main/java/net/Indyuce/mmocore/api/quest/objective/Objective.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/Objective.java
rename to src/main/java/net/Indyuce/mmocore/api/quest/objective/Objective.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/CommandTrigger.java b/src/main/java/net/Indyuce/mmocore/api/quest/trigger/CommandTrigger.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/CommandTrigger.java
rename to src/main/java/net/Indyuce/mmocore/api/quest/trigger/CommandTrigger.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ExperienceTrigger.java b/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ExperienceTrigger.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ExperienceTrigger.java
rename to src/main/java/net/Indyuce/mmocore/api/quest/trigger/ExperienceTrigger.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ItemTrigger.java b/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ItemTrigger.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ItemTrigger.java
rename to src/main/java/net/Indyuce/mmocore/api/quest/trigger/ItemTrigger.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ManaTrigger.java b/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ManaTrigger.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ManaTrigger.java
rename to src/main/java/net/Indyuce/mmocore/api/quest/trigger/ManaTrigger.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/MessageTrigger.java b/src/main/java/net/Indyuce/mmocore/api/quest/trigger/MessageTrigger.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/MessageTrigger.java
rename to src/main/java/net/Indyuce/mmocore/api/quest/trigger/MessageTrigger.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/SoundTrigger.java b/src/main/java/net/Indyuce/mmocore/api/quest/trigger/SoundTrigger.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/SoundTrigger.java
rename to src/main/java/net/Indyuce/mmocore/api/quest/trigger/SoundTrigger.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/StaminaTrigger.java b/src/main/java/net/Indyuce/mmocore/api/quest/trigger/StaminaTrigger.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/StaminaTrigger.java
rename to src/main/java/net/Indyuce/mmocore/api/quest/trigger/StaminaTrigger.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/StelliumTrigger.java b/src/main/java/net/Indyuce/mmocore/api/quest/trigger/StelliumTrigger.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/StelliumTrigger.java
rename to src/main/java/net/Indyuce/mmocore/api/quest/trigger/StelliumTrigger.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/Trigger.java b/src/main/java/net/Indyuce/mmocore/api/quest/trigger/Trigger.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/Trigger.java
rename to src/main/java/net/Indyuce/mmocore/api/quest/trigger/Trigger.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/Closable.java b/src/main/java/net/Indyuce/mmocore/api/util/Closable.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/Closable.java
rename to src/main/java/net/Indyuce/mmocore/api/util/Closable.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/MMOCoreUtils.java b/src/main/java/net/Indyuce/mmocore/api/util/MMOCoreUtils.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/MMOCoreUtils.java
rename to src/main/java/net/Indyuce/mmocore/api/util/MMOCoreUtils.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/debug/ActionBarRunnable.java b/src/main/java/net/Indyuce/mmocore/api/util/debug/ActionBarRunnable.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/debug/ActionBarRunnable.java
rename to src/main/java/net/Indyuce/mmocore/api/util/debug/ActionBarRunnable.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/debug/DebugMode.java b/src/main/java/net/Indyuce/mmocore/api/util/debug/DebugMode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/debug/DebugMode.java
rename to src/main/java/net/Indyuce/mmocore/api/util/debug/DebugMode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/AnvilGUI.java b/src/main/java/net/Indyuce/mmocore/api/util/input/AnvilGUI.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/AnvilGUI.java
rename to src/main/java/net/Indyuce/mmocore/api/util/input/AnvilGUI.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/ChatInput.java b/src/main/java/net/Indyuce/mmocore/api/util/input/ChatInput.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/ChatInput.java
rename to src/main/java/net/Indyuce/mmocore/api/util/input/ChatInput.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/PlayerInput.java b/src/main/java/net/Indyuce/mmocore/api/util/input/PlayerInput.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/PlayerInput.java
rename to src/main/java/net/Indyuce/mmocore/api/util/input/PlayerInput.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/Line3D.java b/src/main/java/net/Indyuce/mmocore/api/util/math/Line3D.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/Line3D.java
rename to src/main/java/net/Indyuce/mmocore/api/util/math/Line3D.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/VectorRotation.java b/src/main/java/net/Indyuce/mmocore/api/util/math/VectorRotation.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/VectorRotation.java
rename to src/main/java/net/Indyuce/mmocore/api/util/math/VectorRotation.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/format/DelayFormat.java b/src/main/java/net/Indyuce/mmocore/api/util/math/format/DelayFormat.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/format/DelayFormat.java
rename to src/main/java/net/Indyuce/mmocore/api/util/math/format/DelayFormat.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/formula/IntegerLinearValue.java b/src/main/java/net/Indyuce/mmocore/api/util/math/formula/IntegerLinearValue.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/formula/IntegerLinearValue.java
rename to src/main/java/net/Indyuce/mmocore/api/util/math/formula/IntegerLinearValue.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/formula/LinearValue.java b/src/main/java/net/Indyuce/mmocore/api/util/math/formula/LinearValue.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/formula/LinearValue.java
rename to src/main/java/net/Indyuce/mmocore/api/util/math/formula/LinearValue.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/formula/RandomAmount.java b/src/main/java/net/Indyuce/mmocore/api/util/math/formula/RandomAmount.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/formula/RandomAmount.java
rename to src/main/java/net/Indyuce/mmocore/api/util/math/formula/RandomAmount.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/AttributesCommand.java b/src/main/java/net/Indyuce/mmocore/command/AttributesCommand.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/AttributesCommand.java
rename to src/main/java/net/Indyuce/mmocore/command/AttributesCommand.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/ClassCommand.java b/src/main/java/net/Indyuce/mmocore/command/ClassCommand.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/ClassCommand.java
rename to src/main/java/net/Indyuce/mmocore/command/ClassCommand.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/CommandVerbose.java b/src/main/java/net/Indyuce/mmocore/command/CommandVerbose.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/CommandVerbose.java
rename to src/main/java/net/Indyuce/mmocore/command/CommandVerbose.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/DepositCommand.java b/src/main/java/net/Indyuce/mmocore/command/DepositCommand.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/DepositCommand.java
rename to src/main/java/net/Indyuce/mmocore/command/DepositCommand.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/FriendsCommand.java b/src/main/java/net/Indyuce/mmocore/command/FriendsCommand.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/FriendsCommand.java
rename to src/main/java/net/Indyuce/mmocore/command/FriendsCommand.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/GuildCommand.java b/src/main/java/net/Indyuce/mmocore/command/GuildCommand.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/GuildCommand.java
rename to src/main/java/net/Indyuce/mmocore/command/GuildCommand.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/MMOCoreCommandTreeRoot.java b/src/main/java/net/Indyuce/mmocore/command/MMOCoreCommandTreeRoot.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/MMOCoreCommandTreeRoot.java
rename to src/main/java/net/Indyuce/mmocore/command/MMOCoreCommandTreeRoot.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/PartyCommand.java b/src/main/java/net/Indyuce/mmocore/command/PartyCommand.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/PartyCommand.java
rename to src/main/java/net/Indyuce/mmocore/command/PartyCommand.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/PlayerStatsCommand.java b/src/main/java/net/Indyuce/mmocore/command/PlayerStatsCommand.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/PlayerStatsCommand.java
rename to src/main/java/net/Indyuce/mmocore/command/PlayerStatsCommand.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/QuestsCommand.java b/src/main/java/net/Indyuce/mmocore/command/QuestsCommand.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/QuestsCommand.java
rename to src/main/java/net/Indyuce/mmocore/command/QuestsCommand.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/SkillsCommand.java b/src/main/java/net/Indyuce/mmocore/command/SkillsCommand.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/SkillsCommand.java
rename to src/main/java/net/Indyuce/mmocore/command/SkillsCommand.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/WaypointsCommand.java b/src/main/java/net/Indyuce/mmocore/command/WaypointsCommand.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/WaypointsCommand.java
rename to src/main/java/net/Indyuce/mmocore/command/WaypointsCommand.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/WithdrawCommand.java b/src/main/java/net/Indyuce/mmocore/command/WithdrawCommand.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/WithdrawCommand.java
rename to src/main/java/net/Indyuce/mmocore/command/WithdrawCommand.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/CoinsCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/CoinsCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/CoinsCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/CoinsCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/NoteCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/NoteCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/NoteCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/NoteCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/ReloadCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/ReloadCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/ReloadCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/ReloadCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AdminCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AdminCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AdminCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/admin/AdminCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AttributeCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AttributeCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AttributeCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/admin/AttributeCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ClassCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ClassCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ClassCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/admin/ClassCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ExperienceCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ExperienceCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ExperienceCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/admin/ExperienceCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ForceClassCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ForceClassCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ForceClassCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/admin/ForceClassCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/HideActionBarCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/admin/HideActionBarCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/HideActionBarCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/admin/HideActionBarCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/InfoCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/admin/InfoCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/InfoCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/admin/InfoCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/LevelCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/admin/LevelCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/LevelCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/admin/LevelCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/NoCooldownCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/admin/NoCooldownCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/NoCooldownCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/admin/NoCooldownCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/PointsCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/admin/PointsCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/PointsCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/admin/PointsCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResetCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResetCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResetCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResetCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResourceCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResourceCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResourceCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResourceCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/BoosterCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/booster/BoosterCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/BoosterCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/booster/BoosterCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/CreateCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/booster/CreateCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/CreateCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/booster/CreateCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/ListCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/booster/ListCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/ListCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/booster/ListCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/RemoveCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/booster/RemoveCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/RemoveCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/booster/RemoveCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/debug/DebugCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/debug/DebugCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/debug/DebugCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/debug/DebugCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatModifiersCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatModifiersCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatModifiersCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatModifiersCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatValueCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatValueCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatValueCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatValueCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/CancelCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/quest/CancelCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/CancelCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/quest/CancelCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/FinishCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/quest/FinishCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/FinishCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/quest/FinishCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/QuestCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/quest/QuestCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/QuestCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/quest/QuestCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/StartCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/quest/StartCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/StartCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/quest/StartCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/ItemCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/ItemCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/ItemCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/ItemCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/OpenCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/OpenCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/OpenCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/OpenCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/TeleportCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/TeleportCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/TeleportCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/TeleportCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/UnlockCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/UnlockCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/UnlockCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/UnlockCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/WaypointsCommandTreeNode.java b/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/WaypointsCommandTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/WaypointsCommandTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/WaypointsCommandTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEvent.java b/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEvent.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEvent.java
rename to src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEvent.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEventListener.java b/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEventListener.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEventListener.java
rename to src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEventListener.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizensMMOLoader.java b/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizensMMOLoader.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizensMMOLoader.java
rename to src/main/java/net/Indyuce/mmocore/comp/citizens/CitizensMMOLoader.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/GetItemObjective.java b/src/main/java/net/Indyuce/mmocore/comp/citizens/GetItemObjective.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/GetItemObjective.java
rename to src/main/java/net/Indyuce/mmocore/comp/citizens/GetItemObjective.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/TalktoCitizenObjective.java b/src/main/java/net/Indyuce/mmocore/comp/citizens/TalktoCitizenObjective.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/TalktoCitizenObjective.java
rename to src/main/java/net/Indyuce/mmocore/comp/citizens/TalktoCitizenObjective.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicHook.java b/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicHook.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicHook.java
rename to src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicHook.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java b/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java
rename to src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/CurrencyItemDrop.java b/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/CurrencyItemDrop.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/CurrencyItemDrop.java
rename to src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/CurrencyItemDrop.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/GoldPouchDrop.java b/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/GoldPouchDrop.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/GoldPouchDrop.java
rename to src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/GoldPouchDrop.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionExperienceSource.java b/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionExperienceSource.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionExperienceSource.java
rename to src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionExperienceSource.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionObjective.java b/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionObjective.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionObjective.java
rename to src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionObjective.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobExperienceSource.java b/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobExperienceSource.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobExperienceSource.java
rename to src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobExperienceSource.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobObjective.java b/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobObjective.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobObjective.java
rename to src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobObjective.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MMDropTableDropItem.java b/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MMDropTableDropItem.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MMDropTableDropItem.java
rename to src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MMDropTableDropItem.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MythicSkillTrigger.java b/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MythicSkillTrigger.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MythicSkillTrigger.java
rename to src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MythicSkillTrigger.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/DefaultParser.java b/src/main/java/net/Indyuce/mmocore/comp/placeholder/DefaultParser.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/DefaultParser.java
rename to src/main/java/net/Indyuce/mmocore/comp/placeholder/DefaultParser.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderAPIParser.java b/src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderAPIParser.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderAPIParser.java
rename to src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderAPIParser.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderParser.java b/src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderParser.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderParser.java
rename to src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderParser.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/RPGPlaceholders.java b/src/main/java/net/Indyuce/mmocore/comp/placeholder/RPGPlaceholders.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/RPGPlaceholders.java
rename to src/main/java/net/Indyuce/mmocore/comp/placeholder/RPGPlaceholders.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/DefaultRegionHandler.java b/src/main/java/net/Indyuce/mmocore/comp/region/DefaultRegionHandler.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/DefaultRegionHandler.java
rename to src/main/java/net/Indyuce/mmocore/comp/region/DefaultRegionHandler.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/RegionCondition.java b/src/main/java/net/Indyuce/mmocore/comp/region/RegionCondition.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/RegionCondition.java
rename to src/main/java/net/Indyuce/mmocore/comp/region/RegionCondition.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/RegionHandler.java b/src/main/java/net/Indyuce/mmocore/comp/region/RegionHandler.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/RegionHandler.java
rename to src/main/java/net/Indyuce/mmocore/comp/region/RegionHandler.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardMMOLoader.java b/src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardMMOLoader.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardMMOLoader.java
rename to src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardMMOLoader.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardRegionHandler.java b/src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardRegionHandler.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardRegionHandler.java
rename to src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardRegionHandler.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/MoneyTrigger.java b/src/main/java/net/Indyuce/mmocore/comp/vault/MoneyTrigger.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/MoneyTrigger.java
rename to src/main/java/net/Indyuce/mmocore/comp/vault/MoneyTrigger.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/VaultEconomy.java b/src/main/java/net/Indyuce/mmocore/comp/vault/VaultEconomy.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/VaultEconomy.java
rename to src/main/java/net/Indyuce/mmocore/comp/vault/VaultEconomy.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/VaultMMOLoader.java b/src/main/java/net/Indyuce/mmocore/comp/vault/VaultMMOLoader.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/VaultMMOLoader.java
rename to src/main/java/net/Indyuce/mmocore/comp/vault/VaultMMOLoader.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/Booster.java b/src/main/java/net/Indyuce/mmocore/experience/Booster.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/Booster.java
rename to src/main/java/net/Indyuce/mmocore/experience/Booster.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/EXPSource.java b/src/main/java/net/Indyuce/mmocore/experience/EXPSource.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/EXPSource.java
rename to src/main/java/net/Indyuce/mmocore/experience/EXPSource.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExpCurve.java b/src/main/java/net/Indyuce/mmocore/experience/ExpCurve.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExpCurve.java
rename to src/main/java/net/Indyuce/mmocore/experience/ExpCurve.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExperienceObject.java b/src/main/java/net/Indyuce/mmocore/experience/ExperienceObject.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExperienceObject.java
rename to src/main/java/net/Indyuce/mmocore/experience/ExperienceObject.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExperienceTableClaimer.java b/src/main/java/net/Indyuce/mmocore/experience/ExperienceTableClaimer.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExperienceTableClaimer.java
rename to src/main/java/net/Indyuce/mmocore/experience/ExperienceTableClaimer.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java b/src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java
similarity index 99%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java
rename to src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java
index 9a364586..27015da0 100644
--- a/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java
+++ b/src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java
@@ -209,6 +209,11 @@ public class PlayerProfessions {
this.level.put(profession.getId(), level + 1);
check = true;
playerData.giveExperience(profession.getExperience().calculate(level), null);
+
+ // Apply profession experience table
+ if (profession.hasExperienceTable())
+ profession.getExperienceTable().claim(playerData, level, profession);
+
}
if (check) {
@@ -218,10 +223,6 @@ public class PlayerProfessions {
.send(playerData.getPlayer());
MMOCore.plugin.soundManager.getSound(SoundEvent.LEVEL_UP).playTo(playerData.getPlayer());
playerData.getStats().updateStats();
-
- // Apply profession experience table
- if (profession.hasExperienceTable())
- profession.getExperienceTable().claim(playerData, level, profession);
}
StringBuilder bar = new StringBuilder("" + ChatColor.BOLD);
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/Profession.java b/src/main/java/net/Indyuce/mmocore/experience/Profession.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/Profession.java
rename to src/main/java/net/Indyuce/mmocore/experience/Profession.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/SimpleExperienceObject.java b/src/main/java/net/Indyuce/mmocore/experience/SimpleExperienceObject.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/SimpleExperienceObject.java
rename to src/main/java/net/Indyuce/mmocore/experience/SimpleExperienceObject.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/dispenser/ExperienceDispenser.java b/src/main/java/net/Indyuce/mmocore/experience/dispenser/ExperienceDispenser.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/dispenser/ExperienceDispenser.java
rename to src/main/java/net/Indyuce/mmocore/experience/dispenser/ExperienceDispenser.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceItem.java b/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceItem.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceItem.java
rename to src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceItem.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceTable.java b/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceTable.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceTable.java
rename to src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceTable.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/BrewPotionExperienceSource.java b/src/main/java/net/Indyuce/mmocore/experience/source/BrewPotionExperienceSource.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/BrewPotionExperienceSource.java
rename to src/main/java/net/Indyuce/mmocore/experience/source/BrewPotionExperienceSource.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ClimbExperienceSource.java b/src/main/java/net/Indyuce/mmocore/experience/source/ClimbExperienceSource.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ClimbExperienceSource.java
rename to src/main/java/net/Indyuce/mmocore/experience/source/ClimbExperienceSource.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/CraftItemExperienceSource.java b/src/main/java/net/Indyuce/mmocore/experience/source/CraftItemExperienceSource.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/CraftItemExperienceSource.java
rename to src/main/java/net/Indyuce/mmocore/experience/source/CraftItemExperienceSource.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/DamageDealtExperienceSource.java b/src/main/java/net/Indyuce/mmocore/experience/source/DamageDealtExperienceSource.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/DamageDealtExperienceSource.java
rename to src/main/java/net/Indyuce/mmocore/experience/source/DamageDealtExperienceSource.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/DamageTakenExperienceSource.java b/src/main/java/net/Indyuce/mmocore/experience/source/DamageTakenExperienceSource.java
similarity index 92%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/DamageTakenExperienceSource.java
rename to src/main/java/net/Indyuce/mmocore/experience/source/DamageTakenExperienceSource.java
index aece97e4..538cfaa4 100644
--- a/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/DamageTakenExperienceSource.java
+++ b/src/main/java/net/Indyuce/mmocore/experience/source/DamageTakenExperienceSource.java
@@ -21,15 +21,15 @@ public class DamageTakenExperienceSource extends SpecificExperienceSource {
+ try {
+ if (result.next()) {
+
+ //If the data couldn't be loaded for more than 2 seconds its probably due to a server crash and we load the old data
+ //If it the status is is_saved we load the data
+ if (System.currentTimeMillis() - startTime > 2000 || result.getInt("is_saved") == 1) {
+ MMOCore.sqlDebug("Time waited: " + (System.currentTimeMillis() - startTime));
+ 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"));
+ }
+
+ 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());
+
+ //We set the saved status to false
+ sql.updateData("is_saved", 0);
+ this.cancel();
+ data.setFullyLoaded();
+ MMOCore.sqlDebug("Loaded saved data for: '" + data.getUniqueId() + "'!");
+ MMOCore.sqlDebug(String.format("{ class: %s, level: %d }", data.getProfess().getId(), data.getLevel()));
+ } else {
+ MMOCore.sqlDebug("Failed to load data because is_saved is false.");
+ }
+
+ } else {
+ 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();
+ this.cancel();
+ MMOCore.sqlDebug("Loaded DEFAULT data for: '" + data.getUniqueId() + "' as no saved data was found.");
+ return;
+ }
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ });
+ }
+ };
+
+ runnable.runTaskTimerAsynchronously(MMOCore.plugin, 0L, 10L);
+
+ }
+
+
+ private boolean isEmpty(String s) {
+ return s == null || s.equalsIgnoreCase("null") || s.equalsIgnoreCase("{}") || s.equalsIgnoreCase("[]") || s.equalsIgnoreCase("");
+ }
+
+ @Override
+ public void saveData(PlayerData data) {
+
+ 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());
+ sql.updateData("is_saved", 1);
+
+ 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/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLTableEditor.java b/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLTableEditor.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLTableEditor.java
rename to src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLTableEditor.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLDataProvider.java b/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLDataProvider.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLDataProvider.java
rename to src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLDataProvider.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLGuildDataManager.java b/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLGuildDataManager.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLGuildDataManager.java
rename to src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLGuildDataManager.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLOfflinePlayerData.java b/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLOfflinePlayerData.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLOfflinePlayerData.java
rename to src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLOfflinePlayerData.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLPlayerDataManager.java b/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLPlayerDataManager.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLPlayerDataManager.java
rename to src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLPlayerDataManager.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/AlchemyManager.java b/src/main/java/net/Indyuce/mmocore/manager/profession/AlchemyManager.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/AlchemyManager.java
rename to src/main/java/net/Indyuce/mmocore/manager/profession/AlchemyManager.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/CustomBlockManager.java b/src/main/java/net/Indyuce/mmocore/manager/profession/CustomBlockManager.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/CustomBlockManager.java
rename to src/main/java/net/Indyuce/mmocore/manager/profession/CustomBlockManager.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/EnchantManager.java b/src/main/java/net/Indyuce/mmocore/manager/profession/EnchantManager.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/EnchantManager.java
rename to src/main/java/net/Indyuce/mmocore/manager/profession/EnchantManager.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/ExperienceSourceManager.java b/src/main/java/net/Indyuce/mmocore/manager/profession/ExperienceSourceManager.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/ExperienceSourceManager.java
rename to src/main/java/net/Indyuce/mmocore/manager/profession/ExperienceSourceManager.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/FishingManager.java b/src/main/java/net/Indyuce/mmocore/manager/profession/FishingManager.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/FishingManager.java
rename to src/main/java/net/Indyuce/mmocore/manager/profession/FishingManager.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/ProfessionManager.java b/src/main/java/net/Indyuce/mmocore/manager/profession/ProfessionManager.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/ProfessionManager.java
rename to src/main/java/net/Indyuce/mmocore/manager/profession/ProfessionManager.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/SmithingManager.java b/src/main/java/net/Indyuce/mmocore/manager/profession/SmithingManager.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/SmithingManager.java
rename to src/main/java/net/Indyuce/mmocore/manager/profession/SmithingManager.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/SpecificProfessionManager.java b/src/main/java/net/Indyuce/mmocore/manager/profession/SpecificProfessionManager.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/SpecificProfessionManager.java
rename to src/main/java/net/Indyuce/mmocore/manager/profession/SpecificProfessionManager.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/registry/MMOCoreRegister.java b/src/main/java/net/Indyuce/mmocore/manager/registry/MMOCoreRegister.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/registry/MMOCoreRegister.java
rename to src/main/java/net/Indyuce/mmocore/manager/registry/MMOCoreRegister.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/registry/RegisterObject.java b/src/main/java/net/Indyuce/mmocore/manager/registry/RegisterObject.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/registry/RegisterObject.java
rename to src/main/java/net/Indyuce/mmocore/manager/registry/RegisterObject.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/social/BoosterManager.java b/src/main/java/net/Indyuce/mmocore/manager/social/BoosterManager.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/social/BoosterManager.java
rename to src/main/java/net/Indyuce/mmocore/manager/social/BoosterManager.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/social/PartyManager.java b/src/main/java/net/Indyuce/mmocore/manager/social/PartyManager.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/social/PartyManager.java
rename to src/main/java/net/Indyuce/mmocore/manager/social/PartyManager.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/social/RequestManager.java b/src/main/java/net/Indyuce/mmocore/manager/social/RequestManager.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/social/RequestManager.java
rename to src/main/java/net/Indyuce/mmocore/manager/social/RequestManager.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/AbstractParty.java b/src/main/java/net/Indyuce/mmocore/party/AbstractParty.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/party/AbstractParty.java
rename to src/main/java/net/Indyuce/mmocore/party/AbstractParty.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/MMOCoreTargetRestriction.java b/src/main/java/net/Indyuce/mmocore/party/MMOCoreTargetRestriction.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/party/MMOCoreTargetRestriction.java
rename to src/main/java/net/Indyuce/mmocore/party/MMOCoreTargetRestriction.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/PartyModule.java b/src/main/java/net/Indyuce/mmocore/party/PartyModule.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/party/PartyModule.java
rename to src/main/java/net/Indyuce/mmocore/party/PartyModule.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/PartyModuleType.java b/src/main/java/net/Indyuce/mmocore/party/PartyModuleType.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/party/PartyModuleType.java
rename to src/main/java/net/Indyuce/mmocore/party/PartyModuleType.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsPartyModule.java b/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsPartyModule.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsPartyModule.java
rename to src/main/java/net/Indyuce/mmocore/party/compat/DungeonsPartyModule.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsXLPartyModule.java b/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsXLPartyModule.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsXLPartyModule.java
rename to src/main/java/net/Indyuce/mmocore/party/compat/DungeonsXLPartyModule.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/McMMOPartyModule.java b/src/main/java/net/Indyuce/mmocore/party/compat/McMMOPartyModule.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/McMMOPartyModule.java
rename to src/main/java/net/Indyuce/mmocore/party/compat/McMMOPartyModule.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/PAFPartyModule.java b/src/main/java/net/Indyuce/mmocore/party/compat/PAFPartyModule.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/PAFPartyModule.java
rename to src/main/java/net/Indyuce/mmocore/party/compat/PAFPartyModule.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/PartiesPartyModule.java b/src/main/java/net/Indyuce/mmocore/party/compat/PartiesPartyModule.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/PartiesPartyModule.java
rename to src/main/java/net/Indyuce/mmocore/party/compat/PartiesPartyModule.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/MMOCorePartyModule.java b/src/main/java/net/Indyuce/mmocore/party/provided/MMOCorePartyModule.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/MMOCorePartyModule.java
rename to src/main/java/net/Indyuce/mmocore/party/provided/MMOCorePartyModule.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/Party.java b/src/main/java/net/Indyuce/mmocore/party/provided/Party.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/Party.java
rename to src/main/java/net/Indyuce/mmocore/party/provided/Party.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/PartyInvite.java b/src/main/java/net/Indyuce/mmocore/party/provided/PartyInvite.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/PartyInvite.java
rename to src/main/java/net/Indyuce/mmocore/party/provided/PartyInvite.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/PartyListener.java b/src/main/java/net/Indyuce/mmocore/party/provided/PartyListener.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/PartyListener.java
rename to src/main/java/net/Indyuce/mmocore/party/provided/PartyListener.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/player/Unlockable.java b/src/main/java/net/Indyuce/mmocore/player/Unlockable.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/player/Unlockable.java
rename to src/main/java/net/Indyuce/mmocore/player/Unlockable.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTrigger.java b/src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTrigger.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTrigger.java
rename to src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTrigger.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTriggerType.java b/src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTriggerType.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTriggerType.java
rename to src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTriggerType.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/player/stats/StatInfo.java b/src/main/java/net/Indyuce/mmocore/player/stats/StatInfo.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/player/stats/StatInfo.java
rename to src/main/java/net/Indyuce/mmocore/player/stats/StatInfo.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/AbstractQuest.java b/src/main/java/net/Indyuce/mmocore/quest/AbstractQuest.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/AbstractQuest.java
rename to src/main/java/net/Indyuce/mmocore/quest/AbstractQuest.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/MMOCoreQuestModule.java b/src/main/java/net/Indyuce/mmocore/quest/MMOCoreQuestModule.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/MMOCoreQuestModule.java
rename to src/main/java/net/Indyuce/mmocore/quest/MMOCoreQuestModule.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/PlayerQuestData.java b/src/main/java/net/Indyuce/mmocore/quest/PlayerQuestData.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/PlayerQuestData.java
rename to src/main/java/net/Indyuce/mmocore/quest/PlayerQuestData.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/QuestModuleType.java b/src/main/java/net/Indyuce/mmocore/quest/QuestModuleType.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/QuestModuleType.java
rename to src/main/java/net/Indyuce/mmocore/quest/QuestModuleType.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/TODO.txt b/src/main/java/net/Indyuce/mmocore/quest/TODO.txt
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/TODO.txt
rename to src/main/java/net/Indyuce/mmocore/quest/TODO.txt
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/BeautyQuestsModule.java b/src/main/java/net/Indyuce/mmocore/quest/compat/BeautyQuestsModule.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/BeautyQuestsModule.java
rename to src/main/java/net/Indyuce/mmocore/quest/compat/BeautyQuestsModule.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/BlackVeinQuestsModule.java b/src/main/java/net/Indyuce/mmocore/quest/compat/BlackVeinQuestsModule.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/BlackVeinQuestsModule.java
rename to src/main/java/net/Indyuce/mmocore/quest/compat/BlackVeinQuestsModule.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/QuestCreatorModule.java b/src/main/java/net/Indyuce/mmocore/quest/compat/QuestCreatorModule.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/QuestCreatorModule.java
rename to src/main/java/net/Indyuce/mmocore/quest/compat/QuestCreatorModule.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/QuestModule.java b/src/main/java/net/Indyuce/mmocore/quest/compat/QuestModule.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/QuestModule.java
rename to src/main/java/net/Indyuce/mmocore/quest/compat/QuestModule.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/CastableSkill.java b/src/main/java/net/Indyuce/mmocore/skill/CastableSkill.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/CastableSkill.java
rename to src/main/java/net/Indyuce/mmocore/skill/CastableSkill.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java b/src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java
rename to src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/RegisteredSkill.java b/src/main/java/net/Indyuce/mmocore/skill/RegisteredSkill.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/RegisteredSkill.java
rename to src/main/java/net/Indyuce/mmocore/skill/RegisteredSkill.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/KeyCombo.java b/src/main/java/net/Indyuce/mmocore/skill/cast/KeyCombo.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/KeyCombo.java
rename to src/main/java/net/Indyuce/mmocore/skill/cast/KeyCombo.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/PlayerKey.java b/src/main/java/net/Indyuce/mmocore/skill/cast/PlayerKey.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/PlayerKey.java
rename to src/main/java/net/Indyuce/mmocore/skill/cast/PlayerKey.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingHandler.java b/src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingHandler.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingHandler.java
rename to src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingHandler.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingMode.java b/src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingMode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingMode.java
rename to src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingMode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/KeyCombos.java b/src/main/java/net/Indyuce/mmocore/skill/cast/listener/KeyCombos.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/KeyCombos.java
rename to src/main/java/net/Indyuce/mmocore/skill/cast/listener/KeyCombos.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillBar.java b/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillBar.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillBar.java
rename to src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillBar.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillScroller.java b/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillScroller.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillScroller.java
rename to src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillScroller.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/ManaMechanic.java b/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/ManaMechanic.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/ManaMechanic.java
rename to src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/ManaMechanic.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StaminaMechanic.java b/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StaminaMechanic.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StaminaMechanic.java
rename to src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StaminaMechanic.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StelliumMechanic.java b/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StelliumMechanic.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StelliumMechanic.java
rename to src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StelliumMechanic.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/list/Ambers.java b/src/main/java/net/Indyuce/mmocore/skill/list/Ambers.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/list/Ambers.java
rename to src/main/java/net/Indyuce/mmocore/skill/list/Ambers.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/list/Neptune_Gift.java b/src/main/java/net/Indyuce/mmocore/skill/list/Neptune_Gift.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/list/Neptune_Gift.java
rename to src/main/java/net/Indyuce/mmocore/skill/list/Neptune_Gift.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/list/Sneaky_Picky.java b/src/main/java/net/Indyuce/mmocore/skill/list/Sneaky_Picky.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/list/Sneaky_Picky.java
rename to src/main/java/net/Indyuce/mmocore/skill/list/Sneaky_Picky.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/IntegerCoordinates.java b/src/main/java/net/Indyuce/mmocore/tree/IntegerCoordinates.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/IntegerCoordinates.java
rename to src/main/java/net/Indyuce/mmocore/tree/IntegerCoordinates.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/SkillTree.java b/src/main/java/net/Indyuce/mmocore/tree/SkillTree.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/SkillTree.java
rename to src/main/java/net/Indyuce/mmocore/tree/SkillTree.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/SkillTreeNode.java b/src/main/java/net/Indyuce/mmocore/tree/SkillTreeNode.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/SkillTreeNode.java
rename to src/main/java/net/Indyuce/mmocore/tree/SkillTreeNode.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/modifier/UnlockSkillModifier.java b/src/main/java/net/Indyuce/mmocore/tree/modifier/UnlockSkillModifier.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/modifier/UnlockSkillModifier.java
rename to src/main/java/net/Indyuce/mmocore/tree/modifier/UnlockSkillModifier.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/HashableLocation.java b/src/main/java/net/Indyuce/mmocore/util/HashableLocation.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/util/HashableLocation.java
rename to src/main/java/net/Indyuce/mmocore/util/HashableLocation.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/AbstractItemBuilder.java b/src/main/java/net/Indyuce/mmocore/util/item/AbstractItemBuilder.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/AbstractItemBuilder.java
rename to src/main/java/net/Indyuce/mmocore/util/item/AbstractItemBuilder.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/ConfigItem.java b/src/main/java/net/Indyuce/mmocore/util/item/ConfigItem.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/ConfigItem.java
rename to src/main/java/net/Indyuce/mmocore/util/item/ConfigItem.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/CurrencyItemBuilder.java b/src/main/java/net/Indyuce/mmocore/util/item/CurrencyItemBuilder.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/CurrencyItemBuilder.java
rename to src/main/java/net/Indyuce/mmocore/util/item/CurrencyItemBuilder.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/SimpleItemBuilder.java b/src/main/java/net/Indyuce/mmocore/util/item/SimpleItemBuilder.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/SimpleItemBuilder.java
rename to src/main/java/net/Indyuce/mmocore/util/item/SimpleItemBuilder.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/SkillBookBuilder.java b/src/main/java/net/Indyuce/mmocore/util/item/SkillBookBuilder.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/SkillBookBuilder.java
rename to src/main/java/net/Indyuce/mmocore/util/item/SkillBookBuilder.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/WaypointBookBuilder.java b/src/main/java/net/Indyuce/mmocore/util/item/WaypointBookBuilder.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/WaypointBookBuilder.java
rename to src/main/java/net/Indyuce/mmocore/util/item/WaypointBookBuilder.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/waypoint/Waypoint.java b/src/main/java/net/Indyuce/mmocore/waypoint/Waypoint.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/waypoint/Waypoint.java
rename to src/main/java/net/Indyuce/mmocore/waypoint/Waypoint.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/waypoint/WaypointOption.java b/src/main/java/net/Indyuce/mmocore/waypoint/WaypointOption.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/waypoint/WaypointOption.java
rename to src/main/java/net/Indyuce/mmocore/waypoint/WaypointOption.java
diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/waypoint/WaypointPath.java b/src/main/java/net/Indyuce/mmocore/waypoint/WaypointPath.java
similarity index 100%
rename from spigot-plugin/src/main/java/net/Indyuce/mmocore/waypoint/WaypointPath.java
rename to src/main/java/net/Indyuce/mmocore/waypoint/WaypointPath.java
diff --git a/spigot-plugin/src/main/resources/config.yml b/src/main/resources/config.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/config.yml
rename to src/main/resources/config.yml
diff --git a/spigot-plugin/src/main/resources/default/attributes.yml b/src/main/resources/default/attributes.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/attributes.yml
rename to src/main/resources/default/attributes.yml
diff --git a/spigot-plugin/src/main/resources/default/classes/arcane-mage.yml b/src/main/resources/default/classes/arcane-mage.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/classes/arcane-mage.yml
rename to src/main/resources/default/classes/arcane-mage.yml
diff --git a/spigot-plugin/src/main/resources/default/classes/human.yml b/src/main/resources/default/classes/human.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/classes/human.yml
rename to src/main/resources/default/classes/human.yml
diff --git a/spigot-plugin/src/main/resources/default/classes/mage.yml b/src/main/resources/default/classes/mage.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/classes/mage.yml
rename to src/main/resources/default/classes/mage.yml
diff --git a/spigot-plugin/src/main/resources/default/classes/marksman.yml b/src/main/resources/default/classes/marksman.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/classes/marksman.yml
rename to src/main/resources/default/classes/marksman.yml
diff --git a/spigot-plugin/src/main/resources/default/classes/paladin.yml b/src/main/resources/default/classes/paladin.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/classes/paladin.yml
rename to src/main/resources/default/classes/paladin.yml
diff --git a/spigot-plugin/src/main/resources/default/classes/rogue.yml b/src/main/resources/default/classes/rogue.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/classes/rogue.yml
rename to src/main/resources/default/classes/rogue.yml
diff --git a/spigot-plugin/src/main/resources/default/classes/warrior.yml b/src/main/resources/default/classes/warrior.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/classes/warrior.yml
rename to src/main/resources/default/classes/warrior.yml
diff --git a/spigot-plugin/src/main/resources/default/commands.yml b/src/main/resources/default/commands.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/commands.yml
rename to src/main/resources/default/commands.yml
diff --git a/spigot-plugin/src/main/resources/default/drop-tables/example-drop-tables.yml b/src/main/resources/default/drop-tables/example-drop-tables.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/drop-tables/example-drop-tables.yml
rename to src/main/resources/default/drop-tables/example-drop-tables.yml
diff --git a/spigot-plugin/src/main/resources/default/exp-tables.yml b/src/main/resources/default/exp-tables.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/exp-tables.yml
rename to src/main/resources/default/exp-tables.yml
diff --git a/spigot-plugin/src/main/resources/default/expcurves/levels.txt b/src/main/resources/default/expcurves/levels.txt
similarity index 100%
rename from spigot-plugin/src/main/resources/default/expcurves/levels.txt
rename to src/main/resources/default/expcurves/levels.txt
diff --git a/spigot-plugin/src/main/resources/default/expcurves/mining.txt b/src/main/resources/default/expcurves/mining.txt
similarity index 100%
rename from spigot-plugin/src/main/resources/default/expcurves/mining.txt
rename to src/main/resources/default/expcurves/mining.txt
diff --git a/spigot-plugin/src/main/resources/default/gui/attribute-view.yml b/src/main/resources/default/gui/attribute-view.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/gui/attribute-view.yml
rename to src/main/resources/default/gui/attribute-view.yml
diff --git a/spigot-plugin/src/main/resources/default/gui/class-confirm.yml b/src/main/resources/default/gui/class-confirm.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/gui/class-confirm.yml
rename to src/main/resources/default/gui/class-confirm.yml
diff --git a/spigot-plugin/src/main/resources/default/gui/class-select.yml b/src/main/resources/default/gui/class-select.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/gui/class-select.yml
rename to src/main/resources/default/gui/class-select.yml
diff --git a/spigot-plugin/src/main/resources/default/gui/friend-list.yml b/src/main/resources/default/gui/friend-list.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/gui/friend-list.yml
rename to src/main/resources/default/gui/friend-list.yml
diff --git a/spigot-plugin/src/main/resources/default/gui/friend-removal.yml b/src/main/resources/default/gui/friend-removal.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/gui/friend-removal.yml
rename to src/main/resources/default/gui/friend-removal.yml
diff --git a/spigot-plugin/src/main/resources/default/gui/guild-creation.yml b/src/main/resources/default/gui/guild-creation.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/gui/guild-creation.yml
rename to src/main/resources/default/gui/guild-creation.yml
diff --git a/spigot-plugin/src/main/resources/default/gui/guild-view.yml b/src/main/resources/default/gui/guild-view.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/gui/guild-view.yml
rename to src/main/resources/default/gui/guild-view.yml
diff --git a/spigot-plugin/src/main/resources/default/gui/party-creation.yml b/src/main/resources/default/gui/party-creation.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/gui/party-creation.yml
rename to src/main/resources/default/gui/party-creation.yml
diff --git a/spigot-plugin/src/main/resources/default/gui/party-view.yml b/src/main/resources/default/gui/party-view.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/gui/party-view.yml
rename to src/main/resources/default/gui/party-view.yml
diff --git a/spigot-plugin/src/main/resources/default/gui/player-stats.yml b/src/main/resources/default/gui/player-stats.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/gui/player-stats.yml
rename to src/main/resources/default/gui/player-stats.yml
diff --git a/spigot-plugin/src/main/resources/default/gui/quest-list.yml b/src/main/resources/default/gui/quest-list.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/gui/quest-list.yml
rename to src/main/resources/default/gui/quest-list.yml
diff --git a/spigot-plugin/src/main/resources/default/gui/skill-list.yml b/src/main/resources/default/gui/skill-list.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/gui/skill-list.yml
rename to src/main/resources/default/gui/skill-list.yml
diff --git a/spigot-plugin/src/main/resources/default/gui/subclass-confirm.yml b/src/main/resources/default/gui/subclass-confirm.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/gui/subclass-confirm.yml
rename to src/main/resources/default/gui/subclass-confirm.yml
diff --git a/spigot-plugin/src/main/resources/default/gui/subclass-select.yml b/src/main/resources/default/gui/subclass-select.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/gui/subclass-select.yml
rename to src/main/resources/default/gui/subclass-select.yml
diff --git a/spigot-plugin/src/main/resources/default/gui/waypoints.yml b/src/main/resources/default/gui/waypoints.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/gui/waypoints.yml
rename to src/main/resources/default/gui/waypoints.yml
diff --git a/spigot-plugin/src/main/resources/default/guilds.yml b/src/main/resources/default/guilds.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/guilds.yml
rename to src/main/resources/default/guilds.yml
diff --git a/spigot-plugin/src/main/resources/default/items.yml b/src/main/resources/default/items.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/items.yml
rename to src/main/resources/default/items.yml
diff --git a/spigot-plugin/src/main/resources/default/loot-chests.yml b/src/main/resources/default/loot-chests.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/loot-chests.yml
rename to src/main/resources/default/loot-chests.yml
diff --git a/spigot-plugin/src/main/resources/default/messages.yml b/src/main/resources/default/messages.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/messages.yml
rename to src/main/resources/default/messages.yml
diff --git a/spigot-plugin/src/main/resources/default/professions/alchemy.yml b/src/main/resources/default/professions/alchemy.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/professions/alchemy.yml
rename to src/main/resources/default/professions/alchemy.yml
diff --git a/spigot-plugin/src/main/resources/default/professions/enchanting.yml b/src/main/resources/default/professions/enchanting.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/professions/enchanting.yml
rename to src/main/resources/default/professions/enchanting.yml
diff --git a/spigot-plugin/src/main/resources/default/professions/farming.yml b/src/main/resources/default/professions/farming.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/professions/farming.yml
rename to src/main/resources/default/professions/farming.yml
diff --git a/spigot-plugin/src/main/resources/default/professions/fishing.yml b/src/main/resources/default/professions/fishing.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/professions/fishing.yml
rename to src/main/resources/default/professions/fishing.yml
diff --git a/spigot-plugin/src/main/resources/default/professions/mining.yml b/src/main/resources/default/professions/mining.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/professions/mining.yml
rename to src/main/resources/default/professions/mining.yml
diff --git a/spigot-plugin/src/main/resources/default/professions/smelting.yml b/src/main/resources/default/professions/smelting.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/professions/smelting.yml
rename to src/main/resources/default/professions/smelting.yml
diff --git a/spigot-plugin/src/main/resources/default/professions/smithing.yml b/src/main/resources/default/professions/smithing.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/professions/smithing.yml
rename to src/main/resources/default/professions/smithing.yml
diff --git a/spigot-plugin/src/main/resources/default/professions/woodcutting.yml b/src/main/resources/default/professions/woodcutting.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/professions/woodcutting.yml
rename to src/main/resources/default/professions/woodcutting.yml
diff --git a/spigot-plugin/src/main/resources/default/quests/adv-begins.yml b/src/main/resources/default/quests/adv-begins.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/quests/adv-begins.yml
rename to src/main/resources/default/quests/adv-begins.yml
diff --git a/spigot-plugin/src/main/resources/default/quests/fetch-mango.yml b/src/main/resources/default/quests/fetch-mango.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/quests/fetch-mango.yml
rename to src/main/resources/default/quests/fetch-mango.yml
diff --git a/spigot-plugin/src/main/resources/default/quests/tutorial.yml b/src/main/resources/default/quests/tutorial.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/quests/tutorial.yml
rename to src/main/resources/default/quests/tutorial.yml
diff --git a/spigot-plugin/src/main/resources/default/recipes/brewing.yml b/src/main/resources/default/recipes/brewing.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/recipes/brewing.yml
rename to src/main/resources/default/recipes/brewing.yml
diff --git a/spigot-plugin/src/main/resources/default/recipes/furnace.yml b/src/main/resources/default/recipes/furnace.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/recipes/furnace.yml
rename to src/main/resources/default/recipes/furnace.yml
diff --git a/spigot-plugin/src/main/resources/default/restrictions.yml b/src/main/resources/default/restrictions.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/restrictions.yml
rename to src/main/resources/default/restrictions.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/ambers.yml b/src/main/resources/default/skills/ambers.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/ambers.yml
rename to src/main/resources/default/skills/ambers.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/backstab.yml b/src/main/resources/default/skills/backstab.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/backstab.yml
rename to src/main/resources/default/skills/backstab.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/combo-attack.yml b/src/main/resources/default/skills/combo-attack.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/combo-attack.yml
rename to src/main/resources/default/skills/combo-attack.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/control.yml b/src/main/resources/default/skills/control.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/control.yml
rename to src/main/resources/default/skills/control.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/deep-wound.yml b/src/main/resources/default/skills/deep-wound.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/deep-wound.yml
rename to src/main/resources/default/skills/deep-wound.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/empowered-attack.yml b/src/main/resources/default/skills/empowered-attack.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/empowered-attack.yml
rename to src/main/resources/default/skills/empowered-attack.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/evade.yml b/src/main/resources/default/skills/evade.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/evade.yml
rename to src/main/resources/default/skills/evade.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/fire-berserker.yml b/src/main/resources/default/skills/fire-berserker.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/fire-berserker.yml
rename to src/main/resources/default/skills/fire-berserker.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/fire-rage.yml b/src/main/resources/default/skills/fire-rage.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/fire-rage.yml
rename to src/main/resources/default/skills/fire-rage.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/fire-storm.yml b/src/main/resources/default/skills/fire-storm.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/fire-storm.yml
rename to src/main/resources/default/skills/fire-storm.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/fireball.yml b/src/main/resources/default/skills/fireball.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/fireball.yml
rename to src/main/resources/default/skills/fireball.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/furtive-strike.yml b/src/main/resources/default/skills/furtive-strike.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/furtive-strike.yml
rename to src/main/resources/default/skills/furtive-strike.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/greater-healings.yml b/src/main/resources/default/skills/greater-healings.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/greater-healings.yml
rename to src/main/resources/default/skills/greater-healings.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/human-shield.yml b/src/main/resources/default/skills/human-shield.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/human-shield.yml
rename to src/main/resources/default/skills/human-shield.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/ice-spikes.yml b/src/main/resources/default/skills/ice-spikes.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/ice-spikes.yml
rename to src/main/resources/default/skills/ice-spikes.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/minor-healings.yml b/src/main/resources/default/skills/minor-healings.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/minor-healings.yml
rename to src/main/resources/default/skills/minor-healings.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/neptune-gift.yml b/src/main/resources/default/skills/neptune-gift.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/neptune-gift.yml
rename to src/main/resources/default/skills/neptune-gift.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/power-mark.yml b/src/main/resources/default/skills/power-mark.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/power-mark.yml
rename to src/main/resources/default/skills/power-mark.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/sneaky-picky.yml b/src/main/resources/default/skills/sneaky-picky.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/sneaky-picky.yml
rename to src/main/resources/default/skills/sneaky-picky.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/telekinesy.yml b/src/main/resources/default/skills/telekinesy.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/telekinesy.yml
rename to src/main/resources/default/skills/telekinesy.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/warp.yml b/src/main/resources/default/skills/warp.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/warp.yml
rename to src/main/resources/default/skills/warp.yml
diff --git a/spigot-plugin/src/main/resources/default/skills/weaken.yml b/src/main/resources/default/skills/weaken.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/skills/weaken.yml
rename to src/main/resources/default/skills/weaken.yml
diff --git a/spigot-plugin/src/main/resources/default/sounds.yml b/src/main/resources/default/sounds.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/sounds.yml
rename to src/main/resources/default/sounds.yml
diff --git a/spigot-plugin/src/main/resources/default/stats.yml b/src/main/resources/default/stats.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/stats.yml
rename to src/main/resources/default/stats.yml
diff --git a/spigot-plugin/src/main/resources/default/waypoints.yml b/src/main/resources/default/waypoints.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/default/waypoints.yml
rename to src/main/resources/default/waypoints.yml
diff --git a/spigot-plugin/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
similarity index 100%
rename from spigot-plugin/src/main/resources/plugin.yml
rename to src/main/resources/plugin.yml