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 - 16 + 17 + 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