diff --git a/.gitignore b/.gitignore
index 1f9010d..b227244 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,7 @@
/.idea/
*.iml
/target/
-src/main/resources/build.properties
+server/src/main/resources/build.properties
# OS
.DS_Store
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
index 86bb373..79ee123 100644
--- a/.idea/codeStyles/codeStyleConfig.xml
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -1,46 +1,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
\ No newline at end of file
diff --git a/api/build.gradle b/api/build.gradle
new file mode 100644
index 0000000..30722ed
--- /dev/null
+++ b/api/build.gradle
@@ -0,0 +1,21 @@
+plugins {
+ id 'java'
+}
+
+group 'dev.plex'
+version '1.1-SNAPSHOT'
+
+repositories {
+ mavenCentral()
+ mavenLocal()
+ maven {
+ url = uri("https://papermc.io/repo/repository/maven-public/")
+ }
+}
+
+dependencies {
+ compileOnly "org.projectlombok:lombok:1.18.22"
+ annotationProcessor "org.projectlombok:lombok:1.18.22"
+ compileOnly "io.papermc.paper:paper-api:1.18.2-R0.1-SNAPSHOT"
+ compileOnly "org.json:json:20220320"
+}
\ No newline at end of file
diff --git a/api/build/classes/java/main/dev/plex/api/event/AdminAddEvent.class b/api/build/classes/java/main/dev/plex/api/event/AdminAddEvent.class
new file mode 100644
index 0000000..f42ad87
Binary files /dev/null and b/api/build/classes/java/main/dev/plex/api/event/AdminAddEvent.class differ
diff --git a/api/build/classes/java/main/dev/plex/api/event/AdminRemoveEvent.class b/api/build/classes/java/main/dev/plex/api/event/AdminRemoveEvent.class
new file mode 100644
index 0000000..47df6b7
Binary files /dev/null and b/api/build/classes/java/main/dev/plex/api/event/AdminRemoveEvent.class differ
diff --git a/api/build/classes/java/main/dev/plex/api/event/AdminSetRankEvent.class b/api/build/classes/java/main/dev/plex/api/event/AdminSetRankEvent.class
new file mode 100644
index 0000000..4583a02
Binary files /dev/null and b/api/build/classes/java/main/dev/plex/api/event/AdminSetRankEvent.class differ
diff --git a/api/build/classes/java/main/dev/plex/api/event/GameModeUpdateEvent.class b/api/build/classes/java/main/dev/plex/api/event/GameModeUpdateEvent.class
new file mode 100644
index 0000000..af9a95e
Binary files /dev/null and b/api/build/classes/java/main/dev/plex/api/event/GameModeUpdateEvent.class differ
diff --git a/api/build/classes/java/main/dev/plex/api/event/PunishedPlayerEvent.class b/api/build/classes/java/main/dev/plex/api/event/PunishedPlayerEvent.class
new file mode 100644
index 0000000..bfc7212
Binary files /dev/null and b/api/build/classes/java/main/dev/plex/api/event/PunishedPlayerEvent.class differ
diff --git a/api/build/classes/java/main/dev/plex/api/event/PunishedPlayerFreezeEvent.class b/api/build/classes/java/main/dev/plex/api/event/PunishedPlayerFreezeEvent.class
new file mode 100644
index 0000000..79b25f4
Binary files /dev/null and b/api/build/classes/java/main/dev/plex/api/event/PunishedPlayerFreezeEvent.class differ
diff --git a/api/build/classes/java/main/dev/plex/api/event/PunishedPlayerLockupEvent.class b/api/build/classes/java/main/dev/plex/api/event/PunishedPlayerLockupEvent.class
new file mode 100644
index 0000000..896ab91
Binary files /dev/null and b/api/build/classes/java/main/dev/plex/api/event/PunishedPlayerLockupEvent.class differ
diff --git a/api/build/classes/java/main/dev/plex/api/event/PunishedPlayerMuteEvent.class b/api/build/classes/java/main/dev/plex/api/event/PunishedPlayerMuteEvent.class
new file mode 100644
index 0000000..a322516
Binary files /dev/null and b/api/build/classes/java/main/dev/plex/api/event/PunishedPlayerMuteEvent.class differ
diff --git a/api/build/classes/java/main/dev/plex/api/player/IPlexPlayer.class b/api/build/classes/java/main/dev/plex/api/player/IPlexPlayer.class
new file mode 100644
index 0000000..8e5de4c
Binary files /dev/null and b/api/build/classes/java/main/dev/plex/api/player/IPlexPlayer.class differ
diff --git a/api/build/classes/java/main/dev/plex/api/rank/IRank.class b/api/build/classes/java/main/dev/plex/api/rank/IRank.class
new file mode 100644
index 0000000..d000163
Binary files /dev/null and b/api/build/classes/java/main/dev/plex/api/rank/IRank.class differ
diff --git a/api/build/libs/api-1.1-SNAPSHOT.jar b/api/build/libs/api-1.1-SNAPSHOT.jar
new file mode 100644
index 0000000..7653186
Binary files /dev/null and b/api/build/libs/api-1.1-SNAPSHOT.jar differ
diff --git a/api/build/tmp/compileJava/previous-compilation-data.bin b/api/build/tmp/compileJava/previous-compilation-data.bin
new file mode 100644
index 0000000..a326b3a
Binary files /dev/null and b/api/build/tmp/compileJava/previous-compilation-data.bin differ
diff --git a/api/build/tmp/jar/MANIFEST.MF b/api/build/tmp/jar/MANIFEST.MF
new file mode 100644
index 0000000..59499bc
--- /dev/null
+++ b/api/build/tmp/jar/MANIFEST.MF
@@ -0,0 +1,2 @@
+Manifest-Version: 1.0
+
diff --git a/src/main/java/dev/plex/event/AdminAddEvent.java b/api/src/main/java/dev/plex/api/event/AdminAddEvent.java
similarity index 86%
rename from src/main/java/dev/plex/event/AdminAddEvent.java
rename to api/src/main/java/dev/plex/api/event/AdminAddEvent.java
index 1ad453c..32e5843 100644
--- a/src/main/java/dev/plex/event/AdminAddEvent.java
+++ b/api/src/main/java/dev/plex/api/event/AdminAddEvent.java
@@ -1,6 +1,6 @@
-package dev.plex.event;
+package dev.plex.api.event;
-import dev.plex.player.PlexPlayer;
+import dev.plex.api.player.IPlexPlayer;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.bukkit.command.CommandSender;
@@ -24,7 +24,7 @@ public class AdminAddEvent extends Event
/**
* The PlexPlayer that was added
*/
- private final PlexPlayer plexPlayer;
+ private final IPlexPlayer plexPlayer;
public static HandlerList getHandlerList()
{
diff --git a/src/main/java/dev/plex/event/AdminRemoveEvent.java b/api/src/main/java/dev/plex/api/event/AdminRemoveEvent.java
similarity index 86%
rename from src/main/java/dev/plex/event/AdminRemoveEvent.java
rename to api/src/main/java/dev/plex/api/event/AdminRemoveEvent.java
index ec215ce..21cfe8b 100644
--- a/src/main/java/dev/plex/event/AdminRemoveEvent.java
+++ b/api/src/main/java/dev/plex/api/event/AdminRemoveEvent.java
@@ -1,6 +1,6 @@
-package dev.plex.event;
+package dev.plex.api.event;
-import dev.plex.player.PlexPlayer;
+import dev.plex.api.player.IPlexPlayer;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.bukkit.command.CommandSender;
@@ -24,7 +24,7 @@ public class AdminRemoveEvent extends Event
/**
* The PlexPlayer that was removed
*/
- private final PlexPlayer plexPlayer;
+ private final IPlexPlayer plexPlayer;
public static HandlerList getHandlerList()
{
diff --git a/src/main/java/dev/plex/event/AdminSetRankEvent.java b/api/src/main/java/dev/plex/api/event/AdminSetRankEvent.java
similarity index 81%
rename from src/main/java/dev/plex/event/AdminSetRankEvent.java
rename to api/src/main/java/dev/plex/api/event/AdminSetRankEvent.java
index db0b990..d351d25 100644
--- a/src/main/java/dev/plex/event/AdminSetRankEvent.java
+++ b/api/src/main/java/dev/plex/api/event/AdminSetRankEvent.java
@@ -1,7 +1,7 @@
-package dev.plex.event;
+package dev.plex.api.event;
-import dev.plex.player.PlexPlayer;
-import dev.plex.rank.enums.Rank;
+import dev.plex.api.player.IPlexPlayer;
+import dev.plex.api.rank.IRank;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.bukkit.command.CommandSender;
@@ -25,12 +25,12 @@ public class AdminSetRankEvent extends Event
/**
* The PlexPlayer that was removed
*/
- private final PlexPlayer plexPlayer;
+ private final IPlexPlayer plexPlayer;
/**
* The rank the player was set to
*/
- private final Rank rank;
+ private final IRank rank;
public static HandlerList getHandlerList()
{
diff --git a/src/main/java/dev/plex/event/GameModeUpdateEvent.java b/api/src/main/java/dev/plex/api/event/GameModeUpdateEvent.java
similarity index 96%
rename from src/main/java/dev/plex/event/GameModeUpdateEvent.java
rename to api/src/main/java/dev/plex/api/event/GameModeUpdateEvent.java
index eaf0687..3609f02 100644
--- a/src/main/java/dev/plex/event/GameModeUpdateEvent.java
+++ b/api/src/main/java/dev/plex/api/event/GameModeUpdateEvent.java
@@ -1,4 +1,4 @@
-package dev.plex.event;
+package dev.plex.api.event;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -13,6 +13,7 @@ import org.jetbrains.annotations.NotNull;
@Data
public class GameModeUpdateEvent extends Event
{
+
private static final HandlerList handlers = new HandlerList();
private final CommandSender sender;
diff --git a/src/main/java/dev/plex/event/PunishedPlayerEvent.java b/api/src/main/java/dev/plex/api/event/PunishedPlayerEvent.java
similarity index 78%
rename from src/main/java/dev/plex/event/PunishedPlayerEvent.java
rename to api/src/main/java/dev/plex/api/event/PunishedPlayerEvent.java
index 4b4f04d..d239e7a 100644
--- a/src/main/java/dev/plex/event/PunishedPlayerEvent.java
+++ b/api/src/main/java/dev/plex/api/event/PunishedPlayerEvent.java
@@ -1,6 +1,6 @@
-package dev.plex.event;
+package dev.plex.api.event;
-import dev.plex.player.PlexPlayer;
+import dev.plex.api.player.IPlexPlayer;
import lombok.Getter;
import lombok.Setter;
import org.bukkit.Bukkit;
@@ -16,7 +16,7 @@ public abstract class PunishedPlayerEvent extends PlayerEvent implements Cancell
/**
* The player who was punished
*/
- protected PlexPlayer punishedPlayer;
+ protected IPlexPlayer punishedPlayer;
/**
* Whether the event was cancelled
@@ -28,9 +28,9 @@ public abstract class PunishedPlayerEvent extends PlayerEvent implements Cancell
* Creates an event object
*
* @param punishedPlayer The player who was punished
- * @see PlexPlayer
+ * @see IPlexPlayer
*/
- protected PunishedPlayerEvent(PlexPlayer punishedPlayer)
+ protected PunishedPlayerEvent(IPlexPlayer punishedPlayer)
{
super(Bukkit.getPlayer(punishedPlayer.getUuid()));
this.punishedPlayer = punishedPlayer;
diff --git a/src/main/java/dev/plex/event/PunishedPlayerFreezeEvent.java b/api/src/main/java/dev/plex/api/event/PunishedPlayerFreezeEvent.java
similarity index 84%
rename from src/main/java/dev/plex/event/PunishedPlayerFreezeEvent.java
rename to api/src/main/java/dev/plex/api/event/PunishedPlayerFreezeEvent.java
index 929c13e..1380f1a 100644
--- a/src/main/java/dev/plex/event/PunishedPlayerFreezeEvent.java
+++ b/api/src/main/java/dev/plex/api/event/PunishedPlayerFreezeEvent.java
@@ -1,6 +1,6 @@
-package dev.plex.event;
+package dev.plex.api.event;
-import dev.plex.player.PlexPlayer;
+import dev.plex.api.player.IPlexPlayer;
import lombok.Getter;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
@@ -24,7 +24,7 @@ public class PunishedPlayerFreezeEvent extends PunishedPlayerEvent implements Ca
* @param punishedPlayer The player who was punished
* @param frozen The new frozen status
*/
- public PunishedPlayerFreezeEvent(PlexPlayer punishedPlayer, boolean frozen)
+ public PunishedPlayerFreezeEvent(IPlexPlayer punishedPlayer, boolean frozen)
{
super(punishedPlayer);
this.frozen = frozen;
diff --git a/src/main/java/dev/plex/event/PunishedPlayerLockupEvent.java b/api/src/main/java/dev/plex/api/event/PunishedPlayerLockupEvent.java
similarity index 84%
rename from src/main/java/dev/plex/event/PunishedPlayerLockupEvent.java
rename to api/src/main/java/dev/plex/api/event/PunishedPlayerLockupEvent.java
index 2656c61..c656a7c 100644
--- a/src/main/java/dev/plex/event/PunishedPlayerLockupEvent.java
+++ b/api/src/main/java/dev/plex/api/event/PunishedPlayerLockupEvent.java
@@ -1,6 +1,6 @@
-package dev.plex.event;
+package dev.plex.api.event;
-import dev.plex.player.PlexPlayer;
+import dev.plex.api.player.IPlexPlayer;
import lombok.Getter;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
@@ -24,7 +24,7 @@ public class PunishedPlayerLockupEvent extends PunishedPlayerEvent implements Ca
* @param punishedPlayer The player who was punished
* @param lockedUp The new muted status
*/
- public PunishedPlayerLockupEvent(PlexPlayer punishedPlayer, boolean lockedUp)
+ public PunishedPlayerLockupEvent(IPlexPlayer punishedPlayer, boolean lockedUp)
{
super(punishedPlayer);
this.lockedUp = lockedUp;
diff --git a/src/main/java/dev/plex/event/PunishedPlayerMuteEvent.java b/api/src/main/java/dev/plex/api/event/PunishedPlayerMuteEvent.java
similarity index 84%
rename from src/main/java/dev/plex/event/PunishedPlayerMuteEvent.java
rename to api/src/main/java/dev/plex/api/event/PunishedPlayerMuteEvent.java
index f0648fc..acb330a 100644
--- a/src/main/java/dev/plex/event/PunishedPlayerMuteEvent.java
+++ b/api/src/main/java/dev/plex/api/event/PunishedPlayerMuteEvent.java
@@ -1,6 +1,6 @@
-package dev.plex.event;
+package dev.plex.api.event;
-import dev.plex.player.PlexPlayer;
+import dev.plex.api.player.IPlexPlayer;
import lombok.Getter;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
@@ -11,6 +11,7 @@ import org.bukkit.event.HandlerList;
@Getter
public class PunishedPlayerMuteEvent extends PunishedPlayerEvent implements Cancellable
{
+
private static final HandlerList handlers = new HandlerList();
/**
@@ -24,7 +25,7 @@ public class PunishedPlayerMuteEvent extends PunishedPlayerEvent implements Canc
* @param punishedPlayer The player who was punished
* @param muted The new muted status
*/
- public PunishedPlayerMuteEvent(PlexPlayer punishedPlayer, boolean muted)
+ public PunishedPlayerMuteEvent(IPlexPlayer punishedPlayer, boolean muted)
{
super(punishedPlayer);
this.muted = muted;
diff --git a/api/src/main/java/dev/plex/api/player/IPlexPlayer.java b/api/src/main/java/dev/plex/api/player/IPlexPlayer.java
new file mode 100644
index 0000000..ba0cb76
--- /dev/null
+++ b/api/src/main/java/dev/plex/api/player/IPlexPlayer.java
@@ -0,0 +1,68 @@
+package dev.plex.api.player;
+
+import java.util.List;
+import java.util.UUID;
+import org.bukkit.entity.Player;
+import org.bukkit.permissions.PermissionAttachment;
+
+public interface IPlexPlayer
+{
+
+ String getId();
+
+ UUID getUuid();
+
+ String getName();
+
+ Player getPlayer();
+
+ void setPlayer(Player player);
+
+ String getLoginMessage();
+
+ void setLoginMessage(String message);
+
+ String getPrefix();
+
+ void setPrefix(String prefix);
+
+ boolean isVanished();
+
+ void setVanished(boolean vanished);
+
+ boolean isCommandSpy();
+
+ void setCommandSpy(boolean commandSpy);
+
+ boolean isFrozen();
+
+ void setFrozen(boolean frozen);
+
+ boolean isMuted();
+
+ void setMuted(boolean muted);
+
+ boolean isLockedUp();
+
+ void setLockedUp(boolean lockedUp);
+
+ boolean isAdminActive();
+
+ void setAdminActive(boolean active);
+
+ long getCoins();
+
+ void setCoins(long coins);
+
+ String getRank();
+
+ void setRank(String rank);
+
+ List getIps();
+
+ void setIps(List ips);
+
+ PermissionAttachment getPermissionAttachment();
+
+ void setPermissionAttachment(PermissionAttachment attachment);
+}
diff --git a/api/src/main/java/dev/plex/api/rank/IRank.java b/api/src/main/java/dev/plex/api/rank/IRank.java
new file mode 100644
index 0000000..4b70835
--- /dev/null
+++ b/api/src/main/java/dev/plex/api/rank/IRank.java
@@ -0,0 +1,27 @@
+package dev.plex.api.rank;
+
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.format.NamedTextColor;
+import org.json.JSONObject;
+
+public interface IRank
+{
+
+ int getLevel();
+
+ String getLoginMessage();
+
+ void setLoginMessage(String message);
+
+ String getReadable();
+
+ Component getPrefix();
+
+ void setPrefix(String prefix);
+
+ NamedTextColor getColor();
+
+ boolean isAtLeast(IRank rank);
+
+ JSONObject toJSON();
+}
diff --git a/build.gradle b/server/build.gradle
similarity index 97%
rename from build.gradle
rename to server/build.gradle
index d8894db..40e803b 100644
--- a/build.gradle
+++ b/server/build.gradle
@@ -55,6 +55,7 @@ dependencies {
}
implementation "org.bstats:bstats-base:3.0.0"
implementation "org.bstats:bstats-bukkit:3.0.0"
+ implementation project(":api")
}
group = "dev.plex"
@@ -68,7 +69,7 @@ shadowJar {
bukkit {
name = "Plex"
- version = rootProject.version
+ version = project.version
description = "Plex provides a new experience for freedom servers."
main = "dev.plex.Plex"
website = "https://plex.us.org"
@@ -110,7 +111,7 @@ static def getDate() {
}
task buildProperties {
- ant.propertyfile(file: "$project.rootDir/src/main/resources/build.properties") {
+ ant.propertyfile(file: "$project.projectDir/src/main/resources/build.properties") {
entry(key: "buildAuthor", default: System.getenv("JENKINS_URL") != null ? "jenkins" : "unknown")
entry(key: "buildNumber", value: System.getenv("JENKINS_URL") != null ? System.getenv("BUILD_NUMBER") + " (Jenkins)" : getBuildNumber())
entry(key: "buildDate", value: getDate())
diff --git a/server/build/classes/java/main/dev/plex/Plex.class b/server/build/classes/java/main/dev/plex/Plex.class
new file mode 100644
index 0000000..1535c0d
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/Plex.class differ
diff --git a/server/build/classes/java/main/dev/plex/PlexBase.class b/server/build/classes/java/main/dev/plex/PlexBase.class
new file mode 100644
index 0000000..f1c1ad9
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/PlexBase.class differ
diff --git a/server/build/classes/java/main/dev/plex/admin/Admin.class b/server/build/classes/java/main/dev/plex/admin/Admin.class
new file mode 100644
index 0000000..cea065a
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/admin/Admin.class differ
diff --git a/server/build/classes/java/main/dev/plex/admin/AdminList$1.class b/server/build/classes/java/main/dev/plex/admin/AdminList$1.class
new file mode 100644
index 0000000..ff7f831
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/admin/AdminList$1.class differ
diff --git a/server/build/classes/java/main/dev/plex/admin/AdminList.class b/server/build/classes/java/main/dev/plex/admin/AdminList.class
new file mode 100644
index 0000000..ba8ad82
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/admin/AdminList.class differ
diff --git a/server/build/classes/java/main/dev/plex/cache/DataUtils.class b/server/build/classes/java/main/dev/plex/cache/DataUtils.class
new file mode 100644
index 0000000..2525c68
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/cache/DataUtils.class differ
diff --git a/server/build/classes/java/main/dev/plex/cache/PlayerCache.class b/server/build/classes/java/main/dev/plex/cache/PlayerCache.class
new file mode 100644
index 0000000..3914553
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/cache/PlayerCache.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/PlexCommand.class b/server/build/classes/java/main/dev/plex/command/PlexCommand.class
new file mode 100644
index 0000000..fbedaf8
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/PlexCommand.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/annotation/CommandParameters.class b/server/build/classes/java/main/dev/plex/command/annotation/CommandParameters.class
new file mode 100644
index 0000000..e546b66
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/annotation/CommandParameters.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/annotation/CommandPermissions.class b/server/build/classes/java/main/dev/plex/command/annotation/CommandPermissions.class
new file mode 100644
index 0000000..afcdf0c
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/annotation/CommandPermissions.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/annotation/System.class b/server/build/classes/java/main/dev/plex/command/annotation/System.class
new file mode 100644
index 0000000..f4ac2cf
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/annotation/System.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/blocking/BlockedCommand.class b/server/build/classes/java/main/dev/plex/command/blocking/BlockedCommand.class
new file mode 100644
index 0000000..176fecf
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/blocking/BlockedCommand.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/exception/CommandFailException.class b/server/build/classes/java/main/dev/plex/command/exception/CommandFailException.class
new file mode 100644
index 0000000..8859925
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/exception/CommandFailException.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/exception/ConsoleMustDefinePlayerException.class b/server/build/classes/java/main/dev/plex/command/exception/ConsoleMustDefinePlayerException.class
new file mode 100644
index 0000000..02e9beb
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/exception/ConsoleMustDefinePlayerException.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/exception/ConsoleOnlyException.class b/server/build/classes/java/main/dev/plex/command/exception/ConsoleOnlyException.class
new file mode 100644
index 0000000..97f3e93
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/exception/ConsoleOnlyException.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/exception/PlayerNotBannedException.class b/server/build/classes/java/main/dev/plex/command/exception/PlayerNotBannedException.class
new file mode 100644
index 0000000..e2367f1
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/exception/PlayerNotBannedException.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/exception/PlayerNotFoundException.class b/server/build/classes/java/main/dev/plex/command/exception/PlayerNotFoundException.class
new file mode 100644
index 0000000..7044620
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/exception/PlayerNotFoundException.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/AdminCMD.class b/server/build/classes/java/main/dev/plex/command/impl/AdminCMD.class
new file mode 100644
index 0000000..c50b4b3
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/AdminCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/AdminChatCMD.class b/server/build/classes/java/main/dev/plex/command/impl/AdminChatCMD.class
new file mode 100644
index 0000000..d557080
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/AdminChatCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/AdminworldCMD.class b/server/build/classes/java/main/dev/plex/command/impl/AdminworldCMD.class
new file mode 100644
index 0000000..4302134
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/AdminworldCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/AdventureCMD.class b/server/build/classes/java/main/dev/plex/command/impl/AdventureCMD.class
new file mode 100644
index 0000000..a1eddac
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/AdventureCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/BanCMD.class b/server/build/classes/java/main/dev/plex/command/impl/BanCMD.class
new file mode 100644
index 0000000..3034e42
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/BanCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/BlockEditCMD.class b/server/build/classes/java/main/dev/plex/command/impl/BlockEditCMD.class
new file mode 100644
index 0000000..5a9f348
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/BlockEditCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/CommandSpyCMD.class b/server/build/classes/java/main/dev/plex/command/impl/CommandSpyCMD.class
new file mode 100644
index 0000000..18e51fd
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/CommandSpyCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/ConsoleSayCMD.class b/server/build/classes/java/main/dev/plex/command/impl/ConsoleSayCMD.class
new file mode 100644
index 0000000..9a68cd5
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/ConsoleSayCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/CreativeCMD.class b/server/build/classes/java/main/dev/plex/command/impl/CreativeCMD.class
new file mode 100644
index 0000000..9098762
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/CreativeCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/DebugCMD.class b/server/build/classes/java/main/dev/plex/command/impl/DebugCMD.class
new file mode 100644
index 0000000..b0f062e
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/DebugCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/DeopAllCMD.class b/server/build/classes/java/main/dev/plex/command/impl/DeopAllCMD.class
new file mode 100644
index 0000000..21e5907
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/DeopAllCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/DeopCMD.class b/server/build/classes/java/main/dev/plex/command/impl/DeopCMD.class
new file mode 100644
index 0000000..1beab7e
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/DeopCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/EntityWipeCMD.class b/server/build/classes/java/main/dev/plex/command/impl/EntityWipeCMD.class
new file mode 100644
index 0000000..391c481
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/EntityWipeCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/FlatlandsCMD.class b/server/build/classes/java/main/dev/plex/command/impl/FlatlandsCMD.class
new file mode 100644
index 0000000..54cdc43
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/FlatlandsCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/FreezeCMD.class b/server/build/classes/java/main/dev/plex/command/impl/FreezeCMD.class
new file mode 100644
index 0000000..de02c55
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/FreezeCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/GamemodeCMD.class b/server/build/classes/java/main/dev/plex/command/impl/GamemodeCMD.class
new file mode 100644
index 0000000..b09a546
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/GamemodeCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/KickCMD.class b/server/build/classes/java/main/dev/plex/command/impl/KickCMD.class
new file mode 100644
index 0000000..eebef8e
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/KickCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/ListCMD.class b/server/build/classes/java/main/dev/plex/command/impl/ListCMD.class
new file mode 100644
index 0000000..873f241
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/ListCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/LocalSpawnCMD.class b/server/build/classes/java/main/dev/plex/command/impl/LocalSpawnCMD.class
new file mode 100644
index 0000000..8b9fc20
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/LocalSpawnCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/LockupCMD.class b/server/build/classes/java/main/dev/plex/command/impl/LockupCMD.class
new file mode 100644
index 0000000..9364e98
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/LockupCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/MasterbuilderworldCMD.class b/server/build/classes/java/main/dev/plex/command/impl/MasterbuilderworldCMD.class
new file mode 100644
index 0000000..06120dc
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/MasterbuilderworldCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/MobPurgeCMD.class b/server/build/classes/java/main/dev/plex/command/impl/MobPurgeCMD.class
new file mode 100644
index 0000000..b60e19a
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/MobPurgeCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/MuteCMD.class b/server/build/classes/java/main/dev/plex/command/impl/MuteCMD.class
new file mode 100644
index 0000000..cc7db98
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/MuteCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/NameHistoryCMD.class b/server/build/classes/java/main/dev/plex/command/impl/NameHistoryCMD.class
new file mode 100644
index 0000000..d330d56
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/NameHistoryCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/NotesCMD.class b/server/build/classes/java/main/dev/plex/command/impl/NotesCMD.class
new file mode 100644
index 0000000..991d19d
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/NotesCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/OpAllCMD.class b/server/build/classes/java/main/dev/plex/command/impl/OpAllCMD.class
new file mode 100644
index 0000000..115dbd4
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/OpAllCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/OpCMD.class b/server/build/classes/java/main/dev/plex/command/impl/OpCMD.class
new file mode 100644
index 0000000..ea40c14
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/OpCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/PlexCMD.class b/server/build/classes/java/main/dev/plex/command/impl/PlexCMD.class
new file mode 100644
index 0000000..81bc72a
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/PlexCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/PunishmentsCMD.class b/server/build/classes/java/main/dev/plex/command/impl/PunishmentsCMD.class
new file mode 100644
index 0000000..49eabfc
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/PunishmentsCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/RankCMD.class b/server/build/classes/java/main/dev/plex/command/impl/RankCMD.class
new file mode 100644
index 0000000..3c0e1f1
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/RankCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/RawSayCMD.class b/server/build/classes/java/main/dev/plex/command/impl/RawSayCMD.class
new file mode 100644
index 0000000..be8a875
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/RawSayCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/SayCMD.class b/server/build/classes/java/main/dev/plex/command/impl/SayCMD.class
new file mode 100644
index 0000000..1b6856d
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/SayCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/SmiteCMD.class b/server/build/classes/java/main/dev/plex/command/impl/SmiteCMD.class
new file mode 100644
index 0000000..212e26a
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/SmiteCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/SpectatorCMD.class b/server/build/classes/java/main/dev/plex/command/impl/SpectatorCMD.class
new file mode 100644
index 0000000..61ed3ac
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/SpectatorCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/SurvivalCMD.class b/server/build/classes/java/main/dev/plex/command/impl/SurvivalCMD.class
new file mode 100644
index 0000000..6d9c5d9
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/SurvivalCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/TagCMD.class b/server/build/classes/java/main/dev/plex/command/impl/TagCMD.class
new file mode 100644
index 0000000..3177c1e
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/TagCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/TempbanCMD.class b/server/build/classes/java/main/dev/plex/command/impl/TempbanCMD.class
new file mode 100644
index 0000000..d84f856
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/TempbanCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/ToggleDropsCMD.class b/server/build/classes/java/main/dev/plex/command/impl/ToggleDropsCMD.class
new file mode 100644
index 0000000..3a3e74e
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/ToggleDropsCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/UnbanCMD.class b/server/build/classes/java/main/dev/plex/command/impl/UnbanCMD.class
new file mode 100644
index 0000000..1fe85ab
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/UnbanCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/UnfreezeCMD.class b/server/build/classes/java/main/dev/plex/command/impl/UnfreezeCMD.class
new file mode 100644
index 0000000..0f154e4
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/UnfreezeCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/UnmuteCMD.class b/server/build/classes/java/main/dev/plex/command/impl/UnmuteCMD.class
new file mode 100644
index 0000000..8fcacaf
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/UnmuteCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/impl/WorldCMD.class b/server/build/classes/java/main/dev/plex/command/impl/WorldCMD.class
new file mode 100644
index 0000000..ec15371
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/impl/WorldCMD.class differ
diff --git a/server/build/classes/java/main/dev/plex/command/source/RequiredCommandSource.class b/server/build/classes/java/main/dev/plex/command/source/RequiredCommandSource.class
new file mode 100644
index 0000000..a4bde71
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/command/source/RequiredCommandSource.class differ
diff --git a/server/build/classes/java/main/dev/plex/config/Config.class b/server/build/classes/java/main/dev/plex/config/Config.class
new file mode 100644
index 0000000..39c0261
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/config/Config.class differ
diff --git a/server/build/classes/java/main/dev/plex/config/ModuleConfig.class b/server/build/classes/java/main/dev/plex/config/ModuleConfig.class
new file mode 100644
index 0000000..38b9df0
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/config/ModuleConfig.class differ
diff --git a/server/build/classes/java/main/dev/plex/handlers/CommandHandler.class b/server/build/classes/java/main/dev/plex/handlers/CommandHandler.class
new file mode 100644
index 0000000..b3ba251
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/handlers/CommandHandler.class differ
diff --git a/server/build/classes/java/main/dev/plex/handlers/ListenerHandler.class b/server/build/classes/java/main/dev/plex/handlers/ListenerHandler.class
new file mode 100644
index 0000000..c48b8d5
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/handlers/ListenerHandler.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/PlexListener.class b/server/build/classes/java/main/dev/plex/listener/PlexListener.class
new file mode 100644
index 0000000..de786cb
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/PlexListener.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/annotation/Toggleable.class b/server/build/classes/java/main/dev/plex/listener/annotation/Toggleable.class
new file mode 100644
index 0000000..97ecab2
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/annotation/Toggleable.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/impl/AdminListener.class b/server/build/classes/java/main/dev/plex/listener/impl/AdminListener.class
new file mode 100644
index 0000000..f596615
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/impl/AdminListener.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/impl/AntiNukerListener.class b/server/build/classes/java/main/dev/plex/listener/impl/AntiNukerListener.class
new file mode 100644
index 0000000..799b9f4
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/impl/AntiNukerListener.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/impl/AntiSpamListener.class b/server/build/classes/java/main/dev/plex/listener/impl/AntiSpamListener.class
new file mode 100644
index 0000000..5e3eadf
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/impl/AntiSpamListener.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/impl/BanListener.class b/server/build/classes/java/main/dev/plex/listener/impl/BanListener.class
new file mode 100644
index 0000000..b002528
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/impl/BanListener.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/impl/BlockListener.class b/server/build/classes/java/main/dev/plex/listener/impl/BlockListener.class
new file mode 100644
index 0000000..540579b
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/impl/BlockListener.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/impl/ChatListener$PlexChatRenderer.class b/server/build/classes/java/main/dev/plex/listener/impl/ChatListener$PlexChatRenderer.class
new file mode 100644
index 0000000..f43ef01
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/impl/ChatListener$PlexChatRenderer.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/impl/ChatListener.class b/server/build/classes/java/main/dev/plex/listener/impl/ChatListener.class
new file mode 100644
index 0000000..f8d7e35
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/impl/ChatListener.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/impl/CommandListener.class b/server/build/classes/java/main/dev/plex/listener/impl/CommandListener.class
new file mode 100644
index 0000000..88a4f25
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/impl/CommandListener.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/impl/DropListener.class b/server/build/classes/java/main/dev/plex/listener/impl/DropListener.class
new file mode 100644
index 0000000..a3ac4a5
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/impl/DropListener.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/impl/FreezeListener.class b/server/build/classes/java/main/dev/plex/listener/impl/FreezeListener.class
new file mode 100644
index 0000000..38135da
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/impl/FreezeListener.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/impl/GameModeListener.class b/server/build/classes/java/main/dev/plex/listener/impl/GameModeListener.class
new file mode 100644
index 0000000..c2b565e
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/impl/GameModeListener.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/impl/MuteListener.class b/server/build/classes/java/main/dev/plex/listener/impl/MuteListener.class
new file mode 100644
index 0000000..82ea4d3
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/impl/MuteListener.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/impl/PlayerListener.class b/server/build/classes/java/main/dev/plex/listener/impl/PlayerListener.class
new file mode 100644
index 0000000..8fc5165
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/impl/PlayerListener.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/impl/ServerListener.class b/server/build/classes/java/main/dev/plex/listener/impl/ServerListener.class
new file mode 100644
index 0000000..3dafdd2
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/impl/ServerListener.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/impl/SpawnListener.class b/server/build/classes/java/main/dev/plex/listener/impl/SpawnListener.class
new file mode 100644
index 0000000..563c7f1
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/impl/SpawnListener.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/impl/TabListener.class b/server/build/classes/java/main/dev/plex/listener/impl/TabListener.class
new file mode 100644
index 0000000..7451d83
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/impl/TabListener.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/impl/WorldListener$1.class b/server/build/classes/java/main/dev/plex/listener/impl/WorldListener$1.class
new file mode 100644
index 0000000..8b99584
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/impl/WorldListener$1.class differ
diff --git a/server/build/classes/java/main/dev/plex/listener/impl/WorldListener.class b/server/build/classes/java/main/dev/plex/listener/impl/WorldListener.class
new file mode 100644
index 0000000..618eb74
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/listener/impl/WorldListener.class differ
diff --git a/server/build/classes/java/main/dev/plex/menu/PunishedPlayerMenu.class b/server/build/classes/java/main/dev/plex/menu/PunishedPlayerMenu.class
new file mode 100644
index 0000000..0023b26
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/menu/PunishedPlayerMenu.class differ
diff --git a/server/build/classes/java/main/dev/plex/menu/PunishmentMenu.class b/server/build/classes/java/main/dev/plex/menu/PunishmentMenu.class
new file mode 100644
index 0000000..666a76f
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/menu/PunishmentMenu.class differ
diff --git a/server/build/classes/java/main/dev/plex/module/ModuleManager.class b/server/build/classes/java/main/dev/plex/module/ModuleManager.class
new file mode 100644
index 0000000..7fdf500
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/module/ModuleManager.class differ
diff --git a/server/build/classes/java/main/dev/plex/module/PlexModule.class b/server/build/classes/java/main/dev/plex/module/PlexModule.class
new file mode 100644
index 0000000..a7b58d8
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/module/PlexModule.class differ
diff --git a/server/build/classes/java/main/dev/plex/module/PlexModuleFile.class b/server/build/classes/java/main/dev/plex/module/PlexModuleFile.class
new file mode 100644
index 0000000..f874b1f
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/module/PlexModuleFile.class differ
diff --git a/server/build/classes/java/main/dev/plex/module/exception/ModuleLoadException.class b/server/build/classes/java/main/dev/plex/module/exception/ModuleLoadException.class
new file mode 100644
index 0000000..6a0f648
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/module/exception/ModuleLoadException.class differ
diff --git a/server/build/classes/java/main/dev/plex/module/loader/CustomClassLoader.class b/server/build/classes/java/main/dev/plex/module/loader/CustomClassLoader.class
new file mode 100644
index 0000000..c99addf
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/module/loader/CustomClassLoader.class differ
diff --git a/server/build/classes/java/main/dev/plex/module/loader/LibraryLoader$1.class b/server/build/classes/java/main/dev/plex/module/loader/LibraryLoader$1.class
new file mode 100644
index 0000000..252d29b
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/module/loader/LibraryLoader$1.class differ
diff --git a/server/build/classes/java/main/dev/plex/module/loader/LibraryLoader.class b/server/build/classes/java/main/dev/plex/module/loader/LibraryLoader.class
new file mode 100644
index 0000000..4e5d5f6
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/module/loader/LibraryLoader.class differ
diff --git a/server/build/classes/java/main/dev/plex/permission/Permission.class b/server/build/classes/java/main/dev/plex/permission/Permission.class
new file mode 100644
index 0000000..bbd81c0
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/permission/Permission.class differ
diff --git a/server/build/classes/java/main/dev/plex/player/PlexPlayer.class b/server/build/classes/java/main/dev/plex/player/PlexPlayer.class
new file mode 100644
index 0000000..739ae25
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/player/PlexPlayer.class differ
diff --git a/server/build/classes/java/main/dev/plex/punishment/Punishment.class b/server/build/classes/java/main/dev/plex/punishment/Punishment.class
new file mode 100644
index 0000000..95fb46d
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/punishment/Punishment.class differ
diff --git a/server/build/classes/java/main/dev/plex/punishment/PunishmentManager$1.class b/server/build/classes/java/main/dev/plex/punishment/PunishmentManager$1.class
new file mode 100644
index 0000000..795210e
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/punishment/PunishmentManager$1.class differ
diff --git a/server/build/classes/java/main/dev/plex/punishment/PunishmentManager$2.class b/server/build/classes/java/main/dev/plex/punishment/PunishmentManager$2.class
new file mode 100644
index 0000000..2a6fa00
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/punishment/PunishmentManager$2.class differ
diff --git a/server/build/classes/java/main/dev/plex/punishment/PunishmentManager$3.class b/server/build/classes/java/main/dev/plex/punishment/PunishmentManager$3.class
new file mode 100644
index 0000000..9c1adeb
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/punishment/PunishmentManager$3.class differ
diff --git a/server/build/classes/java/main/dev/plex/punishment/PunishmentManager$4.class b/server/build/classes/java/main/dev/plex/punishment/PunishmentManager$4.class
new file mode 100644
index 0000000..50dfe3b
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/punishment/PunishmentManager$4.class differ
diff --git a/server/build/classes/java/main/dev/plex/punishment/PunishmentManager$5.class b/server/build/classes/java/main/dev/plex/punishment/PunishmentManager$5.class
new file mode 100644
index 0000000..c2a23e0
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/punishment/PunishmentManager$5.class differ
diff --git a/server/build/classes/java/main/dev/plex/punishment/PunishmentManager$IndefiniteBan.class b/server/build/classes/java/main/dev/plex/punishment/PunishmentManager$IndefiniteBan.class
new file mode 100644
index 0000000..cd9e005
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/punishment/PunishmentManager$IndefiniteBan.class differ
diff --git a/server/build/classes/java/main/dev/plex/punishment/PunishmentManager.class b/server/build/classes/java/main/dev/plex/punishment/PunishmentManager.class
new file mode 100644
index 0000000..e48b37b
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/punishment/PunishmentManager.class differ
diff --git a/server/build/classes/java/main/dev/plex/punishment/PunishmentType.class b/server/build/classes/java/main/dev/plex/punishment/PunishmentType.class
new file mode 100644
index 0000000..dc44948
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/punishment/PunishmentType.class differ
diff --git a/server/build/classes/java/main/dev/plex/punishment/extra/Note.class b/server/build/classes/java/main/dev/plex/punishment/extra/Note.class
new file mode 100644
index 0000000..0a79b03
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/punishment/extra/Note.class differ
diff --git a/server/build/classes/java/main/dev/plex/rank/RankManager.class b/server/build/classes/java/main/dev/plex/rank/RankManager.class
new file mode 100644
index 0000000..8b018f0
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/rank/RankManager.class differ
diff --git a/server/build/classes/java/main/dev/plex/rank/enums/Rank.class b/server/build/classes/java/main/dev/plex/rank/enums/Rank.class
new file mode 100644
index 0000000..6306a38
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/rank/enums/Rank.class differ
diff --git a/server/build/classes/java/main/dev/plex/rank/enums/Title.class b/server/build/classes/java/main/dev/plex/rank/enums/Title.class
new file mode 100644
index 0000000..2e07ee2
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/rank/enums/Title.class differ
diff --git a/server/build/classes/java/main/dev/plex/services/AbstractService.class b/server/build/classes/java/main/dev/plex/services/AbstractService.class
new file mode 100644
index 0000000..6e28476
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/services/AbstractService.class differ
diff --git a/server/build/classes/java/main/dev/plex/services/IService.class b/server/build/classes/java/main/dev/plex/services/IService.class
new file mode 100644
index 0000000..425d35d
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/services/IService.class differ
diff --git a/server/build/classes/java/main/dev/plex/services/ServiceManager.class b/server/build/classes/java/main/dev/plex/services/ServiceManager.class
new file mode 100644
index 0000000..80e202c
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/services/ServiceManager.class differ
diff --git a/server/build/classes/java/main/dev/plex/services/impl/AutoWipeService.class b/server/build/classes/java/main/dev/plex/services/impl/AutoWipeService.class
new file mode 100644
index 0000000..657e7ea
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/services/impl/AutoWipeService.class differ
diff --git a/server/build/classes/java/main/dev/plex/services/impl/BanService.class b/server/build/classes/java/main/dev/plex/services/impl/BanService.class
new file mode 100644
index 0000000..65b0714
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/services/impl/BanService.class differ
diff --git a/server/build/classes/java/main/dev/plex/services/impl/CommandBlockerService.class b/server/build/classes/java/main/dev/plex/services/impl/CommandBlockerService.class
new file mode 100644
index 0000000..a83e423
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/services/impl/CommandBlockerService.class differ
diff --git a/server/build/classes/java/main/dev/plex/services/impl/GameRuleService.class b/server/build/classes/java/main/dev/plex/services/impl/GameRuleService.class
new file mode 100644
index 0000000..099acc2
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/services/impl/GameRuleService.class differ
diff --git a/server/build/classes/java/main/dev/plex/services/impl/TimingService.class b/server/build/classes/java/main/dev/plex/services/impl/TimingService.class
new file mode 100644
index 0000000..2886b1b
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/services/impl/TimingService.class differ
diff --git a/server/build/classes/java/main/dev/plex/services/impl/UpdateCheckerService.class b/server/build/classes/java/main/dev/plex/services/impl/UpdateCheckerService.class
new file mode 100644
index 0000000..0a8e50c
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/services/impl/UpdateCheckerService.class differ
diff --git a/server/build/classes/java/main/dev/plex/storage/MongoConnection.class b/server/build/classes/java/main/dev/plex/storage/MongoConnection.class
new file mode 100644
index 0000000..f9730bd
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/storage/MongoConnection.class differ
diff --git a/server/build/classes/java/main/dev/plex/storage/RedisConnection.class b/server/build/classes/java/main/dev/plex/storage/RedisConnection.class
new file mode 100644
index 0000000..3afd52b
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/storage/RedisConnection.class differ
diff --git a/server/build/classes/java/main/dev/plex/storage/SQLConnection.class b/server/build/classes/java/main/dev/plex/storage/SQLConnection.class
new file mode 100644
index 0000000..d70a0d7
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/storage/SQLConnection.class differ
diff --git a/server/build/classes/java/main/dev/plex/storage/StorageType.class b/server/build/classes/java/main/dev/plex/storage/StorageType.class
new file mode 100644
index 0000000..a45774c
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/storage/StorageType.class differ
diff --git a/server/build/classes/java/main/dev/plex/storage/permission/SQLPermissions.class b/server/build/classes/java/main/dev/plex/storage/permission/SQLPermissions.class
new file mode 100644
index 0000000..e295a14
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/storage/permission/SQLPermissions.class differ
diff --git a/server/build/classes/java/main/dev/plex/storage/player/MongoPlayerData.class b/server/build/classes/java/main/dev/plex/storage/player/MongoPlayerData.class
new file mode 100644
index 0000000..8eac77a
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/storage/player/MongoPlayerData.class differ
diff --git a/server/build/classes/java/main/dev/plex/storage/player/SQLPlayerData$1.class b/server/build/classes/java/main/dev/plex/storage/player/SQLPlayerData$1.class
new file mode 100644
index 0000000..394f93d
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/storage/player/SQLPlayerData$1.class differ
diff --git a/server/build/classes/java/main/dev/plex/storage/player/SQLPlayerData$2.class b/server/build/classes/java/main/dev/plex/storage/player/SQLPlayerData$2.class
new file mode 100644
index 0000000..8ff5130
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/storage/player/SQLPlayerData$2.class differ
diff --git a/server/build/classes/java/main/dev/plex/storage/player/SQLPlayerData$3.class b/server/build/classes/java/main/dev/plex/storage/player/SQLPlayerData$3.class
new file mode 100644
index 0000000..7746b62
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/storage/player/SQLPlayerData$3.class differ
diff --git a/server/build/classes/java/main/dev/plex/storage/player/SQLPlayerData$4.class b/server/build/classes/java/main/dev/plex/storage/player/SQLPlayerData$4.class
new file mode 100644
index 0000000..cd5cb3c
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/storage/player/SQLPlayerData$4.class differ
diff --git a/server/build/classes/java/main/dev/plex/storage/player/SQLPlayerData.class b/server/build/classes/java/main/dev/plex/storage/player/SQLPlayerData.class
new file mode 100644
index 0000000..1947c66
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/storage/player/SQLPlayerData.class differ
diff --git a/server/build/classes/java/main/dev/plex/storage/punishment/SQLNotes.class b/server/build/classes/java/main/dev/plex/storage/punishment/SQLNotes.class
new file mode 100644
index 0000000..00305a5
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/storage/punishment/SQLNotes.class differ
diff --git a/server/build/classes/java/main/dev/plex/storage/punishment/SQLPunishment.class b/server/build/classes/java/main/dev/plex/storage/punishment/SQLPunishment.class
new file mode 100644
index 0000000..5b7b847
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/storage/punishment/SQLPunishment.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/AshconInfo$SkinData.class b/server/build/classes/java/main/dev/plex/util/AshconInfo$SkinData.class
new file mode 100644
index 0000000..75f9a27
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/AshconInfo$SkinData.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/AshconInfo$Textures.class b/server/build/classes/java/main/dev/plex/util/AshconInfo$Textures.class
new file mode 100644
index 0000000..19dbaf3
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/AshconInfo$Textures.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/AshconInfo$UsernameHistory.class b/server/build/classes/java/main/dev/plex/util/AshconInfo$UsernameHistory.class
new file mode 100644
index 0000000..0610009
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/AshconInfo$UsernameHistory.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/AshconInfo.class b/server/build/classes/java/main/dev/plex/util/AshconInfo.class
new file mode 100644
index 0000000..14d8616
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/AshconInfo.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/BuildInfo.class b/server/build/classes/java/main/dev/plex/util/BuildInfo.class
new file mode 100644
index 0000000..457fd83
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/BuildInfo.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/GameRuleUtil.class b/server/build/classes/java/main/dev/plex/util/GameRuleUtil.class
new file mode 100644
index 0000000..5de3760
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/GameRuleUtil.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/MojangUtils.class b/server/build/classes/java/main/dev/plex/util/MojangUtils.class
new file mode 100644
index 0000000..16efdf5
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/MojangUtils.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/PermissionsUtil.class b/server/build/classes/java/main/dev/plex/util/PermissionsUtil.class
new file mode 100644
index 0000000..835a15f
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/PermissionsUtil.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/PlexLog.class b/server/build/classes/java/main/dev/plex/util/PlexLog.class
new file mode 100644
index 0000000..b6298d9
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/PlexLog.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/PlexUtils.class b/server/build/classes/java/main/dev/plex/util/PlexUtils.class
new file mode 100644
index 0000000..b7cc923
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/PlexUtils.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/RandomUtil.class b/server/build/classes/java/main/dev/plex/util/RandomUtil.class
new file mode 100644
index 0000000..907e642
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/RandomUtil.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/ReflectionsUtil.class b/server/build/classes/java/main/dev/plex/util/ReflectionsUtil.class
new file mode 100644
index 0000000..15da6ba
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/ReflectionsUtil.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/TimeUtils$1.class b/server/build/classes/java/main/dev/plex/util/TimeUtils$1.class
new file mode 100644
index 0000000..0b0f9bd
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/TimeUtils$1.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/TimeUtils.class b/server/build/classes/java/main/dev/plex/util/TimeUtils.class
new file mode 100644
index 0000000..e64849a
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/TimeUtils.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/UpdateChecker.class b/server/build/classes/java/main/dev/plex/util/UpdateChecker.class
new file mode 100644
index 0000000..c0d7572
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/UpdateChecker.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/WebUtils.class b/server/build/classes/java/main/dev/plex/util/WebUtils.class
new file mode 100644
index 0000000..e5cbf84
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/WebUtils.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/adapter/ZonedDateTimeDeserializer.class b/server/build/classes/java/main/dev/plex/util/adapter/ZonedDateTimeDeserializer.class
new file mode 100644
index 0000000..db838f4
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/adapter/ZonedDateTimeDeserializer.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/adapter/ZonedDateTimeSerializer.class b/server/build/classes/java/main/dev/plex/util/adapter/ZonedDateTimeSerializer.class
new file mode 100644
index 0000000..6b4efe3
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/adapter/ZonedDateTimeSerializer.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/item/ItemBuilder.class b/server/build/classes/java/main/dev/plex/util/item/ItemBuilder.class
new file mode 100644
index 0000000..a83e50e
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/item/ItemBuilder.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/menu/AbstractMenu.class b/server/build/classes/java/main/dev/plex/util/menu/AbstractMenu.class
new file mode 100644
index 0000000..e6ac0ba
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/menu/AbstractMenu.class differ
diff --git a/server/build/classes/java/main/dev/plex/util/menu/IMenu.class b/server/build/classes/java/main/dev/plex/util/menu/IMenu.class
new file mode 100644
index 0000000..df70b49
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/util/menu/IMenu.class differ
diff --git a/server/build/classes/java/main/dev/plex/world/BlockMapChunkGenerator.class b/server/build/classes/java/main/dev/plex/world/BlockMapChunkGenerator.class
new file mode 100644
index 0000000..ff53f3d
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/world/BlockMapChunkGenerator.class differ
diff --git a/server/build/classes/java/main/dev/plex/world/ConfigurationChunkGenerator.class b/server/build/classes/java/main/dev/plex/world/ConfigurationChunkGenerator.class
new file mode 100644
index 0000000..ed95e50
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/world/ConfigurationChunkGenerator.class differ
diff --git a/server/build/classes/java/main/dev/plex/world/CustomChunkGenerator.class b/server/build/classes/java/main/dev/plex/world/CustomChunkGenerator.class
new file mode 100644
index 0000000..58f8ad5
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/world/CustomChunkGenerator.class differ
diff --git a/server/build/classes/java/main/dev/plex/world/CustomWorld$1.class b/server/build/classes/java/main/dev/plex/world/CustomWorld$1.class
new file mode 100644
index 0000000..a68496c
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/world/CustomWorld$1.class differ
diff --git a/server/build/classes/java/main/dev/plex/world/CustomWorld.class b/server/build/classes/java/main/dev/plex/world/CustomWorld.class
new file mode 100644
index 0000000..aab4711
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/world/CustomWorld.class differ
diff --git a/server/build/classes/java/main/dev/plex/world/FlatChunkGenerator.class b/server/build/classes/java/main/dev/plex/world/FlatChunkGenerator.class
new file mode 100644
index 0000000..f09c7d5
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/world/FlatChunkGenerator.class differ
diff --git a/server/build/classes/java/main/dev/plex/world/NoiseChunkGenerator.class b/server/build/classes/java/main/dev/plex/world/NoiseChunkGenerator.class
new file mode 100644
index 0000000..a6cc818
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/world/NoiseChunkGenerator.class differ
diff --git a/server/build/classes/java/main/dev/plex/world/NoiseOptions.class b/server/build/classes/java/main/dev/plex/world/NoiseOptions.class
new file mode 100644
index 0000000..9dbb5e1
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/world/NoiseOptions.class differ
diff --git a/server/build/classes/java/main/dev/plex/world/OctaveChunkGenerator.class b/server/build/classes/java/main/dev/plex/world/OctaveChunkGenerator.class
new file mode 100644
index 0000000..f23b7ef
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/world/OctaveChunkGenerator.class differ
diff --git a/server/build/classes/java/main/dev/plex/world/OctaveOptions.class b/server/build/classes/java/main/dev/plex/world/OctaveOptions.class
new file mode 100644
index 0000000..5696d6d
Binary files /dev/null and b/server/build/classes/java/main/dev/plex/world/OctaveOptions.class differ
diff --git a/server/build/generated/plugin-yml/Bukkit/plugin.yml b/server/build/generated/plugin-yml/Bukkit/plugin.yml
new file mode 100644
index 0000000..3ece9f1
--- /dev/null
+++ b/server/build/generated/plugin-yml/Bukkit/plugin.yml
@@ -0,0 +1,31 @@
+name: Plex
+version: 1.1-SNAPSHOT
+main: dev.plex.Plex
+description: Plex provides a new experience for freedom servers.
+authors:
+ - Telesphoreo
+ - taahanis
+ - supernt
+website: https://plex.us.org
+libraries:
+ - org.projectlombok:lombok:1.18.22
+ - org.json:json:20220320
+ - commons-io:commons-io:2.11.0
+ - dev.morphia.morphia:morphia-core:2.2.6
+ - redis.clients:jedis:4.2.1
+ - org.mariadb.jdbc:mariadb-java-client:3.0.4
+ - com.zaxxer:HikariCP:5.0.1
+ - org.apache.httpcomponents:httpclient:4.5.13
+ - org.apache.commons:commons-lang3:3.12.0
+ - org.apache.maven.resolver:maven-resolver-api:1.7.3
+ - org.apache.maven.resolver:maven-resolver-impl:1.7.3
+ - org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3
+ - org.apache.maven.resolver:maven-resolver-transport-http:1.7.3
+ - org.apache.maven:maven-resolver-provider:3.8.5
+ - org.eclipse.jetty:jetty-server:11.0.9
+ - org.eclipse.jetty:jetty-servlet:11.0.9
+ - org.eclipse.jetty:jetty-proxy:11.0.9
+ - com.google.code.gson:gson:2.9.0
+api-version: 1.18
+softdepend:
+ - Vault
diff --git a/server/build/libs/server-1.1-SNAPSHOT.jar b/server/build/libs/server-1.1-SNAPSHOT.jar
new file mode 100644
index 0000000..c05fb93
Binary files /dev/null and b/server/build/libs/server-1.1-SNAPSHOT.jar differ
diff --git a/server/build/resources/main/build.properties b/server/build/resources/main/build.properties
new file mode 100644
index 0000000..a7568b5
--- /dev/null
+++ b/server/build/resources/main/build.properties
@@ -0,0 +1,6 @@
+#Sun, 24 Apr 2022 14:06:27 +1000
+
+buildAuthor=unknown
+buildNumber=467 (local)
+buildDate=04/24/2022 at 02\:06\:27 pm AEST
+buildHead=edeecb5
diff --git a/src/main/resources/commands.yml b/server/build/resources/main/commands.yml
similarity index 100%
rename from src/main/resources/commands.yml
rename to server/build/resources/main/commands.yml
diff --git a/src/main/resources/config.yml b/server/build/resources/main/config.yml
similarity index 100%
rename from src/main/resources/config.yml
rename to server/build/resources/main/config.yml
diff --git a/src/main/resources/indefbans.yml b/server/build/resources/main/indefbans.yml
similarity index 100%
rename from src/main/resources/indefbans.yml
rename to server/build/resources/main/indefbans.yml
diff --git a/src/main/resources/messages.yml b/server/build/resources/main/messages.yml
similarity index 100%
rename from src/main/resources/messages.yml
rename to server/build/resources/main/messages.yml
diff --git a/server/build/resources/main/plugin.yml b/server/build/resources/main/plugin.yml
new file mode 100644
index 0000000..3ece9f1
--- /dev/null
+++ b/server/build/resources/main/plugin.yml
@@ -0,0 +1,31 @@
+name: Plex
+version: 1.1-SNAPSHOT
+main: dev.plex.Plex
+description: Plex provides a new experience for freedom servers.
+authors:
+ - Telesphoreo
+ - taahanis
+ - supernt
+website: https://plex.us.org
+libraries:
+ - org.projectlombok:lombok:1.18.22
+ - org.json:json:20220320
+ - commons-io:commons-io:2.11.0
+ - dev.morphia.morphia:morphia-core:2.2.6
+ - redis.clients:jedis:4.2.1
+ - org.mariadb.jdbc:mariadb-java-client:3.0.4
+ - com.zaxxer:HikariCP:5.0.1
+ - org.apache.httpcomponents:httpclient:4.5.13
+ - org.apache.commons:commons-lang3:3.12.0
+ - org.apache.maven.resolver:maven-resolver-api:1.7.3
+ - org.apache.maven.resolver:maven-resolver-impl:1.7.3
+ - org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3
+ - org.apache.maven.resolver:maven-resolver-transport-http:1.7.3
+ - org.apache.maven:maven-resolver-provider:3.8.5
+ - org.eclipse.jetty:jetty-server:11.0.9
+ - org.eclipse.jetty:jetty-servlet:11.0.9
+ - org.eclipse.jetty:jetty-proxy:11.0.9
+ - com.google.code.gson:gson:2.9.0
+api-version: 1.18
+softdepend:
+ - Vault
diff --git a/server/build/tmp/compileJava/previous-compilation-data.bin b/server/build/tmp/compileJava/previous-compilation-data.bin
new file mode 100644
index 0000000..a36c68f
Binary files /dev/null and b/server/build/tmp/compileJava/previous-compilation-data.bin differ
diff --git a/server/build/tmp/jar/MANIFEST.MF b/server/build/tmp/jar/MANIFEST.MF
new file mode 100644
index 0000000..59499bc
--- /dev/null
+++ b/server/build/tmp/jar/MANIFEST.MF
@@ -0,0 +1,2 @@
+Manifest-Version: 1.0
+
diff --git a/server/build/tmp/shadowJar/MANIFEST.MF b/server/build/tmp/shadowJar/MANIFEST.MF
new file mode 100644
index 0000000..59499bc
--- /dev/null
+++ b/server/build/tmp/shadowJar/MANIFEST.MF
@@ -0,0 +1,2 @@
+Manifest-Version: 1.0
+
diff --git a/src/main/java/dev/plex/Plex.java b/server/src/main/java/dev/plex/Plex.java
similarity index 98%
rename from src/main/java/dev/plex/Plex.java
rename to server/src/main/java/dev/plex/Plex.java
index 58fb6b0..cb7db18 100644
--- a/src/main/java/dev/plex/Plex.java
+++ b/server/src/main/java/dev/plex/Plex.java
@@ -128,7 +128,7 @@ public class Plex extends JavaPlugin
e.printStackTrace();
}
- if (!setupPermissions() && system.equalsIgnoreCase("permissions") && !getServer().getPluginManager().isPluginEnabled("Vault"))
+ if (system.equalsIgnoreCase("permissions") && !getServer().getPluginManager().isPluginEnabled("Vault") && !setupPermissions())
{
throw new RuntimeException("Vault is required to run on the server if you use permissions!");
}
diff --git a/src/main/java/dev/plex/PlexBase.java b/server/src/main/java/dev/plex/PlexBase.java
similarity index 100%
rename from src/main/java/dev/plex/PlexBase.java
rename to server/src/main/java/dev/plex/PlexBase.java
diff --git a/src/main/java/dev/plex/admin/Admin.java b/server/src/main/java/dev/plex/admin/Admin.java
similarity index 100%
rename from src/main/java/dev/plex/admin/Admin.java
rename to server/src/main/java/dev/plex/admin/Admin.java
diff --git a/src/main/java/dev/plex/admin/AdminList.java b/server/src/main/java/dev/plex/admin/AdminList.java
similarity index 100%
rename from src/main/java/dev/plex/admin/AdminList.java
rename to server/src/main/java/dev/plex/admin/AdminList.java
diff --git a/src/main/java/dev/plex/cache/DataUtils.java b/server/src/main/java/dev/plex/cache/DataUtils.java
similarity index 100%
rename from src/main/java/dev/plex/cache/DataUtils.java
rename to server/src/main/java/dev/plex/cache/DataUtils.java
diff --git a/src/main/java/dev/plex/cache/PlayerCache.java b/server/src/main/java/dev/plex/cache/PlayerCache.java
similarity index 100%
rename from src/main/java/dev/plex/cache/PlayerCache.java
rename to server/src/main/java/dev/plex/cache/PlayerCache.java
diff --git a/src/main/java/dev/plex/command/PlexCommand.java b/server/src/main/java/dev/plex/command/PlexCommand.java
similarity index 100%
rename from src/main/java/dev/plex/command/PlexCommand.java
rename to server/src/main/java/dev/plex/command/PlexCommand.java
diff --git a/src/main/java/dev/plex/command/annotation/CommandParameters.java b/server/src/main/java/dev/plex/command/annotation/CommandParameters.java
similarity index 100%
rename from src/main/java/dev/plex/command/annotation/CommandParameters.java
rename to server/src/main/java/dev/plex/command/annotation/CommandParameters.java
diff --git a/src/main/java/dev/plex/command/annotation/CommandPermissions.java b/server/src/main/java/dev/plex/command/annotation/CommandPermissions.java
similarity index 100%
rename from src/main/java/dev/plex/command/annotation/CommandPermissions.java
rename to server/src/main/java/dev/plex/command/annotation/CommandPermissions.java
diff --git a/src/main/java/dev/plex/command/annotation/System.java b/server/src/main/java/dev/plex/command/annotation/System.java
similarity index 100%
rename from src/main/java/dev/plex/command/annotation/System.java
rename to server/src/main/java/dev/plex/command/annotation/System.java
diff --git a/src/main/java/dev/plex/command/blocking/BlockedCommand.java b/server/src/main/java/dev/plex/command/blocking/BlockedCommand.java
similarity index 100%
rename from src/main/java/dev/plex/command/blocking/BlockedCommand.java
rename to server/src/main/java/dev/plex/command/blocking/BlockedCommand.java
diff --git a/src/main/java/dev/plex/command/exception/CommandFailException.java b/server/src/main/java/dev/plex/command/exception/CommandFailException.java
similarity index 100%
rename from src/main/java/dev/plex/command/exception/CommandFailException.java
rename to server/src/main/java/dev/plex/command/exception/CommandFailException.java
diff --git a/src/main/java/dev/plex/command/exception/ConsoleMustDefinePlayerException.java b/server/src/main/java/dev/plex/command/exception/ConsoleMustDefinePlayerException.java
similarity index 100%
rename from src/main/java/dev/plex/command/exception/ConsoleMustDefinePlayerException.java
rename to server/src/main/java/dev/plex/command/exception/ConsoleMustDefinePlayerException.java
diff --git a/src/main/java/dev/plex/command/exception/ConsoleOnlyException.java b/server/src/main/java/dev/plex/command/exception/ConsoleOnlyException.java
similarity index 100%
rename from src/main/java/dev/plex/command/exception/ConsoleOnlyException.java
rename to server/src/main/java/dev/plex/command/exception/ConsoleOnlyException.java
diff --git a/src/main/java/dev/plex/command/exception/PlayerNotBannedException.java b/server/src/main/java/dev/plex/command/exception/PlayerNotBannedException.java
similarity index 100%
rename from src/main/java/dev/plex/command/exception/PlayerNotBannedException.java
rename to server/src/main/java/dev/plex/command/exception/PlayerNotBannedException.java
diff --git a/src/main/java/dev/plex/command/exception/PlayerNotFoundException.java b/server/src/main/java/dev/plex/command/exception/PlayerNotFoundException.java
similarity index 100%
rename from src/main/java/dev/plex/command/exception/PlayerNotFoundException.java
rename to server/src/main/java/dev/plex/command/exception/PlayerNotFoundException.java
diff --git a/src/main/java/dev/plex/command/impl/AdminCMD.java b/server/src/main/java/dev/plex/command/impl/AdminCMD.java
similarity index 97%
rename from src/main/java/dev/plex/command/impl/AdminCMD.java
rename to server/src/main/java/dev/plex/command/impl/AdminCMD.java
index 8067307..ea94bfb 100644
--- a/src/main/java/dev/plex/command/impl/AdminCMD.java
+++ b/server/src/main/java/dev/plex/command/impl/AdminCMD.java
@@ -9,9 +9,9 @@ import dev.plex.command.annotation.System;
import dev.plex.command.exception.ConsoleOnlyException;
import dev.plex.command.exception.PlayerNotFoundException;
import dev.plex.command.source.RequiredCommandSource;
-import dev.plex.event.AdminAddEvent;
-import dev.plex.event.AdminRemoveEvent;
-import dev.plex.event.AdminSetRankEvent;
+import dev.plex.api.event.AdminAddEvent;
+import dev.plex.api.event.AdminRemoveEvent;
+import dev.plex.api.event.AdminSetRankEvent;
import dev.plex.player.PlexPlayer;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
diff --git a/src/main/java/dev/plex/command/impl/AdminChatCMD.java b/server/src/main/java/dev/plex/command/impl/AdminChatCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/AdminChatCMD.java
rename to server/src/main/java/dev/plex/command/impl/AdminChatCMD.java
diff --git a/src/main/java/dev/plex/command/impl/AdminworldCMD.java b/server/src/main/java/dev/plex/command/impl/AdminworldCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/AdminworldCMD.java
rename to server/src/main/java/dev/plex/command/impl/AdminworldCMD.java
diff --git a/src/main/java/dev/plex/command/impl/AdventureCMD.java b/server/src/main/java/dev/plex/command/impl/AdventureCMD.java
similarity index 98%
rename from src/main/java/dev/plex/command/impl/AdventureCMD.java
rename to server/src/main/java/dev/plex/command/impl/AdventureCMD.java
index 92e2dd4..5831f02 100644
--- a/src/main/java/dev/plex/command/impl/AdventureCMD.java
+++ b/server/src/main/java/dev/plex/command/impl/AdventureCMD.java
@@ -6,7 +6,7 @@ import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.exception.CommandFailException;
import dev.plex.command.source.RequiredCommandSource;
-import dev.plex.event.GameModeUpdateEvent;
+import dev.plex.api.event.GameModeUpdateEvent;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
import java.util.List;
diff --git a/src/main/java/dev/plex/command/impl/BanCMD.java b/server/src/main/java/dev/plex/command/impl/BanCMD.java
similarity index 99%
rename from src/main/java/dev/plex/command/impl/BanCMD.java
rename to server/src/main/java/dev/plex/command/impl/BanCMD.java
index 4403064..d64016e 100644
--- a/src/main/java/dev/plex/command/impl/BanCMD.java
+++ b/server/src/main/java/dev/plex/command/impl/BanCMD.java
@@ -16,7 +16,6 @@ import dev.plex.util.PlexLog;
import dev.plex.util.PlexUtils;
import dev.plex.util.TimeUtils;
import dev.plex.util.WebUtils;
-import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.List;
diff --git a/src/main/java/dev/plex/command/impl/BlockEditCMD.java b/server/src/main/java/dev/plex/command/impl/BlockEditCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/BlockEditCMD.java
rename to server/src/main/java/dev/plex/command/impl/BlockEditCMD.java
diff --git a/src/main/java/dev/plex/command/impl/CommandSpyCMD.java b/server/src/main/java/dev/plex/command/impl/CommandSpyCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/CommandSpyCMD.java
rename to server/src/main/java/dev/plex/command/impl/CommandSpyCMD.java
diff --git a/src/main/java/dev/plex/command/impl/ConsoleSayCMD.java b/server/src/main/java/dev/plex/command/impl/ConsoleSayCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/ConsoleSayCMD.java
rename to server/src/main/java/dev/plex/command/impl/ConsoleSayCMD.java
diff --git a/src/main/java/dev/plex/command/impl/CreativeCMD.java b/server/src/main/java/dev/plex/command/impl/CreativeCMD.java
similarity index 98%
rename from src/main/java/dev/plex/command/impl/CreativeCMD.java
rename to server/src/main/java/dev/plex/command/impl/CreativeCMD.java
index 3f2c819..2fb2159 100644
--- a/src/main/java/dev/plex/command/impl/CreativeCMD.java
+++ b/server/src/main/java/dev/plex/command/impl/CreativeCMD.java
@@ -6,7 +6,7 @@ import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.exception.CommandFailException;
import dev.plex.command.source.RequiredCommandSource;
-import dev.plex.event.GameModeUpdateEvent;
+import dev.plex.api.event.GameModeUpdateEvent;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
import java.util.List;
diff --git a/src/main/java/dev/plex/command/impl/DebugCMD.java b/server/src/main/java/dev/plex/command/impl/DebugCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/DebugCMD.java
rename to server/src/main/java/dev/plex/command/impl/DebugCMD.java
diff --git a/src/main/java/dev/plex/command/impl/DeopAllCMD.java b/server/src/main/java/dev/plex/command/impl/DeopAllCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/DeopAllCMD.java
rename to server/src/main/java/dev/plex/command/impl/DeopAllCMD.java
diff --git a/src/main/java/dev/plex/command/impl/DeopCMD.java b/server/src/main/java/dev/plex/command/impl/DeopCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/DeopCMD.java
rename to server/src/main/java/dev/plex/command/impl/DeopCMD.java
diff --git a/src/main/java/dev/plex/command/impl/EntityWipeCMD.java b/server/src/main/java/dev/plex/command/impl/EntityWipeCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/EntityWipeCMD.java
rename to server/src/main/java/dev/plex/command/impl/EntityWipeCMD.java
diff --git a/src/main/java/dev/plex/command/impl/FlatlandsCMD.java b/server/src/main/java/dev/plex/command/impl/FlatlandsCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/FlatlandsCMD.java
rename to server/src/main/java/dev/plex/command/impl/FlatlandsCMD.java
diff --git a/src/main/java/dev/plex/command/impl/FreezeCMD.java b/server/src/main/java/dev/plex/command/impl/FreezeCMD.java
similarity index 98%
rename from src/main/java/dev/plex/command/impl/FreezeCMD.java
rename to server/src/main/java/dev/plex/command/impl/FreezeCMD.java
index b285aa5..fc4845a 100644
--- a/src/main/java/dev/plex/command/impl/FreezeCMD.java
+++ b/server/src/main/java/dev/plex/command/impl/FreezeCMD.java
@@ -9,7 +9,6 @@ import dev.plex.punishment.Punishment;
import dev.plex.punishment.PunishmentType;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
-import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.List;
diff --git a/src/main/java/dev/plex/command/impl/GamemodeCMD.java b/server/src/main/java/dev/plex/command/impl/GamemodeCMD.java
similarity index 98%
rename from src/main/java/dev/plex/command/impl/GamemodeCMD.java
rename to server/src/main/java/dev/plex/command/impl/GamemodeCMD.java
index 510abb1..9c74a29 100644
--- a/src/main/java/dev/plex/command/impl/GamemodeCMD.java
+++ b/server/src/main/java/dev/plex/command/impl/GamemodeCMD.java
@@ -5,7 +5,7 @@ import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.exception.CommandFailException;
import dev.plex.command.source.RequiredCommandSource;
-import dev.plex.event.GameModeUpdateEvent;
+import dev.plex.api.event.GameModeUpdateEvent;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
import java.util.Arrays;
diff --git a/src/main/java/dev/plex/command/impl/KickCMD.java b/server/src/main/java/dev/plex/command/impl/KickCMD.java
similarity index 98%
rename from src/main/java/dev/plex/command/impl/KickCMD.java
rename to server/src/main/java/dev/plex/command/impl/KickCMD.java
index a922013..af28137 100644
--- a/src/main/java/dev/plex/command/impl/KickCMD.java
+++ b/server/src/main/java/dev/plex/command/impl/KickCMD.java
@@ -13,7 +13,6 @@ import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
import dev.plex.util.TimeUtils;
import dev.plex.util.WebUtils;
-import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.UUID;
diff --git a/src/main/java/dev/plex/command/impl/ListCMD.java b/server/src/main/java/dev/plex/command/impl/ListCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/ListCMD.java
rename to server/src/main/java/dev/plex/command/impl/ListCMD.java
diff --git a/src/main/java/dev/plex/command/impl/LocalSpawnCMD.java b/server/src/main/java/dev/plex/command/impl/LocalSpawnCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/LocalSpawnCMD.java
rename to server/src/main/java/dev/plex/command/impl/LocalSpawnCMD.java
diff --git a/src/main/java/dev/plex/command/impl/LockupCMD.java b/server/src/main/java/dev/plex/command/impl/LockupCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/LockupCMD.java
rename to server/src/main/java/dev/plex/command/impl/LockupCMD.java
diff --git a/src/main/java/dev/plex/command/impl/MasterbuilderworldCMD.java b/server/src/main/java/dev/plex/command/impl/MasterbuilderworldCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/MasterbuilderworldCMD.java
rename to server/src/main/java/dev/plex/command/impl/MasterbuilderworldCMD.java
diff --git a/src/main/java/dev/plex/command/impl/MobPurgeCMD.java b/server/src/main/java/dev/plex/command/impl/MobPurgeCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/MobPurgeCMD.java
rename to server/src/main/java/dev/plex/command/impl/MobPurgeCMD.java
diff --git a/src/main/java/dev/plex/command/impl/MuteCMD.java b/server/src/main/java/dev/plex/command/impl/MuteCMD.java
similarity index 98%
rename from src/main/java/dev/plex/command/impl/MuteCMD.java
rename to server/src/main/java/dev/plex/command/impl/MuteCMD.java
index 68d1bb5..a6101a1 100644
--- a/src/main/java/dev/plex/command/impl/MuteCMD.java
+++ b/server/src/main/java/dev/plex/command/impl/MuteCMD.java
@@ -9,7 +9,6 @@ import dev.plex.punishment.Punishment;
import dev.plex.punishment.PunishmentType;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
-import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.List;
diff --git a/src/main/java/dev/plex/command/impl/NameHistoryCMD.java b/server/src/main/java/dev/plex/command/impl/NameHistoryCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/NameHistoryCMD.java
rename to server/src/main/java/dev/plex/command/impl/NameHistoryCMD.java
diff --git a/src/main/java/dev/plex/command/impl/NotesCMD.java b/server/src/main/java/dev/plex/command/impl/NotesCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/NotesCMD.java
rename to server/src/main/java/dev/plex/command/impl/NotesCMD.java
diff --git a/src/main/java/dev/plex/command/impl/OpAllCMD.java b/server/src/main/java/dev/plex/command/impl/OpAllCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/OpAllCMD.java
rename to server/src/main/java/dev/plex/command/impl/OpAllCMD.java
diff --git a/src/main/java/dev/plex/command/impl/OpCMD.java b/server/src/main/java/dev/plex/command/impl/OpCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/OpCMD.java
rename to server/src/main/java/dev/plex/command/impl/OpCMD.java
diff --git a/src/main/java/dev/plex/command/impl/PlexCMD.java b/server/src/main/java/dev/plex/command/impl/PlexCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/PlexCMD.java
rename to server/src/main/java/dev/plex/command/impl/PlexCMD.java
diff --git a/src/main/java/dev/plex/command/impl/PunishmentsCMD.java b/server/src/main/java/dev/plex/command/impl/PunishmentsCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/PunishmentsCMD.java
rename to server/src/main/java/dev/plex/command/impl/PunishmentsCMD.java
diff --git a/src/main/java/dev/plex/command/impl/RankCMD.java b/server/src/main/java/dev/plex/command/impl/RankCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/RankCMD.java
rename to server/src/main/java/dev/plex/command/impl/RankCMD.java
diff --git a/src/main/java/dev/plex/command/impl/RawSayCMD.java b/server/src/main/java/dev/plex/command/impl/RawSayCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/RawSayCMD.java
rename to server/src/main/java/dev/plex/command/impl/RawSayCMD.java
diff --git a/src/main/java/dev/plex/command/impl/SayCMD.java b/server/src/main/java/dev/plex/command/impl/SayCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/SayCMD.java
rename to server/src/main/java/dev/plex/command/impl/SayCMD.java
diff --git a/src/main/java/dev/plex/command/impl/SmiteCMD.java b/server/src/main/java/dev/plex/command/impl/SmiteCMD.java
similarity index 99%
rename from src/main/java/dev/plex/command/impl/SmiteCMD.java
rename to server/src/main/java/dev/plex/command/impl/SmiteCMD.java
index 4872092..1a2da33 100644
--- a/src/main/java/dev/plex/command/impl/SmiteCMD.java
+++ b/server/src/main/java/dev/plex/command/impl/SmiteCMD.java
@@ -9,7 +9,6 @@ import dev.plex.punishment.Punishment;
import dev.plex.punishment.PunishmentType;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
-import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Collections;
diff --git a/src/main/java/dev/plex/command/impl/SpectatorCMD.java b/server/src/main/java/dev/plex/command/impl/SpectatorCMD.java
similarity index 98%
rename from src/main/java/dev/plex/command/impl/SpectatorCMD.java
rename to server/src/main/java/dev/plex/command/impl/SpectatorCMD.java
index 8a1d76e..bed4b71 100644
--- a/src/main/java/dev/plex/command/impl/SpectatorCMD.java
+++ b/server/src/main/java/dev/plex/command/impl/SpectatorCMD.java
@@ -6,7 +6,7 @@ import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.exception.CommandFailException;
import dev.plex.command.source.RequiredCommandSource;
-import dev.plex.event.GameModeUpdateEvent;
+import dev.plex.api.event.GameModeUpdateEvent;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
import java.util.List;
diff --git a/src/main/java/dev/plex/command/impl/SurvivalCMD.java b/server/src/main/java/dev/plex/command/impl/SurvivalCMD.java
similarity index 98%
rename from src/main/java/dev/plex/command/impl/SurvivalCMD.java
rename to server/src/main/java/dev/plex/command/impl/SurvivalCMD.java
index 8dd4a3f..2f57f9b 100644
--- a/src/main/java/dev/plex/command/impl/SurvivalCMD.java
+++ b/server/src/main/java/dev/plex/command/impl/SurvivalCMD.java
@@ -6,7 +6,7 @@ import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.exception.CommandFailException;
import dev.plex.command.source.RequiredCommandSource;
-import dev.plex.event.GameModeUpdateEvent;
+import dev.plex.api.event.GameModeUpdateEvent;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
import java.util.List;
diff --git a/src/main/java/dev/plex/command/impl/TagCMD.java b/server/src/main/java/dev/plex/command/impl/TagCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/TagCMD.java
rename to server/src/main/java/dev/plex/command/impl/TagCMD.java
diff --git a/src/main/java/dev/plex/command/impl/TempbanCMD.java b/server/src/main/java/dev/plex/command/impl/TempbanCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/TempbanCMD.java
rename to server/src/main/java/dev/plex/command/impl/TempbanCMD.java
diff --git a/src/main/java/dev/plex/command/impl/ToggleDropsCMD.java b/server/src/main/java/dev/plex/command/impl/ToggleDropsCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/ToggleDropsCMD.java
rename to server/src/main/java/dev/plex/command/impl/ToggleDropsCMD.java
diff --git a/src/main/java/dev/plex/command/impl/UnbanCMD.java b/server/src/main/java/dev/plex/command/impl/UnbanCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/UnbanCMD.java
rename to server/src/main/java/dev/plex/command/impl/UnbanCMD.java
diff --git a/src/main/java/dev/plex/command/impl/UnfreezeCMD.java b/server/src/main/java/dev/plex/command/impl/UnfreezeCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/UnfreezeCMD.java
rename to server/src/main/java/dev/plex/command/impl/UnfreezeCMD.java
diff --git a/src/main/java/dev/plex/command/impl/UnmuteCMD.java b/server/src/main/java/dev/plex/command/impl/UnmuteCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/UnmuteCMD.java
rename to server/src/main/java/dev/plex/command/impl/UnmuteCMD.java
diff --git a/src/main/java/dev/plex/command/impl/WorldCMD.java b/server/src/main/java/dev/plex/command/impl/WorldCMD.java
similarity index 100%
rename from src/main/java/dev/plex/command/impl/WorldCMD.java
rename to server/src/main/java/dev/plex/command/impl/WorldCMD.java
diff --git a/src/main/java/dev/plex/command/source/RequiredCommandSource.java b/server/src/main/java/dev/plex/command/source/RequiredCommandSource.java
similarity index 100%
rename from src/main/java/dev/plex/command/source/RequiredCommandSource.java
rename to server/src/main/java/dev/plex/command/source/RequiredCommandSource.java
diff --git a/src/main/java/dev/plex/config/Config.java b/server/src/main/java/dev/plex/config/Config.java
similarity index 100%
rename from src/main/java/dev/plex/config/Config.java
rename to server/src/main/java/dev/plex/config/Config.java
diff --git a/src/main/java/dev/plex/config/ModuleConfig.java b/server/src/main/java/dev/plex/config/ModuleConfig.java
similarity index 100%
rename from src/main/java/dev/plex/config/ModuleConfig.java
rename to server/src/main/java/dev/plex/config/ModuleConfig.java
diff --git a/src/main/java/dev/plex/handlers/CommandHandler.java b/server/src/main/java/dev/plex/handlers/CommandHandler.java
similarity index 100%
rename from src/main/java/dev/plex/handlers/CommandHandler.java
rename to server/src/main/java/dev/plex/handlers/CommandHandler.java
diff --git a/src/main/java/dev/plex/handlers/ListenerHandler.java b/server/src/main/java/dev/plex/handlers/ListenerHandler.java
similarity index 98%
rename from src/main/java/dev/plex/handlers/ListenerHandler.java
rename to server/src/main/java/dev/plex/handlers/ListenerHandler.java
index 56e996b..f73e639 100644
--- a/src/main/java/dev/plex/handlers/ListenerHandler.java
+++ b/server/src/main/java/dev/plex/handlers/ListenerHandler.java
@@ -5,7 +5,6 @@ import dev.plex.PlexBase;
import dev.plex.listener.PlexListener;
import dev.plex.listener.annotation.Toggleable;
import dev.plex.util.PlexLog;
-import dev.plex.util.PlexUtils;
import dev.plex.util.ReflectionsUtil;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
diff --git a/src/main/java/dev/plex/listener/PlexListener.java b/server/src/main/java/dev/plex/listener/PlexListener.java
similarity index 100%
rename from src/main/java/dev/plex/listener/PlexListener.java
rename to server/src/main/java/dev/plex/listener/PlexListener.java
diff --git a/src/main/java/dev/plex/listener/annotation/Toggleable.java b/server/src/main/java/dev/plex/listener/annotation/Toggleable.java
similarity index 100%
rename from src/main/java/dev/plex/listener/annotation/Toggleable.java
rename to server/src/main/java/dev/plex/listener/annotation/Toggleable.java
diff --git a/src/main/java/dev/plex/listener/impl/AdminListener.java b/server/src/main/java/dev/plex/listener/impl/AdminListener.java
similarity index 81%
rename from src/main/java/dev/plex/listener/impl/AdminListener.java
rename to server/src/main/java/dev/plex/listener/impl/AdminListener.java
index 5609761..5ef36df 100644
--- a/src/main/java/dev/plex/listener/impl/AdminListener.java
+++ b/server/src/main/java/dev/plex/listener/impl/AdminListener.java
@@ -1,9 +1,9 @@
package dev.plex.listener.impl;
import dev.plex.cache.DataUtils;
-import dev.plex.event.AdminAddEvent;
-import dev.plex.event.AdminRemoveEvent;
-import dev.plex.event.AdminSetRankEvent;
+import dev.plex.api.event.AdminAddEvent;
+import dev.plex.api.event.AdminRemoveEvent;
+import dev.plex.api.event.AdminSetRankEvent;
import dev.plex.listener.PlexListener;
import dev.plex.player.PlexPlayer;
import dev.plex.rank.enums.Rank;
@@ -17,7 +17,7 @@ public class AdminListener extends PlexListener
public void onAdminAdd(AdminAddEvent event)
{
String userSender = event.getSender().getName();
- PlexPlayer target = event.getPlexPlayer();
+ PlexPlayer target = (PlexPlayer) event.getPlexPlayer();
if (target.getRankFromString().isAtLeast(Rank.ADMIN))
{
PlexUtils.broadcast(messageComponent("adminReadded", userSender, target.getName(), target.getRankFromString().getReadable()));
@@ -35,7 +35,7 @@ public class AdminListener extends PlexListener
public void onAdminRemove(AdminRemoveEvent event)
{
String userSender = event.getSender().getName();
- PlexPlayer target = event.getPlexPlayer();
+ PlexPlayer target = (PlexPlayer) event.getPlexPlayer();
target.setAdminActive(false);
DataUtils.update(target);
PlexUtils.broadcast(messageComponent("adminRemoved", userSender, target.getName()));
@@ -45,8 +45,8 @@ public class AdminListener extends PlexListener
public void onAdminSetRank(AdminSetRankEvent event)
{
String userSender = event.getSender().getName();
- PlexPlayer target = event.getPlexPlayer();
- Rank newRank = event.getRank();
+ PlexPlayer target = (PlexPlayer) event.getPlexPlayer();
+ Rank newRank = (Rank) event.getRank();
target.setRank(newRank.name().toLowerCase());
DataUtils.update(target);
PlexUtils.broadcast(messageComponent("adminSetRank", userSender, target.getName(), newRank.getReadable()));
diff --git a/src/main/java/dev/plex/listener/impl/AntiNukerListener.java b/server/src/main/java/dev/plex/listener/impl/AntiNukerListener.java
similarity index 100%
rename from src/main/java/dev/plex/listener/impl/AntiNukerListener.java
rename to server/src/main/java/dev/plex/listener/impl/AntiNukerListener.java
diff --git a/src/main/java/dev/plex/listener/impl/AntiSpamListener.java b/server/src/main/java/dev/plex/listener/impl/AntiSpamListener.java
similarity index 100%
rename from src/main/java/dev/plex/listener/impl/AntiSpamListener.java
rename to server/src/main/java/dev/plex/listener/impl/AntiSpamListener.java
diff --git a/src/main/java/dev/plex/listener/impl/BanListener.java b/server/src/main/java/dev/plex/listener/impl/BanListener.java
similarity index 100%
rename from src/main/java/dev/plex/listener/impl/BanListener.java
rename to server/src/main/java/dev/plex/listener/impl/BanListener.java
diff --git a/src/main/java/dev/plex/listener/impl/BlockListener.java b/server/src/main/java/dev/plex/listener/impl/BlockListener.java
similarity index 100%
rename from src/main/java/dev/plex/listener/impl/BlockListener.java
rename to server/src/main/java/dev/plex/listener/impl/BlockListener.java
diff --git a/src/main/java/dev/plex/listener/impl/ChatListener.java b/server/src/main/java/dev/plex/listener/impl/ChatListener.java
similarity index 100%
rename from src/main/java/dev/plex/listener/impl/ChatListener.java
rename to server/src/main/java/dev/plex/listener/impl/ChatListener.java
diff --git a/src/main/java/dev/plex/listener/impl/CommandListener.java b/server/src/main/java/dev/plex/listener/impl/CommandListener.java
similarity index 100%
rename from src/main/java/dev/plex/listener/impl/CommandListener.java
rename to server/src/main/java/dev/plex/listener/impl/CommandListener.java
diff --git a/src/main/java/dev/plex/listener/impl/DropListener.java b/server/src/main/java/dev/plex/listener/impl/DropListener.java
similarity index 100%
rename from src/main/java/dev/plex/listener/impl/DropListener.java
rename to server/src/main/java/dev/plex/listener/impl/DropListener.java
diff --git a/src/main/java/dev/plex/listener/impl/FreezeListener.java b/server/src/main/java/dev/plex/listener/impl/FreezeListener.java
similarity index 100%
rename from src/main/java/dev/plex/listener/impl/FreezeListener.java
rename to server/src/main/java/dev/plex/listener/impl/FreezeListener.java
diff --git a/src/main/java/dev/plex/listener/impl/GameModeListener.java b/server/src/main/java/dev/plex/listener/impl/GameModeListener.java
similarity index 95%
rename from src/main/java/dev/plex/listener/impl/GameModeListener.java
rename to server/src/main/java/dev/plex/listener/impl/GameModeListener.java
index b8a92d7..e6e8c01 100644
--- a/src/main/java/dev/plex/listener/impl/GameModeListener.java
+++ b/server/src/main/java/dev/plex/listener/impl/GameModeListener.java
@@ -1,6 +1,6 @@
package dev.plex.listener.impl;
-import dev.plex.event.GameModeUpdateEvent;
+import dev.plex.api.event.GameModeUpdateEvent;
import dev.plex.listener.PlexListener;
import dev.plex.util.PlexUtils;
import org.bukkit.command.CommandSender;
diff --git a/src/main/java/dev/plex/listener/impl/MuteListener.java b/server/src/main/java/dev/plex/listener/impl/MuteListener.java
similarity index 100%
rename from src/main/java/dev/plex/listener/impl/MuteListener.java
rename to server/src/main/java/dev/plex/listener/impl/MuteListener.java
diff --git a/src/main/java/dev/plex/listener/impl/PlayerListener.java b/server/src/main/java/dev/plex/listener/impl/PlayerListener.java
similarity index 100%
rename from src/main/java/dev/plex/listener/impl/PlayerListener.java
rename to server/src/main/java/dev/plex/listener/impl/PlayerListener.java
diff --git a/src/main/java/dev/plex/listener/impl/ServerListener.java b/server/src/main/java/dev/plex/listener/impl/ServerListener.java
similarity index 100%
rename from src/main/java/dev/plex/listener/impl/ServerListener.java
rename to server/src/main/java/dev/plex/listener/impl/ServerListener.java
diff --git a/src/main/java/dev/plex/listener/impl/SpawnListener.java b/server/src/main/java/dev/plex/listener/impl/SpawnListener.java
similarity index 100%
rename from src/main/java/dev/plex/listener/impl/SpawnListener.java
rename to server/src/main/java/dev/plex/listener/impl/SpawnListener.java
diff --git a/src/main/java/dev/plex/listener/impl/TabListener.java b/server/src/main/java/dev/plex/listener/impl/TabListener.java
similarity index 84%
rename from src/main/java/dev/plex/listener/impl/TabListener.java
rename to server/src/main/java/dev/plex/listener/impl/TabListener.java
index e116c81..72cc443 100644
--- a/src/main/java/dev/plex/listener/impl/TabListener.java
+++ b/server/src/main/java/dev/plex/listener/impl/TabListener.java
@@ -1,9 +1,9 @@
package dev.plex.listener.impl;
import dev.plex.cache.DataUtils;
-import dev.plex.event.AdminAddEvent;
-import dev.plex.event.AdminRemoveEvent;
-import dev.plex.event.AdminSetRankEvent;
+import dev.plex.api.event.AdminAddEvent;
+import dev.plex.api.event.AdminRemoveEvent;
+import dev.plex.api.event.AdminSetRankEvent;
import dev.plex.listener.PlexListener;
import dev.plex.player.PlexPlayer;
import net.kyori.adventure.text.Component;
@@ -25,7 +25,7 @@ public class TabListener extends PlexListener
@EventHandler(priority = EventPriority.HIGHEST)
public void onAdminAdd(AdminAddEvent event)
{
- PlexPlayer plexPlayer = event.getPlexPlayer();
+ PlexPlayer plexPlayer = (PlexPlayer) event.getPlexPlayer();
Player player = event.getPlexPlayer().getPlayer();
if (player == null)
{
@@ -37,7 +37,7 @@ public class TabListener extends PlexListener
@EventHandler(priority = EventPriority.HIGHEST)
public void onAdminRemove(AdminRemoveEvent event)
{
- PlexPlayer plexPlayer = event.getPlexPlayer();
+ PlexPlayer plexPlayer = (PlexPlayer) event.getPlexPlayer();
Player player = event.getPlexPlayer().getPlayer();
if (player == null)
{
@@ -49,7 +49,7 @@ public class TabListener extends PlexListener
@EventHandler(priority = EventPriority.HIGHEST)
public void onAdminSetRank(AdminSetRankEvent event)
{
- PlexPlayer plexPlayer = event.getPlexPlayer();
+ PlexPlayer plexPlayer = (PlexPlayer) event.getPlexPlayer();
Player player = event.getPlexPlayer().getPlayer();
if (player == null)
{
diff --git a/src/main/java/dev/plex/listener/impl/WorldListener.java b/server/src/main/java/dev/plex/listener/impl/WorldListener.java
similarity index 100%
rename from src/main/java/dev/plex/listener/impl/WorldListener.java
rename to server/src/main/java/dev/plex/listener/impl/WorldListener.java
diff --git a/src/main/java/dev/plex/menu/PunishedPlayerMenu.java b/server/src/main/java/dev/plex/menu/PunishedPlayerMenu.java
similarity index 100%
rename from src/main/java/dev/plex/menu/PunishedPlayerMenu.java
rename to server/src/main/java/dev/plex/menu/PunishedPlayerMenu.java
diff --git a/src/main/java/dev/plex/menu/PunishmentMenu.java b/server/src/main/java/dev/plex/menu/PunishmentMenu.java
similarity index 100%
rename from src/main/java/dev/plex/menu/PunishmentMenu.java
rename to server/src/main/java/dev/plex/menu/PunishmentMenu.java
diff --git a/src/main/java/dev/plex/module/ModuleManager.java b/server/src/main/java/dev/plex/module/ModuleManager.java
similarity index 100%
rename from src/main/java/dev/plex/module/ModuleManager.java
rename to server/src/main/java/dev/plex/module/ModuleManager.java
diff --git a/src/main/java/dev/plex/module/PlexModule.java b/server/src/main/java/dev/plex/module/PlexModule.java
similarity index 100%
rename from src/main/java/dev/plex/module/PlexModule.java
rename to server/src/main/java/dev/plex/module/PlexModule.java
diff --git a/src/main/java/dev/plex/module/PlexModuleFile.java b/server/src/main/java/dev/plex/module/PlexModuleFile.java
similarity index 100%
rename from src/main/java/dev/plex/module/PlexModuleFile.java
rename to server/src/main/java/dev/plex/module/PlexModuleFile.java
diff --git a/src/main/java/dev/plex/module/exception/ModuleLoadException.java b/server/src/main/java/dev/plex/module/exception/ModuleLoadException.java
similarity index 100%
rename from src/main/java/dev/plex/module/exception/ModuleLoadException.java
rename to server/src/main/java/dev/plex/module/exception/ModuleLoadException.java
diff --git a/src/main/java/dev/plex/module/loader/CustomClassLoader.java b/server/src/main/java/dev/plex/module/loader/CustomClassLoader.java
similarity index 100%
rename from src/main/java/dev/plex/module/loader/CustomClassLoader.java
rename to server/src/main/java/dev/plex/module/loader/CustomClassLoader.java
diff --git a/src/main/java/dev/plex/module/loader/LibraryLoader.java b/server/src/main/java/dev/plex/module/loader/LibraryLoader.java
similarity index 100%
rename from src/main/java/dev/plex/module/loader/LibraryLoader.java
rename to server/src/main/java/dev/plex/module/loader/LibraryLoader.java
diff --git a/src/main/java/dev/plex/permission/Permission.java b/server/src/main/java/dev/plex/permission/Permission.java
similarity index 100%
rename from src/main/java/dev/plex/permission/Permission.java
rename to server/src/main/java/dev/plex/permission/Permission.java
diff --git a/src/main/java/dev/plex/player/PlexPlayer.java b/server/src/main/java/dev/plex/player/PlexPlayer.java
similarity index 97%
rename from src/main/java/dev/plex/player/PlexPlayer.java
rename to server/src/main/java/dev/plex/player/PlexPlayer.java
index fb44d0f..cef276a 100644
--- a/src/main/java/dev/plex/player/PlexPlayer.java
+++ b/server/src/main/java/dev/plex/player/PlexPlayer.java
@@ -7,12 +7,12 @@ import dev.morphia.annotations.Id;
import dev.morphia.annotations.IndexOptions;
import dev.morphia.annotations.Indexed;
import dev.plex.Plex;
+import dev.plex.api.player.IPlexPlayer;
import dev.plex.permission.Permission;
import dev.plex.punishment.Punishment;
import dev.plex.punishment.extra.Note;
import dev.plex.rank.enums.Rank;
import dev.plex.storage.StorageType;
-import java.time.LocalDateTime;
import java.time.ZonedDateTime;
import java.util.List;
import java.util.UUID;
@@ -31,7 +31,7 @@ import org.bukkit.permissions.PermissionAttachment;
@Getter
@Setter
@Entity(value = "players", useDiscriminator = false)
-public class PlexPlayer
+public class PlexPlayer implements IPlexPlayer
{
@Setter(AccessLevel.NONE)
@Id
diff --git a/src/main/java/dev/plex/punishment/Punishment.java b/server/src/main/java/dev/plex/punishment/Punishment.java
similarity index 100%
rename from src/main/java/dev/plex/punishment/Punishment.java
rename to server/src/main/java/dev/plex/punishment/Punishment.java
diff --git a/src/main/java/dev/plex/punishment/PunishmentManager.java b/server/src/main/java/dev/plex/punishment/PunishmentManager.java
similarity index 99%
rename from src/main/java/dev/plex/punishment/PunishmentManager.java
rename to server/src/main/java/dev/plex/punishment/PunishmentManager.java
index d85d7f3..be80faa 100644
--- a/src/main/java/dev/plex/punishment/PunishmentManager.java
+++ b/server/src/main/java/dev/plex/punishment/PunishmentManager.java
@@ -13,7 +13,6 @@ import dev.plex.util.PlexUtils;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
-import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit;
diff --git a/src/main/java/dev/plex/punishment/PunishmentType.java b/server/src/main/java/dev/plex/punishment/PunishmentType.java
similarity index 100%
rename from src/main/java/dev/plex/punishment/PunishmentType.java
rename to server/src/main/java/dev/plex/punishment/PunishmentType.java
diff --git a/src/main/java/dev/plex/punishment/extra/Note.java b/server/src/main/java/dev/plex/punishment/extra/Note.java
similarity index 100%
rename from src/main/java/dev/plex/punishment/extra/Note.java
rename to server/src/main/java/dev/plex/punishment/extra/Note.java
diff --git a/src/main/java/dev/plex/rank/RankManager.java b/server/src/main/java/dev/plex/rank/RankManager.java
similarity index 100%
rename from src/main/java/dev/plex/rank/RankManager.java
rename to server/src/main/java/dev/plex/rank/RankManager.java
diff --git a/src/main/java/dev/plex/rank/enums/Rank.java b/server/src/main/java/dev/plex/rank/enums/Rank.java
similarity index 94%
rename from src/main/java/dev/plex/rank/enums/Rank.java
rename to server/src/main/java/dev/plex/rank/enums/Rank.java
index 221de5d..7d02518 100644
--- a/src/main/java/dev/plex/rank/enums/Rank.java
+++ b/server/src/main/java/dev/plex/rank/enums/Rank.java
@@ -1,5 +1,6 @@
package dev.plex.rank.enums;
+import dev.plex.api.rank.IRank;
import dev.plex.util.PlexUtils;
import lombok.Getter;
import lombok.Setter;
@@ -8,7 +9,7 @@ import net.kyori.adventure.text.format.NamedTextColor;
import org.json.JSONObject;
@Getter
-public enum Rank
+public enum Rank implements IRank
{
IMPOSTOR(-1, "an Impostor", "Impostor", "[Imp]", NamedTextColor.YELLOW),
NONOP(0, "a Non-Op", "Non-Op", "", NamedTextColor.WHITE),
@@ -40,7 +41,7 @@ public enum Rank
this.color = color;
}
- public boolean isAtLeast(Rank rank)
+ public boolean isAtLeast(IRank rank)
{
return this.level >= rank.getLevel();
}
diff --git a/src/main/java/dev/plex/rank/enums/Title.java b/server/src/main/java/dev/plex/rank/enums/Title.java
similarity index 100%
rename from src/main/java/dev/plex/rank/enums/Title.java
rename to server/src/main/java/dev/plex/rank/enums/Title.java
diff --git a/src/main/java/dev/plex/services/AbstractService.java b/server/src/main/java/dev/plex/services/AbstractService.java
similarity index 100%
rename from src/main/java/dev/plex/services/AbstractService.java
rename to server/src/main/java/dev/plex/services/AbstractService.java
diff --git a/src/main/java/dev/plex/services/IService.java b/server/src/main/java/dev/plex/services/IService.java
similarity index 100%
rename from src/main/java/dev/plex/services/IService.java
rename to server/src/main/java/dev/plex/services/IService.java
diff --git a/src/main/java/dev/plex/services/ServiceManager.java b/server/src/main/java/dev/plex/services/ServiceManager.java
similarity index 100%
rename from src/main/java/dev/plex/services/ServiceManager.java
rename to server/src/main/java/dev/plex/services/ServiceManager.java
diff --git a/src/main/java/dev/plex/services/impl/AutoWipeService.java b/server/src/main/java/dev/plex/services/impl/AutoWipeService.java
similarity index 100%
rename from src/main/java/dev/plex/services/impl/AutoWipeService.java
rename to server/src/main/java/dev/plex/services/impl/AutoWipeService.java
diff --git a/src/main/java/dev/plex/services/impl/BanService.java b/server/src/main/java/dev/plex/services/impl/BanService.java
similarity index 100%
rename from src/main/java/dev/plex/services/impl/BanService.java
rename to server/src/main/java/dev/plex/services/impl/BanService.java
diff --git a/src/main/java/dev/plex/services/impl/CommandBlockerService.java b/server/src/main/java/dev/plex/services/impl/CommandBlockerService.java
similarity index 100%
rename from src/main/java/dev/plex/services/impl/CommandBlockerService.java
rename to server/src/main/java/dev/plex/services/impl/CommandBlockerService.java
diff --git a/src/main/java/dev/plex/services/impl/GameRuleService.java b/server/src/main/java/dev/plex/services/impl/GameRuleService.java
similarity index 97%
rename from src/main/java/dev/plex/services/impl/GameRuleService.java
rename to server/src/main/java/dev/plex/services/impl/GameRuleService.java
index 325b032..6a22475 100644
--- a/src/main/java/dev/plex/services/impl/GameRuleService.java
+++ b/server/src/main/java/dev/plex/services/impl/GameRuleService.java
@@ -3,7 +3,6 @@ package dev.plex.services.impl;
import dev.plex.services.AbstractService;
import dev.plex.util.GameRuleUtil;
import dev.plex.util.PlexLog;
-import dev.plex.util.PlexUtils;
import java.util.Locale;
import org.bukkit.Bukkit;
import org.bukkit.World;
diff --git a/src/main/java/dev/plex/services/impl/TimingService.java b/server/src/main/java/dev/plex/services/impl/TimingService.java
similarity index 100%
rename from src/main/java/dev/plex/services/impl/TimingService.java
rename to server/src/main/java/dev/plex/services/impl/TimingService.java
diff --git a/src/main/java/dev/plex/services/impl/UpdateCheckerService.java b/server/src/main/java/dev/plex/services/impl/UpdateCheckerService.java
similarity index 100%
rename from src/main/java/dev/plex/services/impl/UpdateCheckerService.java
rename to server/src/main/java/dev/plex/services/impl/UpdateCheckerService.java
diff --git a/src/main/java/dev/plex/storage/MongoConnection.java b/server/src/main/java/dev/plex/storage/MongoConnection.java
similarity index 100%
rename from src/main/java/dev/plex/storage/MongoConnection.java
rename to server/src/main/java/dev/plex/storage/MongoConnection.java
diff --git a/src/main/java/dev/plex/storage/RedisConnection.java b/server/src/main/java/dev/plex/storage/RedisConnection.java
similarity index 100%
rename from src/main/java/dev/plex/storage/RedisConnection.java
rename to server/src/main/java/dev/plex/storage/RedisConnection.java
diff --git a/src/main/java/dev/plex/storage/SQLConnection.java b/server/src/main/java/dev/plex/storage/SQLConnection.java
similarity index 100%
rename from src/main/java/dev/plex/storage/SQLConnection.java
rename to server/src/main/java/dev/plex/storage/SQLConnection.java
diff --git a/src/main/java/dev/plex/storage/StorageType.java b/server/src/main/java/dev/plex/storage/StorageType.java
similarity index 100%
rename from src/main/java/dev/plex/storage/StorageType.java
rename to server/src/main/java/dev/plex/storage/StorageType.java
diff --git a/src/main/java/dev/plex/storage/permission/SQLPermissions.java b/server/src/main/java/dev/plex/storage/permission/SQLPermissions.java
similarity index 100%
rename from src/main/java/dev/plex/storage/permission/SQLPermissions.java
rename to server/src/main/java/dev/plex/storage/permission/SQLPermissions.java
diff --git a/src/main/java/dev/plex/storage/player/MongoPlayerData.java b/server/src/main/java/dev/plex/storage/player/MongoPlayerData.java
similarity index 100%
rename from src/main/java/dev/plex/storage/player/MongoPlayerData.java
rename to server/src/main/java/dev/plex/storage/player/MongoPlayerData.java
diff --git a/src/main/java/dev/plex/storage/player/SQLPlayerData.java b/server/src/main/java/dev/plex/storage/player/SQLPlayerData.java
similarity index 100%
rename from src/main/java/dev/plex/storage/player/SQLPlayerData.java
rename to server/src/main/java/dev/plex/storage/player/SQLPlayerData.java
diff --git a/src/main/java/dev/plex/storage/punishment/SQLNotes.java b/server/src/main/java/dev/plex/storage/punishment/SQLNotes.java
similarity index 100%
rename from src/main/java/dev/plex/storage/punishment/SQLNotes.java
rename to server/src/main/java/dev/plex/storage/punishment/SQLNotes.java
diff --git a/src/main/java/dev/plex/storage/punishment/SQLPunishment.java b/server/src/main/java/dev/plex/storage/punishment/SQLPunishment.java
similarity index 100%
rename from src/main/java/dev/plex/storage/punishment/SQLPunishment.java
rename to server/src/main/java/dev/plex/storage/punishment/SQLPunishment.java
diff --git a/src/main/java/dev/plex/util/AshconInfo.java b/server/src/main/java/dev/plex/util/AshconInfo.java
similarity index 100%
rename from src/main/java/dev/plex/util/AshconInfo.java
rename to server/src/main/java/dev/plex/util/AshconInfo.java
diff --git a/src/main/java/dev/plex/util/BuildInfo.java b/server/src/main/java/dev/plex/util/BuildInfo.java
similarity index 100%
rename from src/main/java/dev/plex/util/BuildInfo.java
rename to server/src/main/java/dev/plex/util/BuildInfo.java
diff --git a/src/main/java/dev/plex/util/GameRuleUtil.java b/server/src/main/java/dev/plex/util/GameRuleUtil.java
similarity index 100%
rename from src/main/java/dev/plex/util/GameRuleUtil.java
rename to server/src/main/java/dev/plex/util/GameRuleUtil.java
diff --git a/src/main/java/dev/plex/util/MojangUtils.java b/server/src/main/java/dev/plex/util/MojangUtils.java
similarity index 98%
rename from src/main/java/dev/plex/util/MojangUtils.java
rename to server/src/main/java/dev/plex/util/MojangUtils.java
index 97e0f1a..75afe61 100644
--- a/src/main/java/dev/plex/util/MojangUtils.java
+++ b/server/src/main/java/dev/plex/util/MojangUtils.java
@@ -5,7 +5,6 @@ import com.google.gson.JsonDeserializer;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.time.Instant;
-import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
diff --git a/src/main/java/dev/plex/util/PermissionsUtil.java b/server/src/main/java/dev/plex/util/PermissionsUtil.java
similarity index 100%
rename from src/main/java/dev/plex/util/PermissionsUtil.java
rename to server/src/main/java/dev/plex/util/PermissionsUtil.java
diff --git a/src/main/java/dev/plex/util/PlexLog.java b/server/src/main/java/dev/plex/util/PlexLog.java
similarity index 100%
rename from src/main/java/dev/plex/util/PlexLog.java
rename to server/src/main/java/dev/plex/util/PlexLog.java
diff --git a/src/main/java/dev/plex/util/PlexUtils.java b/server/src/main/java/dev/plex/util/PlexUtils.java
similarity index 97%
rename from src/main/java/dev/plex/util/PlexUtils.java
rename to server/src/main/java/dev/plex/util/PlexUtils.java
index 660472c..053720a 100644
--- a/src/main/java/dev/plex/util/PlexUtils.java
+++ b/server/src/main/java/dev/plex/util/PlexUtils.java
@@ -6,16 +6,11 @@ import dev.plex.cache.PlayerCache;
import dev.plex.storage.StorageType;
import java.sql.Connection;
import java.sql.SQLException;
-import java.time.LocalDateTime;
import java.time.Month;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Arrays;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
-import java.util.Random;
-import java.util.concurrent.ThreadLocalRandom;
import java.util.stream.Collectors;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
diff --git a/src/main/java/dev/plex/util/RandomUtil.java b/server/src/main/java/dev/plex/util/RandomUtil.java
similarity index 100%
rename from src/main/java/dev/plex/util/RandomUtil.java
rename to server/src/main/java/dev/plex/util/RandomUtil.java
diff --git a/src/main/java/dev/plex/util/ReflectionsUtil.java b/server/src/main/java/dev/plex/util/ReflectionsUtil.java
similarity index 100%
rename from src/main/java/dev/plex/util/ReflectionsUtil.java
rename to server/src/main/java/dev/plex/util/ReflectionsUtil.java
diff --git a/src/main/java/dev/plex/util/TimeUtils.java b/server/src/main/java/dev/plex/util/TimeUtils.java
similarity index 100%
rename from src/main/java/dev/plex/util/TimeUtils.java
rename to server/src/main/java/dev/plex/util/TimeUtils.java
diff --git a/src/main/java/dev/plex/util/UpdateChecker.java b/server/src/main/java/dev/plex/util/UpdateChecker.java
similarity index 100%
rename from src/main/java/dev/plex/util/UpdateChecker.java
rename to server/src/main/java/dev/plex/util/UpdateChecker.java
diff --git a/src/main/java/dev/plex/util/WebUtils.java b/server/src/main/java/dev/plex/util/WebUtils.java
similarity index 100%
rename from src/main/java/dev/plex/util/WebUtils.java
rename to server/src/main/java/dev/plex/util/WebUtils.java
diff --git a/src/main/java/dev/plex/util/adapter/ZonedDateTimeDeserializer.java b/server/src/main/java/dev/plex/util/adapter/ZonedDateTimeDeserializer.java
similarity index 96%
rename from src/main/java/dev/plex/util/adapter/ZonedDateTimeDeserializer.java
rename to server/src/main/java/dev/plex/util/adapter/ZonedDateTimeDeserializer.java
index e763e78..7e3b045 100644
--- a/src/main/java/dev/plex/util/adapter/ZonedDateTimeDeserializer.java
+++ b/server/src/main/java/dev/plex/util/adapter/ZonedDateTimeDeserializer.java
@@ -8,7 +8,6 @@ import dev.plex.Plex;
import java.lang.reflect.Type;
import java.time.Instant;
-import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
diff --git a/src/main/java/dev/plex/util/adapter/ZonedDateTimeSerializer.java b/server/src/main/java/dev/plex/util/adapter/ZonedDateTimeSerializer.java
similarity index 88%
rename from src/main/java/dev/plex/util/adapter/ZonedDateTimeSerializer.java
rename to server/src/main/java/dev/plex/util/adapter/ZonedDateTimeSerializer.java
index 9c69502..e86b4a7 100644
--- a/src/main/java/dev/plex/util/adapter/ZonedDateTimeSerializer.java
+++ b/server/src/main/java/dev/plex/util/adapter/ZonedDateTimeSerializer.java
@@ -7,9 +7,6 @@ import com.google.gson.JsonSerializer;
import dev.plex.Plex;
import java.lang.reflect.Type;
-import java.time.Instant;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
import java.time.ZonedDateTime;
public class ZonedDateTimeSerializer implements JsonSerializer
diff --git a/src/main/java/dev/plex/util/item/ItemBuilder.java b/server/src/main/java/dev/plex/util/item/ItemBuilder.java
similarity index 100%
rename from src/main/java/dev/plex/util/item/ItemBuilder.java
rename to server/src/main/java/dev/plex/util/item/ItemBuilder.java
diff --git a/src/main/java/dev/plex/util/menu/AbstractMenu.java b/server/src/main/java/dev/plex/util/menu/AbstractMenu.java
similarity index 100%
rename from src/main/java/dev/plex/util/menu/AbstractMenu.java
rename to server/src/main/java/dev/plex/util/menu/AbstractMenu.java
diff --git a/src/main/java/dev/plex/util/menu/IMenu.java b/server/src/main/java/dev/plex/util/menu/IMenu.java
similarity index 100%
rename from src/main/java/dev/plex/util/menu/IMenu.java
rename to server/src/main/java/dev/plex/util/menu/IMenu.java
diff --git a/src/main/java/dev/plex/world/BlockMapChunkGenerator.java b/server/src/main/java/dev/plex/world/BlockMapChunkGenerator.java
similarity index 100%
rename from src/main/java/dev/plex/world/BlockMapChunkGenerator.java
rename to server/src/main/java/dev/plex/world/BlockMapChunkGenerator.java
diff --git a/src/main/java/dev/plex/world/ConfigurationChunkGenerator.java b/server/src/main/java/dev/plex/world/ConfigurationChunkGenerator.java
similarity index 100%
rename from src/main/java/dev/plex/world/ConfigurationChunkGenerator.java
rename to server/src/main/java/dev/plex/world/ConfigurationChunkGenerator.java
diff --git a/src/main/java/dev/plex/world/CustomChunkGenerator.java b/server/src/main/java/dev/plex/world/CustomChunkGenerator.java
similarity index 100%
rename from src/main/java/dev/plex/world/CustomChunkGenerator.java
rename to server/src/main/java/dev/plex/world/CustomChunkGenerator.java
diff --git a/src/main/java/dev/plex/world/CustomWorld.java b/server/src/main/java/dev/plex/world/CustomWorld.java
similarity index 100%
rename from src/main/java/dev/plex/world/CustomWorld.java
rename to server/src/main/java/dev/plex/world/CustomWorld.java
diff --git a/src/main/java/dev/plex/world/FlatChunkGenerator.java b/server/src/main/java/dev/plex/world/FlatChunkGenerator.java
similarity index 100%
rename from src/main/java/dev/plex/world/FlatChunkGenerator.java
rename to server/src/main/java/dev/plex/world/FlatChunkGenerator.java
diff --git a/src/main/java/dev/plex/world/NoiseChunkGenerator.java b/server/src/main/java/dev/plex/world/NoiseChunkGenerator.java
similarity index 100%
rename from src/main/java/dev/plex/world/NoiseChunkGenerator.java
rename to server/src/main/java/dev/plex/world/NoiseChunkGenerator.java
diff --git a/src/main/java/dev/plex/world/NoiseOptions.java b/server/src/main/java/dev/plex/world/NoiseOptions.java
similarity index 100%
rename from src/main/java/dev/plex/world/NoiseOptions.java
rename to server/src/main/java/dev/plex/world/NoiseOptions.java
diff --git a/src/main/java/dev/plex/world/OctaveChunkGenerator.java b/server/src/main/java/dev/plex/world/OctaveChunkGenerator.java
similarity index 100%
rename from src/main/java/dev/plex/world/OctaveChunkGenerator.java
rename to server/src/main/java/dev/plex/world/OctaveChunkGenerator.java
diff --git a/src/main/java/dev/plex/world/OctaveOptions.java b/server/src/main/java/dev/plex/world/OctaveOptions.java
similarity index 100%
rename from src/main/java/dev/plex/world/OctaveOptions.java
rename to server/src/main/java/dev/plex/world/OctaveOptions.java
diff --git a/server/src/main/resources/commands.yml b/server/src/main/resources/commands.yml
new file mode 100644
index 0000000..39ea31b
--- /dev/null
+++ b/server/src/main/resources/commands.yml
@@ -0,0 +1,55 @@
+#
+# Command Blocker
+#
+# Format:
+# - "::command name no slash:Block message"
+#
+# Symbols to use:
+# - r for RegEx
+# - m for matching
+# - The ranks are "e" for everyone, "s" for senior admin, and "a" for admin
+# - MATCHING MODE: The command is just the command without slashes. Optional arguments are specified as well. It also accepts full plugins via specifying the plugin name followed by a ":" (e.g. "viaversion:")
+# - REGEX MODE: The command is regex that matches the desired command. It matches case insensitively.
+# - Finally the block message. MUST NOT CONTAIN ":". Use _ to use the default command blocked message as specified in messages.yml, or you can optionally put your own in
+#
+# So these would be valid:
+# - "m:e:mail sendall:You cannot send messages to everyone on the server"
+# - "r:e:^[A-z]*:[A-z]*::Plugin specific commands are disabled"
+commands:
+ - "m:a:break:_"
+ - "m:a:delchunks:_"
+ - "m:a:kickall:_"
+ - "m:a:locatebiome:_"
+ - "m:a:playsound:_"
+ - "m:a:setspawn:_"
+ - "m:a:socialspy:_"
+ - "m:a:tpall:_"
+ - "m:e:/eval:_"
+ - "m:e:advancement:_"
+ - "m:e:antioch:_"
+ - "m:e:backup:_"
+ - "m:e:ban-ip:_"
+ - "m:e:co purge:_"
+ - "m:e:d minecart_command:_"
+ - "m:e:debug:_"
+ - "m:e:defaultgamemode:The default gamemode should not be changed."
+ - "m:e:deljail:_"
+ - "m:e:disguiseradius:_"
+ - "m:e:fill:_"
+ - "m:e:jails:_"
+ - "m:e:mail sendall:You cannot send messages to everyone on the server."
+ - "m:e:mail sendtempall:You cannot send messages to everyone on the server."
+ - "m:e:paper:_"
+ - "m:e:pardon-ip:_"
+ - "m:e:pardon:_"
+ - "m:e:save-off:_"
+ - "m:e:save-on:_"
+ - "m:e:setjail:_"
+ - "m:e:spigot reload:_"
+ - "m:e:time:Server-side time changing is disabled. Please use /ptime to set your own personal time."
+ - "m:e:togglejail:_"
+ - "m:e:undisguiseradius:_"
+ - "m:e:weather:_"
+ - "m:e:worldborder:The worldborder does not need to be changed. This command is disabled."
+ - "r:a:^(co|core|coreprotect) (rb|rollback|l|lookup|rl|reload):_"
+ - "r:e:^[A-z]*:[A-z]*::Plugin specific commands are disabled."
\ No newline at end of file
diff --git a/server/src/main/resources/config.yml b/server/src/main/resources/config.yml
new file mode 100644
index 0000000..d0ade40
--- /dev/null
+++ b/server/src/main/resources/config.yml
@@ -0,0 +1,219 @@
+# Plex Configuration File
+# For documentation, please visit: https://plex.us.org
+
+server:
+ name: "Plexus"
+ motd: "%servername% - Minecraft %mcversion%"
+ colorize_motd: true
+ sample:
+ - "&cForums: https://forum.plex.us.org"
+ # What timezone should various messages appear in (e.g. ban message end date)
+ timezone: Etc/UTC
+
+titles:
+ masterbuilders: [ ]
+ owners:
+ - Telesphoreo
+
+# Ban message is customized in the messages.yml file. The URL to appeal at is below.
+banning:
+ ban_url: "https://forum.plex.us.org"
+
+chat:
+ # Should the server use Plex's chat system? It is recommended to keep this on if you are using ranks.
+ # If you are using permissions, you should turn this off and use Vault to handle prefixes with a different chat plugin
+ enabled: true
+ # The maximum amount of characters a player can have for their tag
+ # This does not include color tags such as or
+ max-tag-length: 64
+ # Color tag for name color
+ name-color: ''
+
+# Should Plex use a "true op" system with ranks or only permission nodes
+# Options are "permissions" or "ranks"
+system: ranks
+
+data:
+ central:
+ storage: sqlite # Use mariadb, mongodb, or sqlite here
+ user: ""
+ password: ""
+ hostname: 127.0.0.1
+ port: 27017
+ db: "plex"
+ side: # This is Redis, leave password blank if auth is false
+ enabled: false
+ auth: true
+ hostname: 127.0.0.1
+ port: 6379
+ password: ""
+
+# Mob limiter / Entity wiping config
+# All entities listed here will NOT be wiped upon wiping entities
+# By default this includes all mobs, as the mobpurge command can be used to purge mobs.
+entitywipe_list:
+ - "ITEM_FRAME"
+ - "AXOLOTL"
+ - "BAT"
+ - "BEE"
+ - "BLAZE"
+ - "CAT"
+ - "CAVE_SPIDER"
+ - "CHICKEN"
+ - "COD"
+ - "COW"
+ - "CREEPER"
+ - "DOLPHIN"
+ - "DONKEY"
+ - "DROWNED"
+ - "ELDER_GUARDIAN"
+ - "ENDER_DRAGON"
+ - "ENDERMAN"
+ - "ENDERMITE"
+ - "EVOKER"
+ - "FOX"
+ - "GHAST"
+ - "GIANT"
+ - "GLOW_SQUID"
+ - "GOAT"
+ - "GUARDIAN"
+ - "HOGLIN"
+ - "HORSE"
+ - "HUSK"
+ - "ILLUSIONER"
+ - "IRON_GOLEM"
+ - "LLAMA"
+ - "MAGMA_CUBE"
+ - "MULE"
+ - "MUSHROOM_COW"
+ - "OCELOT"
+ - "PANDA"
+ - "PARROT"
+ - "PHANTOM"
+ - "PIG"
+ - "PIGLIN"
+ - "PIGLIN_BRUTE"
+ - "PILLAGER"
+ - "POLAR_BEAR"
+ - "RABBIT"
+ - "RAVAGER"
+ - "SALMON"
+ - "SHEEP"
+ - "SHULKER"
+ - "SILVERFISH"
+ - "SKELETON"
+ - "SKELETON_HORSE"
+ - "SLIME"
+ - "SNOWMAN"
+ - "SPIDER"
+ - "SQUID"
+ - "STRAY"
+ - "STRIDER"
+ - "TRADER_LLAMA"
+ - "TROPICAL_FISH"
+ - "TURTLE"
+ - "VEX"
+ - "VILLAGER"
+ - "VINDICATOR"
+ - "WANDERING_TRADER"
+ - "WITCH"
+ - "WITHER"
+ - "WITHER_SKELETON"
+ - "WOLF"
+ - "ZOGLIN"
+ - "ZOMBIE"
+ - "ZOMBIE_HORSE"
+ - "ZOMBIE_VILLAGER"
+ - "ZOMBIFIED_PIGLIN"
+ - "PUFFERFISH"
+
+# Automatically wipe the specified entities
+autowipe:
+ # Should we automatically wipe entities?
+ enabled: true
+ # How often, in seconds, to automatically wipe entities. Default is 5 minutes.
+ interval: 300
+ # Entities to automatically wipe
+ entities:
+ - "DROPPED_ITEM"
+
+# Should we allow drops from players?
+allowdrops: true
+
+# What blocks should be blocked?
+blocked_blocks:
+ - "SPAWNER"
+ - "STRUCTURE_BLOCK"
+ - "JIGSAW"
+
+# What entities should be blocked?
+blocked_entities:
+ - "WITHER"
+ - "ENDER_DRAGON"
+ - "MINECART_TNT"
+
+# See https://plex.us.org/docs/customization/config#worlds for documentation
+# These gamerules apply to all worlds on the server
+global_gamerules:
+ - "doWeatherCycle;true"
+ - "doDaylightCycle;true"
+ - "doMobSpawning;false"
+ - "keepInventory;true"
+ - "doFireTick;false"
+ - "doMobLoot;false"
+ - "mobGriefing;false"
+ - "doTileDrops;false"
+ - "commandBlockOutput;false"
+ - "naturalRegeneration;true"
+ - "announceAdvancements;false"
+ - "showDeathMessages;false"
+ - "sendCommandFeedback;false"
+
+worlds:
+ flatlands:
+ name: "Flatlands"
+ permission: "plex.world.flatlands"
+ noEdit: "&cYou can't edit this world!"
+ gameRules:
+ # The gamerules here override the global gamerules
+ - "doWeatherCycle;false"
+ - "doDaylightCycle;false"
+ parameters:
+ grass_block: 1
+ dirt: 32
+ stone: 16
+ bedrock: 1
+ adminworld:
+ name: "Admin World"
+ permission: "plex.world.adminworld"
+ requiredLevels:
+ - "Rank.ADMIN" # Minimum rank requirement
+ noEdit: "&cYou can't edit this world!"
+ gameRules:
+ - "doWeatherCycle;false"
+ - "doDaylightCycle;false"
+ parameters:
+ grass_block: 1
+ dirt: 32
+ stone: 16
+ bedrock: 1
+ masterbuilderworld:
+ name: "MasterBuilder World"
+ permission: "plex.world.masterbuilderworld"
+ requiredLevels:
+ - "Title.MASTER_BUILDER" # Title has no "minimum", so this will have to be their title
+ noEdit: "&cYou can't edit this world!"
+ gameRules:
+ - "doWeatherCycle;false"
+ - "doDaylightCycle;false"
+ parameters:
+ grass_block: 1
+ dirt: 32
+ stone: 16
+ bedrock: 1
+
+# What branch should Plex fetch updates from?
+update_branch: master
+
+# Additional logging for debugging
+debug: false
\ No newline at end of file
diff --git a/server/src/main/resources/indefbans.yml b/server/src/main/resources/indefbans.yml
new file mode 100644
index 0000000..2d2ce08
--- /dev/null
+++ b/server/src/main/resources/indefbans.yml
@@ -0,0 +1,21 @@
+# Plex Indefinite Bans File
+# Players with their UUID / IP / Usernames in here will be indefinitely banned until removed
+
+# If you want to get someone's UUID, use https://api.ashcon.app/mojang/v2/user/
+griefers:
+ users:
+ - "badplayer123"
+ - "badplayer321"
+ uuids:
+ - 1dac0e92-f565-4479-afd5-38c7df5f9732 # badplayer123
+ ips:
+ - 123.123.123.123
+
+# Note that these keys can be anything, they are simply to help you keep things organized.
+# They are not used within the plugin. Duplicate keys are not allowed, and will not work.
+bypassers:
+ users:
+ - "bypasser1"
+ ips:
+ - 321.321.321.321
+ - 169.254.1.2
\ No newline at end of file
diff --git a/server/src/main/resources/messages.yml b/server/src/main/resources/messages.yml
new file mode 100644
index 0000000..6d017ab
--- /dev/null
+++ b/server/src/main/resources/messages.yml
@@ -0,0 +1,185 @@
+# Plex Messages File
+# This file uses the MiniMessage system.
+# Documentation available at https://docs.adventure.kyori.net/minimessage/format.html
+
+# Messages in here will be placed in for certain commands, actions, etc.
+# Warning: not all commands have customizable messages
+
+# Variables {number} - these are code-defined replacements for things that should be inserted into messages. (e.g. names, statuses, numbers)
+# If any of these variables are supposed to be used within a message, some documentation is provided to give more context to what the variables indicate.
+# If you are wishing to change these messages it's recommended you use the same amount of variables as stated in the documentation, however it's not required.
+
+# 0 - Appeal URL
+# 1 - Reason
+# 2 - Expiry
+# 3 - Punisher
+banMessage: "You have been banned! You may appeal at {0}.\nReason: {1}\nEnd date: {2}\nBanned by: {3}"
+# 0 - The type of indefinite ban
+# 1 - Appeal URL
+indefBanMessage: "Your {0} is indefinitely banned! You may appeal at {1}."
+playerNotFound: "Player not found!"
+worldNotFound: "World not found!"
+# 0 - The world you have been teleported to
+playerWorldTeleport: "You have been teleported to {0}."
+# 0 - The sender who opped everyone
+oppedAllPlayers: "{0} - Opped all players on the server"
+# 0 - The sender who de-opped everyone
+deoppedAllPlayers: "{0} - De-opped all players on the server"
+# 0 - The person who is opping
+# 1 - The person who has been opped
+oppedPlayer: "{0} - Opped {1}"
+# 0 - The person who is deopped
+# 1 - The person who has been deopped
+deoppedPlayer: "{0} - Deopped {1}"
+# 0 - The person who is freezing
+# 1 - The person who has been frozen
+frozePlayer: "{0} - Froze {1}"
+# 0 - The person who is unfreezing
+# 1 - The person who has been unfrozen
+unfrozePlayer: "{0} - Unfroze {1}"
+# 0 - The command sender
+# 1 - The person who has been muted
+mutedPlayer: "{0} - Muted {1}"
+# 0 - The command sender
+# 1 - The person who has been unmuted
+unmutedPlayer: "{0} - Unmuted {1}"
+# 0 - The person who is locking up
+# 1 - The person who has been locked up
+lockedUpPlayer: "{0} - Locking up {1}"
+# 0 - The person who is unlocking
+# 1 - The person who has been unlocked
+unlockedPlayer: "{0} - Unlocking {1}"
+# 0 - The rank required to use the command
+noPermissionRank: "You must be at least {0} to use this command!"
+# 0 - The permission node required to use the command
+noPermissionNode: "You must have the permission: {0} to use this command!"
+noPermissionInGame: "You must be in console to use this command!"
+noPermissionConsole: "You must be in-game to use this command!"
+# 0 - The username of the name history
+nameHistoryTitle: "Name History of {0}"
+nameHistorySeparator: "-----------------------------"
+# 0 - The name
+# 1 - The date and time of the name change
+nameHistoryBody: "{0} - {1}"
+# 0 - The gamemode
+gameModeSetTo: "Your gamemode has been set to {0}."
+# 0 - The player's name
+# 1 - The gamemode
+setOtherPlayerGameModeTo: "You set {0}'s gamemode to {1}."
+# 0 - The command sender
+# 1 - The gamemode
+playerSetOtherGameMode: "{0} set your gamemode to {1}."
+# 0 - The command sender
+# 1 - The gamemode
+setEveryoneGameMode: "{0} - Changing everyone's gamemode to {1}"
+consoleMustDefinePlayer: "You must define a player since you are running this command from console."
+# 0 - The command sender
+# 1 - The player
+newAdminAdded: "{0} - Adding {1} to the admin list"
+# 0 - The command sender
+# 1 - The player
+# 2 - The rank name
+adminReadded: "{0} - Re-adding {1} to the admin list as rank: {2}"
+# 0 - The command sender
+# 1 - The player
+adminRemoved: "{0} - Removing {1} from the admin list"
+# 0 - The command sender
+# 1 - The player
+# 2 - The rank
+adminSetRank: "{0} - Setting {1}'s rank to {2}"
+# 0 - The world name
+teleportedToWorld: "You have been teleported to the {0}."
+higherRankThanYou: "This player is an admin or a higher rank than you."
+playerNotAdmin: "That player is not an admin."
+playerIsAdmin: "That player is already an admin."
+rankNotFound: "The rank you entered was not found."
+rankMustBeHigherThanAdmin: "The rank you entered must be higher than Admin."
+consoleOnly: "This command can only be executed by the console."
+# 0 - Rank
+yourRank: "Your rank is: {0}"
+# 0 - Player name
+# 1 - Rank
+otherRank: "{0}'s rank is: {1}"
+# 0 - The command sender
+# 1 - The player
+banningPlayer: "{0} - Banning {1}"
+# 0 - The command sender
+# 1 - The player
+unbanningPlayer: "{0} - Unbanning {1}"
+playerNotBanned: "That player is not banned!"
+playerNotFrozen: "That player is not frozen!"
+playerNotMuted: "That player is not muted!"
+playerBanned: "That player is already banned!"
+playerFrozen: "That player is already frozen!"
+playerMuted: "That player is already muted!"
+playerLockedUp: "That player is already locked up!"
+muted: "You are currently muted - STFU!"
+# 0 - The command sender
+# 1 - The player
+kickedPlayer: "{0} - Kicking {1}"
+teleportedToWorldSpawn: "Teleporting to the local spawn"
+toggleCommandSpy: "CommandSpy has been"
+enabled: "enabled."
+disabled: "disabled."
+# 0 - The admin / staff member
+# 1 - The message
+adminChatFormat: '[AdminChat] {0} ยป {1}'
+# 0 - Maximum length, configured in config.yml
+maximumPrefixLength: "The maximum length for a tag may only be {0}."
+prefixCleared: "Your prefix has been cleared."
+# 0 - The player name
+otherPrefixCleared: "You have cleared {0}'s prefix."
+# 0 - The new prefix
+prefixSetTo: "Your prefix has been set to {0}"
+# 0 - The amount of players whose edits are blocked
+blockedEditsSize: "Blocked block modification abilities for {0} players."
+# 0 - The amount of players whose edits are unblocked
+unblockedEditsSize: "Unblocked all block modification abilities for {0} players."
+# 0 - The command sender
+# 1 - The player name
+blockingEditFor: "{0} - Blocking block modification abilities for {1}"
+# 0 - The command sender
+# 1 - The player name
+unblockingEditFor: "{0} - Unblocking block modification abilities for {1}"
+yourEditsHaveBeenBlocked: "Your block modification abilities have been blocked."
+yourEditsHaveBeenUnblocked: "Your block modification abilities have been restored."
+# 0 - The player name
+editsBlocked: "Blocked block modification abilities for {0}"
+# 0 - The player name
+editsUnblocked: "Unblocked block modification abilities for {0}"
+# 0 - The command sender
+# 1 - Number of entities removed
+removedEntities: "{0} - Removed {1} entities"
+# 0 - The command sender
+# 1 - Number of entities removed
+# 2 - Entity type(s) removed
+removedEntitiesOfTypes: "{0} - Removed {1} entities of type(s) {2}"
+# 0 - The command sender
+# 1 - Number of entities removed
+# 2 - Entity type removed
+removedEntitiesOfType: "Removed {1} {2}"
+# 0 - Entity type that is invalid
+invalidEntityType: "Notice: Entity type {0} is invalid!"
+noRemovedEntities: "No entities were removed."
+# 0 - The command sender
+# 1 - Number of mobs removed
+removedMobs: "{0} - Removed {1} mobs"
+autoWipeDisabled: "Item wiping is currently disabled in the config!"
+allowDropsDisabled: "No longer allowing drops from players."
+allowDropsEnabled: "Now allowing drops from players."
+commandBlocked: "That command is blocked."
+# 0 - The command sender
+# 1 - The message being said
+sayMessage: "[Server: {0}] {1}"
+# 0 - The command sender
+# 1 - The message being said
+consoleSayMessage: "[Console: {0}] {1}"
+# 0 - The number attempted to be parsed
+unableToParseNumber: "Unable to parse {0} as a number!"
+noNotes: "This player has no notes!"
+noteAdded: "Note added."
+noteNotFound: "A note with this ID could not be found."
+# 0 - The ID of the note removed
+removedNote: "Removed note with ID: {0}"
+# 0 - The number of notes cleared
+clearedNotes: "Cleared {0} notes."
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
index 0862581..4743ccc 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -5,3 +5,6 @@ pluginManagement {
}
}
rootProject.name = "Plex"
+include 'api'
+include 'server'
+