diff --git a/pom.xml b/pom.xml
index 4c14b42..6e161fe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,17 +32,10 @@
io.papermc.paper
paper-api
- 1.17-R0.1-SNAPSHOT
+ 1.18.1-R0.1-SNAPSHOT
provided
-
- io.papermc
- paperlib
- 1.0.6
- compile
-
-
org.projectlombok
@@ -54,14 +47,14 @@
org.json
json
- 20210307
+ 20211205
compile
commons-io
commons-io
- 2.8.0
+ 2.11.0
compile
@@ -76,13 +69,13 @@
dev.morphia.morphia
morphia-core
- 2.2.2
+ 2.2.3
compile
redis.clients
jedis
- 3.6.3
+ 4.0.0
compile
@@ -106,8 +99,8 @@
maven-compiler-plugin
3.8.1
-
- 16
+
+ 17
diff --git a/src/main/java/dev/plex/Plex.java b/src/main/java/dev/plex/Plex.java
index 90debb6..5a17cfa 100644
--- a/src/main/java/dev/plex/Plex.java
+++ b/src/main/java/dev/plex/Plex.java
@@ -1,7 +1,5 @@
package dev.plex;
-import lombok.Getter;
-import lombok.Setter;
import dev.plex.admin.AdminList;
import dev.plex.banning.BanManager;
import dev.plex.cache.MongoPlayerData;
@@ -19,6 +17,8 @@ import dev.plex.storage.StorageType;
import dev.plex.util.PlexLog;
import dev.plex.util.PlexUtils;
import dev.plex.world.CustomWorld;
+import lombok.Getter;
+import lombok.Setter;
import org.bukkit.plugin.java.JavaPlugin;
@Getter
diff --git a/src/main/java/dev/plex/admin/Admin.java b/src/main/java/dev/plex/admin/Admin.java
index 1a9b549..a91525a 100644
--- a/src/main/java/dev/plex/admin/Admin.java
+++ b/src/main/java/dev/plex/admin/Admin.java
@@ -1,10 +1,11 @@
package dev.plex.admin;
-import java.util.UUID;
+import dev.plex.rank.enums.Rank;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
-import dev.plex.rank.enums.Rank;
+
+import java.util.UUID;
@Getter
@Setter
diff --git a/src/main/java/dev/plex/admin/AdminList.java b/src/main/java/dev/plex/admin/AdminList.java
index a0bea0e..9630c76 100644
--- a/src/main/java/dev/plex/admin/AdminList.java
+++ b/src/main/java/dev/plex/admin/AdminList.java
@@ -6,7 +6,9 @@ import dev.morphia.Datastore;
import dev.morphia.query.Query;
import dev.plex.Plex;
import dev.plex.player.PlexPlayer;
+import dev.plex.rank.enums.Rank;
import dev.plex.storage.StorageType;
+
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -14,7 +16,6 @@ import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import java.util.UUID;
-import dev.plex.rank.enums.Rank;
public class AdminList
{
@@ -31,7 +32,6 @@ public class AdminList
admins.remove(uuid);
}
-
public List getAllAdmins()
{
List admins = Lists.newArrayList();
diff --git a/src/main/java/dev/plex/cache/DataUtils.java b/src/main/java/dev/plex/cache/DataUtils.java
index 29d17de..ac18626 100644
--- a/src/main/java/dev/plex/cache/DataUtils.java
+++ b/src/main/java/dev/plex/cache/DataUtils.java
@@ -3,9 +3,10 @@ package dev.plex.cache;
import dev.plex.Plex;
import dev.plex.player.PlexPlayer;
import dev.plex.storage.StorageType;
-import java.util.UUID;
import org.bukkit.Bukkit;
+import java.util.UUID;
+
public class DataUtils
{
/* PLEX PLAYER METHODS */
diff --git a/src/main/java/dev/plex/cache/MongoPlayerData.java b/src/main/java/dev/plex/cache/MongoPlayerData.java
index e03343d..42bbacd 100644
--- a/src/main/java/dev/plex/cache/MongoPlayerData.java
+++ b/src/main/java/dev/plex/cache/MongoPlayerData.java
@@ -7,6 +7,7 @@ import dev.morphia.query.experimental.filters.Filters;
import dev.morphia.query.experimental.updates.UpdateOperators;
import dev.plex.Plex;
import dev.plex.player.PlexPlayer;
+
import java.util.UUID;
public class MongoPlayerData
diff --git a/src/main/java/dev/plex/cache/PlayerCache.java b/src/main/java/dev/plex/cache/PlayerCache.java
index 6b39fa3..8f5f396 100644
--- a/src/main/java/dev/plex/cache/PlayerCache.java
+++ b/src/main/java/dev/plex/cache/PlayerCache.java
@@ -3,6 +3,7 @@ package dev.plex.cache;
import com.google.common.collect.Maps;
import dev.plex.player.PlexPlayer;
import dev.plex.player.PunishedPlayer;
+
import java.util.Map;
import java.util.UUID;
diff --git a/src/main/java/dev/plex/cache/SQLPlayerData.java b/src/main/java/dev/plex/cache/SQLPlayerData.java
index 3925d46..f9ae14a 100644
--- a/src/main/java/dev/plex/cache/SQLPlayerData.java
+++ b/src/main/java/dev/plex/cache/SQLPlayerData.java
@@ -4,6 +4,7 @@ import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;
import dev.plex.Plex;
import dev.plex.player.PlexPlayer;
+
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
diff --git a/src/main/java/dev/plex/command/IPlexCommand.java b/src/main/java/dev/plex/command/IPlexCommand.java
index e5ff3d1..dfea960 100644
--- a/src/main/java/dev/plex/command/IPlexCommand.java
+++ b/src/main/java/dev/plex/command/IPlexCommand.java
@@ -1,6 +1,7 @@
package dev.plex.command;
import dev.plex.command.source.CommandSource;
+
import java.util.List;
public interface IPlexCommand
diff --git a/src/main/java/dev/plex/command/PlexCommand.java b/src/main/java/dev/plex/command/PlexCommand.java
index 5e3900d..aed606d 100644
--- a/src/main/java/dev/plex/command/PlexCommand.java
+++ b/src/main/java/dev/plex/command/PlexCommand.java
@@ -2,6 +2,8 @@ package dev.plex.command;
import com.google.common.collect.ImmutableList;
import dev.plex.Plex;
+import dev.plex.cache.DataUtils;
+import dev.plex.cache.PlayerCache;
import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.exception.CommandArgumentException;
@@ -9,24 +11,19 @@ import dev.plex.command.exception.CommandFailException;
import dev.plex.command.exception.PlayerNotFoundException;
import dev.plex.command.source.CommandSource;
import dev.plex.command.source.RequiredCommandSource;
-import java.util.Arrays;
-import java.util.List;
-import java.util.UUID;
-import dev.plex.cache.DataUtils;
-import dev.plex.cache.PlayerCache;
import dev.plex.player.PlexPlayer;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.World;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandMap;
-import org.bukkit.command.CommandSender;
-import org.bukkit.command.ConsoleCommandSender;
-import org.bukkit.command.TabExecutor;
+import org.bukkit.command.*;
import org.bukkit.entity.Player;
+import java.util.Arrays;
+import java.util.List;
+import java.util.UUID;
+
public abstract class PlexCommand extends Command implements TabExecutor, IPlexCommand
{
protected static Plex plugin = Plex.get();
@@ -55,7 +52,7 @@ public abstract class PlexCommand extends Command implements TabExecutor, IPlexC
this.level = perms.level();
this.commandSource = perms.source();
- getMap().register("", this);
+ getMap().register("plex", this);
}
diff --git a/src/main/java/dev/plex/command/annotation/CommandPermissions.java b/src/main/java/dev/plex/command/annotation/CommandPermissions.java
index bc517e1..b7bd672 100644
--- a/src/main/java/dev/plex/command/annotation/CommandPermissions.java
+++ b/src/main/java/dev/plex/command/annotation/CommandPermissions.java
@@ -1,9 +1,10 @@
package dev.plex.command.annotation;
+import dev.plex.command.source.RequiredCommandSource;
+import dev.plex.rank.enums.Rank;
+
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
-import dev.plex.command.source.RequiredCommandSource;
-import dev.plex.rank.enums.Rank;
@Retention(RetentionPolicy.RUNTIME)
public @interface CommandPermissions
diff --git a/src/main/java/dev/plex/command/impl/AdminCMD.java b/src/main/java/dev/plex/command/impl/AdminCMD.java
index 95aa19a..43eb779 100644
--- a/src/main/java/dev/plex/command/impl/AdminCMD.java
+++ b/src/main/java/dev/plex/command/impl/AdminCMD.java
@@ -1,17 +1,14 @@
package dev.plex.command.impl;
import com.google.common.collect.ImmutableList;
+import dev.plex.cache.DataUtils;
+import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.exception.ConsoleOnlyException;
import dev.plex.command.exception.PlayerNotFoundException;
import dev.plex.command.source.CommandSource;
import dev.plex.command.source.RequiredCommandSource;
-import java.util.Arrays;
-import java.util.List;
-import java.util.UUID;
-import dev.plex.cache.DataUtils;
-import dev.plex.command.PlexCommand;
import dev.plex.event.AdminAddEvent;
import dev.plex.event.AdminRemoveEvent;
import dev.plex.event.AdminSetRankEvent;
@@ -21,6 +18,10 @@ import dev.plex.util.PlexUtils;
import org.apache.commons.lang.StringUtils;
import org.bukkit.Bukkit;
+import java.util.Arrays;
+import java.util.List;
+import java.util.UUID;
+
@CommandPermissions(level = Rank.SENIOR_ADMIN, source = RequiredCommandSource.ANY)
@CommandParameters(usage = "/ [player] [rank]", aliases = "saconfig,slconfig,adminconfig,adminmanage", description = "Manage all admins")
public class AdminCMD extends PlexCommand
@@ -51,6 +52,7 @@ public class AdminCMD extends PlexCommand
if (!sender.isConsoleSender())
{
+ sender.send(tl("consoleOnly"));
throw new ConsoleOnlyException();
}
@@ -165,7 +167,6 @@ public class AdminCMD extends PlexCommand
}
sender.send("Admins: " + StringUtils.join(plugin.getAdminList().getAllAdmins(), ", "));
- return;
}
}
diff --git a/src/main/java/dev/plex/command/impl/AdminworldCMD.java b/src/main/java/dev/plex/command/impl/AdminworldCMD.java
index a5888a0..217e63f 100644
--- a/src/main/java/dev/plex/command/impl/AdminworldCMD.java
+++ b/src/main/java/dev/plex/command/impl/AdminworldCMD.java
@@ -1,24 +1,17 @@
package dev.plex.command.impl;
+import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
-import dev.plex.command.exception.CommandFailException;
import dev.plex.command.source.CommandSource;
import dev.plex.command.source.RequiredCommandSource;
-import io.papermc.lib.PaperLib;
+import dev.plex.rank.enums.Rank;
+import org.bukkit.Bukkit;
+import org.bukkit.Location;
+
import java.util.Collections;
import java.util.List;
-import com.google.common.collect.ImmutableList;
-import dev.plex.command.PlexCommand;
-import dev.plex.rank.enums.Rank;
-import dev.plex.util.PlexUtils;
-import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
-import org.bukkit.GameMode;
-import org.bukkit.Location;
-import org.bukkit.entity.Player;
-
@CommandPermissions(level = Rank.ADMIN, source = RequiredCommandSource.IN_GAME)
@CommandParameters(aliases = "aw", description = "Teleport to the adminworld")
public class AdminworldCMD extends PlexCommand
@@ -35,7 +28,7 @@ public class AdminworldCMD extends PlexCommand
if (args.length == 0)
{
Location loc = new Location(Bukkit.getWorld("adminworld"), 0, 50, 0);
- PaperLib.teleportAsync(sender.getPlayer(), loc);
+ sender.getPlayer().teleportAsync(loc);
send(tl("teleportedToWorld", "adminworld"));
}
}
diff --git a/src/main/java/dev/plex/command/impl/AdventureCMD.java b/src/main/java/dev/plex/command/impl/AdventureCMD.java
index cef8436..a9a56f4 100644
--- a/src/main/java/dev/plex/command/impl/AdventureCMD.java
+++ b/src/main/java/dev/plex/command/impl/AdventureCMD.java
@@ -1,20 +1,20 @@
package dev.plex.command.impl;
+import com.google.common.collect.ImmutableList;
+import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.exception.CommandFailException;
import dev.plex.command.source.CommandSource;
import dev.plex.command.source.RequiredCommandSource;
-import java.util.List;
-
-import com.google.common.collect.ImmutableList;
-import dev.plex.command.PlexCommand;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.entity.Player;
+import java.util.List;
+
@CommandPermissions(level = Rank.OP, source = RequiredCommandSource.ANY)
@CommandParameters(aliases = "gma", description = "Set your own or another player's gamemode to adventure mode")
public class AdventureCMD extends PlexCommand
diff --git a/src/main/java/dev/plex/command/impl/BanCMD.java b/src/main/java/dev/plex/command/impl/BanCMD.java
index 7a4befe..76a4609 100644
--- a/src/main/java/dev/plex/command/impl/BanCMD.java
+++ b/src/main/java/dev/plex/command/impl/BanCMD.java
@@ -1,18 +1,18 @@
package dev.plex.command.impl;
import com.google.common.collect.ImmutableList;
+import dev.plex.cache.DataUtils;
+import dev.plex.cache.PlayerCache;
+import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.exception.PlayerNotFoundException;
import dev.plex.command.source.CommandSource;
import dev.plex.command.source.RequiredCommandSource;
-import dev.plex.punishment.Punishment;
-import dev.plex.punishment.PunishmentType;
-import dev.plex.cache.DataUtils;
-import dev.plex.cache.PlayerCache;
-import dev.plex.command.PlexCommand;
import dev.plex.player.PlexPlayer;
import dev.plex.player.PunishedPlayer;
+import dev.plex.punishment.Punishment;
+import dev.plex.punishment.PunishmentType;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
import org.bukkit.Bukkit;
diff --git a/src/main/java/dev/plex/command/impl/CreativeCMD.java b/src/main/java/dev/plex/command/impl/CreativeCMD.java
index 22fbbe9..83dbd26 100644
--- a/src/main/java/dev/plex/command/impl/CreativeCMD.java
+++ b/src/main/java/dev/plex/command/impl/CreativeCMD.java
@@ -1,20 +1,20 @@
package dev.plex.command.impl;
+import com.google.common.collect.ImmutableList;
+import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.exception.CommandFailException;
import dev.plex.command.source.CommandSource;
import dev.plex.command.source.RequiredCommandSource;
-import java.util.List;
-
-import com.google.common.collect.ImmutableList;
-import dev.plex.command.PlexCommand;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.entity.Player;
+import java.util.List;
+
@CommandPermissions(level = Rank.OP, source = RequiredCommandSource.ANY)
@CommandParameters(aliases = "gmc", description = "Set your own or another player's gamemode to creative mode")
public class CreativeCMD extends PlexCommand
diff --git a/src/main/java/dev/plex/command/impl/FionnCMD.java b/src/main/java/dev/plex/command/impl/FionnCMD.java
index d5e3671..9341b7d 100644
--- a/src/main/java/dev/plex/command/impl/FionnCMD.java
+++ b/src/main/java/dev/plex/command/impl/FionnCMD.java
@@ -1,33 +1,26 @@
package dev.plex.command.impl;
import com.google.common.collect.ImmutableList;
+import dev.plex.cache.PlayerCache;
+import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.exception.CommandArgumentException;
import dev.plex.command.exception.CommandFailException;
import dev.plex.command.source.CommandSource;
import dev.plex.command.source.RequiredCommandSource;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import dev.plex.cache.PlayerCache;
-import dev.plex.command.PlexCommand;
import dev.plex.util.PlexUtils;
import dev.plex.world.BlockMapChunkGenerator;
import dev.plex.world.CustomWorld;
-import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
-import org.bukkit.Location;
-import org.bukkit.Material;
-import org.bukkit.World;
+import org.bukkit.*;
import org.bukkit.entity.Enderman;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.entity.Strider;
import org.bukkit.scheduler.BukkitRunnable;
+import java.util.*;
+
@CommandParameters(description = "Subliminal message.")
@CommandPermissions(source = RequiredCommandSource.IN_GAME)
public class FionnCMD extends PlexCommand
diff --git a/src/main/java/dev/plex/command/impl/FlatlandsCMD.java b/src/main/java/dev/plex/command/impl/FlatlandsCMD.java
index ce23b87..b30b120 100644
--- a/src/main/java/dev/plex/command/impl/FlatlandsCMD.java
+++ b/src/main/java/dev/plex/command/impl/FlatlandsCMD.java
@@ -1,24 +1,17 @@
package dev.plex.command.impl;
+import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
-import dev.plex.command.exception.CommandFailException;
import dev.plex.command.source.CommandSource;
import dev.plex.command.source.RequiredCommandSource;
-import io.papermc.lib.PaperLib;
+import dev.plex.rank.enums.Rank;
+import org.bukkit.Bukkit;
+import org.bukkit.Location;
+
import java.util.Collections;
import java.util.List;
-import com.google.common.collect.ImmutableList;
-import dev.plex.command.PlexCommand;
-import dev.plex.rank.enums.Rank;
-import dev.plex.util.PlexUtils;
-import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
-import org.bukkit.GameMode;
-import org.bukkit.Location;
-import org.bukkit.entity.Player;
-
@CommandPermissions(level = Rank.ADMIN, source = RequiredCommandSource.IN_GAME)
@CommandParameters(description = "Teleport to the flatlands")
public class FlatlandsCMD extends PlexCommand
@@ -34,7 +27,7 @@ public class FlatlandsCMD extends PlexCommand
if (args.length == 0)
{
Location loc = new Location(Bukkit.getWorld("flatlands"), 0, 50, 0);
- PaperLib.teleportAsync(sender.getPlayer(), loc);
+ sender.getPlayer().teleportAsync(loc);
send(tl("teleportedToWorld", "flatlands"));
}
}
diff --git a/src/main/java/dev/plex/command/impl/FreezeCMD.java b/src/main/java/dev/plex/command/impl/FreezeCMD.java
index 8dc12f9..3019dff 100644
--- a/src/main/java/dev/plex/command/impl/FreezeCMD.java
+++ b/src/main/java/dev/plex/command/impl/FreezeCMD.java
@@ -1,25 +1,24 @@
package dev.plex.command.impl;
import com.google.common.collect.ImmutableList;
-
+import dev.plex.cache.PlayerCache;
+import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.exception.CommandArgumentException;
import dev.plex.command.source.CommandSource;
+import dev.plex.player.PunishedPlayer;
import dev.plex.punishment.Punishment;
import dev.plex.punishment.PunishmentType;
+import dev.plex.rank.enums.Rank;
+import dev.plex.util.PlexUtils;
+import org.bukkit.entity.Player;
+
import java.time.Instant;
import java.util.Date;
import java.util.List;
import java.util.UUID;
-import dev.plex.cache.PlayerCache;
-import dev.plex.command.PlexCommand;
-import dev.plex.player.PunishedPlayer;
-import dev.plex.rank.enums.Rank;
-import dev.plex.util.PlexUtils;
-import org.bukkit.entity.Player;
-
@CommandParameters(description = "Freeze a player on the server", usage = "/ ")
@CommandPermissions(level = Rank.ADMIN)
public class FreezeCMD extends PlexCommand
diff --git a/src/main/java/dev/plex/command/impl/MasterbuilderworldCMD.java b/src/main/java/dev/plex/command/impl/MasterbuilderworldCMD.java
index 4ddc724..07a2569 100644
--- a/src/main/java/dev/plex/command/impl/MasterbuilderworldCMD.java
+++ b/src/main/java/dev/plex/command/impl/MasterbuilderworldCMD.java
@@ -1,24 +1,17 @@
package dev.plex.command.impl;
+import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
-import dev.plex.command.exception.CommandFailException;
import dev.plex.command.source.CommandSource;
import dev.plex.command.source.RequiredCommandSource;
-import io.papermc.lib.PaperLib;
+import dev.plex.rank.enums.Rank;
+import org.bukkit.Bukkit;
+import org.bukkit.Location;
+
import java.util.Collections;
import java.util.List;
-import com.google.common.collect.ImmutableList;
-import dev.plex.command.PlexCommand;
-import dev.plex.rank.enums.Rank;
-import dev.plex.util.PlexUtils;
-import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
-import org.bukkit.GameMode;
-import org.bukkit.Location;
-import org.bukkit.entity.Player;
-
@CommandPermissions(level = Rank.ADMIN, source = RequiredCommandSource.IN_GAME)
@CommandParameters(aliases = "mbw", description = "Teleport to the Master Builder world")
public class MasterbuilderworldCMD extends PlexCommand
@@ -35,7 +28,7 @@ public class MasterbuilderworldCMD extends PlexCommand
if (args.length == 0)
{
Location loc = new Location(Bukkit.getWorld("masterbuilderworld"), 0, 50, 0);
- PaperLib.teleportAsync(sender.getPlayer(), loc);
+ sender.getPlayer().teleportAsync(loc);
send(tl("teleportedToWorld", "Master Builder world"));
}
}
diff --git a/src/main/java/dev/plex/command/impl/NameHistoryCMD.java b/src/main/java/dev/plex/command/impl/NameHistoryCMD.java
index 9f4f861..88ad3f2 100644
--- a/src/main/java/dev/plex/command/impl/NameHistoryCMD.java
+++ b/src/main/java/dev/plex/command/impl/NameHistoryCMD.java
@@ -1,21 +1,22 @@
package dev.plex.command.impl;
import com.google.common.collect.ImmutableList;
+import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.exception.CommandArgumentException;
import dev.plex.command.source.CommandSource;
-import java.io.IOException;
-import java.text.SimpleDateFormat;
-import java.util.Comparator;
-import java.util.List;
-import dev.plex.command.PlexCommand;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.ParseException;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Comparator;
+import java.util.List;
+
@CommandParameters(description = "Get the name history of a player", usage = "/ ", aliases = "nh")
@CommandPermissions(level = Rank.OP)
public class NameHistoryCMD extends PlexCommand
diff --git a/src/main/java/dev/plex/command/impl/OpAllCMD.java b/src/main/java/dev/plex/command/impl/OpAllCMD.java
index 7a4b94c..43bacd1 100644
--- a/src/main/java/dev/plex/command/impl/OpAllCMD.java
+++ b/src/main/java/dev/plex/command/impl/OpAllCMD.java
@@ -1,16 +1,17 @@
package dev.plex.command.impl;
import com.google.common.collect.ImmutableList;
+import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.source.CommandSource;
-import java.util.List;
-import dev.plex.command.PlexCommand;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
+import java.util.List;
+
@CommandParameters(description = "Op everyone on the server", aliases = "opa")
@CommandPermissions(level = Rank.ADMIN)
public class OpAllCMD extends PlexCommand
diff --git a/src/main/java/dev/plex/command/impl/OpCMD.java b/src/main/java/dev/plex/command/impl/OpCMD.java
index 13a50ba..06bb5a1 100644
--- a/src/main/java/dev/plex/command/impl/OpCMD.java
+++ b/src/main/java/dev/plex/command/impl/OpCMD.java
@@ -1,16 +1,17 @@
package dev.plex.command.impl;
import com.google.common.collect.ImmutableList;
+import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.exception.CommandArgumentException;
import dev.plex.command.source.CommandSource;
-import java.util.List;
-import dev.plex.command.PlexCommand;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
import org.bukkit.entity.Player;
+import java.util.List;
+
@CommandParameters(description = "Op a player on the server", usage = "/ ")
@CommandPermissions(level = Rank.OP)
public class OpCMD extends PlexCommand
diff --git a/src/main/java/dev/plex/command/impl/PlexCMD.java b/src/main/java/dev/plex/command/impl/PlexCMD.java
index 3d505b6..b859867 100644
--- a/src/main/java/dev/plex/command/impl/PlexCMD.java
+++ b/src/main/java/dev/plex/command/impl/PlexCMD.java
@@ -1,35 +1,53 @@
package dev.plex.command.impl;
import dev.plex.Plex;
+import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
+import dev.plex.command.exception.CommandArgumentException;
import dev.plex.command.source.CommandSource;
import dev.plex.command.source.RequiredCommandSource;
-import java.util.Arrays;
-import java.util.List;
-import dev.plex.command.PlexCommand;
import dev.plex.rank.enums.Rank;
import org.bukkit.ChatColor;
+import java.util.Arrays;
+import java.util.List;
+
@CommandPermissions(level = Rank.OP, source = RequiredCommandSource.ANY)
-@CommandParameters(aliases = "plexhelp", description = "Help with plex")
-public class PlexCMD extends PlexCommand
-{
- public PlexCMD()
- {
+@CommandParameters(usage = "/ [reload]", aliases = "plexhelp", description = "Show information about Plex or reload it")
+public class PlexCMD extends PlexCommand {
+ public PlexCMD() {
super("plex");
}
@Override
- public void execute(CommandSource sender, String[] args)
- {
- send(ChatColor.LIGHT_PURPLE + "Plex. The long awaited TotalFreedomMod rewrite starts here...");
- send(ChatColor.LIGHT_PURPLE + "Plugin version: " + ChatColor.GOLD + "1.0");
+ public void execute(CommandSource sender, String[] args) {
+ if (args.length == 0) {
+ send(ChatColor.LIGHT_PURPLE + "Plex. The long awaited TotalFreedomMod rewrite starts here...");
+ send(ChatColor.LIGHT_PURPLE + "Plugin version: " + ChatColor.GOLD + "1.0");
+ return;
+ }
+ if (args[0].equals("reload"))
+ {
+ if (!plugin.getRankManager().isSeniorAdmin(sender.getPlexPlayer()))
+ {
+ send(tl("noPermission"));
+ return;
+ }
+ Plex.get().config.load();
+ send("Reloaded config file");
+ Plex.get().messages.load();
+ send("Reloaded messages file");
+ Plex.get().getRankManager().importDefaultRanks();
+ send("Imported ranks");
+ send("Plex successfully reloaded.");
+ } else {
+ throw new CommandArgumentException();
+ }
}
@Override
- public List onTabComplete(CommandSource sender, String[] args)
- {
- return Arrays.asList("Telesphoreo", "super", "Taahh");
+ public List onTabComplete(CommandSource sender, String[] args) {
+ return List.of("reload");
}
}
\ No newline at end of file
diff --git a/src/main/java/dev/plex/command/impl/PunishmentsCMD.java b/src/main/java/dev/plex/command/impl/PunishmentsCMD.java
index da98765..c09f9b4 100644
--- a/src/main/java/dev/plex/command/impl/PunishmentsCMD.java
+++ b/src/main/java/dev/plex/command/impl/PunishmentsCMD.java
@@ -1,11 +1,11 @@
package dev.plex.command.impl;
import com.google.common.collect.ImmutableList;
+import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.source.CommandSource;
import dev.plex.command.source.RequiredCommandSource;
-import dev.plex.command.PlexCommand;
import dev.plex.menu.PunishmentMenu;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
diff --git a/src/main/java/dev/plex/command/impl/RankCMD.java b/src/main/java/dev/plex/command/impl/RankCMD.java
new file mode 100644
index 0000000..13d30d7
--- /dev/null
+++ b/src/main/java/dev/plex/command/impl/RankCMD.java
@@ -0,0 +1,30 @@
+package dev.plex.command.impl;
+
+import dev.plex.command.PlexCommand;
+import dev.plex.command.annotation.CommandParameters;
+import dev.plex.command.annotation.CommandPermissions;
+import dev.plex.command.source.CommandSource;
+import dev.plex.command.source.RequiredCommandSource;
+import dev.plex.rank.enums.Rank;
+
+import java.util.List;
+
+// TODO: See ranks of other players
+
+@CommandPermissions(level = Rank.OP, source = RequiredCommandSource.IN_GAME)
+@CommandParameters(description = "Displays your rank")
+public class RankCMD extends PlexCommand {
+ public RankCMD() {
+ super("rank");
+ }
+
+ @Override
+ public void execute(CommandSource sender, String[] args) {
+ send(tl("yourRank", sender.getPlexPlayer().getRank()));
+ }
+
+ @Override
+ public List onTabComplete(CommandSource sender, String[] args) {
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/dev/plex/command/impl/SpectatorCMD.java b/src/main/java/dev/plex/command/impl/SpectatorCMD.java
index 26396d0..fa493f1 100644
--- a/src/main/java/dev/plex/command/impl/SpectatorCMD.java
+++ b/src/main/java/dev/plex/command/impl/SpectatorCMD.java
@@ -1,20 +1,20 @@
package dev.plex.command.impl;
+import com.google.common.collect.ImmutableList;
+import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.exception.CommandFailException;
import dev.plex.command.source.CommandSource;
import dev.plex.command.source.RequiredCommandSource;
-import java.util.List;
-
-import com.google.common.collect.ImmutableList;
-import dev.plex.command.PlexCommand;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.entity.Player;
+import java.util.List;
+
@CommandPermissions(level = Rank.ADMIN, source = RequiredCommandSource.ANY)
@CommandParameters(aliases = "gmsp", description = "Set your own or another player's gamemode to spectator mode")
public class SpectatorCMD extends PlexCommand
diff --git a/src/main/java/dev/plex/command/impl/SurvivalCMD.java b/src/main/java/dev/plex/command/impl/SurvivalCMD.java
index 792a782..a490749 100644
--- a/src/main/java/dev/plex/command/impl/SurvivalCMD.java
+++ b/src/main/java/dev/plex/command/impl/SurvivalCMD.java
@@ -1,20 +1,20 @@
package dev.plex.command.impl;
+import com.google.common.collect.ImmutableList;
+import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.exception.CommandFailException;
import dev.plex.command.source.CommandSource;
import dev.plex.command.source.RequiredCommandSource;
-import java.util.List;
-
-import com.google.common.collect.ImmutableList;
-import dev.plex.command.PlexCommand;
import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexUtils;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.entity.Player;
+import java.util.List;
+
@CommandPermissions(level = Rank.OP, source = RequiredCommandSource.ANY)
@CommandParameters(aliases = "gms", description = "Set your own or another player's gamemode to survival mode")
public class SurvivalCMD extends PlexCommand
diff --git a/src/main/java/dev/plex/command/impl/TestCMD.java b/src/main/java/dev/plex/command/impl/TestCMD.java
index e7be2dd..4683859 100644
--- a/src/main/java/dev/plex/command/impl/TestCMD.java
+++ b/src/main/java/dev/plex/command/impl/TestCMD.java
@@ -1,14 +1,15 @@
package dev.plex.command.impl;
import com.google.common.collect.ImmutableList;
+import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.source.CommandSource;
import dev.plex.command.source.RequiredCommandSource;
+import dev.plex.rank.enums.Rank;
+
import java.util.Arrays;
import java.util.List;
-import dev.plex.command.PlexCommand;
-import dev.plex.rank.enums.Rank;
@CommandPermissions(level = Rank.OP, source = RequiredCommandSource.ANY)
@CommandParameters(aliases = "tst,tast", description = "HELLO")
diff --git a/src/main/java/dev/plex/command/impl/WorldCMD.java b/src/main/java/dev/plex/command/impl/WorldCMD.java
index 431c064..a1f46f9 100644
--- a/src/main/java/dev/plex/command/impl/WorldCMD.java
+++ b/src/main/java/dev/plex/command/impl/WorldCMD.java
@@ -1,19 +1,20 @@
package dev.plex.command.impl;
import com.google.common.collect.ImmutableList;
+import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.exception.CommandArgumentException;
import dev.plex.command.source.CommandSource;
import dev.plex.command.source.RequiredCommandSource;
-import java.util.ArrayList;
-import java.util.List;
-import dev.plex.command.PlexCommand;
import dev.plex.rank.enums.Rank;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
+import java.util.ArrayList;
+import java.util.List;
+
@CommandPermissions(level = Rank.OP, source = RequiredCommandSource.IN_GAME)
@CommandParameters(description = "Teleport to a world.", usage = "/ ")
public class WorldCMD extends PlexCommand
diff --git a/src/main/java/dev/plex/command/source/CommandSource.java b/src/main/java/dev/plex/command/source/CommandSource.java
index 48d727c..b320056 100644
--- a/src/main/java/dev/plex/command/source/CommandSource.java
+++ b/src/main/java/dev/plex/command/source/CommandSource.java
@@ -1,8 +1,8 @@
package dev.plex.command.source;
-import lombok.Getter;
import dev.plex.cache.PlayerCache;
import dev.plex.player.PlexPlayer;
+import lombok.Getter;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
diff --git a/src/main/java/dev/plex/config/Config.java b/src/main/java/dev/plex/config/Config.java
index 9f940d4..3ef4ae6 100644
--- a/src/main/java/dev/plex/config/Config.java
+++ b/src/main/java/dev/plex/config/Config.java
@@ -1,9 +1,10 @@
package dev.plex.config;
import dev.plex.Plex;
-import java.io.File;
import org.bukkit.configuration.file.YamlConfiguration;
+import java.io.File;
+
public class Config extends YamlConfiguration
{
private Plex plugin;
diff --git a/src/main/java/dev/plex/event/PunishedPlayerEvent.java b/src/main/java/dev/plex/event/PunishedPlayerEvent.java
index 89a277b..73646f5 100644
--- a/src/main/java/dev/plex/event/PunishedPlayerEvent.java
+++ b/src/main/java/dev/plex/event/PunishedPlayerEvent.java
@@ -1,13 +1,14 @@
package dev.plex.event;
import dev.plex.player.PunishedPlayer;
-import java.util.UUID;
import lombok.Getter;
import lombok.Setter;
import org.bukkit.Bukkit;
import org.bukkit.event.Cancellable;
import org.bukkit.event.player.PlayerEvent;
+import java.util.UUID;
+
@Getter
public abstract class PunishedPlayerEvent extends PlayerEvent implements Cancellable
{
diff --git a/src/main/java/dev/plex/handlers/CommandHandler.java b/src/main/java/dev/plex/handlers/CommandHandler.java
index 75bc118..23601be 100644
--- a/src/main/java/dev/plex/handlers/CommandHandler.java
+++ b/src/main/java/dev/plex/handlers/CommandHandler.java
@@ -1,51 +1,36 @@
package dev.plex.handlers;
import com.google.common.collect.Lists;
-import dev.plex.command.impl.AdminCMD;
-import dev.plex.command.impl.AdminworldCMD;
-import dev.plex.command.impl.AdventureCMD;
-import dev.plex.command.impl.BanCMD;
-import dev.plex.command.impl.CreativeCMD;
-import dev.plex.command.impl.FionnCMD;
-import dev.plex.command.impl.FlatlandsCMD;
-import dev.plex.command.impl.FreezeCMD;
-import dev.plex.command.impl.MasterbuilderworldCMD;
-import dev.plex.command.impl.NameHistoryCMD;
-import dev.plex.command.impl.OpAllCMD;
-import dev.plex.command.impl.OpCMD;
-import dev.plex.command.impl.PlexCMD;
-import dev.plex.command.impl.PunishmentsCMD;
-import dev.plex.command.impl.SpectatorCMD;
-import dev.plex.command.impl.SurvivalCMD;
-import dev.plex.command.impl.TestCMD;
-import dev.plex.command.impl.WorldCMD;
-import java.util.List;
import dev.plex.command.PlexCommand;
+import dev.plex.command.impl.*;
import dev.plex.util.PlexLog;
+import java.util.List;
+
public class CommandHandler
{
public CommandHandler()
{
List commands = Lists.newArrayList();
- commands.add(new TestCMD());
- commands.add(new PlexCMD());
+ commands.add(new AdminCMD());
+ commands.add(new AdminworldCMD());
+ commands.add(new AdventureCMD());
+ commands.add(new BanCMD());
+ commands.add(new CreativeCMD());
commands.add(new FionnCMD());
- commands.add(new WorldCMD());
+ commands.add(new FlatlandsCMD());
+ commands.add(new FreezeCMD());
+ commands.add(new MasterbuilderworldCMD());
+ commands.add(new NameHistoryCMD());
commands.add(new OpAllCMD());
commands.add(new OpCMD());
- commands.add(new FreezeCMD());
- commands.add(new NameHistoryCMD());
- commands.add(new AdminCMD());
- commands.add(new AdventureCMD());
- commands.add(new CreativeCMD());
- commands.add(new SurvivalCMD());
- commands.add(new SpectatorCMD());
- commands.add(new BanCMD());
+ commands.add(new PlexCMD());
commands.add(new PunishmentsCMD());
- commands.add(new FlatlandsCMD());
- commands.add(new AdminworldCMD());
- commands.add(new MasterbuilderworldCMD());
+ commands.add(new RankCMD());
+ commands.add(new SpectatorCMD());
+ commands.add(new SurvivalCMD());
+ commands.add(new TestCMD());
+ commands.add(new WorldCMD());
PlexLog.log(String.format("Registered %s commands!", commands.size()));
}
}
diff --git a/src/main/java/dev/plex/handlers/ListenerHandler.java b/src/main/java/dev/plex/handlers/ListenerHandler.java
index 4aa3888..a236d5f 100644
--- a/src/main/java/dev/plex/handlers/ListenerHandler.java
+++ b/src/main/java/dev/plex/handlers/ListenerHandler.java
@@ -1,17 +1,12 @@
package dev.plex.handlers;
import com.google.common.collect.Lists;
-import dev.plex.listener.impl.AdminListener;
-import dev.plex.listener.impl.ChatListener;
-import dev.plex.listener.impl.FreezeListener;
-import dev.plex.listener.impl.LoginListener;
-import dev.plex.listener.impl.PlayerListener;
-import dev.plex.listener.impl.ServerListener;
-import dev.plex.listener.impl.WorldListener;
-import java.util.List;
import dev.plex.listener.PlexListener;
+import dev.plex.listener.impl.*;
import dev.plex.util.PlexLog;
+import java.util.List;
+
public class ListenerHandler
{
public ListenerHandler()
diff --git a/src/main/java/dev/plex/listener/impl/AdminListener.java b/src/main/java/dev/plex/listener/impl/AdminListener.java
index e00f201..ef88bf5 100644
--- a/src/main/java/dev/plex/listener/impl/AdminListener.java
+++ b/src/main/java/dev/plex/listener/impl/AdminListener.java
@@ -6,11 +6,11 @@ import dev.plex.event.AdminSetRankEvent;
import dev.plex.listener.PlexListener;
import dev.plex.player.PlexPlayer;
import dev.plex.rank.enums.Rank;
-import static dev.plex.util.PlexUtils.tl;
import dev.plex.util.PlexUtils;
-import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
+import static dev.plex.util.PlexUtils.tl;
+
public class AdminListener extends PlexListener
{
@EventHandler
diff --git a/src/main/java/dev/plex/listener/impl/LoginListener.java b/src/main/java/dev/plex/listener/impl/LoginListener.java
index 8b8fbde..3b95e4e 100644
--- a/src/main/java/dev/plex/listener/impl/LoginListener.java
+++ b/src/main/java/dev/plex/listener/impl/LoginListener.java
@@ -12,7 +12,7 @@ public class LoginListener extends PlexListener
@EventHandler
public void onPreLogin(AsyncPlayerPreLoginEvent event)
{
- PlexLog.log(String.valueOf(plugin.getBanManager().isBanned(event.getUniqueId())));
+ // PlexLog.log(String.valueOf(plugin.getBanManager().isBanned(event.getUniqueId())));
if (plugin.getBanManager().isBanned(event.getUniqueId()))
{
event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_BANNED, "§cYou're currently banned from this server.\n§cPlease appeal at §6https://forum.telesphoreo.me");
diff --git a/src/main/java/dev/plex/listener/impl/PlayerListener.java b/src/main/java/dev/plex/listener/impl/PlayerListener.java
index 2ce9811..c2472fc 100644
--- a/src/main/java/dev/plex/listener/impl/PlayerListener.java
+++ b/src/main/java/dev/plex/listener/impl/PlayerListener.java
@@ -1,7 +1,5 @@
package dev.plex.listener.impl;
-import java.util.Arrays;
-import java.util.UUID;
import dev.plex.admin.Admin;
import dev.plex.cache.DataUtils;
import dev.plex.cache.MongoPlayerData;
@@ -20,6 +18,9 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
+import java.util.Arrays;
+import java.util.UUID;
+
public class PlayerListener extends PlexListener
{
private final MongoPlayerData mongoPlayerData = plugin.getMongoPlayerData() != null ? plugin.getMongoPlayerData() : null;
@@ -35,7 +36,7 @@ public class PlayerListener extends PlexListener
if (!DataUtils.hasPlayedBefore(player.getUniqueId()))
{
- PlexLog.log("AYO THIS MAN DONT EXIST"); // funi msg
+ PlexLog.log("A player with this name has not joined the server before, creating new entry."); // funi msg
plexPlayer = new PlexPlayer(player.getUniqueId()); //it doesn't! okay so now create the object
plexPlayer.setName(player.getName()); //set the name of the player
plexPlayer.setIps(Arrays.asList(player.getAddress().getAddress().getHostAddress().trim())); //set the arraylist of ips
diff --git a/src/main/java/dev/plex/listener/impl/WorldListener.java b/src/main/java/dev/plex/listener/impl/WorldListener.java
index 4ace4aa..e781321 100644
--- a/src/main/java/dev/plex/listener/impl/WorldListener.java
+++ b/src/main/java/dev/plex/listener/impl/WorldListener.java
@@ -10,6 +10,7 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.entity.EntitySpawnEvent;
+
import static dev.plex.util.PlexUtils.tl;
public class WorldListener extends PlexListener
diff --git a/src/main/java/dev/plex/player/PlexPlayer.java b/src/main/java/dev/plex/player/PlexPlayer.java
index adf519f..5e69302 100644
--- a/src/main/java/dev/plex/player/PlexPlayer.java
+++ b/src/main/java/dev/plex/player/PlexPlayer.java
@@ -4,16 +4,17 @@ import dev.morphia.annotations.Entity;
import dev.morphia.annotations.Id;
import dev.morphia.annotations.IndexOptions;
import dev.morphia.annotations.Indexed;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
+import dev.plex.rank.enums.Rank;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
-import dev.plex.rank.enums.Rank;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
@Getter
@Setter
@Entity(value = "players", useDiscriminator = false)
diff --git a/src/main/java/dev/plex/player/PunishedPlayer.java b/src/main/java/dev/plex/player/PunishedPlayer.java
index 3d5a604..66fed36 100644
--- a/src/main/java/dev/plex/player/PunishedPlayer.java
+++ b/src/main/java/dev/plex/player/PunishedPlayer.java
@@ -1,7 +1,18 @@
package dev.plex.player;
+import com.google.common.collect.Lists;
import dev.plex.Plex;
+import dev.plex.event.PunishedPlayerFreezeEvent;
+import dev.plex.event.PunishedPlayerMuteEvent;
import dev.plex.punishment.Punishment;
+import lombok.AccessLevel;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.io.FileUtils;
+import org.bukkit.Bukkit;
+import org.json.JSONObject;
+import org.json.JSONTokener;
+
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -10,17 +21,6 @@ import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.UUID;
-import com.google.common.collect.Lists;
-import lombok.AccessLevel;
-import lombok.Getter;
-import lombok.Setter;
-import dev.plex.event.PunishedPlayerFreezeEvent;
-import dev.plex.event.PunishedPlayerMuteEvent;
-import org.apache.commons.io.FileUtils;
-import org.bukkit.Bukkit;
-import org.json.JSONObject;
-import org.json.JSONTokener;
-
@Getter
public class PunishedPlayer
{
diff --git a/src/main/java/dev/plex/rank/DefaultRankObj.java b/src/main/java/dev/plex/rank/DefaultRankObj.java
index 2bddcce..ca72a9b 100644
--- a/src/main/java/dev/plex/rank/DefaultRankObj.java
+++ b/src/main/java/dev/plex/rank/DefaultRankObj.java
@@ -2,9 +2,10 @@ package dev.plex.rank;
import com.google.common.collect.Lists;
import dev.plex.rank.enums.Rank;
-import java.util.List;
import lombok.Getter;
+import java.util.List;
+
@Getter
public class DefaultRankObj
{
diff --git a/src/main/java/dev/plex/rank/RankManager.java b/src/main/java/dev/plex/rank/RankManager.java
index 19c4f60..fc838f5 100644
--- a/src/main/java/dev/plex/rank/RankManager.java
+++ b/src/main/java/dev/plex/rank/RankManager.java
@@ -3,16 +3,17 @@ package dev.plex.rank;
import com.google.common.collect.Maps;
import dev.plex.Plex;
import dev.plex.player.PlexPlayer;
+import dev.plex.rank.enums.Rank;
import dev.plex.util.PlexLog;
+import org.json.JSONObject;
+import org.json.JSONTokener;
+
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Map;
import java.util.stream.Collectors;
-import dev.plex.rank.enums.Rank;
-import org.json.JSONObject;
-import org.json.JSONTokener;
public class RankManager
{
@@ -99,4 +100,9 @@ public class RankManager
{
return !plexPlayer.getRank().isEmpty() && plexPlayer.getRankFromString().isAtLeast(Rank.ADMIN);
}
+
+ public boolean isSeniorAdmin(PlexPlayer plexPlayer)
+ {
+ return !plexPlayer.getRank().isEmpty() && plexPlayer.getRankFromString().isAtLeast(Rank.SENIOR_ADMIN);
+ }
}
diff --git a/src/main/java/dev/plex/rank/enums/Rank.java b/src/main/java/dev/plex/rank/enums/Rank.java
index 88b805c..d605b9c 100644
--- a/src/main/java/dev/plex/rank/enums/Rank.java
+++ b/src/main/java/dev/plex/rank/enums/Rank.java
@@ -1,9 +1,10 @@
package dev.plex.rank.enums;
import com.google.common.collect.Lists;
-import java.util.List;
import org.bukkit.ChatColor;
+import java.util.List;
+
public enum Rank
{
IMPOSTOR(-1, ChatColor.AQUA + "an " + ChatColor.YELLOW + "Impostor", ChatColor.YELLOW + "[Imp]"),
diff --git a/src/main/java/dev/plex/services/AbstractService.java b/src/main/java/dev/plex/services/AbstractService.java
index 4a3add7..a2ef236 100644
--- a/src/main/java/dev/plex/services/AbstractService.java
+++ b/src/main/java/dev/plex/services/AbstractService.java
@@ -2,14 +2,19 @@ package dev.plex.services;
public abstract class AbstractService implements IService
{
-
private boolean asynchronous;
+ private boolean repeating;
- public AbstractService(boolean async)
+ public AbstractService(boolean repeating, boolean async)
{
+ this.repeating = repeating;
this.asynchronous = async;
}
+ public boolean isRepeating() {
+ return repeating;
+ }
+
public boolean isAsynchronous() {
return asynchronous;
}
diff --git a/src/main/java/dev/plex/services/IService.java b/src/main/java/dev/plex/services/IService.java
index dfbe5ff..b7d8e65 100644
--- a/src/main/java/dev/plex/services/IService.java
+++ b/src/main/java/dev/plex/services/IService.java
@@ -2,7 +2,6 @@ package dev.plex.services;
public interface IService
{
-
void run();
int repeatInSeconds();
diff --git a/src/main/java/dev/plex/services/ServiceManager.java b/src/main/java/dev/plex/services/ServiceManager.java
index e9eff9b..42922ce 100644
--- a/src/main/java/dev/plex/services/ServiceManager.java
+++ b/src/main/java/dev/plex/services/ServiceManager.java
@@ -3,42 +3,36 @@ package dev.plex.services;
import com.google.common.collect.Lists;
import dev.plex.Plex;
import dev.plex.services.impl.BanService;
+import dev.plex.services.impl.GameruleService;
import org.bukkit.Bukkit;
import java.util.List;
-public class ServiceManager
-{
-
+public class ServiceManager {
private final List services = Lists.newArrayList();
- public ServiceManager()
- {
+ public ServiceManager() {
registerService(new BanService());
+ registerService(new GameruleService());
}
- public void startServices()
- {
- for (AbstractService service : services)
- {
- if (service.isAsynchronous())
- {
+ public void startServices() {
+ for (AbstractService service : services) {
+ if (!service.isRepeating()) {
+ Bukkit.getScheduler().runTask(Plex.get(), service::run);
+ } else if (service.isRepeating() && service.isAsynchronous()) {
Bukkit.getScheduler().runTaskTimerAsynchronously(Plex.get(), service::run, 0, 20 * service.repeatInSeconds());
- } else {
+ } else if (service.isRepeating() && !service.isAsynchronous()) {
Bukkit.getScheduler().runTaskTimer(Plex.get(), service::run, 0, 20 * service.repeatInSeconds());
}
}
}
-
- private void registerService(AbstractService service)
- {
+ private void registerService(AbstractService service) {
services.add(service);
}
- public int serviceCount()
- {
+ public int serviceCount() {
return services.size();
}
-
}
diff --git a/src/main/java/dev/plex/services/impl/BanService.java b/src/main/java/dev/plex/services/impl/BanService.java
index e3dbf6c..bb4394d 100644
--- a/src/main/java/dev/plex/services/impl/BanService.java
+++ b/src/main/java/dev/plex/services/impl/BanService.java
@@ -1,8 +1,8 @@
package dev.plex.services.impl;
import dev.plex.Plex;
-import dev.plex.services.AbstractService;
import dev.plex.banning.Ban;
+import dev.plex.services.AbstractService;
import org.bukkit.Bukkit;
import java.util.Date;
@@ -10,7 +10,7 @@ import java.util.Date;
public class BanService extends AbstractService
{
public BanService() {
- super(true);
+ super(true, true);
}
@Override
diff --git a/src/main/java/dev/plex/services/impl/GameruleService.java b/src/main/java/dev/plex/services/impl/GameruleService.java
new file mode 100644
index 0000000..aa47898
--- /dev/null
+++ b/src/main/java/dev/plex/services/impl/GameruleService.java
@@ -0,0 +1,92 @@
+package dev.plex.services.impl;
+
+import dev.plex.Plex;
+import dev.plex.services.AbstractService;
+import dev.plex.util.PlexLog;
+import org.bukkit.Bukkit;
+import org.bukkit.World;
+
+import java.util.EnumMap;
+import java.util.List;
+import java.util.Map;
+
+public class GameruleService extends AbstractService {
+ private final Map rules = new EnumMap<>(GameRule.class);
+
+ public GameruleService() {
+ super(false, false);
+ }
+
+ public void setGameRule(GameRule gameRule, boolean value) {
+ setGameRule(gameRule, value, true);
+ }
+
+ public void setGameRule(GameRule gameRule, boolean value, boolean doCommit) {
+ rules.put(gameRule, value);
+ if (doCommit) {
+ commitGameRules();
+ }
+ }
+
+ @SuppressWarnings("deprecation")
+ public void commitGameRules() {
+ List worlds = Bukkit.getWorlds();
+ for (Map.Entry gameRuleEntry : rules.entrySet()) {
+ String gameRuleName = gameRuleEntry.getKey().getGameRuleName();
+ String gameRuleValue = gameRuleEntry.getValue().toString();
+
+ for (World world : worlds) {
+ world.setGameRuleValue(gameRuleName, gameRuleValue);
+ if (gameRuleEntry.getKey() == GameRule.DO_DAYLIGHT_CYCLE && !gameRuleEntry.getValue()) {
+ long time = world.getTime();
+ time -= time % 24000;
+ world.setTime(time + 24000 + 6000);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void run() {
+ for (GameRule gameRule : GameRule.values()) {
+ rules.put(gameRule, gameRule.getDefaultValue());
+ PlexLog.log(gameRule.toString());
+ }
+ }
+
+ @Override
+ public int repeatInSeconds() {
+ return 0;
+ }
+
+ public enum GameRule {
+ DO_FIRE_TICK("doFireTick", true),
+ MOB_GRIEFING("mobGriefing", true),
+ KEEP_INVENTORY("keepInventory", true),
+ DO_MOB_SPAWNING("doMobSpawning", true),
+ DO_MOB_LOOT("doMobLoot", true),
+ DO_TILE_DROPS("doTileDrops", true),
+ COMMAND_BLOCK_OUTPUT("commandBlockOutput", true),
+ NATURAL_REGENERATION("naturalRegeneration", true),
+ DO_DAYLIGHT_CYCLE("doDaylightCycle", true),
+ ANNOUNCE_ADVANCEMENTS("announceAdvancements", true),
+ SHOW_DEATH_MESSAGES("showDeathMessages", true),
+ SEND_COMMAND_FEEDBACK("sendCommandFeedback", true);
+
+ private final String gameRuleName;
+ private final boolean defaultValue;
+
+ GameRule(String gameRuleName, boolean defaultValue) {
+ this.gameRuleName = gameRuleName;
+ this.defaultValue = defaultValue;
+ }
+
+ public String getGameRuleName() {
+ return gameRuleName;
+ }
+
+ public boolean getDefaultValue() {
+ return defaultValue;
+ }
+ }
+}
diff --git a/src/main/java/dev/plex/storage/SQLConnection.java b/src/main/java/dev/plex/storage/SQLConnection.java
index 766c85b..c56e744 100644
--- a/src/main/java/dev/plex/storage/SQLConnection.java
+++ b/src/main/java/dev/plex/storage/SQLConnection.java
@@ -2,6 +2,7 @@ package dev.plex.storage;
import dev.plex.Plex;
import dev.plex.PlexBase;
+
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
diff --git a/src/main/java/dev/plex/util/PlexUtils.java b/src/main/java/dev/plex/util/PlexUtils.java
index e21796f..ddb285e 100644
--- a/src/main/java/dev/plex/util/PlexUtils.java
+++ b/src/main/java/dev/plex/util/PlexUtils.java
@@ -3,6 +3,15 @@ package dev.plex.util;
import dev.plex.Plex;
import dev.plex.config.Config;
import dev.plex.storage.StorageType;
+import org.bukkit.*;
+import org.bukkit.command.Command;
+import org.bukkit.command.PluginCommandYamlParser;
+import org.bukkit.entity.Player;
+import org.bukkit.plugin.Plugin;
+import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+import org.json.simple.parser.ParseException;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
@@ -12,18 +21,6 @@ import java.sql.SQLException;
import java.util.*;
import java.util.concurrent.ThreadLocalRandom;
import java.util.stream.Collectors;
-import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
-import org.bukkit.Location;
-import org.bukkit.Material;
-import org.bukkit.World;
-import org.bukkit.command.Command;
-import org.bukkit.command.PluginCommandYamlParser;
-import org.bukkit.entity.Player;
-import org.bukkit.plugin.Plugin;
-import org.json.simple.JSONObject;
-import org.json.simple.parser.JSONParser;
-import org.json.simple.parser.ParseException;
public class PlexUtils
{
diff --git a/src/main/java/dev/plex/world/BlockMapChunkGenerator.java b/src/main/java/dev/plex/world/BlockMapChunkGenerator.java
index 8c3f498..43d8f0b 100644
--- a/src/main/java/dev/plex/world/BlockMapChunkGenerator.java
+++ b/src/main/java/dev/plex/world/BlockMapChunkGenerator.java
@@ -1,9 +1,10 @@
package dev.plex.world;
+import org.bukkit.Material;
+import org.bukkit.generator.BlockPopulator;
+
import java.util.LinkedHashMap;
import java.util.Map;
-import org.bukkit.Material;
-import org.bukkit.generator.BlockPopulator;
public class BlockMapChunkGenerator extends FlatChunkGenerator
{
diff --git a/src/main/java/dev/plex/world/ConfigurationChunkGenerator.java b/src/main/java/dev/plex/world/ConfigurationChunkGenerator.java
index a701916..0602e6b 100644
--- a/src/main/java/dev/plex/world/ConfigurationChunkGenerator.java
+++ b/src/main/java/dev/plex/world/ConfigurationChunkGenerator.java
@@ -1,10 +1,11 @@
package dev.plex.world;
import dev.plex.Plex;
-import java.util.LinkedHashMap;
import org.bukkit.Material;
import org.bukkit.generator.BlockPopulator;
+import java.util.LinkedHashMap;
+
public class ConfigurationChunkGenerator extends BlockMapChunkGenerator
{
private static final Plex plugin = Plex.get();
diff --git a/src/main/java/dev/plex/world/CustomChunkGenerator.java b/src/main/java/dev/plex/world/CustomChunkGenerator.java
index 1d5d496..a7656f3 100644
--- a/src/main/java/dev/plex/world/CustomChunkGenerator.java
+++ b/src/main/java/dev/plex/world/CustomChunkGenerator.java
@@ -1,11 +1,12 @@
package dev.plex.world;
-import java.util.Arrays;
-import java.util.List;
import org.bukkit.World;
import org.bukkit.generator.BlockPopulator;
import org.bukkit.generator.ChunkGenerator;
+import java.util.Arrays;
+import java.util.List;
+
public abstract class CustomChunkGenerator extends ChunkGenerator
{
protected int height;
diff --git a/src/main/java/dev/plex/world/CustomWorld.java b/src/main/java/dev/plex/world/CustomWorld.java
index f637311..179b67f 100644
--- a/src/main/java/dev/plex/world/CustomWorld.java
+++ b/src/main/java/dev/plex/world/CustomWorld.java
@@ -1,8 +1,6 @@
package dev.plex.world;
import dev.plex.Plex;
-import java.io.File;
-import java.util.Objects;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.WorldCreator;
@@ -11,6 +9,9 @@ import org.bukkit.block.BlockState;
import org.bukkit.block.Sign;
import org.bukkit.generator.ChunkGenerator;
+import java.io.File;
+import java.util.Objects;
+
public class CustomWorld extends WorldCreator
{
private static final Plex plugin = Plex.get();
diff --git a/src/main/java/dev/plex/world/FlatChunkGenerator.java b/src/main/java/dev/plex/world/FlatChunkGenerator.java
index 68ad9f2..954591d 100644
--- a/src/main/java/dev/plex/world/FlatChunkGenerator.java
+++ b/src/main/java/dev/plex/world/FlatChunkGenerator.java
@@ -1,9 +1,10 @@
package dev.plex.world;
-import java.util.Random;
import org.bukkit.World;
import org.bukkit.generator.BlockPopulator;
+import java.util.Random;
+
public abstract class FlatChunkGenerator extends CustomChunkGenerator
{
public FlatChunkGenerator(int height, BlockPopulator... populators)
diff --git a/src/main/java/dev/plex/world/NoiseChunkGenerator.java b/src/main/java/dev/plex/world/NoiseChunkGenerator.java
index 8b38451..c6c7935 100644
--- a/src/main/java/dev/plex/world/NoiseChunkGenerator.java
+++ b/src/main/java/dev/plex/world/NoiseChunkGenerator.java
@@ -1,10 +1,11 @@
package dev.plex.world;
-import java.util.Random;
import org.bukkit.World;
import org.bukkit.generator.BlockPopulator;
import org.bukkit.util.noise.PerlinNoiseGenerator;
+import java.util.Random;
+
public abstract class NoiseChunkGenerator extends CustomChunkGenerator
{
private final NoiseOptions options;
diff --git a/src/main/java/dev/plex/world/OctaveChunkGenerator.java b/src/main/java/dev/plex/world/OctaveChunkGenerator.java
index 1eed47c..5d68dc2 100644
--- a/src/main/java/dev/plex/world/OctaveChunkGenerator.java
+++ b/src/main/java/dev/plex/world/OctaveChunkGenerator.java
@@ -1,10 +1,11 @@
package dev.plex.world;
-import java.util.Random;
import org.bukkit.World;
import org.bukkit.generator.BlockPopulator;
import org.bukkit.util.noise.PerlinOctaveGenerator;
+import java.util.Random;
+
public abstract class OctaveChunkGenerator extends CustomChunkGenerator
{
private final OctaveOptions options;
diff --git a/src/main/resources/messages.yml b/src/main/resources/messages.yml
index 9eeb74d..d020387 100644
--- a/src/main/resources/messages.yml
+++ b/src/main/resources/messages.yml
@@ -19,49 +19,50 @@ errorColor: "c"
# Broadcast color - this will make the color of the message the broadcast color defined above.
# Error color - this will make the color of the message the error color defined above.
-test: this is a test message!
+test: "this is a test message!"
# 1: the command sender's username
-variableTest: variable test with !
-playerNotFound: Player not found!
-worldNotFound: World not found!
-noAdminWorldBlockPlace: You are not allowed to place blocks in the admin world!
-noAdminWorldBlockBreak: You are not allowed to break blocks in the admin world!
+variableTest: "variable test with !"
+playerNotFound: "Player not found!"
+worldNotFound: "World not found!"
+noAdminWorldBlockPlace: "You are not allowed to place blocks in the admin world!"
+noAdminWorldBlockBreak: "You are not allowed to break blocks in the admin world!"
# 1: the world you have been teleported to
-playerWorldTeleport: You have been teleported to .
+playerWorldTeleport: "You have been teleported to ."
# 1: the command sender who opped everyone
-oppedAllPlayers: - Opped all players on the server
+oppedAllPlayers: " - Opped all players on the server"
# 1: the person who is opping
# 2: the person who has been opped
-oppedPlayer: - Opped
+oppedPlayer: " - Opped "
# 1: the person who is freezing
# 2: the person who has been frozen
-frozePlayer: - Froze
+frozePlayer: " - Froze "
# 1: the person who is unfreezing
# 2: the person who has been unfrozen
-unfrozePlayer: - Unfroze
-noPermission: You cannot use this command!
+unfrozePlayer: " - Unfroze "
+noPermission: "You cannot use this command!"
# 1: the login message (uncolored) of the rank required to use the command
-noPermissionRank: You must be at least rank to use this command!
-noPermissionInGame: You must be in console to use this command!
-noPermissionConsole: You must be in-game to use this command!
+noPermissionRank: "You must be at least rank to use this command!"
+noPermissionInGame: "You must be in console to use this command!"
+noPermissionConsole: "You must be in-game to use this command!"
# 1: the username of the name history
-nameHistoryTitle: Name History of
+nameHistoryTitle: "Name History of "
# 1: a username of the found user
# 2: when the user changed to that username
nameHistoryBody: " - ()"
# 1: the username that failed
-nameHistoryFail: Something went wrong while trying to retrieve name history of ! Try again later!
-gameModeSetTo: Your gamemode has been set to .
-setOtherPlayerGameModeTo: You set 's gamemode to .
-playerSetOtherGameMode: set your gamemode to .
-consoleMustDefinePlayer: You must define a player since you are running this command from console.
-newAdminAdded: - Adding to the admin list
-adminRemoved: - Removing from the admin list
-adminSetRank: - Setting 's rank to
-teleportedToWorld: You have been teleported to the .
-higherRankThanYou: This player is an admin and 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.
\ No newline at end of file
+nameHistoryFail: "Something went wrong while trying to retrieve name history of ! Try again later!"
+gameModeSetTo: "Your gamemode has been set to ."
+setOtherPlayerGameModeTo: "You set 's gamemode to ."
+playerSetOtherGameMode: " set your gamemode to ."
+consoleMustDefinePlayer: "You must define a player since you are running this command from console."
+newAdminAdded: " - Adding to the admin list"
+adminRemoved: " - Removing from the admin list"
+adminSetRank: " - Setting 's rank to "
+teleportedToWorld: "You have been teleported to the ."
+higherRankThanYou: "This player is an admin and 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."
+yourRank: "Your rank is: "
\ No newline at end of file