diff --git a/core/pom.xml b/core/pom.xml
new file mode 100644
index 00000000..ff1665d0
--- /dev/null
+++ b/core/pom.xml
@@ -0,0 +1,171 @@
+
+ 4.0.0
+
+
+ ../pom.xml
+ 0.2-SNAPSHOT
+ dev.pgm
+ Community
+
+
+ Core
+ core
+ jar
+
+
+
+
+ app.ashcon
+ sportpaper
+ 1.8.8-R0.1-SNAPSHOT
+ provided
+
+
+
+
+ tc.oc.pgm
+ util
+ 0.16-SNAPSHOT
+
+
+
+ tc.oc.pgm
+ core
+ 0.16-SNAPSHOT
+ provided
+
+
+
+
+ co.aikar
+ idb-core
+ 1.0.0-SNAPSHOT
+
+
+ com.zaxxer
+ HikariCP
+ 2.4.1
+
+
+ co.aikar
+ idb-bukkit
+ 1.0.0-SNAPSHOT
+
+
+
+
+ redis.clients
+ jedis
+ 3.5.1
+ jar
+ compile
+
+
+
+
+ fr.minuskube.inv
+ smart-invs
+ 1.2.7
+
+
+
+
+ tc.oc.occ
+ Environment
+ 1.0.0-SNAPSHOT
+
+
+
+
+ tc.oc.occ
+ AFK
+ 1.0.0-SNAPSHOT
+ provided
+
+
+
+
+
+ Community
+
+
+
+ ${basedir}/src/main/resources
+ true
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.13.0
+
+
+
+ org.incendo
+ cloud-annotations
+ 2.0.0-rc.2
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.6.0
+
+ false
+ true
+
+
+ net.kyori:*:*
+ co.aikar:*
+ tc.oc.pgm:util
+ redis.clients:jedis
+ org.apache.commons:commons-pool2
+ fr.minuskube.inv:smart-invs
+ com.zaxxer:HikariCP
+ org.slf4j:*
+
+
+
+
+ *:*
+
+ META-INF/**
+
+
+
+
+
+
+ package
+
+ shade
+
+
+
+
+
+ maven-antrun-plugin
+ 3.1.0
+
+
+ jar
+ package
+
+
+
+
+
+
+ run
+
+
+
+
+
+
+
diff --git a/src/main/java/dev/pgm/community/Community.java b/core/src/main/java/dev/pgm/community/Community.java
similarity index 100%
rename from src/main/java/dev/pgm/community/Community.java
rename to core/src/main/java/dev/pgm/community/Community.java
diff --git a/src/main/java/dev/pgm/community/CommunityCommand.java b/core/src/main/java/dev/pgm/community/CommunityCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/CommunityCommand.java
rename to core/src/main/java/dev/pgm/community/CommunityCommand.java
diff --git a/src/main/java/dev/pgm/community/CommunityConfig.java b/core/src/main/java/dev/pgm/community/CommunityConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/CommunityConfig.java
rename to core/src/main/java/dev/pgm/community/CommunityConfig.java
diff --git a/src/main/java/dev/pgm/community/CommunityPermissions.java b/core/src/main/java/dev/pgm/community/CommunityPermissions.java
similarity index 100%
rename from src/main/java/dev/pgm/community/CommunityPermissions.java
rename to core/src/main/java/dev/pgm/community/CommunityPermissions.java
diff --git a/src/main/java/dev/pgm/community/assistance/AssistanceRequest.java b/core/src/main/java/dev/pgm/community/assistance/AssistanceRequest.java
similarity index 100%
rename from src/main/java/dev/pgm/community/assistance/AssistanceRequest.java
rename to core/src/main/java/dev/pgm/community/assistance/AssistanceRequest.java
diff --git a/src/main/java/dev/pgm/community/assistance/PlayerHelpRequest.java b/core/src/main/java/dev/pgm/community/assistance/PlayerHelpRequest.java
similarity index 100%
rename from src/main/java/dev/pgm/community/assistance/PlayerHelpRequest.java
rename to core/src/main/java/dev/pgm/community/assistance/PlayerHelpRequest.java
diff --git a/src/main/java/dev/pgm/community/assistance/Report.java b/core/src/main/java/dev/pgm/community/assistance/Report.java
similarity index 100%
rename from src/main/java/dev/pgm/community/assistance/Report.java
rename to core/src/main/java/dev/pgm/community/assistance/Report.java
diff --git a/src/main/java/dev/pgm/community/assistance/ReportConfig.java b/core/src/main/java/dev/pgm/community/assistance/ReportConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/assistance/ReportConfig.java
rename to core/src/main/java/dev/pgm/community/assistance/ReportConfig.java
diff --git a/src/main/java/dev/pgm/community/assistance/commands/PlayerHelpCommand.java b/core/src/main/java/dev/pgm/community/assistance/commands/PlayerHelpCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/assistance/commands/PlayerHelpCommand.java
rename to core/src/main/java/dev/pgm/community/assistance/commands/PlayerHelpCommand.java
diff --git a/src/main/java/dev/pgm/community/assistance/commands/ReportCommands.java b/core/src/main/java/dev/pgm/community/assistance/commands/ReportCommands.java
similarity index 100%
rename from src/main/java/dev/pgm/community/assistance/commands/ReportCommands.java
rename to core/src/main/java/dev/pgm/community/assistance/commands/ReportCommands.java
diff --git a/src/main/java/dev/pgm/community/assistance/feature/AssistanceFeature.java b/core/src/main/java/dev/pgm/community/assistance/feature/AssistanceFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/assistance/feature/AssistanceFeature.java
rename to core/src/main/java/dev/pgm/community/assistance/feature/AssistanceFeature.java
diff --git a/src/main/java/dev/pgm/community/assistance/feature/AssistanceFeatureBase.java b/core/src/main/java/dev/pgm/community/assistance/feature/AssistanceFeatureBase.java
similarity index 100%
rename from src/main/java/dev/pgm/community/assistance/feature/AssistanceFeatureBase.java
rename to core/src/main/java/dev/pgm/community/assistance/feature/AssistanceFeatureBase.java
diff --git a/src/main/java/dev/pgm/community/assistance/feature/types/NoDBAssistanceFeature.java b/core/src/main/java/dev/pgm/community/assistance/feature/types/NoDBAssistanceFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/assistance/feature/types/NoDBAssistanceFeature.java
rename to core/src/main/java/dev/pgm/community/assistance/feature/types/NoDBAssistanceFeature.java
diff --git a/src/main/java/dev/pgm/community/assistance/feature/types/SQLAssistanceFeature.java b/core/src/main/java/dev/pgm/community/assistance/feature/types/SQLAssistanceFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/assistance/feature/types/SQLAssistanceFeature.java
rename to core/src/main/java/dev/pgm/community/assistance/feature/types/SQLAssistanceFeature.java
diff --git a/src/main/java/dev/pgm/community/assistance/menu/ReportCategory.java b/core/src/main/java/dev/pgm/community/assistance/menu/ReportCategory.java
similarity index 100%
rename from src/main/java/dev/pgm/community/assistance/menu/ReportCategory.java
rename to core/src/main/java/dev/pgm/community/assistance/menu/ReportCategory.java
diff --git a/src/main/java/dev/pgm/community/assistance/menu/ReportCategoryMenu.java b/core/src/main/java/dev/pgm/community/assistance/menu/ReportCategoryMenu.java
similarity index 100%
rename from src/main/java/dev/pgm/community/assistance/menu/ReportCategoryMenu.java
rename to core/src/main/java/dev/pgm/community/assistance/menu/ReportCategoryMenu.java
diff --git a/src/main/java/dev/pgm/community/assistance/menu/ReportReason.java b/core/src/main/java/dev/pgm/community/assistance/menu/ReportReason.java
similarity index 100%
rename from src/main/java/dev/pgm/community/assistance/menu/ReportReason.java
rename to core/src/main/java/dev/pgm/community/assistance/menu/ReportReason.java
diff --git a/src/main/java/dev/pgm/community/assistance/menu/ReportReasonsMenu.java b/core/src/main/java/dev/pgm/community/assistance/menu/ReportReasonsMenu.java
similarity index 100%
rename from src/main/java/dev/pgm/community/assistance/menu/ReportReasonsMenu.java
rename to core/src/main/java/dev/pgm/community/assistance/menu/ReportReasonsMenu.java
diff --git a/src/main/java/dev/pgm/community/assistance/services/AssistanceQuery.java b/core/src/main/java/dev/pgm/community/assistance/services/AssistanceQuery.java
similarity index 100%
rename from src/main/java/dev/pgm/community/assistance/services/AssistanceQuery.java
rename to core/src/main/java/dev/pgm/community/assistance/services/AssistanceQuery.java
diff --git a/src/main/java/dev/pgm/community/assistance/services/SQLAssistanceService.java b/core/src/main/java/dev/pgm/community/assistance/services/SQLAssistanceService.java
similarity index 100%
rename from src/main/java/dev/pgm/community/assistance/services/SQLAssistanceService.java
rename to core/src/main/java/dev/pgm/community/assistance/services/SQLAssistanceService.java
diff --git a/src/main/java/dev/pgm/community/broadcast/BroadcastCommand.java b/core/src/main/java/dev/pgm/community/broadcast/BroadcastCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/broadcast/BroadcastCommand.java
rename to core/src/main/java/dev/pgm/community/broadcast/BroadcastCommand.java
diff --git a/src/main/java/dev/pgm/community/broadcast/BroadcastConfig.java b/core/src/main/java/dev/pgm/community/broadcast/BroadcastConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/broadcast/BroadcastConfig.java
rename to core/src/main/java/dev/pgm/community/broadcast/BroadcastConfig.java
diff --git a/src/main/java/dev/pgm/community/broadcast/BroadcastFeature.java b/core/src/main/java/dev/pgm/community/broadcast/BroadcastFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/broadcast/BroadcastFeature.java
rename to core/src/main/java/dev/pgm/community/broadcast/BroadcastFeature.java
diff --git a/src/main/java/dev/pgm/community/chat/management/ChatManagementCommand.java b/core/src/main/java/dev/pgm/community/chat/management/ChatManagementCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/chat/management/ChatManagementCommand.java
rename to core/src/main/java/dev/pgm/community/chat/management/ChatManagementCommand.java
diff --git a/src/main/java/dev/pgm/community/chat/management/ChatManagementConfig.java b/core/src/main/java/dev/pgm/community/chat/management/ChatManagementConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/chat/management/ChatManagementConfig.java
rename to core/src/main/java/dev/pgm/community/chat/management/ChatManagementConfig.java
diff --git a/src/main/java/dev/pgm/community/chat/management/ChatManagementFeature.java b/core/src/main/java/dev/pgm/community/chat/management/ChatManagementFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/chat/management/ChatManagementFeature.java
rename to core/src/main/java/dev/pgm/community/chat/management/ChatManagementFeature.java
diff --git a/src/main/java/dev/pgm/community/chat/network/NetworkChatConfig.java b/core/src/main/java/dev/pgm/community/chat/network/NetworkChatConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/chat/network/NetworkChatConfig.java
rename to core/src/main/java/dev/pgm/community/chat/network/NetworkChatConfig.java
diff --git a/src/main/java/dev/pgm/community/chat/network/NetworkChatFeature.java b/core/src/main/java/dev/pgm/community/chat/network/NetworkChatFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/chat/network/NetworkChatFeature.java
rename to core/src/main/java/dev/pgm/community/chat/network/NetworkChatFeature.java
diff --git a/src/main/java/dev/pgm/community/chat/network/NetworkChatMessage.java b/core/src/main/java/dev/pgm/community/chat/network/NetworkChatMessage.java
similarity index 100%
rename from src/main/java/dev/pgm/community/chat/network/NetworkChatMessage.java
rename to core/src/main/java/dev/pgm/community/chat/network/NetworkChatMessage.java
diff --git a/src/main/java/dev/pgm/community/commands/CommunityPluginCommand.java b/core/src/main/java/dev/pgm/community/commands/CommunityPluginCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/commands/CommunityPluginCommand.java
rename to core/src/main/java/dev/pgm/community/commands/CommunityPluginCommand.java
diff --git a/src/main/java/dev/pgm/community/commands/ContainerCommand.java b/core/src/main/java/dev/pgm/community/commands/ContainerCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/commands/ContainerCommand.java
rename to core/src/main/java/dev/pgm/community/commands/ContainerCommand.java
diff --git a/src/main/java/dev/pgm/community/commands/FlightCommand.java b/core/src/main/java/dev/pgm/community/commands/FlightCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/commands/FlightCommand.java
rename to core/src/main/java/dev/pgm/community/commands/FlightCommand.java
diff --git a/src/main/java/dev/pgm/community/commands/GamemodeCommand.java b/core/src/main/java/dev/pgm/community/commands/GamemodeCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/commands/GamemodeCommand.java
rename to core/src/main/java/dev/pgm/community/commands/GamemodeCommand.java
diff --git a/src/main/java/dev/pgm/community/commands/ServerInfoCommand.java b/core/src/main/java/dev/pgm/community/commands/ServerInfoCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/commands/ServerInfoCommand.java
rename to core/src/main/java/dev/pgm/community/commands/ServerInfoCommand.java
diff --git a/src/main/java/dev/pgm/community/commands/StaffCommand.java b/core/src/main/java/dev/pgm/community/commands/StaffCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/commands/StaffCommand.java
rename to core/src/main/java/dev/pgm/community/commands/StaffCommand.java
diff --git a/src/main/java/dev/pgm/community/commands/SudoCommand.java b/core/src/main/java/dev/pgm/community/commands/SudoCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/commands/SudoCommand.java
rename to core/src/main/java/dev/pgm/community/commands/SudoCommand.java
diff --git a/src/main/java/dev/pgm/community/commands/VanishedCommand.java b/core/src/main/java/dev/pgm/community/commands/VanishedCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/commands/VanishedCommand.java
rename to core/src/main/java/dev/pgm/community/commands/VanishedCommand.java
diff --git a/src/main/java/dev/pgm/community/commands/graph/CommunityCommandGraph.java b/core/src/main/java/dev/pgm/community/commands/graph/CommunityCommandGraph.java
similarity index 100%
rename from src/main/java/dev/pgm/community/commands/graph/CommunityCommandGraph.java
rename to core/src/main/java/dev/pgm/community/commands/graph/CommunityCommandGraph.java
diff --git a/src/main/java/dev/pgm/community/commands/injectors/CommandAudienceProvider.java b/core/src/main/java/dev/pgm/community/commands/injectors/CommandAudienceProvider.java
similarity index 100%
rename from src/main/java/dev/pgm/community/commands/injectors/CommandAudienceProvider.java
rename to core/src/main/java/dev/pgm/community/commands/injectors/CommandAudienceProvider.java
diff --git a/src/main/java/dev/pgm/community/commands/player/TargetPlayer.java b/core/src/main/java/dev/pgm/community/commands/player/TargetPlayer.java
similarity index 100%
rename from src/main/java/dev/pgm/community/commands/player/TargetPlayer.java
rename to core/src/main/java/dev/pgm/community/commands/player/TargetPlayer.java
diff --git a/src/main/java/dev/pgm/community/commands/providers/GameModeParser.java b/core/src/main/java/dev/pgm/community/commands/providers/GameModeParser.java
similarity index 100%
rename from src/main/java/dev/pgm/community/commands/providers/GameModeParser.java
rename to core/src/main/java/dev/pgm/community/commands/providers/GameModeParser.java
diff --git a/src/main/java/dev/pgm/community/commands/providers/TargetPlayerParser.java b/core/src/main/java/dev/pgm/community/commands/providers/TargetPlayerParser.java
similarity index 100%
rename from src/main/java/dev/pgm/community/commands/providers/TargetPlayerParser.java
rename to core/src/main/java/dev/pgm/community/commands/providers/TargetPlayerParser.java
diff --git a/src/main/java/dev/pgm/community/database/DatabaseConfig.java b/core/src/main/java/dev/pgm/community/database/DatabaseConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/database/DatabaseConfig.java
rename to core/src/main/java/dev/pgm/community/database/DatabaseConfig.java
diff --git a/src/main/java/dev/pgm/community/database/DatabaseConnection.java b/core/src/main/java/dev/pgm/community/database/DatabaseConnection.java
similarity index 100%
rename from src/main/java/dev/pgm/community/database/DatabaseConnection.java
rename to core/src/main/java/dev/pgm/community/database/DatabaseConnection.java
diff --git a/src/main/java/dev/pgm/community/database/Query.java b/core/src/main/java/dev/pgm/community/database/Query.java
similarity index 100%
rename from src/main/java/dev/pgm/community/database/Query.java
rename to core/src/main/java/dev/pgm/community/database/Query.java
diff --git a/src/main/java/dev/pgm/community/database/Savable.java b/core/src/main/java/dev/pgm/community/database/Savable.java
similarity index 100%
rename from src/main/java/dev/pgm/community/database/Savable.java
rename to core/src/main/java/dev/pgm/community/database/Savable.java
diff --git a/src/main/java/dev/pgm/community/events/CommunityEvent.java b/core/src/main/java/dev/pgm/community/events/CommunityEvent.java
similarity index 100%
rename from src/main/java/dev/pgm/community/events/CommunityEvent.java
rename to core/src/main/java/dev/pgm/community/events/CommunityEvent.java
diff --git a/src/main/java/dev/pgm/community/events/PlayerHelpRequestEvent.java b/core/src/main/java/dev/pgm/community/events/PlayerHelpRequestEvent.java
similarity index 100%
rename from src/main/java/dev/pgm/community/events/PlayerHelpRequestEvent.java
rename to core/src/main/java/dev/pgm/community/events/PlayerHelpRequestEvent.java
diff --git a/src/main/java/dev/pgm/community/events/PlayerPunishmentEvent.java b/core/src/main/java/dev/pgm/community/events/PlayerPunishmentEvent.java
similarity index 100%
rename from src/main/java/dev/pgm/community/events/PlayerPunishmentEvent.java
rename to core/src/main/java/dev/pgm/community/events/PlayerPunishmentEvent.java
diff --git a/src/main/java/dev/pgm/community/events/PlayerReportEvent.java b/core/src/main/java/dev/pgm/community/events/PlayerReportEvent.java
similarity index 100%
rename from src/main/java/dev/pgm/community/events/PlayerReportEvent.java
rename to core/src/main/java/dev/pgm/community/events/PlayerReportEvent.java
diff --git a/src/main/java/dev/pgm/community/events/UserProfileLoadEvent.java b/core/src/main/java/dev/pgm/community/events/UserProfileLoadEvent.java
similarity index 100%
rename from src/main/java/dev/pgm/community/events/UserProfileLoadEvent.java
rename to core/src/main/java/dev/pgm/community/events/UserProfileLoadEvent.java
diff --git a/src/main/java/dev/pgm/community/feature/Feature.java b/core/src/main/java/dev/pgm/community/feature/Feature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/feature/Feature.java
rename to core/src/main/java/dev/pgm/community/feature/Feature.java
diff --git a/src/main/java/dev/pgm/community/feature/FeatureBase.java b/core/src/main/java/dev/pgm/community/feature/FeatureBase.java
similarity index 100%
rename from src/main/java/dev/pgm/community/feature/FeatureBase.java
rename to core/src/main/java/dev/pgm/community/feature/FeatureBase.java
diff --git a/src/main/java/dev/pgm/community/feature/FeatureManager.java b/core/src/main/java/dev/pgm/community/feature/FeatureManager.java
similarity index 100%
rename from src/main/java/dev/pgm/community/feature/FeatureManager.java
rename to core/src/main/java/dev/pgm/community/feature/FeatureManager.java
diff --git a/src/main/java/dev/pgm/community/feature/SQLFeature.java b/core/src/main/java/dev/pgm/community/feature/SQLFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/feature/SQLFeature.java
rename to core/src/main/java/dev/pgm/community/feature/SQLFeature.java
diff --git a/src/main/java/dev/pgm/community/feature/SQLFeatureBase.java b/core/src/main/java/dev/pgm/community/feature/SQLFeatureBase.java
similarity index 100%
rename from src/main/java/dev/pgm/community/feature/SQLFeatureBase.java
rename to core/src/main/java/dev/pgm/community/feature/SQLFeatureBase.java
diff --git a/src/main/java/dev/pgm/community/feature/config/FeatureConfig.java b/core/src/main/java/dev/pgm/community/feature/config/FeatureConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/feature/config/FeatureConfig.java
rename to core/src/main/java/dev/pgm/community/feature/config/FeatureConfig.java
diff --git a/src/main/java/dev/pgm/community/feature/config/FeatureConfigImpl.java b/core/src/main/java/dev/pgm/community/feature/config/FeatureConfigImpl.java
similarity index 100%
rename from src/main/java/dev/pgm/community/feature/config/FeatureConfigImpl.java
rename to core/src/main/java/dev/pgm/community/feature/config/FeatureConfigImpl.java
diff --git a/src/main/java/dev/pgm/community/freeze/FreezeCommand.java b/core/src/main/java/dev/pgm/community/freeze/FreezeCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/freeze/FreezeCommand.java
rename to core/src/main/java/dev/pgm/community/freeze/FreezeCommand.java
diff --git a/src/main/java/dev/pgm/community/freeze/FreezeConfig.java b/core/src/main/java/dev/pgm/community/freeze/FreezeConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/freeze/FreezeConfig.java
rename to core/src/main/java/dev/pgm/community/freeze/FreezeConfig.java
diff --git a/src/main/java/dev/pgm/community/freeze/FreezeFeature.java b/core/src/main/java/dev/pgm/community/freeze/FreezeFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/freeze/FreezeFeature.java
rename to core/src/main/java/dev/pgm/community/freeze/FreezeFeature.java
diff --git a/src/main/java/dev/pgm/community/freeze/FreezeManager.java b/core/src/main/java/dev/pgm/community/freeze/FreezeManager.java
similarity index 100%
rename from src/main/java/dev/pgm/community/freeze/FreezeManager.java
rename to core/src/main/java/dev/pgm/community/freeze/FreezeManager.java
diff --git a/src/main/java/dev/pgm/community/friends/FriendRequestStatus.java b/core/src/main/java/dev/pgm/community/friends/FriendRequestStatus.java
similarity index 100%
rename from src/main/java/dev/pgm/community/friends/FriendRequestStatus.java
rename to core/src/main/java/dev/pgm/community/friends/FriendRequestStatus.java
diff --git a/src/main/java/dev/pgm/community/friends/Friendship.java b/core/src/main/java/dev/pgm/community/friends/Friendship.java
similarity index 100%
rename from src/main/java/dev/pgm/community/friends/Friendship.java
rename to core/src/main/java/dev/pgm/community/friends/Friendship.java
diff --git a/src/main/java/dev/pgm/community/friends/FriendshipConfig.java b/core/src/main/java/dev/pgm/community/friends/FriendshipConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/friends/FriendshipConfig.java
rename to core/src/main/java/dev/pgm/community/friends/FriendshipConfig.java
diff --git a/src/main/java/dev/pgm/community/friends/commands/FriendshipCommand.java b/core/src/main/java/dev/pgm/community/friends/commands/FriendshipCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/friends/commands/FriendshipCommand.java
rename to core/src/main/java/dev/pgm/community/friends/commands/FriendshipCommand.java
diff --git a/src/main/java/dev/pgm/community/friends/feature/FriendshipFeature.java b/core/src/main/java/dev/pgm/community/friends/feature/FriendshipFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/friends/feature/FriendshipFeature.java
rename to core/src/main/java/dev/pgm/community/friends/feature/FriendshipFeature.java
diff --git a/src/main/java/dev/pgm/community/friends/feature/FriendshipFeatureBase.java b/core/src/main/java/dev/pgm/community/friends/feature/FriendshipFeatureBase.java
similarity index 100%
rename from src/main/java/dev/pgm/community/friends/feature/FriendshipFeatureBase.java
rename to core/src/main/java/dev/pgm/community/friends/feature/FriendshipFeatureBase.java
diff --git a/src/main/java/dev/pgm/community/friends/feature/PGMFriendIntegration.java b/core/src/main/java/dev/pgm/community/friends/feature/PGMFriendIntegration.java
similarity index 100%
rename from src/main/java/dev/pgm/community/friends/feature/PGMFriendIntegration.java
rename to core/src/main/java/dev/pgm/community/friends/feature/PGMFriendIntegration.java
diff --git a/src/main/java/dev/pgm/community/friends/feature/types/SQLFriendshipFeature.java b/core/src/main/java/dev/pgm/community/friends/feature/types/SQLFriendshipFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/friends/feature/types/SQLFriendshipFeature.java
rename to core/src/main/java/dev/pgm/community/friends/feature/types/SQLFriendshipFeature.java
diff --git a/src/main/java/dev/pgm/community/friends/services/FriendshipQuery.java b/core/src/main/java/dev/pgm/community/friends/services/FriendshipQuery.java
similarity index 100%
rename from src/main/java/dev/pgm/community/friends/services/FriendshipQuery.java
rename to core/src/main/java/dev/pgm/community/friends/services/FriendshipQuery.java
diff --git a/src/main/java/dev/pgm/community/friends/services/SQLFriendshipService.java b/core/src/main/java/dev/pgm/community/friends/services/SQLFriendshipService.java
similarity index 100%
rename from src/main/java/dev/pgm/community/friends/services/SQLFriendshipService.java
rename to core/src/main/java/dev/pgm/community/friends/services/SQLFriendshipService.java
diff --git a/src/main/java/dev/pgm/community/history/MatchHistoryCommand.java b/core/src/main/java/dev/pgm/community/history/MatchHistoryCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/history/MatchHistoryCommand.java
rename to core/src/main/java/dev/pgm/community/history/MatchHistoryCommand.java
diff --git a/src/main/java/dev/pgm/community/history/MatchHistoryConfig.java b/core/src/main/java/dev/pgm/community/history/MatchHistoryConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/history/MatchHistoryConfig.java
rename to core/src/main/java/dev/pgm/community/history/MatchHistoryConfig.java
diff --git a/src/main/java/dev/pgm/community/history/MatchHistoryEntry.java b/core/src/main/java/dev/pgm/community/history/MatchHistoryEntry.java
similarity index 100%
rename from src/main/java/dev/pgm/community/history/MatchHistoryEntry.java
rename to core/src/main/java/dev/pgm/community/history/MatchHistoryEntry.java
diff --git a/src/main/java/dev/pgm/community/history/MatchHistoryFeature.java b/core/src/main/java/dev/pgm/community/history/MatchHistoryFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/history/MatchHistoryFeature.java
rename to core/src/main/java/dev/pgm/community/history/MatchHistoryFeature.java
diff --git a/src/main/java/dev/pgm/community/info/InfoCommandConfig.java b/core/src/main/java/dev/pgm/community/info/InfoCommandConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/info/InfoCommandConfig.java
rename to core/src/main/java/dev/pgm/community/info/InfoCommandConfig.java
diff --git a/src/main/java/dev/pgm/community/info/InfoCommandData.java b/core/src/main/java/dev/pgm/community/info/InfoCommandData.java
similarity index 100%
rename from src/main/java/dev/pgm/community/info/InfoCommandData.java
rename to core/src/main/java/dev/pgm/community/info/InfoCommandData.java
diff --git a/src/main/java/dev/pgm/community/info/InfoCommandsFeature.java b/core/src/main/java/dev/pgm/community/info/InfoCommandsFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/info/InfoCommandsFeature.java
rename to core/src/main/java/dev/pgm/community/info/InfoCommandsFeature.java
diff --git a/src/main/java/dev/pgm/community/menu/CommunityInventoryProvider.java b/core/src/main/java/dev/pgm/community/menu/CommunityInventoryProvider.java
similarity index 100%
rename from src/main/java/dev/pgm/community/menu/CommunityInventoryProvider.java
rename to core/src/main/java/dev/pgm/community/menu/CommunityInventoryProvider.java
diff --git a/src/main/java/dev/pgm/community/menu/MapSelectionMenu.java b/core/src/main/java/dev/pgm/community/menu/MapSelectionMenu.java
similarity index 100%
rename from src/main/java/dev/pgm/community/menu/MapSelectionMenu.java
rename to core/src/main/java/dev/pgm/community/menu/MapSelectionMenu.java
diff --git a/src/main/java/dev/pgm/community/menu/MenuItem.java b/core/src/main/java/dev/pgm/community/menu/MenuItem.java
similarity index 100%
rename from src/main/java/dev/pgm/community/menu/MenuItem.java
rename to core/src/main/java/dev/pgm/community/menu/MenuItem.java
diff --git a/src/main/java/dev/pgm/community/menu/PageableInventory.java b/core/src/main/java/dev/pgm/community/menu/PageableInventory.java
similarity index 100%
rename from src/main/java/dev/pgm/community/menu/PageableInventory.java
rename to core/src/main/java/dev/pgm/community/menu/PageableInventory.java
diff --git a/src/main/java/dev/pgm/community/menu/PlayerSelectionProvider.java b/core/src/main/java/dev/pgm/community/menu/PlayerSelectionProvider.java
similarity index 100%
rename from src/main/java/dev/pgm/community/menu/PlayerSelectionProvider.java
rename to core/src/main/java/dev/pgm/community/menu/PlayerSelectionProvider.java
diff --git a/src/main/java/dev/pgm/community/menu/StaticMenuItem.java b/core/src/main/java/dev/pgm/community/menu/StaticMenuItem.java
similarity index 100%
rename from src/main/java/dev/pgm/community/menu/StaticMenuItem.java
rename to core/src/main/java/dev/pgm/community/menu/StaticMenuItem.java
diff --git a/src/main/java/dev/pgm/community/mobs/MobCommand.java b/core/src/main/java/dev/pgm/community/mobs/MobCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mobs/MobCommand.java
rename to core/src/main/java/dev/pgm/community/mobs/MobCommand.java
diff --git a/src/main/java/dev/pgm/community/mobs/MobConfig.java b/core/src/main/java/dev/pgm/community/mobs/MobConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mobs/MobConfig.java
rename to core/src/main/java/dev/pgm/community/mobs/MobConfig.java
diff --git a/src/main/java/dev/pgm/community/mobs/MobFeature.java b/core/src/main/java/dev/pgm/community/mobs/MobFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mobs/MobFeature.java
rename to core/src/main/java/dev/pgm/community/mobs/MobFeature.java
diff --git a/src/main/java/dev/pgm/community/moderation/ModerationConfig.java b/core/src/main/java/dev/pgm/community/moderation/ModerationConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/ModerationConfig.java
rename to core/src/main/java/dev/pgm/community/moderation/ModerationConfig.java
diff --git a/src/main/java/dev/pgm/community/moderation/commands/BanCommand.java b/core/src/main/java/dev/pgm/community/moderation/commands/BanCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/commands/BanCommand.java
rename to core/src/main/java/dev/pgm/community/moderation/commands/BanCommand.java
diff --git a/src/main/java/dev/pgm/community/moderation/commands/KickCommand.java b/core/src/main/java/dev/pgm/community/moderation/commands/KickCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/commands/KickCommand.java
rename to core/src/main/java/dev/pgm/community/moderation/commands/KickCommand.java
diff --git a/src/main/java/dev/pgm/community/moderation/commands/MuteCommand.java b/core/src/main/java/dev/pgm/community/moderation/commands/MuteCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/commands/MuteCommand.java
rename to core/src/main/java/dev/pgm/community/moderation/commands/MuteCommand.java
diff --git a/src/main/java/dev/pgm/community/moderation/commands/PunishmentCommand.java b/core/src/main/java/dev/pgm/community/moderation/commands/PunishmentCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/commands/PunishmentCommand.java
rename to core/src/main/java/dev/pgm/community/moderation/commands/PunishmentCommand.java
diff --git a/src/main/java/dev/pgm/community/moderation/commands/ToolCommand.java b/core/src/main/java/dev/pgm/community/moderation/commands/ToolCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/commands/ToolCommand.java
rename to core/src/main/java/dev/pgm/community/moderation/commands/ToolCommand.java
diff --git a/src/main/java/dev/pgm/community/moderation/commands/WarnCommand.java b/core/src/main/java/dev/pgm/community/moderation/commands/WarnCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/commands/WarnCommand.java
rename to core/src/main/java/dev/pgm/community/moderation/commands/WarnCommand.java
diff --git a/src/main/java/dev/pgm/community/moderation/feature/ModerationFeature.java b/core/src/main/java/dev/pgm/community/moderation/feature/ModerationFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/feature/ModerationFeature.java
rename to core/src/main/java/dev/pgm/community/moderation/feature/ModerationFeature.java
diff --git a/src/main/java/dev/pgm/community/moderation/feature/ModerationFeatureBase.java b/core/src/main/java/dev/pgm/community/moderation/feature/ModerationFeatureBase.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/feature/ModerationFeatureBase.java
rename to core/src/main/java/dev/pgm/community/moderation/feature/ModerationFeatureBase.java
diff --git a/src/main/java/dev/pgm/community/moderation/feature/PGMPunishmentIntegration.java b/core/src/main/java/dev/pgm/community/moderation/feature/PGMPunishmentIntegration.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/feature/PGMPunishmentIntegration.java
rename to core/src/main/java/dev/pgm/community/moderation/feature/PGMPunishmentIntegration.java
diff --git a/src/main/java/dev/pgm/community/moderation/feature/types/SQLModerationFeature.java b/core/src/main/java/dev/pgm/community/moderation/feature/types/SQLModerationFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/feature/types/SQLModerationFeature.java
rename to core/src/main/java/dev/pgm/community/moderation/feature/types/SQLModerationFeature.java
diff --git a/src/main/java/dev/pgm/community/moderation/punishments/NetworkPunishment.java b/core/src/main/java/dev/pgm/community/moderation/punishments/NetworkPunishment.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/punishments/NetworkPunishment.java
rename to core/src/main/java/dev/pgm/community/moderation/punishments/NetworkPunishment.java
diff --git a/src/main/java/dev/pgm/community/moderation/punishments/Punishment.java b/core/src/main/java/dev/pgm/community/moderation/punishments/Punishment.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/punishments/Punishment.java
rename to core/src/main/java/dev/pgm/community/moderation/punishments/Punishment.java
diff --git a/src/main/java/dev/pgm/community/moderation/punishments/PunishmentFormats.java b/core/src/main/java/dev/pgm/community/moderation/punishments/PunishmentFormats.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/punishments/PunishmentFormats.java
rename to core/src/main/java/dev/pgm/community/moderation/punishments/PunishmentFormats.java
diff --git a/src/main/java/dev/pgm/community/moderation/punishments/PunishmentType.java b/core/src/main/java/dev/pgm/community/moderation/punishments/PunishmentType.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/punishments/PunishmentType.java
rename to core/src/main/java/dev/pgm/community/moderation/punishments/PunishmentType.java
diff --git a/src/main/java/dev/pgm/community/moderation/punishments/types/BanPunishment.java b/core/src/main/java/dev/pgm/community/moderation/punishments/types/BanPunishment.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/punishments/types/BanPunishment.java
rename to core/src/main/java/dev/pgm/community/moderation/punishments/types/BanPunishment.java
diff --git a/src/main/java/dev/pgm/community/moderation/punishments/types/ExpirablePunishment.java b/core/src/main/java/dev/pgm/community/moderation/punishments/types/ExpirablePunishment.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/punishments/types/ExpirablePunishment.java
rename to core/src/main/java/dev/pgm/community/moderation/punishments/types/ExpirablePunishment.java
diff --git a/src/main/java/dev/pgm/community/moderation/punishments/types/KickPunishment.java b/core/src/main/java/dev/pgm/community/moderation/punishments/types/KickPunishment.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/punishments/types/KickPunishment.java
rename to core/src/main/java/dev/pgm/community/moderation/punishments/types/KickPunishment.java
diff --git a/src/main/java/dev/pgm/community/moderation/punishments/types/MutePunishment.java b/core/src/main/java/dev/pgm/community/moderation/punishments/types/MutePunishment.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/punishments/types/MutePunishment.java
rename to core/src/main/java/dev/pgm/community/moderation/punishments/types/MutePunishment.java
diff --git a/src/main/java/dev/pgm/community/moderation/punishments/types/TempBanPunishment.java b/core/src/main/java/dev/pgm/community/moderation/punishments/types/TempBanPunishment.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/punishments/types/TempBanPunishment.java
rename to core/src/main/java/dev/pgm/community/moderation/punishments/types/TempBanPunishment.java
diff --git a/src/main/java/dev/pgm/community/moderation/punishments/types/UsernameBanPunishment.java b/core/src/main/java/dev/pgm/community/moderation/punishments/types/UsernameBanPunishment.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/punishments/types/UsernameBanPunishment.java
rename to core/src/main/java/dev/pgm/community/moderation/punishments/types/UsernameBanPunishment.java
diff --git a/src/main/java/dev/pgm/community/moderation/punishments/types/WarnPunishment.java b/core/src/main/java/dev/pgm/community/moderation/punishments/types/WarnPunishment.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/punishments/types/WarnPunishment.java
rename to core/src/main/java/dev/pgm/community/moderation/punishments/types/WarnPunishment.java
diff --git a/src/main/java/dev/pgm/community/moderation/services/ModerationQuery.java b/core/src/main/java/dev/pgm/community/moderation/services/ModerationQuery.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/services/ModerationQuery.java
rename to core/src/main/java/dev/pgm/community/moderation/services/ModerationQuery.java
diff --git a/src/main/java/dev/pgm/community/moderation/services/SQLModerationService.java b/core/src/main/java/dev/pgm/community/moderation/services/SQLModerationService.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/services/SQLModerationService.java
rename to core/src/main/java/dev/pgm/community/moderation/services/SQLModerationService.java
diff --git a/src/main/java/dev/pgm/community/moderation/tools/ModerationTools.java b/core/src/main/java/dev/pgm/community/moderation/tools/ModerationTools.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/tools/ModerationTools.java
rename to core/src/main/java/dev/pgm/community/moderation/tools/ModerationTools.java
diff --git a/src/main/java/dev/pgm/community/moderation/tools/Tool.java b/core/src/main/java/dev/pgm/community/moderation/tools/Tool.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/tools/Tool.java
rename to core/src/main/java/dev/pgm/community/moderation/tools/Tool.java
diff --git a/src/main/java/dev/pgm/community/moderation/tools/ToolBase.java b/core/src/main/java/dev/pgm/community/moderation/tools/ToolBase.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/tools/ToolBase.java
rename to core/src/main/java/dev/pgm/community/moderation/tools/ToolBase.java
diff --git a/src/main/java/dev/pgm/community/moderation/tools/buttons/ToolButton.java b/core/src/main/java/dev/pgm/community/moderation/tools/buttons/ToolButton.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/tools/buttons/ToolButton.java
rename to core/src/main/java/dev/pgm/community/moderation/tools/buttons/ToolButton.java
diff --git a/src/main/java/dev/pgm/community/moderation/tools/buttons/ToolButtonBase.java b/core/src/main/java/dev/pgm/community/moderation/tools/buttons/ToolButtonBase.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/tools/buttons/ToolButtonBase.java
rename to core/src/main/java/dev/pgm/community/moderation/tools/buttons/ToolButtonBase.java
diff --git a/src/main/java/dev/pgm/community/moderation/tools/buttons/TranslatableToolButton.java b/core/src/main/java/dev/pgm/community/moderation/tools/buttons/TranslatableToolButton.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/tools/buttons/TranslatableToolButton.java
rename to core/src/main/java/dev/pgm/community/moderation/tools/buttons/TranslatableToolButton.java
diff --git a/src/main/java/dev/pgm/community/moderation/tools/buttons/types/GamemodeButton.java b/core/src/main/java/dev/pgm/community/moderation/tools/buttons/types/GamemodeButton.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/tools/buttons/types/GamemodeButton.java
rename to core/src/main/java/dev/pgm/community/moderation/tools/buttons/types/GamemodeButton.java
diff --git a/src/main/java/dev/pgm/community/moderation/tools/buttons/types/NightVisionButton.java b/core/src/main/java/dev/pgm/community/moderation/tools/buttons/types/NightVisionButton.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/tools/buttons/types/NightVisionButton.java
rename to core/src/main/java/dev/pgm/community/moderation/tools/buttons/types/NightVisionButton.java
diff --git a/src/main/java/dev/pgm/community/moderation/tools/buttons/types/ObserverVisibilityButton.java b/core/src/main/java/dev/pgm/community/moderation/tools/buttons/types/ObserverVisibilityButton.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/tools/buttons/types/ObserverVisibilityButton.java
rename to core/src/main/java/dev/pgm/community/moderation/tools/buttons/types/ObserverVisibilityButton.java
diff --git a/src/main/java/dev/pgm/community/moderation/tools/buttons/types/SpeedButton.java b/core/src/main/java/dev/pgm/community/moderation/tools/buttons/types/SpeedButton.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/tools/buttons/types/SpeedButton.java
rename to core/src/main/java/dev/pgm/community/moderation/tools/buttons/types/SpeedButton.java
diff --git a/src/main/java/dev/pgm/community/moderation/tools/menu/ModerationToolsMenu.java b/core/src/main/java/dev/pgm/community/moderation/tools/menu/ModerationToolsMenu.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/tools/menu/ModerationToolsMenu.java
rename to core/src/main/java/dev/pgm/community/moderation/tools/menu/ModerationToolsMenu.java
diff --git a/src/main/java/dev/pgm/community/moderation/tools/menu/TeleportTargetMenu.java b/core/src/main/java/dev/pgm/community/moderation/tools/menu/TeleportTargetMenu.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/tools/menu/TeleportTargetMenu.java
rename to core/src/main/java/dev/pgm/community/moderation/tools/menu/TeleportTargetMenu.java
diff --git a/src/main/java/dev/pgm/community/moderation/tools/types/LookupSign.java b/core/src/main/java/dev/pgm/community/moderation/tools/types/LookupSign.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/tools/types/LookupSign.java
rename to core/src/main/java/dev/pgm/community/moderation/tools/types/LookupSign.java
diff --git a/src/main/java/dev/pgm/community/moderation/tools/types/ModerationMenuTool.java b/core/src/main/java/dev/pgm/community/moderation/tools/types/ModerationMenuTool.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/tools/types/ModerationMenuTool.java
rename to core/src/main/java/dev/pgm/community/moderation/tools/types/ModerationMenuTool.java
diff --git a/src/main/java/dev/pgm/community/moderation/tools/types/TeleportHook.java b/core/src/main/java/dev/pgm/community/moderation/tools/types/TeleportHook.java
similarity index 100%
rename from src/main/java/dev/pgm/community/moderation/tools/types/TeleportHook.java
rename to core/src/main/java/dev/pgm/community/moderation/tools/types/TeleportHook.java
diff --git a/src/main/java/dev/pgm/community/motd/MotdConfig.java b/core/src/main/java/dev/pgm/community/motd/MotdConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/motd/MotdConfig.java
rename to core/src/main/java/dev/pgm/community/motd/MotdConfig.java
diff --git a/src/main/java/dev/pgm/community/motd/MotdFeature.java b/core/src/main/java/dev/pgm/community/motd/MotdFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/motd/MotdFeature.java
rename to core/src/main/java/dev/pgm/community/motd/MotdFeature.java
diff --git a/src/main/java/dev/pgm/community/mutations/Mutation.java b/core/src/main/java/dev/pgm/community/mutations/Mutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/Mutation.java
rename to core/src/main/java/dev/pgm/community/mutations/Mutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/MutationBase.java b/core/src/main/java/dev/pgm/community/mutations/MutationBase.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/MutationBase.java
rename to core/src/main/java/dev/pgm/community/mutations/MutationBase.java
diff --git a/src/main/java/dev/pgm/community/mutations/MutationConfig.java b/core/src/main/java/dev/pgm/community/mutations/MutationConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/MutationConfig.java
rename to core/src/main/java/dev/pgm/community/mutations/MutationConfig.java
diff --git a/src/main/java/dev/pgm/community/mutations/MutationType.java b/core/src/main/java/dev/pgm/community/mutations/MutationType.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/MutationType.java
rename to core/src/main/java/dev/pgm/community/mutations/MutationType.java
diff --git a/src/main/java/dev/pgm/community/mutations/commands/MutationCommands.java b/core/src/main/java/dev/pgm/community/mutations/commands/MutationCommands.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/commands/MutationCommands.java
rename to core/src/main/java/dev/pgm/community/mutations/commands/MutationCommands.java
diff --git a/src/main/java/dev/pgm/community/mutations/feature/MutationFeature.java b/core/src/main/java/dev/pgm/community/mutations/feature/MutationFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/feature/MutationFeature.java
rename to core/src/main/java/dev/pgm/community/mutations/feature/MutationFeature.java
diff --git a/src/main/java/dev/pgm/community/mutations/menu/MutationOptionsMenu.java b/core/src/main/java/dev/pgm/community/mutations/menu/MutationOptionsMenu.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/menu/MutationOptionsMenu.java
rename to core/src/main/java/dev/pgm/community/mutations/menu/MutationOptionsMenu.java
diff --git a/src/main/java/dev/pgm/community/mutations/menu/MutationToggleMenu.java b/core/src/main/java/dev/pgm/community/mutations/menu/MutationToggleMenu.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/menu/MutationToggleMenu.java
rename to core/src/main/java/dev/pgm/community/mutations/menu/MutationToggleMenu.java
diff --git a/src/main/java/dev/pgm/community/mutations/options/MutationBooleanOption.java b/core/src/main/java/dev/pgm/community/mutations/options/MutationBooleanOption.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/options/MutationBooleanOption.java
rename to core/src/main/java/dev/pgm/community/mutations/options/MutationBooleanOption.java
diff --git a/src/main/java/dev/pgm/community/mutations/options/MutationListOption.java b/core/src/main/java/dev/pgm/community/mutations/options/MutationListOption.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/options/MutationListOption.java
rename to core/src/main/java/dev/pgm/community/mutations/options/MutationListOption.java
diff --git a/src/main/java/dev/pgm/community/mutations/options/MutationOption.java b/core/src/main/java/dev/pgm/community/mutations/options/MutationOption.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/options/MutationOption.java
rename to core/src/main/java/dev/pgm/community/mutations/options/MutationOption.java
diff --git a/src/main/java/dev/pgm/community/mutations/options/MutationRangeOption.java b/core/src/main/java/dev/pgm/community/mutations/options/MutationRangeOption.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/options/MutationRangeOption.java
rename to core/src/main/java/dev/pgm/community/mutations/options/MutationRangeOption.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/BowMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/BowMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/BowMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/BowMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/KitMutationBase.java b/core/src/main/java/dev/pgm/community/mutations/types/KitMutationBase.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/KitMutationBase.java
rename to core/src/main/java/dev/pgm/community/mutations/types/KitMutationBase.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/ScheduledMutationBase.java b/core/src/main/java/dev/pgm/community/mutations/types/ScheduledMutationBase.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/ScheduledMutationBase.java
rename to core/src/main/java/dev/pgm/community/mutations/types/ScheduledMutationBase.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/arrows/EnderpearlMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/arrows/EnderpearlMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/arrows/EnderpearlMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/arrows/EnderpearlMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/arrows/FireballBowMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/arrows/FireballBowMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/arrows/FireballBowMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/arrows/FireballBowMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/arrows/TNTBowMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/arrows/TNTBowMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/arrows/TNTBowMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/arrows/TNTBowMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/arrows/WebSlingersMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/arrows/WebSlingersMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/arrows/WebSlingersMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/arrows/WebSlingersMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/gameplay/BlitzMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/gameplay/BlitzMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/gameplay/BlitzMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/gameplay/BlitzMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/gameplay/GhostMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/gameplay/GhostMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/gameplay/GhostMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/gameplay/GhostMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/gameplay/RageMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/gameplay/RageMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/gameplay/RageMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/gameplay/RageMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/items/BreadMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/items/BreadMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/items/BreadMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/items/BreadMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/items/CannonSuppliesMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/items/CannonSuppliesMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/items/CannonSuppliesMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/items/CannonSuppliesMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/items/ExplosionMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/items/ExplosionMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/items/ExplosionMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/items/ExplosionMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/items/FireworkMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/items/FireworkMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/items/FireworkMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/items/FireworkMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/items/GrapplingHookMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/items/GrapplingHookMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/items/GrapplingHookMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/items/GrapplingHookMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/items/NoSpawnKitMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/items/NoSpawnKitMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/items/NoSpawnKitMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/items/NoSpawnKitMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/items/PotionMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/items/PotionMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/items/PotionMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/items/PotionMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/mapdev/ProximityEffectsMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/mapdev/ProximityEffectsMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/mapdev/ProximityEffectsMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/mapdev/ProximityEffectsMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/mechanics/BlindMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/mechanics/BlindMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/mechanics/BlindMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/mechanics/BlindMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/mechanics/DoubleJumpMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/mechanics/DoubleJumpMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/mechanics/DoubleJumpMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/mechanics/DoubleJumpMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/mechanics/FlyMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/mechanics/FlyMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/mechanics/FlyMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/mechanics/FlyMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/mechanics/FriendlyFireMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/mechanics/FriendlyFireMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/mechanics/FriendlyFireMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/mechanics/FriendlyFireMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/mechanics/HealthMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/mechanics/HealthMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/mechanics/HealthMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/mechanics/HealthMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/mechanics/KnockbackMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/mechanics/KnockbackMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/mechanics/KnockbackMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/mechanics/KnockbackMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/mechanics/MobMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/mechanics/MobMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/mechanics/MobMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/mechanics/MobMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/world/BlockDecayMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/world/BlockDecayMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/world/BlockDecayMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/world/BlockDecayMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/world/StormMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/world/StormMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/world/StormMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/world/StormMutation.java
diff --git a/src/main/java/dev/pgm/community/mutations/types/world/TNTRainMutation.java b/core/src/main/java/dev/pgm/community/mutations/types/world/TNTRainMutation.java
similarity index 100%
rename from src/main/java/dev/pgm/community/mutations/types/world/TNTRainMutation.java
rename to core/src/main/java/dev/pgm/community/mutations/types/world/TNTRainMutation.java
diff --git a/src/main/java/dev/pgm/community/network/Channels.java b/core/src/main/java/dev/pgm/community/network/Channels.java
similarity index 100%
rename from src/main/java/dev/pgm/community/network/Channels.java
rename to core/src/main/java/dev/pgm/community/network/Channels.java
diff --git a/src/main/java/dev/pgm/community/network/NetworkConfig.java b/core/src/main/java/dev/pgm/community/network/NetworkConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/network/NetworkConfig.java
rename to core/src/main/java/dev/pgm/community/network/NetworkConfig.java
diff --git a/src/main/java/dev/pgm/community/network/feature/NetworkFeature.java b/core/src/main/java/dev/pgm/community/network/feature/NetworkFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/network/feature/NetworkFeature.java
rename to core/src/main/java/dev/pgm/community/network/feature/NetworkFeature.java
diff --git a/src/main/java/dev/pgm/community/network/feature/NetworkFeatureBase.java b/core/src/main/java/dev/pgm/community/network/feature/NetworkFeatureBase.java
similarity index 100%
rename from src/main/java/dev/pgm/community/network/feature/NetworkFeatureBase.java
rename to core/src/main/java/dev/pgm/community/network/feature/NetworkFeatureBase.java
diff --git a/src/main/java/dev/pgm/community/network/subs/NetworkSubscriber.java b/core/src/main/java/dev/pgm/community/network/subs/NetworkSubscriber.java
similarity index 100%
rename from src/main/java/dev/pgm/community/network/subs/NetworkSubscriber.java
rename to core/src/main/java/dev/pgm/community/network/subs/NetworkSubscriber.java
diff --git a/src/main/java/dev/pgm/community/network/subs/types/AssistanceSubscriber.java b/core/src/main/java/dev/pgm/community/network/subs/types/AssistanceSubscriber.java
similarity index 100%
rename from src/main/java/dev/pgm/community/network/subs/types/AssistanceSubscriber.java
rename to core/src/main/java/dev/pgm/community/network/subs/types/AssistanceSubscriber.java
diff --git a/src/main/java/dev/pgm/community/network/subs/types/ChatSubscriber.java b/core/src/main/java/dev/pgm/community/network/subs/types/ChatSubscriber.java
similarity index 100%
rename from src/main/java/dev/pgm/community/network/subs/types/ChatSubscriber.java
rename to core/src/main/java/dev/pgm/community/network/subs/types/ChatSubscriber.java
diff --git a/src/main/java/dev/pgm/community/network/subs/types/PunishmentSubscriber.java b/core/src/main/java/dev/pgm/community/network/subs/types/PunishmentSubscriber.java
similarity index 100%
rename from src/main/java/dev/pgm/community/network/subs/types/PunishmentSubscriber.java
rename to core/src/main/java/dev/pgm/community/network/subs/types/PunishmentSubscriber.java
diff --git a/src/main/java/dev/pgm/community/network/subs/types/RefreshPunishmentSubscriber.java b/core/src/main/java/dev/pgm/community/network/subs/types/RefreshPunishmentSubscriber.java
similarity index 100%
rename from src/main/java/dev/pgm/community/network/subs/types/RefreshPunishmentSubscriber.java
rename to core/src/main/java/dev/pgm/community/network/subs/types/RefreshPunishmentSubscriber.java
diff --git a/src/main/java/dev/pgm/community/network/types/RedisNetworkFeature.java b/core/src/main/java/dev/pgm/community/network/types/RedisNetworkFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/network/types/RedisNetworkFeature.java
rename to core/src/main/java/dev/pgm/community/network/types/RedisNetworkFeature.java
diff --git a/src/main/java/dev/pgm/community/network/updates/NetworkUpdate.java b/core/src/main/java/dev/pgm/community/network/updates/NetworkUpdate.java
similarity index 100%
rename from src/main/java/dev/pgm/community/network/updates/NetworkUpdate.java
rename to core/src/main/java/dev/pgm/community/network/updates/NetworkUpdate.java
diff --git a/src/main/java/dev/pgm/community/network/updates/NetworkUpdateBase.java b/core/src/main/java/dev/pgm/community/network/updates/NetworkUpdateBase.java
similarity index 100%
rename from src/main/java/dev/pgm/community/network/updates/NetworkUpdateBase.java
rename to core/src/main/java/dev/pgm/community/network/updates/NetworkUpdateBase.java
diff --git a/src/main/java/dev/pgm/community/network/updates/types/AssistUpdate.java b/core/src/main/java/dev/pgm/community/network/updates/types/AssistUpdate.java
similarity index 100%
rename from src/main/java/dev/pgm/community/network/updates/types/AssistUpdate.java
rename to core/src/main/java/dev/pgm/community/network/updates/types/AssistUpdate.java
diff --git a/src/main/java/dev/pgm/community/network/updates/types/ChatUpdate.java b/core/src/main/java/dev/pgm/community/network/updates/types/ChatUpdate.java
similarity index 100%
rename from src/main/java/dev/pgm/community/network/updates/types/ChatUpdate.java
rename to core/src/main/java/dev/pgm/community/network/updates/types/ChatUpdate.java
diff --git a/src/main/java/dev/pgm/community/network/updates/types/PunishmentUpdate.java b/core/src/main/java/dev/pgm/community/network/updates/types/PunishmentUpdate.java
similarity index 100%
rename from src/main/java/dev/pgm/community/network/updates/types/PunishmentUpdate.java
rename to core/src/main/java/dev/pgm/community/network/updates/types/PunishmentUpdate.java
diff --git a/src/main/java/dev/pgm/community/network/updates/types/RefreshPunishmentUpdate.java b/core/src/main/java/dev/pgm/community/network/updates/types/RefreshPunishmentUpdate.java
similarity index 100%
rename from src/main/java/dev/pgm/community/network/updates/types/RefreshPunishmentUpdate.java
rename to core/src/main/java/dev/pgm/community/network/updates/types/RefreshPunishmentUpdate.java
diff --git a/src/main/java/dev/pgm/community/nick/Nick.java b/core/src/main/java/dev/pgm/community/nick/Nick.java
similarity index 100%
rename from src/main/java/dev/pgm/community/nick/Nick.java
rename to core/src/main/java/dev/pgm/community/nick/Nick.java
diff --git a/src/main/java/dev/pgm/community/nick/NickConfig.java b/core/src/main/java/dev/pgm/community/nick/NickConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/nick/NickConfig.java
rename to core/src/main/java/dev/pgm/community/nick/NickConfig.java
diff --git a/src/main/java/dev/pgm/community/nick/NickImpl.java b/core/src/main/java/dev/pgm/community/nick/NickImpl.java
similarity index 100%
rename from src/main/java/dev/pgm/community/nick/NickImpl.java
rename to core/src/main/java/dev/pgm/community/nick/NickImpl.java
diff --git a/src/main/java/dev/pgm/community/nick/commands/NickCommands.java b/core/src/main/java/dev/pgm/community/nick/commands/NickCommands.java
similarity index 100%
rename from src/main/java/dev/pgm/community/nick/commands/NickCommands.java
rename to core/src/main/java/dev/pgm/community/nick/commands/NickCommands.java
diff --git a/src/main/java/dev/pgm/community/nick/data/NickSelection.java b/core/src/main/java/dev/pgm/community/nick/data/NickSelection.java
similarity index 100%
rename from src/main/java/dev/pgm/community/nick/data/NickSelection.java
rename to core/src/main/java/dev/pgm/community/nick/data/NickSelection.java
diff --git a/src/main/java/dev/pgm/community/nick/feature/NickFeature.java b/core/src/main/java/dev/pgm/community/nick/feature/NickFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/nick/feature/NickFeature.java
rename to core/src/main/java/dev/pgm/community/nick/feature/NickFeature.java
diff --git a/src/main/java/dev/pgm/community/nick/feature/NickFeatureBase.java b/core/src/main/java/dev/pgm/community/nick/feature/NickFeatureBase.java
similarity index 100%
rename from src/main/java/dev/pgm/community/nick/feature/NickFeatureBase.java
rename to core/src/main/java/dev/pgm/community/nick/feature/NickFeatureBase.java
diff --git a/src/main/java/dev/pgm/community/nick/feature/PGMNickIntegration.java b/core/src/main/java/dev/pgm/community/nick/feature/PGMNickIntegration.java
similarity index 100%
rename from src/main/java/dev/pgm/community/nick/feature/PGMNickIntegration.java
rename to core/src/main/java/dev/pgm/community/nick/feature/PGMNickIntegration.java
diff --git a/src/main/java/dev/pgm/community/nick/feature/types/SQLNickFeature.java b/core/src/main/java/dev/pgm/community/nick/feature/types/SQLNickFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/nick/feature/types/SQLNickFeature.java
rename to core/src/main/java/dev/pgm/community/nick/feature/types/SQLNickFeature.java
diff --git a/src/main/java/dev/pgm/community/nick/services/NickQuery.java b/core/src/main/java/dev/pgm/community/nick/services/NickQuery.java
similarity index 100%
rename from src/main/java/dev/pgm/community/nick/services/NickQuery.java
rename to core/src/main/java/dev/pgm/community/nick/services/NickQuery.java
diff --git a/src/main/java/dev/pgm/community/nick/services/SQLNickService.java b/core/src/main/java/dev/pgm/community/nick/services/SQLNickService.java
similarity index 100%
rename from src/main/java/dev/pgm/community/nick/services/SQLNickService.java
rename to core/src/main/java/dev/pgm/community/nick/services/SQLNickService.java
diff --git a/src/main/java/dev/pgm/community/nick/skin/SkinCache.java b/core/src/main/java/dev/pgm/community/nick/skin/SkinCache.java
similarity index 100%
rename from src/main/java/dev/pgm/community/nick/skin/SkinCache.java
rename to core/src/main/java/dev/pgm/community/nick/skin/SkinCache.java
diff --git a/src/main/java/dev/pgm/community/nick/skin/SkinManager.java b/core/src/main/java/dev/pgm/community/nick/skin/SkinManager.java
similarity index 100%
rename from src/main/java/dev/pgm/community/nick/skin/SkinManager.java
rename to core/src/main/java/dev/pgm/community/nick/skin/SkinManager.java
diff --git a/src/main/java/dev/pgm/community/party/MapParty.java b/core/src/main/java/dev/pgm/community/party/MapParty.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/MapParty.java
rename to core/src/main/java/dev/pgm/community/party/MapParty.java
diff --git a/src/main/java/dev/pgm/community/party/MapPartyBase.java b/core/src/main/java/dev/pgm/community/party/MapPartyBase.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/MapPartyBase.java
rename to core/src/main/java/dev/pgm/community/party/MapPartyBase.java
diff --git a/src/main/java/dev/pgm/community/party/MapPartyCommands.java b/core/src/main/java/dev/pgm/community/party/MapPartyCommands.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/MapPartyCommands.java
rename to core/src/main/java/dev/pgm/community/party/MapPartyCommands.java
diff --git a/src/main/java/dev/pgm/community/party/MapPartyConfig.java b/core/src/main/java/dev/pgm/community/party/MapPartyConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/MapPartyConfig.java
rename to core/src/main/java/dev/pgm/community/party/MapPartyConfig.java
diff --git a/src/main/java/dev/pgm/community/party/MapPartyMessages.java b/core/src/main/java/dev/pgm/community/party/MapPartyMessages.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/MapPartyMessages.java
rename to core/src/main/java/dev/pgm/community/party/MapPartyMessages.java
diff --git a/src/main/java/dev/pgm/community/party/MapPartyStatusType.java b/core/src/main/java/dev/pgm/community/party/MapPartyStatusType.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/MapPartyStatusType.java
rename to core/src/main/java/dev/pgm/community/party/MapPartyStatusType.java
diff --git a/src/main/java/dev/pgm/community/party/MapPartyType.java b/core/src/main/java/dev/pgm/community/party/MapPartyType.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/MapPartyType.java
rename to core/src/main/java/dev/pgm/community/party/MapPartyType.java
diff --git a/src/main/java/dev/pgm/community/party/broadcasts/MapPartyBroadcastManager.java b/core/src/main/java/dev/pgm/community/party/broadcasts/MapPartyBroadcastManager.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/broadcasts/MapPartyBroadcastManager.java
rename to core/src/main/java/dev/pgm/community/party/broadcasts/MapPartyBroadcastManager.java
diff --git a/src/main/java/dev/pgm/community/party/events/MapPartyCreateEvent.java b/core/src/main/java/dev/pgm/community/party/events/MapPartyCreateEvent.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/events/MapPartyCreateEvent.java
rename to core/src/main/java/dev/pgm/community/party/events/MapPartyCreateEvent.java
diff --git a/src/main/java/dev/pgm/community/party/events/MapPartyEndEvent.java b/core/src/main/java/dev/pgm/community/party/events/MapPartyEndEvent.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/events/MapPartyEndEvent.java
rename to core/src/main/java/dev/pgm/community/party/events/MapPartyEndEvent.java
diff --git a/src/main/java/dev/pgm/community/party/events/MapPartyEvent.java b/core/src/main/java/dev/pgm/community/party/events/MapPartyEvent.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/events/MapPartyEvent.java
rename to core/src/main/java/dev/pgm/community/party/events/MapPartyEvent.java
diff --git a/src/main/java/dev/pgm/community/party/events/MapPartyRestartEvent.java b/core/src/main/java/dev/pgm/community/party/events/MapPartyRestartEvent.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/events/MapPartyRestartEvent.java
rename to core/src/main/java/dev/pgm/community/party/events/MapPartyRestartEvent.java
diff --git a/src/main/java/dev/pgm/community/party/events/MapPartyStartEvent.java b/core/src/main/java/dev/pgm/community/party/events/MapPartyStartEvent.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/events/MapPartyStartEvent.java
rename to core/src/main/java/dev/pgm/community/party/events/MapPartyStartEvent.java
diff --git a/src/main/java/dev/pgm/community/party/exceptions/MapPartyException.java b/core/src/main/java/dev/pgm/community/party/exceptions/MapPartyException.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/exceptions/MapPartyException.java
rename to core/src/main/java/dev/pgm/community/party/exceptions/MapPartyException.java
diff --git a/src/main/java/dev/pgm/community/party/exceptions/MapPartySetupException.java b/core/src/main/java/dev/pgm/community/party/exceptions/MapPartySetupException.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/exceptions/MapPartySetupException.java
rename to core/src/main/java/dev/pgm/community/party/exceptions/MapPartySetupException.java
diff --git a/src/main/java/dev/pgm/community/party/feature/MapPartyFeature.java b/core/src/main/java/dev/pgm/community/party/feature/MapPartyFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/feature/MapPartyFeature.java
rename to core/src/main/java/dev/pgm/community/party/feature/MapPartyFeature.java
diff --git a/src/main/java/dev/pgm/community/party/hosts/MapPartyHosts.java b/core/src/main/java/dev/pgm/community/party/hosts/MapPartyHosts.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/hosts/MapPartyHosts.java
rename to core/src/main/java/dev/pgm/community/party/hosts/MapPartyHosts.java
diff --git a/src/main/java/dev/pgm/community/party/menu/MapPartyMainMenu.java b/core/src/main/java/dev/pgm/community/party/menu/MapPartyMainMenu.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/menu/MapPartyMainMenu.java
rename to core/src/main/java/dev/pgm/community/party/menu/MapPartyMainMenu.java
diff --git a/src/main/java/dev/pgm/community/party/menu/MapPartyMenu.java b/core/src/main/java/dev/pgm/community/party/menu/MapPartyMenu.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/menu/MapPartyMenu.java
rename to core/src/main/java/dev/pgm/community/party/menu/MapPartyMenu.java
diff --git a/src/main/java/dev/pgm/community/party/menu/MapPartyTypeSelectionMenu.java b/core/src/main/java/dev/pgm/community/party/menu/MapPartyTypeSelectionMenu.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/menu/MapPartyTypeSelectionMenu.java
rename to core/src/main/java/dev/pgm/community/party/menu/MapPartyTypeSelectionMenu.java
diff --git a/src/main/java/dev/pgm/community/party/menu/hosts/HostAddMenu.java b/core/src/main/java/dev/pgm/community/party/menu/hosts/HostAddMenu.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/menu/hosts/HostAddMenu.java
rename to core/src/main/java/dev/pgm/community/party/menu/hosts/HostAddMenu.java
diff --git a/src/main/java/dev/pgm/community/party/menu/hosts/HostMenu.java b/core/src/main/java/dev/pgm/community/party/menu/hosts/HostMenu.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/menu/hosts/HostMenu.java
rename to core/src/main/java/dev/pgm/community/party/menu/hosts/HostMenu.java
diff --git a/src/main/java/dev/pgm/community/party/menu/maps/MapAddMenu.java b/core/src/main/java/dev/pgm/community/party/menu/maps/MapAddMenu.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/menu/maps/MapAddMenu.java
rename to core/src/main/java/dev/pgm/community/party/menu/maps/MapAddMenu.java
diff --git a/src/main/java/dev/pgm/community/party/menu/maps/MapMenu.java b/core/src/main/java/dev/pgm/community/party/menu/maps/MapMenu.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/menu/maps/MapMenu.java
rename to core/src/main/java/dev/pgm/community/party/menu/maps/MapMenu.java
diff --git a/src/main/java/dev/pgm/community/party/menu/modifiers/MapPartyModifierMenu.java b/core/src/main/java/dev/pgm/community/party/menu/modifiers/MapPartyModifierMenu.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/menu/modifiers/MapPartyModifierMenu.java
rename to core/src/main/java/dev/pgm/community/party/menu/modifiers/MapPartyModifierMenu.java
diff --git a/src/main/java/dev/pgm/community/party/menu/settings/MapPartySettingsMenu.java b/core/src/main/java/dev/pgm/community/party/menu/settings/MapPartySettingsMenu.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/menu/settings/MapPartySettingsMenu.java
rename to core/src/main/java/dev/pgm/community/party/menu/settings/MapPartySettingsMenu.java
diff --git a/src/main/java/dev/pgm/community/party/presets/MapPartyPreset.java b/core/src/main/java/dev/pgm/community/party/presets/MapPartyPreset.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/presets/MapPartyPreset.java
rename to core/src/main/java/dev/pgm/community/party/presets/MapPartyPreset.java
diff --git a/src/main/java/dev/pgm/community/party/settings/MapPartySettings.java b/core/src/main/java/dev/pgm/community/party/settings/MapPartySettings.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/settings/MapPartySettings.java
rename to core/src/main/java/dev/pgm/community/party/settings/MapPartySettings.java
diff --git a/src/main/java/dev/pgm/community/party/settings/PartyBooleanSetting.java b/core/src/main/java/dev/pgm/community/party/settings/PartyBooleanSetting.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/settings/PartyBooleanSetting.java
rename to core/src/main/java/dev/pgm/community/party/settings/PartyBooleanSetting.java
diff --git a/src/main/java/dev/pgm/community/party/settings/PartySetting.java b/core/src/main/java/dev/pgm/community/party/settings/PartySetting.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/settings/PartySetting.java
rename to core/src/main/java/dev/pgm/community/party/settings/PartySetting.java
diff --git a/src/main/java/dev/pgm/community/party/types/CustomPoolParty.java b/core/src/main/java/dev/pgm/community/party/types/CustomPoolParty.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/types/CustomPoolParty.java
rename to core/src/main/java/dev/pgm/community/party/types/CustomPoolParty.java
diff --git a/src/main/java/dev/pgm/community/party/types/RegularPoolParty.java b/core/src/main/java/dev/pgm/community/party/types/RegularPoolParty.java
similarity index 100%
rename from src/main/java/dev/pgm/community/party/types/RegularPoolParty.java
rename to core/src/main/java/dev/pgm/community/party/types/RegularPoolParty.java
diff --git a/src/main/java/dev/pgm/community/polls/Poll.java b/core/src/main/java/dev/pgm/community/polls/Poll.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/Poll.java
rename to core/src/main/java/dev/pgm/community/polls/Poll.java
diff --git a/src/main/java/dev/pgm/community/polls/PollBuilder.java b/core/src/main/java/dev/pgm/community/polls/PollBuilder.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/PollBuilder.java
rename to core/src/main/java/dev/pgm/community/polls/PollBuilder.java
diff --git a/src/main/java/dev/pgm/community/polls/PollComponents.java b/core/src/main/java/dev/pgm/community/polls/PollComponents.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/PollComponents.java
rename to core/src/main/java/dev/pgm/community/polls/PollComponents.java
diff --git a/src/main/java/dev/pgm/community/polls/PollConfig.java b/core/src/main/java/dev/pgm/community/polls/PollConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/PollConfig.java
rename to core/src/main/java/dev/pgm/community/polls/PollConfig.java
diff --git a/src/main/java/dev/pgm/community/polls/PollEditAlerter.java b/core/src/main/java/dev/pgm/community/polls/PollEditAlerter.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/PollEditAlerter.java
rename to core/src/main/java/dev/pgm/community/polls/PollEditAlerter.java
diff --git a/src/main/java/dev/pgm/community/polls/PollThreshold.java b/core/src/main/java/dev/pgm/community/polls/PollThreshold.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/PollThreshold.java
rename to core/src/main/java/dev/pgm/community/polls/PollThreshold.java
diff --git a/src/main/java/dev/pgm/community/polls/commands/PollManagementCommands.java b/core/src/main/java/dev/pgm/community/polls/commands/PollManagementCommands.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/commands/PollManagementCommands.java
rename to core/src/main/java/dev/pgm/community/polls/commands/PollManagementCommands.java
diff --git a/src/main/java/dev/pgm/community/polls/commands/PollVoteCommands.java b/core/src/main/java/dev/pgm/community/polls/commands/PollVoteCommands.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/commands/PollVoteCommands.java
rename to core/src/main/java/dev/pgm/community/polls/commands/PollVoteCommands.java
diff --git a/src/main/java/dev/pgm/community/polls/ending/EndAction.java b/core/src/main/java/dev/pgm/community/polls/ending/EndAction.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/ending/EndAction.java
rename to core/src/main/java/dev/pgm/community/polls/ending/EndAction.java
diff --git a/src/main/java/dev/pgm/community/polls/ending/types/CommandEndAction.java b/core/src/main/java/dev/pgm/community/polls/ending/types/CommandEndAction.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/ending/types/CommandEndAction.java
rename to core/src/main/java/dev/pgm/community/polls/ending/types/CommandEndAction.java
diff --git a/src/main/java/dev/pgm/community/polls/ending/types/KickPlayerEndAction.java b/core/src/main/java/dev/pgm/community/polls/ending/types/KickPlayerEndAction.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/ending/types/KickPlayerEndAction.java
rename to core/src/main/java/dev/pgm/community/polls/ending/types/KickPlayerEndAction.java
diff --git a/src/main/java/dev/pgm/community/polls/ending/types/MapEndAction.java b/core/src/main/java/dev/pgm/community/polls/ending/types/MapEndAction.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/ending/types/MapEndAction.java
rename to core/src/main/java/dev/pgm/community/polls/ending/types/MapEndAction.java
diff --git a/src/main/java/dev/pgm/community/polls/ending/types/MutationEndAction.java b/core/src/main/java/dev/pgm/community/polls/ending/types/MutationEndAction.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/ending/types/MutationEndAction.java
rename to core/src/main/java/dev/pgm/community/polls/ending/types/MutationEndAction.java
diff --git a/src/main/java/dev/pgm/community/polls/ending/types/NullEndAction.java b/core/src/main/java/dev/pgm/community/polls/ending/types/NullEndAction.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/ending/types/NullEndAction.java
rename to core/src/main/java/dev/pgm/community/polls/ending/types/NullEndAction.java
diff --git a/src/main/java/dev/pgm/community/polls/events/PollEndEvent.java b/core/src/main/java/dev/pgm/community/polls/events/PollEndEvent.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/events/PollEndEvent.java
rename to core/src/main/java/dev/pgm/community/polls/events/PollEndEvent.java
diff --git a/src/main/java/dev/pgm/community/polls/events/PollEvent.java b/core/src/main/java/dev/pgm/community/polls/events/PollEvent.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/events/PollEvent.java
rename to core/src/main/java/dev/pgm/community/polls/events/PollEvent.java
diff --git a/src/main/java/dev/pgm/community/polls/events/PollStartEvent.java b/core/src/main/java/dev/pgm/community/polls/events/PollStartEvent.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/events/PollStartEvent.java
rename to core/src/main/java/dev/pgm/community/polls/events/PollStartEvent.java
diff --git a/src/main/java/dev/pgm/community/polls/events/PollVoteEvent.java b/core/src/main/java/dev/pgm/community/polls/events/PollVoteEvent.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/events/PollVoteEvent.java
rename to core/src/main/java/dev/pgm/community/polls/events/PollVoteEvent.java
diff --git a/src/main/java/dev/pgm/community/polls/feature/PollFeature.java b/core/src/main/java/dev/pgm/community/polls/feature/PollFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/feature/PollFeature.java
rename to core/src/main/java/dev/pgm/community/polls/feature/PollFeature.java
diff --git a/src/main/java/dev/pgm/community/polls/response/MultiChoiceResponseConverter.java b/core/src/main/java/dev/pgm/community/polls/response/MultiChoiceResponseConverter.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/response/MultiChoiceResponseConverter.java
rename to core/src/main/java/dev/pgm/community/polls/response/MultiChoiceResponseConverter.java
diff --git a/src/main/java/dev/pgm/community/polls/response/SingleChoiceResponseConverter.java b/core/src/main/java/dev/pgm/community/polls/response/SingleChoiceResponseConverter.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/response/SingleChoiceResponseConverter.java
rename to core/src/main/java/dev/pgm/community/polls/response/SingleChoiceResponseConverter.java
diff --git a/src/main/java/dev/pgm/community/polls/types/BasicPoll.java b/core/src/main/java/dev/pgm/community/polls/types/BasicPoll.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/types/BasicPoll.java
rename to core/src/main/java/dev/pgm/community/polls/types/BasicPoll.java
diff --git a/src/main/java/dev/pgm/community/polls/types/MultiChoicePoll.java b/core/src/main/java/dev/pgm/community/polls/types/MultiChoicePoll.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/types/MultiChoicePoll.java
rename to core/src/main/java/dev/pgm/community/polls/types/MultiChoicePoll.java
diff --git a/src/main/java/dev/pgm/community/polls/types/SingleChoicePoll.java b/core/src/main/java/dev/pgm/community/polls/types/SingleChoicePoll.java
similarity index 100%
rename from src/main/java/dev/pgm/community/polls/types/SingleChoicePoll.java
rename to core/src/main/java/dev/pgm/community/polls/types/SingleChoicePoll.java
diff --git a/src/main/java/dev/pgm/community/requests/MapCooldown.java b/core/src/main/java/dev/pgm/community/requests/MapCooldown.java
similarity index 100%
rename from src/main/java/dev/pgm/community/requests/MapCooldown.java
rename to core/src/main/java/dev/pgm/community/requests/MapCooldown.java
diff --git a/src/main/java/dev/pgm/community/requests/RequestConfig.java b/core/src/main/java/dev/pgm/community/requests/RequestConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/requests/RequestConfig.java
rename to core/src/main/java/dev/pgm/community/requests/RequestConfig.java
diff --git a/src/main/java/dev/pgm/community/requests/RequestProfile.java b/core/src/main/java/dev/pgm/community/requests/RequestProfile.java
similarity index 100%
rename from src/main/java/dev/pgm/community/requests/RequestProfile.java
rename to core/src/main/java/dev/pgm/community/requests/RequestProfile.java
diff --git a/src/main/java/dev/pgm/community/requests/SponsorRequest.java b/core/src/main/java/dev/pgm/community/requests/SponsorRequest.java
similarity index 100%
rename from src/main/java/dev/pgm/community/requests/SponsorRequest.java
rename to core/src/main/java/dev/pgm/community/requests/SponsorRequest.java
diff --git a/src/main/java/dev/pgm/community/requests/commands/RequestCommands.java b/core/src/main/java/dev/pgm/community/requests/commands/RequestCommands.java
similarity index 100%
rename from src/main/java/dev/pgm/community/requests/commands/RequestCommands.java
rename to core/src/main/java/dev/pgm/community/requests/commands/RequestCommands.java
diff --git a/src/main/java/dev/pgm/community/requests/commands/sponsor/SponsorCommands.java b/core/src/main/java/dev/pgm/community/requests/commands/sponsor/SponsorCommands.java
similarity index 100%
rename from src/main/java/dev/pgm/community/requests/commands/sponsor/SponsorCommands.java
rename to core/src/main/java/dev/pgm/community/requests/commands/sponsor/SponsorCommands.java
diff --git a/src/main/java/dev/pgm/community/requests/commands/sponsor/TokenCommands.java b/core/src/main/java/dev/pgm/community/requests/commands/sponsor/TokenCommands.java
similarity index 100%
rename from src/main/java/dev/pgm/community/requests/commands/sponsor/TokenCommands.java
rename to core/src/main/java/dev/pgm/community/requests/commands/sponsor/TokenCommands.java
diff --git a/src/main/java/dev/pgm/community/requests/commands/supervotes/SuperVoteAdminCommands.java b/core/src/main/java/dev/pgm/community/requests/commands/supervotes/SuperVoteAdminCommands.java
similarity index 100%
rename from src/main/java/dev/pgm/community/requests/commands/supervotes/SuperVoteAdminCommands.java
rename to core/src/main/java/dev/pgm/community/requests/commands/supervotes/SuperVoteAdminCommands.java
diff --git a/src/main/java/dev/pgm/community/requests/commands/supervotes/SuperVoteCommand.java b/core/src/main/java/dev/pgm/community/requests/commands/supervotes/SuperVoteCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/requests/commands/supervotes/SuperVoteCommand.java
rename to core/src/main/java/dev/pgm/community/requests/commands/supervotes/SuperVoteCommand.java
diff --git a/src/main/java/dev/pgm/community/requests/feature/RequestFeature.java b/core/src/main/java/dev/pgm/community/requests/feature/RequestFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/requests/feature/RequestFeature.java
rename to core/src/main/java/dev/pgm/community/requests/feature/RequestFeature.java
diff --git a/src/main/java/dev/pgm/community/requests/feature/RequestFeatureBase.java b/core/src/main/java/dev/pgm/community/requests/feature/RequestFeatureBase.java
similarity index 100%
rename from src/main/java/dev/pgm/community/requests/feature/RequestFeatureBase.java
rename to core/src/main/java/dev/pgm/community/requests/feature/RequestFeatureBase.java
diff --git a/src/main/java/dev/pgm/community/requests/feature/SponsorVotingBookCreator.java b/core/src/main/java/dev/pgm/community/requests/feature/SponsorVotingBookCreator.java
similarity index 100%
rename from src/main/java/dev/pgm/community/requests/feature/SponsorVotingBookCreator.java
rename to core/src/main/java/dev/pgm/community/requests/feature/SponsorVotingBookCreator.java
diff --git a/src/main/java/dev/pgm/community/requests/feature/types/NoDBRequestFeature.java b/core/src/main/java/dev/pgm/community/requests/feature/types/NoDBRequestFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/requests/feature/types/NoDBRequestFeature.java
rename to core/src/main/java/dev/pgm/community/requests/feature/types/NoDBRequestFeature.java
diff --git a/src/main/java/dev/pgm/community/requests/feature/types/SQLRequestFeature.java b/core/src/main/java/dev/pgm/community/requests/feature/types/SQLRequestFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/requests/feature/types/SQLRequestFeature.java
rename to core/src/main/java/dev/pgm/community/requests/feature/types/SQLRequestFeature.java
diff --git a/src/main/java/dev/pgm/community/requests/menu/SponsorMenu.java b/core/src/main/java/dev/pgm/community/requests/menu/SponsorMenu.java
similarity index 100%
rename from src/main/java/dev/pgm/community/requests/menu/SponsorMenu.java
rename to core/src/main/java/dev/pgm/community/requests/menu/SponsorMenu.java
diff --git a/src/main/java/dev/pgm/community/requests/services/RequestQuery.java b/core/src/main/java/dev/pgm/community/requests/services/RequestQuery.java
similarity index 100%
rename from src/main/java/dev/pgm/community/requests/services/RequestQuery.java
rename to core/src/main/java/dev/pgm/community/requests/services/RequestQuery.java
diff --git a/src/main/java/dev/pgm/community/requests/services/SQLRequestService.java b/core/src/main/java/dev/pgm/community/requests/services/SQLRequestService.java
similarity index 100%
rename from src/main/java/dev/pgm/community/requests/services/SQLRequestService.java
rename to core/src/main/java/dev/pgm/community/requests/services/SQLRequestService.java
diff --git a/src/main/java/dev/pgm/community/requests/supervotes/SuperVoteComponents.java b/core/src/main/java/dev/pgm/community/requests/supervotes/SuperVoteComponents.java
similarity index 100%
rename from src/main/java/dev/pgm/community/requests/supervotes/SuperVoteComponents.java
rename to core/src/main/java/dev/pgm/community/requests/supervotes/SuperVoteComponents.java
diff --git a/src/main/java/dev/pgm/community/requests/supervotes/SuperVoteManager.java b/core/src/main/java/dev/pgm/community/requests/supervotes/SuperVoteManager.java
similarity index 100%
rename from src/main/java/dev/pgm/community/requests/supervotes/SuperVoteManager.java
rename to core/src/main/java/dev/pgm/community/requests/supervotes/SuperVoteManager.java
diff --git a/src/main/java/dev/pgm/community/sessions/Session.java b/core/src/main/java/dev/pgm/community/sessions/Session.java
similarity index 100%
rename from src/main/java/dev/pgm/community/sessions/Session.java
rename to core/src/main/java/dev/pgm/community/sessions/Session.java
diff --git a/src/main/java/dev/pgm/community/sessions/SessionQuery.java b/core/src/main/java/dev/pgm/community/sessions/SessionQuery.java
similarity index 100%
rename from src/main/java/dev/pgm/community/sessions/SessionQuery.java
rename to core/src/main/java/dev/pgm/community/sessions/SessionQuery.java
diff --git a/src/main/java/dev/pgm/community/sessions/VanishedSessionListener.java b/core/src/main/java/dev/pgm/community/sessions/VanishedSessionListener.java
similarity index 100%
rename from src/main/java/dev/pgm/community/sessions/VanishedSessionListener.java
rename to core/src/main/java/dev/pgm/community/sessions/VanishedSessionListener.java
diff --git a/src/main/java/dev/pgm/community/sessions/feature/SessionFeature.java b/core/src/main/java/dev/pgm/community/sessions/feature/SessionFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/sessions/feature/SessionFeature.java
rename to core/src/main/java/dev/pgm/community/sessions/feature/SessionFeature.java
diff --git a/src/main/java/dev/pgm/community/sessions/feature/SessionFeatureBase.java b/core/src/main/java/dev/pgm/community/sessions/feature/SessionFeatureBase.java
similarity index 100%
rename from src/main/java/dev/pgm/community/sessions/feature/SessionFeatureBase.java
rename to core/src/main/java/dev/pgm/community/sessions/feature/SessionFeatureBase.java
diff --git a/src/main/java/dev/pgm/community/sessions/feature/types/SQLSessionFeature.java b/core/src/main/java/dev/pgm/community/sessions/feature/types/SQLSessionFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/sessions/feature/types/SQLSessionFeature.java
rename to core/src/main/java/dev/pgm/community/sessions/feature/types/SQLSessionFeature.java
diff --git a/src/main/java/dev/pgm/community/sessions/services/SQLSessionService.java b/core/src/main/java/dev/pgm/community/sessions/services/SQLSessionService.java
similarity index 100%
rename from src/main/java/dev/pgm/community/sessions/services/SQLSessionService.java
rename to core/src/main/java/dev/pgm/community/sessions/services/SQLSessionService.java
diff --git a/src/main/java/dev/pgm/community/sessions/services/SessionDataQuery.java b/core/src/main/java/dev/pgm/community/sessions/services/SessionDataQuery.java
similarity index 100%
rename from src/main/java/dev/pgm/community/sessions/services/SessionDataQuery.java
rename to core/src/main/java/dev/pgm/community/sessions/services/SessionDataQuery.java
diff --git a/src/main/java/dev/pgm/community/squads/Squad.java b/core/src/main/java/dev/pgm/community/squads/Squad.java
similarity index 100%
rename from src/main/java/dev/pgm/community/squads/Squad.java
rename to core/src/main/java/dev/pgm/community/squads/Squad.java
diff --git a/src/main/java/dev/pgm/community/squads/SquadCommands.java b/core/src/main/java/dev/pgm/community/squads/SquadCommands.java
similarity index 100%
rename from src/main/java/dev/pgm/community/squads/SquadCommands.java
rename to core/src/main/java/dev/pgm/community/squads/SquadCommands.java
diff --git a/src/main/java/dev/pgm/community/squads/SquadConfig.java b/core/src/main/java/dev/pgm/community/squads/SquadConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/squads/SquadConfig.java
rename to core/src/main/java/dev/pgm/community/squads/SquadConfig.java
diff --git a/src/main/java/dev/pgm/community/squads/SquadFeature.java b/core/src/main/java/dev/pgm/community/squads/SquadFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/squads/SquadFeature.java
rename to core/src/main/java/dev/pgm/community/squads/SquadFeature.java
diff --git a/src/main/java/dev/pgm/community/teleports/TeleportCommand.java b/core/src/main/java/dev/pgm/community/teleports/TeleportCommand.java
similarity index 100%
rename from src/main/java/dev/pgm/community/teleports/TeleportCommand.java
rename to core/src/main/java/dev/pgm/community/teleports/TeleportCommand.java
diff --git a/src/main/java/dev/pgm/community/teleports/TeleportConfig.java b/core/src/main/java/dev/pgm/community/teleports/TeleportConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/teleports/TeleportConfig.java
rename to core/src/main/java/dev/pgm/community/teleports/TeleportConfig.java
diff --git a/src/main/java/dev/pgm/community/teleports/TeleportFeature.java b/core/src/main/java/dev/pgm/community/teleports/TeleportFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/teleports/TeleportFeature.java
rename to core/src/main/java/dev/pgm/community/teleports/TeleportFeature.java
diff --git a/src/main/java/dev/pgm/community/teleports/TeleportFeatureBase.java b/core/src/main/java/dev/pgm/community/teleports/TeleportFeatureBase.java
similarity index 100%
rename from src/main/java/dev/pgm/community/teleports/TeleportFeatureBase.java
rename to core/src/main/java/dev/pgm/community/teleports/TeleportFeatureBase.java
diff --git a/src/main/java/dev/pgm/community/text/TextTranslations.java b/core/src/main/java/dev/pgm/community/text/TextTranslations.java
similarity index 100%
rename from src/main/java/dev/pgm/community/text/TextTranslations.java
rename to core/src/main/java/dev/pgm/community/text/TextTranslations.java
diff --git a/src/main/java/dev/pgm/community/text/UTF8Control.java b/core/src/main/java/dev/pgm/community/text/UTF8Control.java
similarity index 100%
rename from src/main/java/dev/pgm/community/text/UTF8Control.java
rename to core/src/main/java/dev/pgm/community/text/UTF8Control.java
diff --git a/src/main/java/dev/pgm/community/users/UserProfile.java b/core/src/main/java/dev/pgm/community/users/UserProfile.java
similarity index 100%
rename from src/main/java/dev/pgm/community/users/UserProfile.java
rename to core/src/main/java/dev/pgm/community/users/UserProfile.java
diff --git a/src/main/java/dev/pgm/community/users/UserProfileImpl.java b/core/src/main/java/dev/pgm/community/users/UserProfileImpl.java
similarity index 100%
rename from src/main/java/dev/pgm/community/users/UserProfileImpl.java
rename to core/src/main/java/dev/pgm/community/users/UserProfileImpl.java
diff --git a/src/main/java/dev/pgm/community/users/UserProfileWithSessionCallback.java b/core/src/main/java/dev/pgm/community/users/UserProfileWithSessionCallback.java
similarity index 100%
rename from src/main/java/dev/pgm/community/users/UserProfileWithSessionCallback.java
rename to core/src/main/java/dev/pgm/community/users/UserProfileWithSessionCallback.java
diff --git a/src/main/java/dev/pgm/community/users/UsersConfig.java b/core/src/main/java/dev/pgm/community/users/UsersConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/users/UsersConfig.java
rename to core/src/main/java/dev/pgm/community/users/UsersConfig.java
diff --git a/src/main/java/dev/pgm/community/users/commands/UserInfoCommands.java b/core/src/main/java/dev/pgm/community/users/commands/UserInfoCommands.java
similarity index 100%
rename from src/main/java/dev/pgm/community/users/commands/UserInfoCommands.java
rename to core/src/main/java/dev/pgm/community/users/commands/UserInfoCommands.java
diff --git a/src/main/java/dev/pgm/community/users/feature/UsersFeature.java b/core/src/main/java/dev/pgm/community/users/feature/UsersFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/users/feature/UsersFeature.java
rename to core/src/main/java/dev/pgm/community/users/feature/UsersFeature.java
diff --git a/src/main/java/dev/pgm/community/users/feature/UsersFeatureBase.java b/core/src/main/java/dev/pgm/community/users/feature/UsersFeatureBase.java
similarity index 100%
rename from src/main/java/dev/pgm/community/users/feature/UsersFeatureBase.java
rename to core/src/main/java/dev/pgm/community/users/feature/UsersFeatureBase.java
diff --git a/src/main/java/dev/pgm/community/users/feature/types/NoDBUsersFeature.java b/core/src/main/java/dev/pgm/community/users/feature/types/NoDBUsersFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/users/feature/types/NoDBUsersFeature.java
rename to core/src/main/java/dev/pgm/community/users/feature/types/NoDBUsersFeature.java
diff --git a/src/main/java/dev/pgm/community/users/feature/types/SQLUsersFeature.java b/core/src/main/java/dev/pgm/community/users/feature/types/SQLUsersFeature.java
similarity index 100%
rename from src/main/java/dev/pgm/community/users/feature/types/SQLUsersFeature.java
rename to core/src/main/java/dev/pgm/community/users/feature/types/SQLUsersFeature.java
diff --git a/src/main/java/dev/pgm/community/users/listeners/UserProfileLoginListener.java b/core/src/main/java/dev/pgm/community/users/listeners/UserProfileLoginListener.java
similarity index 100%
rename from src/main/java/dev/pgm/community/users/listeners/UserProfileLoginListener.java
rename to core/src/main/java/dev/pgm/community/users/listeners/UserProfileLoginListener.java
diff --git a/src/main/java/dev/pgm/community/users/services/AddressHistoryService.java b/core/src/main/java/dev/pgm/community/users/services/AddressHistoryService.java
similarity index 100%
rename from src/main/java/dev/pgm/community/users/services/AddressHistoryService.java
rename to core/src/main/java/dev/pgm/community/users/services/AddressHistoryService.java
diff --git a/src/main/java/dev/pgm/community/users/services/AddressQuery.java b/core/src/main/java/dev/pgm/community/users/services/AddressQuery.java
similarity index 100%
rename from src/main/java/dev/pgm/community/users/services/AddressQuery.java
rename to core/src/main/java/dev/pgm/community/users/services/AddressQuery.java
diff --git a/src/main/java/dev/pgm/community/users/services/SQLUserService.java b/core/src/main/java/dev/pgm/community/users/services/SQLUserService.java
similarity index 100%
rename from src/main/java/dev/pgm/community/users/services/SQLUserService.java
rename to core/src/main/java/dev/pgm/community/users/services/SQLUserService.java
diff --git a/src/main/java/dev/pgm/community/users/services/UserQuery.java b/core/src/main/java/dev/pgm/community/users/services/UserQuery.java
similarity index 100%
rename from src/main/java/dev/pgm/community/users/services/UserQuery.java
rename to core/src/main/java/dev/pgm/community/users/services/UserQuery.java
diff --git a/src/main/java/dev/pgm/community/utils/AFKDetection.java b/core/src/main/java/dev/pgm/community/utils/AFKDetection.java
similarity index 100%
rename from src/main/java/dev/pgm/community/utils/AFKDetection.java
rename to core/src/main/java/dev/pgm/community/utils/AFKDetection.java
diff --git a/src/main/java/dev/pgm/community/utils/BroadcastUtils.java b/core/src/main/java/dev/pgm/community/utils/BroadcastUtils.java
similarity index 100%
rename from src/main/java/dev/pgm/community/utils/BroadcastUtils.java
rename to core/src/main/java/dev/pgm/community/utils/BroadcastUtils.java
diff --git a/src/main/java/dev/pgm/community/utils/CenterUtils.java b/core/src/main/java/dev/pgm/community/utils/CenterUtils.java
similarity index 100%
rename from src/main/java/dev/pgm/community/utils/CenterUtils.java
rename to core/src/main/java/dev/pgm/community/utils/CenterUtils.java
diff --git a/src/main/java/dev/pgm/community/utils/CommandAudience.java b/core/src/main/java/dev/pgm/community/utils/CommandAudience.java
similarity index 100%
rename from src/main/java/dev/pgm/community/utils/CommandAudience.java
rename to core/src/main/java/dev/pgm/community/utils/CommandAudience.java
diff --git a/src/main/java/dev/pgm/community/utils/DatabaseUtils.java b/core/src/main/java/dev/pgm/community/utils/DatabaseUtils.java
similarity index 100%
rename from src/main/java/dev/pgm/community/utils/DatabaseUtils.java
rename to core/src/main/java/dev/pgm/community/utils/DatabaseUtils.java
diff --git a/src/main/java/dev/pgm/community/utils/ImportUtils.java b/core/src/main/java/dev/pgm/community/utils/ImportUtils.java
similarity index 100%
rename from src/main/java/dev/pgm/community/utils/ImportUtils.java
rename to core/src/main/java/dev/pgm/community/utils/ImportUtils.java
diff --git a/src/main/java/dev/pgm/community/utils/MessageUtils.java b/core/src/main/java/dev/pgm/community/utils/MessageUtils.java
similarity index 100%
rename from src/main/java/dev/pgm/community/utils/MessageUtils.java
rename to core/src/main/java/dev/pgm/community/utils/MessageUtils.java
diff --git a/src/main/java/dev/pgm/community/utils/NameUtils.java b/core/src/main/java/dev/pgm/community/utils/NameUtils.java
similarity index 100%
rename from src/main/java/dev/pgm/community/utils/NameUtils.java
rename to core/src/main/java/dev/pgm/community/utils/NameUtils.java
diff --git a/src/main/java/dev/pgm/community/utils/NetworkUtils.java b/core/src/main/java/dev/pgm/community/utils/NetworkUtils.java
similarity index 100%
rename from src/main/java/dev/pgm/community/utils/NetworkUtils.java
rename to core/src/main/java/dev/pgm/community/utils/NetworkUtils.java
diff --git a/src/main/java/dev/pgm/community/utils/PGMUtils.java b/core/src/main/java/dev/pgm/community/utils/PGMUtils.java
similarity index 100%
rename from src/main/java/dev/pgm/community/utils/PGMUtils.java
rename to core/src/main/java/dev/pgm/community/utils/PGMUtils.java
diff --git a/src/main/java/dev/pgm/community/utils/PaginatedComponentResults.java b/core/src/main/java/dev/pgm/community/utils/PaginatedComponentResults.java
similarity index 100%
rename from src/main/java/dev/pgm/community/utils/PaginatedComponentResults.java
rename to core/src/main/java/dev/pgm/community/utils/PaginatedComponentResults.java
diff --git a/src/main/java/dev/pgm/community/utils/SkullUtils.java b/core/src/main/java/dev/pgm/community/utils/SkullUtils.java
similarity index 100%
rename from src/main/java/dev/pgm/community/utils/SkullUtils.java
rename to core/src/main/java/dev/pgm/community/utils/SkullUtils.java
diff --git a/src/main/java/dev/pgm/community/utils/Sounds.java b/core/src/main/java/dev/pgm/community/utils/Sounds.java
similarity index 100%
rename from src/main/java/dev/pgm/community/utils/Sounds.java
rename to core/src/main/java/dev/pgm/community/utils/Sounds.java
diff --git a/src/main/java/dev/pgm/community/utils/VisibilityUtils.java b/core/src/main/java/dev/pgm/community/utils/VisibilityUtils.java
similarity index 100%
rename from src/main/java/dev/pgm/community/utils/VisibilityUtils.java
rename to core/src/main/java/dev/pgm/community/utils/VisibilityUtils.java
diff --git a/src/main/java/dev/pgm/community/utils/WebUtils.java b/core/src/main/java/dev/pgm/community/utils/WebUtils.java
similarity index 100%
rename from src/main/java/dev/pgm/community/utils/WebUtils.java
rename to core/src/main/java/dev/pgm/community/utils/WebUtils.java
diff --git a/src/main/java/dev/pgm/community/utils/gson/GsonProvider.java b/core/src/main/java/dev/pgm/community/utils/gson/GsonProvider.java
similarity index 100%
rename from src/main/java/dev/pgm/community/utils/gson/GsonProvider.java
rename to core/src/main/java/dev/pgm/community/utils/gson/GsonProvider.java
diff --git a/src/main/java/dev/pgm/community/utils/gson/types/DurationConverter.java b/core/src/main/java/dev/pgm/community/utils/gson/types/DurationConverter.java
similarity index 100%
rename from src/main/java/dev/pgm/community/utils/gson/types/DurationConverter.java
rename to core/src/main/java/dev/pgm/community/utils/gson/types/DurationConverter.java
diff --git a/src/main/java/dev/pgm/community/utils/ranks/RankUtils.java b/core/src/main/java/dev/pgm/community/utils/ranks/RankUtils.java
similarity index 100%
rename from src/main/java/dev/pgm/community/utils/ranks/RankUtils.java
rename to core/src/main/java/dev/pgm/community/utils/ranks/RankUtils.java
diff --git a/src/main/java/dev/pgm/community/utils/ranks/RanksConfig.java b/core/src/main/java/dev/pgm/community/utils/ranks/RanksConfig.java
similarity index 100%
rename from src/main/java/dev/pgm/community/utils/ranks/RanksConfig.java
rename to core/src/main/java/dev/pgm/community/utils/ranks/RanksConfig.java
diff --git a/src/main/resources/config.yml b/core/src/main/resources/config.yml
similarity index 100%
rename from src/main/resources/config.yml
rename to core/src/main/resources/config.yml
diff --git a/src/main/resources/plugin.yml b/core/src/main/resources/plugin.yml
similarity index 100%
rename from src/main/resources/plugin.yml
rename to core/src/main/resources/plugin.yml
diff --git a/src/main/resources/strings.properties b/core/src/main/resources/strings.properties
similarity index 100%
rename from src/main/resources/strings.properties
rename to core/src/main/resources/strings.properties
diff --git a/pom.xml b/pom.xml
index a230feec..e3750be9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,6 +6,7 @@
Community
A plugin for managing a Minecraft community
https://pgm.dev
+ pom
21
@@ -15,6 +16,10 @@
applenick
+
+ core
+
+
pgm.fyi
@@ -99,7 +104,7 @@
Environment
1.0.0-SNAPSHOT
-
+
tc.oc.occ
@@ -107,77 +112,21 @@
1.0.0-SNAPSHOT
provided
-
-
+
- Community
-
-
-
- ${basedir}/src/main/resources
- true
-
-
-
org.apache.maven.plugins
maven-compiler-plugin
- 3.13.0
-
-
-
- org.incendo
- cloud-annotations
- 2.0.0-rc.2
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- 3.6.0
-
- false
- true
-
-
- net.kyori:*:*
- co.aikar:*
- tc.oc.pgm:util
- redis.clients:jedis
- org.apache.commons:commons-pool2
- fr.minuskube.inv:smart-invs
- com.zaxxer:HikariCP
- org.slf4j:*
-
-
-
-
- *:*
-
- META-INF/**
-
-
-
-
-
-
- package
-
- shade
-
-
-
+ 3.11.0
pl.project13.maven
git-commit-id-plugin
- 4.0.0
+ 4.9.10
@@ -192,40 +141,46 @@
-
- com.diffplug.spotless
- spotless-maven-plugin
- 2.43.0
-
- origin/dev
-
-
-
- 2.47.0
-
- true
-
-
-
-
-
-
- check
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
org.apache.maven.plugins
maven-javadoc-plugin
- 3.2.0
+ 3.5.0
false
true
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.1.2
+