Uplift Paper version to 26.1.2

Upgraded Gradle to 9.5.1

Updated deprecated functions

General code clean up
This commit is contained in:
ncurran02
2026-05-13 18:09:51 +10:00
parent bea8f86300
commit 1a1719290f
109 changed files with 364 additions and 149 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
<component name="ProjectCodeStyleConfiguration"> <component name="ProjectCodeStyleConfiguration">
<state> <state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Plexus Code Style" /> <option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state> </state>
</component> </component>
+1 -1
View File
@@ -38,7 +38,7 @@ subprojects {
} }
java { java {
toolchain.languageVersion.set(JavaLanguageVersion.of(21)) toolchain.languageVersion.set(JavaLanguageVersion.of(25))
} }
tasks { tasks {
+1 -1
View File
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip
networkTimeout=10000 networkTimeout=10000
validateDistributionUrl=true validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
+13 -13
View File
@@ -4,7 +4,7 @@ import java.util.*
plugins { plugins {
id("net.kyori.indra.git") version "4.0.0" id("net.kyori.indra.git") version "4.0.0"
id("de.eldoria.plugin-yml.paper") version "0.8.0" id("de.eldoria.plugin-yml.paper") version "0.9.0"
} }
repositories { repositories {
@@ -13,24 +13,24 @@ repositories {
} }
dependencies { dependencies {
library("org.projectlombok:lombok:1.18.42") library("org.projectlombok:lombok:1.18.46")
library("org.json:json:20251224") library("org.json:json:20251224")
library("commons-io:commons-io:2.21.0") library("commons-io:commons-io:2.22.0")
library("redis.clients:jedis:7.2.0") library("redis.clients:jedis:7.5.0")
library("org.mariadb.jdbc:mariadb-java-client:3.5.7") library("org.mariadb.jdbc:mariadb-java-client:3.5.8")
library("com.zaxxer:HikariCP:7.0.2") library("com.zaxxer:HikariCP:7.0.2")
library("org.apache.maven.resolver:maven-resolver-transport-http:1.9.25") library("org.apache.maven.resolver:maven-resolver-transport-http:1.9.27")
library("org.jetbrains:annotations:26.0.2") library("org.jetbrains:annotations:26.1.0")
compileOnly("io.papermc.paper:paper-api:1.21.11-R0.1-SNAPSHOT") compileOnly("io.papermc.paper:paper-api:26.1.2.build.+")
compileOnly("com.github.MilkBowl:VaultAPI:1.7.1") { compileOnly("com.github.MilkBowl:VaultAPI:1.7.1") {
exclude("org.bukkit", "bukkit") exclude("org.bukkit", "bukkit")
} }
compileOnly("net.coreprotect:coreprotect:23.1") compileOnly("net.coreprotect:coreprotect:23.2")
compileOnly("network.darkhelmet.prism:Prism-Api:1.0.0") compileOnly("network.darkhelmet.prism:Prism-Api:1.0.0")
compileOnly("com.github.LeonMangler:SuperVanish:6.2.19") compileOnly("com.github.LeonMangler:SuperVanish:6.2.19")
implementation("org.bstats:bstats-base:3.1.0") implementation("org.bstats:bstats-base:3.2.1")
implementation("org.bstats:bstats-bukkit:3.1.0") implementation("org.bstats:bstats-bukkit:3.2.1")
annotationProcessor("org.projectlombok:lombok:1.18.42") annotationProcessor("org.projectlombok:lombok:1.18.46")
} }
group = rootProject.group group = rootProject.group
@@ -45,7 +45,7 @@ paper {
loader = "dev.plex.PlexLibraryManager" loader = "dev.plex.PlexLibraryManager"
website = "https://plex.us.org" website = "https://plex.us.org"
authors = listOf("Telesphoreo", "taahanis", "supernt") authors = listOf("Telesphoreo", "taahanis", "supernt")
apiVersion = "1.21.11" apiVersion = "26.1.2"
foliaSupported = true foliaSupported = true
generateLibrariesJson = true generateLibrariesJson = true
// Load BukkitTelnet and LibsDisguises before Plex so the modules register properly // Load BukkitTelnet and LibsDisguises before Plex so the modules register properly
+13 -3
View File
@@ -24,7 +24,9 @@ import dev.plex.util.PlexUtils;
import dev.plex.util.UpdateChecker; import dev.plex.util.UpdateChecker;
import dev.plex.util.redis.MessageUtil; import dev.plex.util.redis.MessageUtil;
import dev.plex.world.CustomWorld; import dev.plex.world.CustomWorld;
import java.io.File; import java.io.File;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import net.milkbowl.vault.chat.Chat; import net.milkbowl.vault.chat.Chat;
@@ -152,7 +154,9 @@ public class Plex extends JavaPlugin
if (PlexUtils.hasVanishPlugin()) if (PlexUtils.hasVanishPlugin())
{ {
PlexLog.log("Hooked into SuperVanish / PremiumVanish!"); PlexLog.log("Hooked into SuperVanish / PremiumVanish!");
} else { }
else
{
PlexLog.debug("Not hooking into SuperVanish / PremiumVanish"); PlexLog.debug("Not hooking into SuperVanish / PremiumVanish");
} }
@@ -246,14 +250,20 @@ public class Plex extends JavaPlugin
private Permission setupPermissions() private Permission setupPermissions()
{ {
RegisteredServiceProvider<Permission> rsp = Bukkit.getServicesManager().getRegistration(Permission.class); RegisteredServiceProvider<Permission> rsp = Bukkit.getServicesManager().getRegistration(Permission.class);
permissions = rsp.getProvider(); if (rsp != null)
{
permissions = rsp.getProvider();
}
return permissions; return permissions;
} }
private Chat setupChat() private Chat setupChat()
{ {
RegisteredServiceProvider<Chat> rsp = Bukkit.getServicesManager().getRegistration(Chat.class); RegisteredServiceProvider<Chat> rsp = Bukkit.getServicesManager().getRegistration(Chat.class);
chat = rsp.getProvider(); if (rsp != null)
{
chat = rsp.getProvider();
}
return chat; return chat;
} }
} }
@@ -18,6 +18,7 @@ import org.eclipse.aether.graph.Dependency;
import org.eclipse.aether.repository.RemoteRepository; import org.eclipse.aether.repository.RemoteRepository;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@SuppressWarnings("UnstableApiUsage")
public class PlexLibraryManager implements PluginLoader public class PlexLibraryManager implements PluginLoader
{ {
@Override @Override
@@ -41,8 +42,7 @@ public class PlexLibraryManager implements PluginLoader
{ {
try (var in = getClass().getResourceAsStream("/paper-libraries.json")) try (var in = getClass().getResourceAsStream("/paper-libraries.json"))
{ {
PluginLibraries libraries = new Gson().fromJson(new InputStreamReader(in, StandardCharsets.UTF_8), PluginLibraries.class); return new Gson().fromJson(new InputStreamReader(in, StandardCharsets.UTF_8), PluginLibraries.class);
return libraries;
} }
catch (IOException e) catch (IOException e)
{ {
+2 -6
View File
@@ -2,6 +2,7 @@ package dev.plex.cache;
import dev.plex.Plex; import dev.plex.Plex;
import dev.plex.player.PlexPlayer; import dev.plex.player.PlexPlayer;
import java.util.Optional; import java.util.Optional;
import java.util.UUID; import java.util.UUID;
@@ -56,12 +57,7 @@ public class DataUtils
public static PlexPlayer getPlayer(String username, boolean loadExtraData) public static PlexPlayer getPlayer(String username, boolean loadExtraData)
{ {
Optional<PlexPlayer> plexPlayer = Plex.get().getPlayerCache().getPlexPlayerMap().values().stream().filter(player -> player.getName().equalsIgnoreCase(username)).findFirst(); Optional<PlexPlayer> plexPlayer = Plex.get().getPlayerCache().getPlexPlayerMap().values().stream().filter(player -> player.getName().equalsIgnoreCase(username)).findFirst();
if (plexPlayer.isPresent()) return plexPlayer.orElseGet(() -> Plex.get().getSqlPlayerData().getByName(username, loadExtraData));
{
return plexPlayer.get();
}
return Plex.get().getSqlPlayerData().getByName(username, loadExtraData);
} }
/** /**
+1 -18
View File
@@ -2,6 +2,7 @@ package dev.plex.cache;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import dev.plex.player.PlexPlayer; import dev.plex.player.PlexPlayer;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
@@ -16,29 +17,11 @@ public class PlayerCache
*/ */
private static final Map<UUID, PlexPlayer> plexPlayerMap = Maps.newHashMap(); private static final Map<UUID, PlexPlayer> plexPlayerMap = Maps.newHashMap();
/**
* A key/value pair where the key is the unique ID of the Punished Player
*/
// private static final Map<UUID, PunishedPlayer> punishedPlayerMap = Maps.newHashMap();
// public static Map<UUID, PunishedPlayer> getPunishedPlayerMap()
// {
// return punishedPlayerMap;
// }
public Map<UUID, PlexPlayer> getPlexPlayerMap() public Map<UUID, PlexPlayer> getPlexPlayerMap()
{ {
return plexPlayerMap; return plexPlayerMap;
} }
/*public static PunishedPlayer getPunishedPlayer(UUID uuid)
{
if (!getPunishedPlayerMap().containsKey(uuid))
{
getPunishedPlayerMap().put(uuid, new PunishedPlayer(uuid));
}
return getPunishedPlayerMap().get(uuid);
}
*/
public PlexPlayer getPlexPlayer(UUID uuid) public PlexPlayer getPlexPlayer(UUID uuid)
{ {
return getPlexPlayerMap().get(uuid); return getPlexPlayerMap().get(uuid);
@@ -14,9 +14,11 @@ import dev.plex.command.source.RequiredCommandSource;
import dev.plex.player.PlexPlayer; import dev.plex.player.PlexPlayer;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import net.kyori.adventure.audience.Audience; import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
@@ -80,16 +82,10 @@ public abstract class PlexCommand extends Command implements PluginIdentifiableC
if (register) if (register)
{ {
if (getMap().getKnownCommands().containsKey(this.getName().toLowerCase())) getMap().getKnownCommands().remove(this.getName().toLowerCase());
{
getMap().getKnownCommands().remove(this.getName().toLowerCase());
}
this.getAliases().forEach(s -> this.getAliases().forEach(s ->
{ {
if (getMap().getKnownCommands().containsKey(s.toLowerCase())) getMap().getKnownCommands().remove(s.toLowerCase());
{
getMap().getKnownCommands().remove(s.toLowerCase());
}
}); });
getMap().register("plex", this); getMap().register("plex", this);
} }
@@ -1,6 +1,7 @@
package dev.plex.command.annotation; package dev.plex.command.annotation;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
@@ -10,9 +10,11 @@ import dev.plex.util.PlexLog;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import dev.plex.util.minimessage.SafeMiniMessage; import dev.plex.util.minimessage.SafeMiniMessage;
import dev.plex.util.redis.MessageUtil; import dev.plex.util.redis.MessageUtil;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@@ -4,8 +4,10 @@ import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
@@ -8,7 +8,9 @@ import dev.plex.command.exception.CommandFailException;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import dev.plex.event.GameModeUpdateEvent; import dev.plex.event.GameModeUpdateEvent;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.GameMode; import org.bukkit.GameMode;
@@ -13,10 +13,12 @@ import dev.plex.util.BungeeUtil;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import dev.plex.util.TimeUtils; import dev.plex.util.TimeUtils;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@@ -74,7 +76,7 @@ public class BanCMD extends PlexCommand
punishment.setEndDate(date.plusDays(1)); punishment.setEndDate(date.plusDays(1));
punishment.setCustomTime(false); punishment.setCustomTime(false);
punishment.setActive(true); punishment.setActive(true);
punishment.setIp(player != null ? player.getAddress().getAddress().getHostAddress().trim() : plexPlayer.getIps().get(plexPlayer.getIps().size() - 1)); punishment.setIp(player != null ? player.getAddress().getAddress().getHostAddress().trim() : plexPlayer.getIps().getLast());
plugin.getPunishmentManager().punish(plexPlayer, punishment); plugin.getPunishmentManager().punish(plexPlayer, punishment);
PlexUtils.broadcast(messageComponent("banningPlayer", sender.getName(), plexPlayer.getName())); PlexUtils.broadcast(messageComponent("banningPlayer", sender.getName(), plexPlayer.getName()));
Bukkit.getGlobalRegionScheduler().execute(plugin, () -> Bukkit.getGlobalRegionScheduler().execute(plugin, () ->
@@ -5,8 +5,10 @@ import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.annotation.CommandPermissions;
import dev.plex.punishment.Punishment; import dev.plex.punishment.Punishment;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -10,7 +10,9 @@ import dev.plex.command.source.RequiredCommandSource;
import dev.plex.meta.PlayerMeta; import dev.plex.meta.PlayerMeta;
import dev.plex.player.PlexPlayer; import dev.plex.player.PlexPlayer;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -5,10 +5,12 @@ import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.annotation.CommandPermissions;
import dev.plex.listener.impl.BlockListener; import dev.plex.listener.impl.BlockListener;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -6,8 +6,10 @@ import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import dev.plex.player.PlexPlayer; import dev.plex.player.PlexPlayer;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -5,8 +5,10 @@ import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -8,7 +8,9 @@ import dev.plex.command.exception.CommandFailException;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import dev.plex.event.GameModeUpdateEvent; import dev.plex.event.GameModeUpdateEvent;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.GameMode; import org.bukkit.GameMode;
@@ -8,9 +8,11 @@ import dev.plex.menu.impl.MaterialMenu;
import dev.plex.util.GameRuleUtil; import dev.plex.util.GameRuleUtil;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
@@ -6,12 +6,14 @@ import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
@@ -33,7 +35,7 @@ public class EntityWipeCMD extends PlexCommand
List<String> entityWhitelist = new LinkedList<>(Arrays.asList(args)); List<String> entityWhitelist = new LinkedList<>(Arrays.asList(args));
boolean radiusSpecified = !entityWhitelist.isEmpty() && isNumeric(entityWhitelist.get(entityWhitelist.size() - 1)); // try and detect if the last argument of the command is a number boolean radiusSpecified = !entityWhitelist.isEmpty() && isNumeric(entityWhitelist.getLast()); // try and detect if the last argument of the command is a number
boolean useBlacklist = args.length == 0 || (args.length == 1 && radiusSpecified); // if there are no arguments or the one argument is a number boolean useBlacklist = args.length == 0 || (args.length == 1 && radiusSpecified); // if there are no arguments or the one argument is a number
int radius = 0; int radius = 0;
@@ -42,9 +44,9 @@ public class EntityWipeCMD extends PlexCommand
if (radiusSpecified) if (radiusSpecified)
{ {
radius = parseInt(sender, args[entityWhitelist.size() - 1]); // get the args length as the size of the list radius = parseInt(sender, entityWhitelist.getLast()); // get the args length as the size of the list
radius *= radius; radius *= radius;
entityWhitelist.remove(entityWhitelist.size() - 1); // remove the radius from the list entityWhitelist.removeLast(); // remove the radius from the list
} }
PlexLog.debug("radius: " + radius); PlexLog.debug("radius: " + radius);
@@ -4,8 +4,10 @@ import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
@@ -9,9 +9,11 @@ import dev.plex.punishment.Punishment;
import dev.plex.punishment.PunishmentType; import dev.plex.punishment.PunishmentType;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import dev.plex.util.TimeUtils; import dev.plex.util.TimeUtils;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -7,9 +7,11 @@ import dev.plex.command.exception.CommandFailException;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import dev.plex.event.GameModeUpdateEvent; import dev.plex.event.GameModeUpdateEvent;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.GameMode; import org.bukkit.GameMode;
@@ -13,9 +13,11 @@ import dev.plex.punishment.PunishmentType;
import dev.plex.util.BungeeUtil; import dev.plex.util.BungeeUtil;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import dev.plex.util.TimeUtils; import dev.plex.util.TimeUtils;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@@ -7,8 +7,10 @@ import dev.plex.command.annotation.CommandPermissions;
import dev.plex.hook.VaultHook; import dev.plex.hook.VaultHook;
import dev.plex.meta.PlayerMeta; import dev.plex.meta.PlayerMeta;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@@ -4,8 +4,10 @@ import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -6,7 +6,9 @@ import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.annotation.CommandPermissions;
import dev.plex.player.PlexPlayer; import dev.plex.player.PlexPlayer;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -4,8 +4,10 @@ import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
@@ -5,9 +5,11 @@ import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Chunk; import org.bukkit.Chunk;
@@ -26,7 +28,7 @@ public class MobLimitCMD extends PlexCommand
{ {
if (args.length == 0) if (args.length == 0)
{ {
Chunk chunk = playerSender != null ? playerSender.getLocation().getChunk() : Bukkit.getWorlds().get(0).getChunkAt(0, 0); Chunk chunk = playerSender != null ? playerSender.getLocation().getChunk() : Bukkit.getWorlds().getFirst().getChunkAt(0, 0);
int currentLimit = plugin.config.getInt("entity_limit.max_mobs_per_chunk"); int currentLimit = plugin.config.getInt("entity_limit.max_mobs_per_chunk");
int currentMobCount = (int) Arrays.stream(chunk.getEntities()) int currentMobCount = (int) Arrays.stream(chunk.getEntities())
@@ -50,10 +52,16 @@ public class MobLimitCMD extends PlexCommand
case "setmax": case "setmax":
try try
{ {
if (args.length != 2) return usage(); if (args.length != 2)
{
return usage();
}
int newLimit = Integer.parseInt(args[1]); int newLimit = Integer.parseInt(args[1]);
if (newLimit < 0) throw new NumberFormatException(); if (newLimit < 0)
{
throw new NumberFormatException();
}
int limitCeiling = plugin.config.getInt("entity_limit.mob_limit_ceiling"); int limitCeiling = plugin.config.getInt("entity_limit.mob_limit_ceiling");
if (newLimit > limitCeiling) if (newLimit > limitCeiling)
@@ -6,10 +6,12 @@ import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.apache.commons.lang3.text.WordUtils; import org.apache.commons.lang3.text.WordUtils;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@@ -9,9 +9,11 @@ import dev.plex.punishment.Punishment;
import dev.plex.punishment.PunishmentType; import dev.plex.punishment.PunishmentType;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import dev.plex.util.TimeUtils; import dev.plex.util.TimeUtils;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -8,12 +8,14 @@ import dev.plex.player.PlexPlayer;
import dev.plex.punishment.extra.Note; import dev.plex.punishment.extra.Note;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import dev.plex.util.TimeUtils; import dev.plex.util.TimeUtils;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@@ -47,7 +49,7 @@ public class NotesCMD extends PlexCommand
{ {
plugin.getSqlNotes().getNotes(plexPlayer.getUuid()).whenComplete((notes, ex) -> plugin.getSqlNotes().getNotes(plexPlayer.getUuid()).whenComplete((notes, ex) ->
{ {
if (notes.size() == 0) if (notes.isEmpty())
{ {
send(sender, messageComponent("noNotes")); send(sender, messageComponent("noNotes"));
return; return;
@@ -10,10 +10,12 @@ import dev.plex.module.PlexModuleFile;
import dev.plex.util.BuildInfo; import dev.plex.util.BuildInfo;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import dev.plex.util.TimeUtils; import dev.plex.util.TimeUtils;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@@ -34,7 +36,7 @@ public class PlexCMD extends PlexCommand
if (args.length == 0) if (args.length == 0)
{ {
send(sender, mmString("<light_purple>Plex - A new freedom plugin.")); send(sender, mmString("<light_purple>Plex - A new freedom plugin."));
send(sender, mmString("<light_purple>Plugin version: <gold>" + plugin.getDescription().getVersion() + " #" + BuildInfo.getNumber() + " <light_purple>Git: <gold>" + BuildInfo.getCommit())); send(sender, mmString("<light_purple>Plugin version: <gold>" + plugin.getPluginMeta().getVersion() + " #" + BuildInfo.getNumber() + " <light_purple>Git: <gold>" + BuildInfo.getCommit()));
send(sender, mmString("<light_purple>Authors: <gold>Telesphoreo, Taahh")); send(sender, mmString("<light_purple>Authors: <gold>Telesphoreo, Taahh"));
send(sender, mmString("<light_purple>Built by: <gold>" + BuildInfo.getAuthor() + " <light_purple>on <gold>" + BuildInfo.getDate())); send(sender, mmString("<light_purple>Built by: <gold>" + BuildInfo.getAuthor() + " <light_purple>on <gold>" + BuildInfo.getDate()));
send(sender, mmString("<light_purple>Run <gold>/plex modules <light_purple>to see a list of modules.")); send(sender, mmString("<light_purple>Run <gold>/plex modules <light_purple>to see a list of modules."));
@@ -11,7 +11,9 @@ import dev.plex.menu.impl.PunishedPlayerMenu;
import dev.plex.menu.impl.PunishmentMenu; import dev.plex.menu.impl.PunishmentMenu;
import dev.plex.player.PlexPlayer; import dev.plex.player.PlexPlayer;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
@@ -5,8 +5,10 @@ import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -8,7 +8,9 @@ import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import dev.plex.player.PlexPlayer; import dev.plex.player.PlexPlayer;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -5,8 +5,10 @@ import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -10,7 +10,9 @@ import dev.plex.command.source.RequiredCommandSource;
import dev.plex.player.PlexPlayer; import dev.plex.player.PlexPlayer;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.MiniMessage;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@@ -9,10 +9,12 @@ import dev.plex.punishment.Punishment;
import dev.plex.punishment.PunishmentType; import dev.plex.punishment.PunishmentType;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import dev.plex.util.TimeUtils; import dev.plex.util.TimeUtils;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.title.Title; import net.kyori.adventure.title.Title;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
@@ -39,17 +41,13 @@ public class SmiteCMD extends PlexCommand
String reason = null; String reason = null;
boolean silent = false; boolean silent = false;
boolean clearinv = false; boolean clearInv = false;
if (args.length >= 2) if (args.length >= 2)
{ {
if (args[args.length - 1].equalsIgnoreCase("-q")) if (args[args.length - 1].equalsIgnoreCase("-q"))
{ {
if (args[args.length - 1].equalsIgnoreCase("-q")) silent = true;
{
silent = true;
}
if (args.length >= 3) if (args.length >= 3)
{ {
reason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length - 1), " "); reason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length - 1), " ");
@@ -57,11 +55,7 @@ public class SmiteCMD extends PlexCommand
} }
else if (args[args.length - 1].equalsIgnoreCase("-ci")) else if (args[args.length - 1].equalsIgnoreCase("-ci"))
{ {
if (args[args.length - 1].equalsIgnoreCase("-ci")) clearInv = true;
{
clearinv = true;
}
if (args.length >= 3) if (args.length >= 3)
{ {
reason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length - 1), " "); reason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length - 1), " ");
@@ -92,7 +86,7 @@ public class SmiteCMD extends PlexCommand
player.setGameMode(GameMode.SURVIVAL); player.setGameMode(GameMode.SURVIVAL);
// Clear inventory // Clear inventory
if (clearinv) if (clearInv)
{ {
player.getInventory().clear(); player.getInventory().clear();
} }
@@ -8,7 +8,9 @@ import dev.plex.command.exception.CommandFailException;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import dev.plex.event.GameModeUpdateEvent; import dev.plex.event.GameModeUpdateEvent;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.GameMode; import org.bukkit.GameMode;
@@ -34,7 +36,7 @@ public class SpectatorCMD extends PlexCommand
return null; return null;
} }
if (checkPermission(sender,"plex.gamemode.spectator.others")) if (checkPermission(sender, "plex.gamemode.spectator.others"))
{ {
if (args[0].equals("-a")) if (args[0].equals("-a"))
{ {
@@ -56,7 +58,7 @@ public class SpectatorCMD extends PlexCommand
@Override @Override
public @NotNull List<String> smartTabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException public @NotNull List<String> smartTabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException
{ {
if (silentCheckPermission(sender,"plex.gamemode.spectator.others")) if (silentCheckPermission(sender, "plex.gamemode.spectator.others"))
{ {
return PlexUtils.getPlayerNameList(); return PlexUtils.getPlayerNameList();
} }
@@ -8,7 +8,9 @@ import dev.plex.command.exception.CommandFailException;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import dev.plex.event.GameModeUpdateEvent; import dev.plex.event.GameModeUpdateEvent;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.GameMode; import org.bukkit.GameMode;
@@ -34,7 +36,7 @@ public class SurvivalCMD extends PlexCommand
return null; return null;
} }
if (checkPermission(sender,"plex.gamemode.survival.others")) if (checkPermission(sender, "plex.gamemode.survival.others"))
{ {
if (args[0].equals("-a")) if (args[0].equals("-a"))
{ {
@@ -57,7 +59,7 @@ public class SurvivalCMD extends PlexCommand
@Override @Override
public @NotNull List<String> smartTabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException public @NotNull List<String> smartTabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException
{ {
if (silentCheckPermission(sender,"plex.gamemode.survival.others")) if (silentCheckPermission(sender, "plex.gamemode.survival.others"))
{ {
return PlexUtils.getPlayerNameList(); return PlexUtils.getPlayerNameList();
} }
@@ -7,9 +7,11 @@ import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import dev.plex.player.PlexPlayer; import dev.plex.player.PlexPlayer;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
@@ -14,8 +14,10 @@ import dev.plex.util.BungeeUtil;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import dev.plex.util.TimeUtils; import dev.plex.util.TimeUtils;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@@ -9,9 +9,11 @@ import dev.plex.punishment.Punishment;
import dev.plex.punishment.PunishmentType; import dev.plex.punishment.PunishmentType;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import dev.plex.util.TimeUtils; import dev.plex.util.TimeUtils;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -7,7 +7,9 @@ import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import dev.plex.menu.impl.ToggleMenu; import dev.plex.menu.impl.ToggleMenu;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -10,7 +10,9 @@ import dev.plex.command.exception.PlayerNotFoundException;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import dev.plex.player.PlexPlayer; import dev.plex.player.PlexPlayer;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -10,7 +10,9 @@ import dev.plex.command.exception.PlayerNotFoundException;
import dev.plex.player.PlexPlayer; import dev.plex.player.PlexPlayer;
import dev.plex.punishment.PunishmentType; import dev.plex.punishment.PunishmentType;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -39,7 +41,8 @@ public class UnfreezeCMD extends PlexCommand
throw new CommandFailException(PlexUtils.messageString("playerNotFrozen")); throw new CommandFailException(PlexUtils.messageString("playerNotFrozen"));
} }
punishedPlayer.setFrozen(false); punishedPlayer.setFrozen(false);
punishedPlayer.getPunishments().stream().filter(punishment -> punishment.getType() == PunishmentType.FREEZE && punishment.isActive()).forEach(punishment -> { punishedPlayer.getPunishments().stream().filter(punishment -> punishment.getType() == PunishmentType.FREEZE && punishment.isActive()).forEach(punishment ->
{
punishment.setActive(false); punishment.setActive(false);
plugin.getSqlPunishment().updatePunishment(punishment.getType(), false, punishment.getPunished()); plugin.getSqlPunishment().updatePunishment(punishment.getType(), false, punishment.getPunished());
}); });
@@ -10,7 +10,9 @@ import dev.plex.command.exception.PlayerNotFoundException;
import dev.plex.player.PlexPlayer; import dev.plex.player.PlexPlayer;
import dev.plex.punishment.PunishmentType; import dev.plex.punishment.PunishmentType;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -39,7 +41,8 @@ public class UnmuteCMD extends PlexCommand
throw new CommandFailException(PlexUtils.messageString("playerNotMuted")); throw new CommandFailException(PlexUtils.messageString("playerNotMuted"));
} }
punishedPlayer.setMuted(false); punishedPlayer.setMuted(false);
punishedPlayer.getPunishments().stream().filter(punishment -> punishment.getType() == PunishmentType.MUTE && punishment.isActive()).forEach(punishment -> { punishedPlayer.getPunishments().stream().filter(punishment -> punishment.getType() == PunishmentType.MUTE && punishment.isActive()).forEach(punishment ->
{
punishment.setActive(false); punishment.setActive(false);
plugin.getSqlPunishment().updatePunishment(punishment.getType(), false, punishment.getPunished()); plugin.getSqlPunishment().updatePunishment(punishment.getType(), false, punishment.getPunished());
}); });
@@ -4,9 +4,11 @@ import com.google.common.collect.ImmutableList;
import dev.plex.command.PlexCommand; import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.annotation.CommandPermissions;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.JoinConfiguration; import net.kyori.adventure.text.JoinConfiguration;
import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.TextComponent;
@@ -44,7 +46,8 @@ public class WhoHasCMD extends PlexCommand
} }
List<TextComponent> players = Bukkit.getOnlinePlayers().stream().filter(player -> List<TextComponent> players = Bukkit.getOnlinePlayers().stream().filter(player ->
player.getInventory().contains(material)).map(player -> { player.getInventory().contains(material)).map(player ->
{
if (clearInventory) if (clearInventory)
{ {
player.getInventory().remove(material); player.getInventory().remove(material);
@@ -6,9 +6,11 @@ import dev.plex.command.PlexCommand;
import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandParameters;
import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.annotation.CommandPermissions;
import dev.plex.command.source.RequiredCommandSource; import dev.plex.command.source.RequiredCommandSource;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
@@ -2,9 +2,11 @@ package dev.plex.config;
import dev.plex.Plex; import dev.plex.Plex;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import java.io.File; import java.io.File;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
/** /**
@@ -1,9 +1,11 @@
package dev.plex.config; package dev.plex.config;
import dev.plex.module.PlexModule; import dev.plex.module.PlexModule;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Files; import java.nio.file.Files;
import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
@@ -41,7 +41,8 @@ public class CoreProtectHook
this.coreProtectAPI.testAPI(); this.coreProtectAPI.testAPI();
} }
public boolean hasCoreProtect() { public boolean hasCoreProtect()
{
return hasApi; return hasApi;
} }
@@ -13,7 +13,7 @@ public class PrismHook
Plugin plugin = plex.getServer().getPluginManager().getPlugin("Prism"); Plugin plugin = plex.getServer().getPluginManager().getPlugin("Prism");
// Check that Prism is loaded // Check that Prism is loaded
if (!plugin.isEnabled()) if (plugin != null && !plugin.isEnabled())
{ {
return; return;
} }
@@ -22,7 +22,8 @@ public class PrismHook
this.prismApi = (PrismApi) plugin; this.prismApi = (PrismApi) plugin;
} }
public boolean hasPrism() { public boolean hasPrism()
{
return prismApi != null; return prismApi != null;
} }
@@ -4,7 +4,9 @@ import dev.plex.player.PlexPlayer;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import dev.plex.util.minimessage.SafeMiniMessage; import dev.plex.util.minimessage.SafeMiniMessage;
import java.util.UUID; import java.util.UUID;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.milkbowl.vault.chat.Chat; import net.milkbowl.vault.chat.Chat;
import net.milkbowl.vault.permission.Permission; import net.milkbowl.vault.permission.Permission;
@@ -74,11 +76,13 @@ public class VaultHook
return PlexUtils.mmDeserialize("<dark_gray>[<dark_purple>Developer<dark_gray>]"); return PlexUtils.mmDeserialize("<dark_gray>[<dark_purple>Developer<dark_gray>]");
} }
String group = VaultHook.getPermission().getPrimaryGroup(null, player); String group = VaultHook.getPermission().getPrimaryGroup(null, player);
if (group == null || group.isEmpty()) { if (group == null || group.isEmpty())
{
return Component.empty(); return Component.empty();
} }
String vaultPrefix = VaultHook.getChat().getGroupPrefix((String) null, group); String vaultPrefix = VaultHook.getChat().getGroupPrefix((String) null, group);
if (vaultPrefix == null || vaultPrefix.isEmpty()) { if (vaultPrefix == null || vaultPrefix.isEmpty())
{
return Component.empty(); return Component.empty();
} }
PlexLog.debug("prefix: {0}", SafeMiniMessage.mmSerializeWithoutEvents(PlexUtils.stringToComponent(vaultPrefix)).replace("<", "\\<")); PlexLog.debug("prefix: {0}", SafeMiniMessage.mmSerializeWithoutEvents(PlexUtils.stringToComponent(vaultPrefix)).replace("<", "\\<"));
@@ -3,7 +3,9 @@ package dev.plex.listener.impl;
import dev.plex.listener.PlexListener; import dev.plex.listener.PlexListener;
import dev.plex.services.impl.TimingService; import dev.plex.services.impl.TimingService;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.UUID; import java.util.UUID;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockBreakEvent;
@@ -4,7 +4,9 @@ import dev.plex.listener.PlexListener;
import dev.plex.services.impl.TimingService; import dev.plex.services.impl.TimingService;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import io.papermc.paper.event.player.AsyncChatEvent; import io.papermc.paper.event.player.AsyncChatEvent;
import java.util.UUID; import java.util.UUID;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent;
@@ -7,8 +7,6 @@ import dev.plex.player.PlexPlayer;
import dev.plex.punishment.Punishment; import dev.plex.punishment.Punishment;
import dev.plex.punishment.PunishmentManager; import dev.plex.punishment.PunishmentManager;
import dev.plex.punishment.PunishmentType; import dev.plex.punishment.PunishmentType;
import dev.plex.util.PlexLog;
import it.unimi.dsi.fastutil.Pair;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.player.AsyncPlayerPreLoginEvent; import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
@@ -2,13 +2,16 @@ package dev.plex.listener.impl;
import dev.plex.listener.PlexListener; import dev.plex.listener.PlexListener;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.block.Sign; import org.bukkit.block.Sign;
import org.bukkit.block.sign.Side;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockBreakEvent;
@@ -59,15 +62,26 @@ public class BlockListener extends PlexListener
{ {
Sign sign = (Sign) block.getState(); Sign sign = (Sign) block.getState();
boolean anythingChanged = false; boolean anythingChanged = false;
for (int i = 0; i < sign.lines().size(); i++) for (int i = 0; i < sign.getSide(Side.FRONT).lines().size(); i++)
{ {
Component line = sign.line(i); Component line = sign.getSide(Side.FRONT).line(i);
if (line.clickEvent() != null) if (line.clickEvent() != null)
{ {
anythingChanged = true; anythingChanged = true;
sign.line(i, line.clickEvent(null)); sign.getSide(Side.FRONT).line(i, line.clickEvent(null));
} }
} }
for (int i = 0; i < sign.getSide(Side.BACK).lines().size(); i++)
{
Component line = sign.getSide(Side.BACK).line(i);
if (line.clickEvent() != null)
{
anythingChanged = true;
sign.getSide(Side.BACK).line(i, line.clickEvent(null));
}
}
if (anythingChanged) if (anythingChanged)
{ {
sign.update(true); sign.update(true);
@@ -79,7 +93,7 @@ public class BlockListener extends PlexListener
@EventHandler(priority = EventPriority.LOW) @EventHandler(priority = EventPriority.LOW)
public void onBlockBreak(BlockBreakEvent event) public void onBlockBreak(BlockBreakEvent event)
{ {
if (blockedPlayers.size() == 0) if (blockedPlayers.isEmpty())
{ {
return; return;
} }
@@ -19,14 +19,14 @@ import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextReplacementConfig; import net.kyori.adventure.text.TextReplacementConfig;
import net.kyori.adventure.text.event.ClickEvent; import net.kyori.adventure.text.event.ClickEvent;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@Toggleable("chat.enabled") @Toggleable("chat.enabled")
public class ChatListener extends PlexListener { public class ChatListener extends PlexListener
{
public static final TextReplacementConfig URL_REPLACEMENT_CONFIG = TextReplacementConfig public static final TextReplacementConfig URL_REPLACEMENT_CONFIG = TextReplacementConfig
.builder() .builder()
.match("(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]") .match("(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]")
@@ -41,9 +41,11 @@ public class ChatListener extends PlexListener {
private static final Component format = SafeMiniMessage.mmDeserialize(plugin.config.getString("chat.format")); private static final Component format = SafeMiniMessage.mmDeserialize(plugin.config.getString("chat.format"));
@EventHandler(priority = EventPriority.LOWEST) @EventHandler(priority = EventPriority.LOWEST)
public void onChat(AsyncChatEvent event) { public void onChat(AsyncChatEvent event)
{
PlexPlayer plexPlayer = plugin.getPlayerCache().getPlexPlayerMap().get(event.getPlayer().getUniqueId()); PlexPlayer plexPlayer = plugin.getPlayerCache().getPlexPlayerMap().get(event.getPlayer().getUniqueId());
if (plexPlayer.isStaffChat()) { if (plexPlayer.isStaffChat())
{
String prefix = PlexUtils.mmSerialize(VaultHook.getPrefix(event.getPlayer())); // Don't use PlexPlayer#getPrefix because that returns their custom set prefix and not their group's String prefix = PlexUtils.mmSerialize(VaultHook.getPrefix(event.getPlayer())); // Don't use PlexPlayer#getPrefix because that returns their custom set prefix and not their group's
MessageUtil.sendStaffChat(event.getPlayer(), event.message(), PlexUtils.adminChat(event.getPlayer().getName(), prefix, SafeMiniMessage.mmSerialize(event.message())).toArray(UUID[]::new)); MessageUtil.sendStaffChat(event.getPlayer(), event.message(), PlexUtils.adminChat(event.getPlayer().getName(), prefix, SafeMiniMessage.mmSerialize(event.message())).toArray(UUID[]::new));
plugin.getServer().getConsoleSender().sendMessage(PlexUtils.messageComponent("adminChatFormat", event.getPlayer().getName(), prefix, SafeMiniMessage.mmSerialize(event.message().replaceText(URL_REPLACEMENT_CONFIG)))); plugin.getServer().getConsoleSender().sendMessage(PlexUtils.messageComponent("adminChatFormat", event.getPlayer().getName(), prefix, SafeMiniMessage.mmSerialize(event.message().replaceText(URL_REPLACEMENT_CONFIG))));
@@ -52,10 +54,13 @@ public class ChatListener extends PlexListener {
} }
Component prefix = PlayerMeta.getPrefix(plexPlayer); Component prefix = PlayerMeta.getPrefix(plexPlayer);
if (prefix != null && !prefix.equals(Component.empty()) && !prefix.equals(Component.space())) { if (prefix != null && !prefix.equals(Component.empty()) && !prefix.equals(Component.space()))
{
renderer.hasPrefix = true; renderer.hasPrefix = true;
renderer.prefix = prefix; renderer.prefix = prefix;
} else { }
else
{
renderer.hasPrefix = false; renderer.hasPrefix = false;
renderer.prefix = null; renderer.prefix = null;
} }
@@ -65,21 +70,25 @@ public class ChatListener extends PlexListener {
event.renderer(renderer); event.renderer(renderer);
} }
public static class PlexChatRenderer implements ChatRenderer { public static class PlexChatRenderer implements ChatRenderer
{
public boolean hasPrefix; public boolean hasPrefix;
public Component prefix; public Component prefix;
public Supplier<Component> before = null; public Supplier<Component> before = null;
@Override @Override
public @NotNull Component render(@NotNull Player source, @NotNull Component sourceDisplayName, @NotNull Component message, @NotNull Audience viewer) { public @NotNull Component render(@NotNull Player source, @NotNull Component sourceDisplayName, @NotNull Component message, @NotNull Audience viewer)
{
Component component = format; Component component = format;
if (before != null) { if (before != null)
{
component = component.append(before.get()); component = component.append(before.get());
} }
// Substitute the prefix from the config // Substitute the prefix from the config
if (hasPrefix) { if (hasPrefix)
{
component = component.replaceText(TextReplacementConfig.builder().matchLiteral("{prefix}").replacement(prefix).build()); component = component.replaceText(TextReplacementConfig.builder().matchLiteral("{prefix}").replacement(prefix).build());
} }
@@ -97,7 +106,8 @@ public class ChatListener extends PlexListener {
} }
} }
private static void defaultChatProcessing(AsyncChatEvent event, PlexPlayer plexPlayer) { private static void defaultChatProcessing(AsyncChatEvent event, PlexPlayer plexPlayer)
{
String text = PlexUtils.getTextFromComponent(event.message()); String text = PlexUtils.getTextFromComponent(event.message());
event.message(PlexUtils.stringToComponent(text)); event.message(PlexUtils.stringToComponent(text));
} }
@@ -4,7 +4,9 @@ import dev.plex.listener.PlexListener;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import io.papermc.paper.event.player.AsyncChatEvent; import io.papermc.paper.event.player.AsyncChatEvent;
import java.util.List; import java.util.List;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@@ -6,7 +6,9 @@ import dev.plex.meta.PlayerMeta;
import dev.plex.player.PlexPlayer; import dev.plex.player.PlexPlayer;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.List; import java.util.List;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@@ -5,9 +5,11 @@ import com.destroystokyo.paper.event.server.PaperServerListPingEvent.ListedPlaye
import dev.plex.listener.PlexListener; import dev.plex.listener.PlexListener;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import dev.plex.util.RandomUtil; import dev.plex.util.RandomUtil;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@@ -20,7 +22,17 @@ public class ServerListener extends PlexListener
String baseMotd = plugin.config.getString("server.motd"); String baseMotd = plugin.config.getString("server.motd");
baseMotd = baseMotd.replace("\\n", "\n"); baseMotd = baseMotd.replace("\\n", "\n");
baseMotd = baseMotd.replace("%servername%", plugin.config.getString("server.name")); baseMotd = baseMotd.replace("%servername%", plugin.config.getString("server.name"));
baseMotd = baseMotd.replace("%mcversion%", Bukkit.getBukkitVersion().split("-")[0]);
String version = Bukkit.getBukkitVersion();
if (version.contains("build"))
{
baseMotd = baseMotd.replace("%mcversion%", version.split(".build")[0]);
}
else
{
baseMotd = baseMotd.replace("%mcversion%", version.split("-")[0]);
}
if (plugin.config.getBoolean("server.colorize_motd")) if (plugin.config.getBoolean("server.colorize_motd"))
{ {
AtomicReference<Component> motd = new AtomicReference<>(Component.empty()); AtomicReference<Component> motd = new AtomicReference<>(Component.empty());
@@ -43,7 +55,7 @@ public class ServerListener extends PlexListener
{ {
event.getListedPlayers().clear(); event.getListedPlayers().clear();
event.getListedPlayers().addAll(samples.stream().map(string -> string.replace("&", "§")) event.getListedPlayers().addAll(samples.stream().map(string -> string.replace("&", "§"))
.map(str -> new ListedPlayerInfo(str, UUID.randomUUID())).toList()); .map(str -> new ListedPlayerInfo(str, UUID.randomUUID())).toList());
} }
} }
} }
@@ -5,7 +5,9 @@ import dev.plex.listener.PlexListener;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import io.papermc.paper.event.player.AsyncChatEvent; import io.papermc.paper.event.player.AsyncChatEvent;
import io.papermc.paper.event.player.PrePlayerAttackEntityEvent; import io.papermc.paper.event.player.PrePlayerAttackEntityEvent;
import java.util.List; import java.util.List;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -141,8 +143,8 @@ public class TogglesListener extends PlexListener
if (shooter instanceof Player) if (shooter instanceof Player)
{ {
ThrownPotion potion = event.getPotion(); ThrownPotion potion = event.getPotion();
if (potion.getEffects().stream().anyMatch(effect -> effect.getType().getName().startsWith("HARM") || if (potion.getEffects().stream().anyMatch(effect -> effect.getType().getKey().getKey().startsWith("HARM") ||
effect.getType().getName().startsWith("POISON")) && effect.getType().getKey().getKey().startsWith("POISON")) &&
event.getAffectedEntities().stream().anyMatch(entity -> entity instanceof Player)) event.getAffectedEntities().stream().anyMatch(entity -> entity instanceof Player))
{ {
@@ -1,8 +1,10 @@
package dev.plex.listener.impl; package dev.plex.listener.impl;
import dev.plex.listener.PlexListener; import dev.plex.listener.PlexListener;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
@@ -48,7 +50,10 @@ public class WorldListener extends PlexListener
@EventHandler(priority = EventPriority.LOWEST) @EventHandler(priority = EventPriority.LOWEST)
public void onInteractWorld(PlayerInteractEvent event) public void onInteractWorld(PlayerInteractEvent event)
{ {
if (event.getInteractionPoint() != null && event.getInteractionPoint().getBlock().getBlockData() instanceof Openable) return; if (event.getInteractionPoint() != null && event.getInteractionPoint().getBlock().getBlockData() instanceof Openable)
{
return;
}
if (!canModifyWorld(event.getPlayer(), true)) if (!canModifyWorld(event.getPlayer(), true))
{ {
event.setCancelled(true); event.setCancelled(true);
@@ -76,7 +81,10 @@ public class WorldListener extends PlexListener
@EventHandler(priority = EventPriority.LOWEST) @EventHandler(priority = EventPriority.LOWEST)
public void onInteractWorld(EntityDamageByEntityEvent event) public void onInteractWorld(EntityDamageByEntityEvent event)
{ {
if (!(event.getDamager() instanceof Player player)) return; if (!(event.getDamager() instanceof Player player))
{
return;
}
if (!canModifyWorld(player, true)) if (!canModifyWorld(player, true))
{ {
event.setCancelled(true); event.setCancelled(true);
@@ -2,7 +2,9 @@ package dev.plex.menu;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import dev.plex.util.minimessage.SafeMiniMessage; import dev.plex.util.minimessage.SafeMiniMessage;
import java.util.Map; import java.util.Map;
import lombok.Getter; import lombok.Getter;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
@@ -3,8 +3,10 @@ package dev.plex.menu.impl;
import dev.plex.menu.AbstractMenu; import dev.plex.menu.AbstractMenu;
import dev.plex.menu.pagination.PageableMenu; import dev.plex.menu.pagination.PageableMenu;
import dev.plex.util.item.ItemBuilder; import dev.plex.util.item.ItemBuilder;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@@ -7,13 +7,16 @@ import dev.plex.player.PlexPlayer;
import dev.plex.punishment.Punishment; import dev.plex.punishment.Punishment;
import dev.plex.util.TimeUtils; import dev.plex.util.TimeUtils;
import dev.plex.util.item.ItemBuilder; import dev.plex.util.item.ItemBuilder;
import java.util.List; import java.util.List;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
public class PunishedPlayerMenu extends PageableMenu<Punishment> public class PunishedPlayerMenu extends PageableMenu<Punishment>
{ {
private final PlexPlayer punishedPlayer; private final PlexPlayer punishedPlayer;
public PunishedPlayerMenu(PlexPlayer player) public PunishedPlayerMenu(PlexPlayer player)
{ {
super("<red><bold>Punishments - " + player.getName(), AbstractMenu.Rows.SIX); super("<red><bold>Punishments - " + player.getName(), AbstractMenu.Rows.SIX);
@@ -6,7 +6,9 @@ import dev.plex.menu.pagination.PageableMenu;
import dev.plex.player.PlexPlayer; import dev.plex.player.PlexPlayer;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import dev.plex.util.item.ItemBuilder; import dev.plex.util.item.ItemBuilder;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@@ -24,7 +26,10 @@ public class PunishmentMenu extends PageableMenu<Player>
PlexLog.debug("list: {0}", list().size()); PlexLog.debug("list: {0}", list().size());
onClick((inventoryView, itemStacks, player, itemStack) -> onClick((inventoryView, itemStacks, player, itemStack) ->
{ {
if (itemStack.getType() != Material.PLAYER_HEAD) return true; if (itemStack.getType() != Material.PLAYER_HEAD)
{
return true;
}
final SkullMeta meta = (SkullMeta) itemStack.getItemMeta(); final SkullMeta meta = (SkullMeta) itemStack.getItemMeta();
if (meta.getOwningPlayer() == null) if (meta.getOwningPlayer() == null)
{ {
@@ -3,7 +3,9 @@ package dev.plex.menu.impl;
import dev.plex.Plex; import dev.plex.Plex;
import dev.plex.menu.AbstractMenu; import dev.plex.menu.AbstractMenu;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import java.util.List; import java.util.List;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
@@ -6,8 +6,10 @@ import dev.plex.util.PlexUtils;
import dev.plex.util.function.ConditionalQuadConsumer; import dev.plex.util.function.ConditionalQuadConsumer;
import dev.plex.util.item.ItemBuilder; import dev.plex.util.item.ItemBuilder;
import dev.plex.util.minimessage.SafeMiniMessage; import dev.plex.util.minimessage.SafeMiniMessage;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@@ -4,6 +4,7 @@ import com.google.common.collect.Lists;
import dev.plex.Plex; import dev.plex.Plex;
import dev.plex.module.exception.ModuleLoadException; import dev.plex.module.exception.ModuleLoadException;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
@@ -14,6 +15,7 @@ import java.net.URLClassLoader;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import lombok.Getter; import lombok.Getter;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
@@ -5,6 +5,7 @@ import dev.plex.Plex;
import dev.plex.command.PlexCommand; import dev.plex.command.PlexCommand;
import dev.plex.listener.PlexListener; import dev.plex.listener.PlexListener;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
@@ -13,6 +14,7 @@ import java.net.URLConnection;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@@ -22,13 +24,13 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@Getter @Getter
@Setter(AccessLevel.MODULE) @Setter(AccessLevel.PACKAGE)
public abstract class PlexModule public abstract class PlexModule
{ {
@Getter(AccessLevel.MODULE) @Getter(AccessLevel.PACKAGE)
private final List<PlexCommand> commands = Lists.newArrayList(); private final List<PlexCommand> commands = Lists.newArrayList();
@Getter(AccessLevel.MODULE) @Getter(AccessLevel.PACKAGE)
private final List<PlexListener> listeners = Lists.newArrayList(); private final List<PlexListener> listeners = Lists.newArrayList();
private Plex plex; private Plex plex;
@@ -1,7 +1,9 @@
package dev.plex.module; package dev.plex.module;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import java.util.List; import java.util.List;
import lombok.Data; import lombok.Data;
@Data @Data
@@ -11,9 +11,11 @@ import dev.plex.storage.annotation.PrimaryKey;
import dev.plex.storage.annotation.SQLTable; import dev.plex.storage.annotation.SQLTable;
import dev.plex.storage.annotation.VarcharLimit; import dev.plex.storage.annotation.VarcharLimit;
import dev.plex.util.adapter.ZonedDateTimeAdapter; import dev.plex.util.adapter.ZonedDateTimeAdapter;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@@ -79,7 +81,7 @@ public class PlexPlayer
{ {
this.loadPunishments(); this.loadPunishments();
this.checkMutesAndFreeze(); this.checkMutesAndFreeze();
// this.permissions.addAll(Plex.get().getSqlPermissions().getPermissions(this.uuid)); // this.permissions.addAll(Plex.get().getSqlPermissions().getPermissions(this.uuid));
} }
} }
@@ -93,7 +95,8 @@ public class PlexPlayer
return PlainTextComponentSerializer.plainText().serialize(getPlayer().displayName()); return PlainTextComponentSerializer.plainText().serialize(getPlayer().displayName());
} }
public void checkMutesAndFreeze() { public void checkMutesAndFreeze()
{
final ZonedDateTime now = ZonedDateTime.now(); final ZonedDateTime now = ZonedDateTime.now();
this.muted = this.punishments.stream().filter(punishment -> punishment.getType() == PunishmentType.MUTE).anyMatch(punishment -> punishment.isActive() && now.isBefore(punishment.getEndDate())); this.muted = this.punishments.stream().filter(punishment -> punishment.getType() == PunishmentType.MUTE).anyMatch(punishment -> punishment.isActive() && now.isBefore(punishment.getEndDate()));
this.frozen = this.punishments.stream().filter(punishment -> punishment.getType() == PunishmentType.FREEZE).anyMatch(punishment -> punishment.isActive() && now.isBefore(punishment.getEndDate())); this.frozen = this.punishments.stream().filter(punishment -> punishment.getType() == PunishmentType.FREEZE).anyMatch(punishment -> punishment.isActive() && now.isBefore(punishment.getEndDate()));
@@ -7,8 +7,10 @@ import dev.plex.storage.annotation.SQLTable;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import dev.plex.util.TimeUtils; import dev.plex.util.TimeUtils;
import dev.plex.util.adapter.ZonedDateTimeAdapter; import dev.plex.util.adapter.ZonedDateTimeAdapter;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.util.UUID; import java.util.UUID;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
@@ -32,12 +34,6 @@ public class Punishment
private boolean active; // Field is only for bans private boolean active; // Field is only for bans
private ZonedDateTime endDate; private ZonedDateTime endDate;
public Punishment()
{
this.punished = null;
this.punisher = null;
}
public Punishment(UUID punished, UUID punisher) public Punishment(UUID punished, UUID punisher)
{ {
this.punished = punished; this.punished = punished;
@@ -10,6 +10,7 @@ import dev.plex.player.PlexPlayer;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import dev.plex.util.TimeUtils; import dev.plex.util.TimeUtils;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
@@ -20,6 +21,7 @@ import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import lombok.Data; import lombok.Data;
import lombok.Getter; import lombok.Getter;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
@@ -4,8 +4,10 @@ import com.google.gson.GsonBuilder;
import dev.plex.storage.annotation.NoLimit; import dev.plex.storage.annotation.NoLimit;
import dev.plex.storage.annotation.SQLTable; import dev.plex.storage.annotation.SQLTable;
import dev.plex.util.adapter.ZonedDateTimeAdapter; import dev.plex.util.adapter.ZonedDateTimeAdapter;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.util.UUID; import java.util.UUID;
import lombok.Data; import lombok.Data;
@Data @Data
@@ -7,8 +7,10 @@ import dev.plex.services.impl.BanService;
import dev.plex.services.impl.GameRuleService; import dev.plex.services.impl.GameRuleService;
import dev.plex.services.impl.TimingService; import dev.plex.services.impl.TimingService;
import dev.plex.services.impl.UpdateCheckerService; import dev.plex.services.impl.UpdateCheckerService;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
public class ServiceManager public class ServiceManager
@@ -3,7 +3,9 @@ package dev.plex.services.impl;
import dev.plex.Plex; import dev.plex.Plex;
import dev.plex.services.AbstractService; import dev.plex.services.AbstractService;
import io.papermc.paper.threadedregions.scheduler.ScheduledTask; import io.papermc.paper.threadedregions.scheduler.ScheduledTask;
import java.util.List; import java.util.List;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
@@ -5,8 +5,10 @@ import dev.plex.services.AbstractService;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import dev.plex.util.TimeUtils; import dev.plex.util.TimeUtils;
import io.papermc.paper.threadedregions.scheduler.ScheduledTask; import io.papermc.paper.threadedregions.scheduler.ScheduledTask;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
public class BanService extends AbstractService public class BanService extends AbstractService
@@ -4,7 +4,9 @@ import dev.plex.services.AbstractService;
import dev.plex.util.GameRuleUtil; import dev.plex.util.GameRuleUtil;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import io.papermc.paper.threadedregions.scheduler.ScheduledTask; import io.papermc.paper.threadedregions.scheduler.ScheduledTask;
import java.util.Locale; import java.util.Locale;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
@@ -8,9 +8,11 @@ import dev.plex.services.AbstractService;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import dev.plex.util.TimeUtils; import dev.plex.util.TimeUtils;
import io.papermc.paper.threadedregions.scheduler.ScheduledTask; import io.papermc.paper.threadedregions.scheduler.ScheduledTask;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -6,6 +6,7 @@ import dev.plex.Plex;
import dev.plex.player.PlexPlayer; import dev.plex.player.PlexPlayer;
import dev.plex.storage.StorageType; import dev.plex.storage.StorageType;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
@@ -4,6 +4,7 @@ import com.google.common.collect.Lists;
import dev.plex.Plex; import dev.plex.Plex;
import dev.plex.punishment.extra.Note; import dev.plex.punishment.extra.Note;
import dev.plex.util.TimeUtils; import dev.plex.util.TimeUtils;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
@@ -6,6 +6,7 @@ import dev.plex.punishment.Punishment;
import dev.plex.punishment.PunishmentType; import dev.plex.punishment.PunishmentType;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import dev.plex.util.TimeUtils; import dev.plex.util.TimeUtils;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
@@ -84,6 +85,7 @@ public class SQLPunishment
} }
return punishments; return punishments;
} }
public List<Punishment> getPunishments(String ip) public List<Punishment> getPunishments(String ip)
{ {
List<Punishment> punishments = Lists.newArrayList(); List<Punishment> punishments = Lists.newArrayList();
@@ -8,14 +8,14 @@ public class BlockUtils
public static Location relative(Location origin, BlockFace face) public static Location relative(Location origin, BlockFace face)
{ {
return switch (face) return switch (face)
{ {
case UP -> origin.add(0, 1, 0); case UP -> origin.add(0, 1, 0);
case DOWN -> origin.subtract(0, 1, 0); case DOWN -> origin.subtract(0, 1, 0);
case NORTH -> origin.subtract(0, 0, 1); case NORTH -> origin.subtract(0, 0, 1);
case SOUTH -> origin.add(0, 0, 1); case SOUTH -> origin.add(0, 0, 1);
case WEST -> origin.subtract(1, 0, 0); case WEST -> origin.subtract(1, 0, 0);
case EAST -> origin.add(1, 0, 0); case EAST -> origin.add(1, 0, 0);
default -> origin.add(face.getModX(), face.getModY(), face.getModZ()); default -> origin.add(face.getModX(), face.getModY(), face.getModZ());
}; };
} }
} }
@@ -1,8 +1,10 @@
package dev.plex.util; package dev.plex.util;
import dev.plex.Plex; import dev.plex.Plex;
import java.io.InputStream; import java.io.InputStream;
import java.util.Properties; import java.util.Properties;
import lombok.Getter; import lombok.Getter;
public class BuildInfo public class BuildInfo
@@ -13,7 +13,10 @@ public class PlexLog
{ {
for (int i = 0; i < strings.length; i++) for (int i = 0; i < strings.length; i++)
{ {
if (strings[i] == null) continue; if (strings[i] == null)
{
continue;
}
if (message.contains("{" + i + "}")) if (message.contains("{" + i + "}"))
{ {
message = message.replace("{" + i + "}", strings[i].toString()); message = message.replace("{" + i + "}", strings[i].toString());
@@ -31,7 +34,10 @@ public class PlexLog
{ {
for (int i = 0; i < strings.length; i++) for (int i = 0; i < strings.length; i++)
{ {
if (strings[i] == null) continue; if (strings[i] == null)
{
continue;
}
if (message.contains("{" + i + "}")) if (message.contains("{" + i + "}"))
{ {
message = message.replace("{" + i + "}", strings[i].toString()); message = message.replace("{" + i + "}", strings[i].toString());
@@ -44,7 +50,10 @@ public class PlexLog
{ {
for (int i = 0; i < strings.length; i++) for (int i = 0; i < strings.length; i++)
{ {
if (strings[i] == null) continue; if (strings[i] == null)
{
continue;
}
if (message.contains("{" + i + "}")) if (message.contains("{" + i + "}"))
{ {
message = message.replace("{" + i + "}", strings[i].toString()); message = message.replace("{" + i + "}", strings[i].toString());
@@ -59,7 +68,10 @@ public class PlexLog
{ {
for (int i = 0; i < strings.length; i++) for (int i = 0; i < strings.length; i++)
{ {
if (strings[i] == null) continue; if (strings[i] == null)
{
continue;
}
if (message.contains("{" + i + "}")) if (message.contains("{" + i + "}"))
{ {
message = message.replace("{" + i + "}", strings[i].toString()); message = message.replace("{" + i + "}", strings[i].toString());
@@ -7,6 +7,7 @@ import dev.plex.PlexBase;
import dev.plex.listener.impl.ChatListener; import dev.plex.listener.impl.ChatListener;
import dev.plex.storage.StorageType; import dev.plex.storage.StorageType;
import dev.plex.util.minimessage.SafeMiniMessage; import dev.plex.util.minimessage.SafeMiniMessage;
import java.sql.Connection; import java.sql.Connection;
import java.sql.SQLException; import java.sql.SQLException;
import java.time.Month; import java.time.Month;
@@ -18,6 +19,7 @@ import java.util.Stack;
import java.util.UUID; import java.util.UUID;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.TextComponent;
import net.kyori.adventure.text.format.TextDecoration; import net.kyori.adventure.text.format.TextDecoration;
@@ -133,7 +135,7 @@ public class PlexUtils implements PlexBase
List<Command> cmds = PluginCommandYamlParser.parse(plugin); List<Command> cmds = PluginCommandYamlParser.parse(plugin);
for (Command pluginCmd : cmds) for (Command pluginCmd : cmds)
{ {
List<String> cmdAliases = pluginCmd.getAliases().size() > 0 ? pluginCmd.getAliases().stream().map(String::toLowerCase).toList() : null; List<String> cmdAliases = !pluginCmd.getAliases().isEmpty() ? pluginCmd.getAliases().stream().map(String::toLowerCase).toList() : null;
if (pluginCmd.getName().equalsIgnoreCase(cmd) || (cmdAliases != null && cmdAliases.contains(cmd.toLowerCase()))) if (pluginCmd.getName().equalsIgnoreCase(cmd) || (cmdAliases != null && cmdAliases.contains(cmd.toLowerCase())))
{ {
return true; return true;
@@ -1,6 +1,7 @@
package dev.plex.util; package dev.plex.util;
import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.ThreadLocalRandom;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
public class RandomUtil public class RandomUtil
@@ -4,6 +4,7 @@ import com.google.common.collect.ImmutableSet;
import com.google.common.reflect.ClassPath; import com.google.common.reflect.ClassPath;
import com.google.common.reflect.TypeToken; import com.google.common.reflect.TypeToken;
import dev.plex.Plex; import dev.plex.Plex;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType; import java.lang.reflect.ParameterizedType;
@@ -1,6 +1,7 @@
package dev.plex.util; package dev.plex.util;
import dev.plex.Plex; import dev.plex.Plex;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
@@ -10,6 +11,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.TimeZone; import java.util.TimeZone;
import org.apache.commons.lang3.math.NumberUtils; import org.apache.commons.lang3.math.NumberUtils;
public class TimeUtils public class TimeUtils
@@ -1,20 +1,21 @@
package dev.plex.util; package dev.plex.util;
import com.google.common.base.Charsets;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.JsonSyntaxException; import com.google.gson.JsonSyntaxException;
import dev.plex.PlexBase; import dev.plex.PlexBase;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URI;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
import javax.annotation.Nonnull;
import lombok.NonNull;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
@@ -44,11 +45,11 @@ public class UpdateChecker implements PlexBase
private int distance = -4; private int distance = -4;
// Adapted from Paper // Adapted from Paper
private int fetchDistanceFromGitHub(@Nonnull String repo, @Nonnull String branch, @Nonnull String hash) private int fetchDistanceFromGitHub(@NonNull String repo, @NonNull String branch, @NonNull String hash)
{ {
try try
{ {
HttpURLConnection connection = (HttpURLConnection) new URL("https://api.github.com/repos/" + repo + "/compare/" + branch + "..." + hash).openConnection(); HttpURLConnection connection = (HttpURLConnection) URI.create("https://api.github.com/repos/" + repo + "/compare/" + branch + "..." + hash).toURL().openConnection();
connection.connect(); connection.connect();
if (connection.getResponseCode() == HttpURLConnection.HTTP_NOT_FOUND) if (connection.getResponseCode() == HttpURLConnection.HTTP_NOT_FOUND)
{ {
@@ -58,16 +59,16 @@ public class UpdateChecker implements PlexBase
{ {
return -3; // Rate limited likely return -3; // Rate limited likely
} }
try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), Charsets.UTF_8))) try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8)))
{ {
JsonObject obj = new Gson().fromJson(reader, JsonObject.class); JsonObject obj = new Gson().fromJson(reader, JsonObject.class);
String status = obj.get("status").getAsString(); String status = obj.get("status").getAsString();
return switch (status) return switch (status)
{ {
case "identical" -> 0; case "identical" -> 0;
case "behind" -> obj.get("behind_by").getAsInt(); case "behind" -> obj.get("behind_by").getAsInt();
default -> -1; default -> -1;
}; };
} }
catch (JsonSyntaxException | NumberFormatException e) catch (JsonSyntaxException | NumberFormatException e)
{ {
@@ -186,7 +187,7 @@ public class UpdateChecker implements PlexBase
try try
{ {
FileUtils.copyURLToFile( FileUtils.copyURLToFile(
new URL(url + "/lastSuccessfulBuild/artifact/build/libs/" + jarFile), URI.create(url + "/lastSuccessfulBuild/artifact/build/libs/" + jarFile).toURL(),
copyTo copyTo
); );
sender.sendMessage(PlexUtils.mmDeserialize("<green>New JAR file downloaded successfully.")); sender.sendMessage(PlexUtils.mmDeserialize("<green>New JAR file downloaded successfully."));
@@ -8,6 +8,7 @@ import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer; import com.google.gson.JsonSerializer;
import dev.plex.Plex; import dev.plex.Plex;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.time.Instant; import java.time.Instant;
import java.time.ZoneId; import java.time.ZoneId;
@@ -1,7 +1,9 @@
package dev.plex.util.item; package dev.plex.util.item;
import dev.plex.util.minimessage.SafeMiniMessage; import dev.plex.util.minimessage.SafeMiniMessage;
import java.util.Arrays; import java.util.Arrays;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;
@@ -1,7 +1,9 @@
package dev.plex.util.minimessage; package dev.plex.util.minimessage;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.Context; import net.kyori.adventure.text.minimessage.Context;
import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.MiniMessage;
@@ -7,7 +7,9 @@ import dev.plex.hook.VaultHook;
import dev.plex.util.PlexLog; import dev.plex.util.PlexLog;
import dev.plex.util.PlexUtils; import dev.plex.util.PlexUtils;
import dev.plex.util.minimessage.SafeMiniMessage; import dev.plex.util.minimessage.SafeMiniMessage;
import java.util.UUID; import java.util.UUID;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -15,6 +17,7 @@ import org.bukkit.entity.Player;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import redis.clients.jedis.JedisPubSub; import redis.clients.jedis.JedisPubSub;
import static dev.plex.util.PlexUtils.messageComponent; import static dev.plex.util.PlexUtils.messageComponent;
public class MessageUtil public class MessageUtil

Some files were not shown because too many files have changed in this diff Show More