diff --git a/API/src/main/java/me/egg82/antivpn/api/model/player/PlayerManager.java b/API/src/main/java/me/egg82/antivpn/api/model/player/PlayerManager.java
index f5cab223..fe567c41 100644
--- a/API/src/main/java/me/egg82/antivpn/api/model/player/PlayerManager.java
+++ b/API/src/main/java/me/egg82/antivpn/api/model/player/PlayerManager.java
@@ -357,7 +357,7 @@ default Component getMcLeaksKickMessage(@NotNull String playerName, @NotNull UUI
*
* @throws NullPointerException if playerName, playerUuid, or ip is null
*/
- @Nullable
+ @NotNull
Component getMcLeaksKickMessage(@NotNull String playerName, @NotNull UUID playerUuid, @NotNull String ip);
/**
diff --git a/Bungee/pom.xml b/Bungee/pom.xml
index a529787e..f51330d9 100644
--- a/Bungee/pom.xml
+++ b/Bungee/pom.xml
@@ -227,11 +227,10 @@
papermc-snpashots
https://papermc.io/repo/repository/maven-snapshots/
-
-
+
egg82-nexus
https://nexus.egg82.me/repository/maven-releases/
@@ -245,14 +244,14 @@
https://repo.aikar.co/content/groups/aikar/
+
+ sonatype-oss-snapshots
+ https://oss.sonatype.org/content/repositories/snapshots/
+
github-rjenkinsjr
https://raw.github.com/rjenkinsjr/maven2/repo
-
- plan
- https://dl.bintray.com/rsl1122/Plan-repository
-
CodeMC
https://repo.codemc.org/repository/maven-public
@@ -289,9 +288,9 @@
${cloud.version}
- net.kyori
+ me.lucko
adventure-platform-bungeecord
- ${adventure.version}
+ ${adventure.bungeecord.version}
ninja.egg82
@@ -322,10 +321,9 @@
${bstats.version}
- com.djrapitops
- Plan-api
+ com.github.plan-player-analytics
+ Plan
${plan.version}
- provided
net.luckperms
@@ -347,7 +345,7 @@
net.kyori
adventure-text-minimessage
- ${adventure.version}
+ ${minimessage.version}
net.oneandone.reflections8
diff --git a/Bungee/src/main/java/me/egg82/antivpn/AntiVPN.java b/Bungee/src/main/java/me/egg82/antivpn/AntiVPN.java
index 840a7add..32126cba 100644
--- a/Bungee/src/main/java/me/egg82/antivpn/AntiVPN.java
+++ b/Bungee/src/main/java/me/egg82/antivpn/AntiVPN.java
@@ -41,7 +41,6 @@
import me.egg82.antivpn.messaging.handler.MessagingHandlerImpl;
import me.egg82.antivpn.services.GameAnalyticsErrorHandler;
import me.egg82.antivpn.storage.StorageService;
-import me.egg82.antivpn.utils.ExceptionUtil;
import me.egg82.antivpn.utils.ValidationUtil;
import net.engio.mbassy.bus.MBassador;
import net.md_5.bungee.api.ChatColor;
@@ -159,7 +158,7 @@ public void onDisable() {
try {
VPNAPIProvider.getInstance().runUpdateTask().join();
} catch (CancellationException | CompletionException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
}
for (EventHolder eventHolder : eventHolders) {
@@ -356,7 +355,7 @@ private void loadTasks() {
try {
VPNAPIProvider.getInstance().runUpdateTask().join();
} catch (CancellationException | CompletionException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
}
}, 1L, 1L, TimeUnit.SECONDS).getId());
}
diff --git a/Bungee/src/main/java/me/egg82/antivpn/api/model/player/BungeePlayerManager.java b/Bungee/src/main/java/me/egg82/antivpn/api/model/player/BungeePlayerManager.java
index 09fa34d9..a6d6acc6 100644
--- a/Bungee/src/main/java/me/egg82/antivpn/api/model/player/BungeePlayerManager.java
+++ b/Bungee/src/main/java/me/egg82/antivpn/api/model/player/BungeePlayerManager.java
@@ -15,7 +15,6 @@
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
import java.util.List;
import java.util.UUID;
@@ -90,7 +89,7 @@ public boolean kickForMcLeaks(@NotNull String playerName, @NotNull UUID playerUu
}
@Override
- public @Nullable String getMcLeaksKickMessage(@NotNull String playerName, @NotNull UUID playerUuid, @NotNull String ip) {
+ public @NotNull String getMcLeaksKickMessage(@NotNull String playerName, @NotNull UUID playerUuid, @NotNull String ip) {
CachedConfig cachedConfig = ConfigUtil.getCachedConfig();
if (!cachedConfig.getMCLeaksKickMessage().isEmpty()) {
diff --git a/Bungee/src/main/java/me/egg82/antivpn/commands/internal/CheckCommand.java b/Bungee/src/main/java/me/egg82/antivpn/commands/internal/CheckCommand.java
index 9e4a080f..1e57d2aa 100644
--- a/Bungee/src/main/java/me/egg82/antivpn/commands/internal/CheckCommand.java
+++ b/Bungee/src/main/java/me/egg82/antivpn/commands/internal/CheckCommand.java
@@ -6,7 +6,6 @@
import me.egg82.antivpn.api.model.ip.IPManager;
import me.egg82.antivpn.api.model.player.PlayerManager;
import me.egg82.antivpn.locale.MessageKey;
-import me.egg82.antivpn.utils.ExceptionUtil;
import me.egg82.antivpn.utils.ValidationUtil;
import org.jetbrains.annotations.NotNull;
@@ -35,7 +34,7 @@ private void checkIp(@NotNull String ip) {
if (ipManager.getCurrentAlgorithmMethod() == AlgorithmMethod.CONSESNSUS) {
ipManager.consensus(ip, true).whenCompleteAsync((val, ex) -> {
if (ex != null) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
issuer.sendError(MessageKey.ERROR__INTERNAL);
return;
}
@@ -44,7 +43,7 @@ private void checkIp(@NotNull String ip) {
} else {
ipManager.cascade(ip, true).whenCompleteAsync((val, ex) -> {
if (ex != null) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
issuer.sendError(MessageKey.ERROR__INTERNAL);
return;
}
@@ -60,7 +59,7 @@ private void checkPlayer(@NotNull String playerName) {
.thenComposeAsync(uuid -> playerManager.checkMcLeaks(uuid, true))
.whenCompleteAsync((val, ex) -> {
if (ex != null) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
issuer.sendError(MessageKey.ERROR__INTERNAL);
return;
}
diff --git a/Bungee/src/main/java/me/egg82/antivpn/commands/internal/ScoreCommand.java b/Bungee/src/main/java/me/egg82/antivpn/commands/internal/ScoreCommand.java
index 55bce17d..53d85458 100644
--- a/Bungee/src/main/java/me/egg82/antivpn/commands/internal/ScoreCommand.java
+++ b/Bungee/src/main/java/me/egg82/antivpn/commands/internal/ScoreCommand.java
@@ -9,7 +9,6 @@
import me.egg82.antivpn.config.ConfigUtil;
import me.egg82.antivpn.locale.MessageKey;
import me.egg82.antivpn.utils.DNSUtil;
-import me.egg82.antivpn.utils.ExceptionUtil;
import org.jetbrains.annotations.NotNull;
import java.text.DecimalFormat;
@@ -103,7 +102,7 @@ private void test(@NotNull Source extends SourceModel> source, @NotNull String
error += 1;
continue;
} catch (ExecutionException | CancellationException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
if (!(ex.getCause() instanceof APIException) || !((APIException) ex.getCause()).isHard()) {
error += 1;
}
diff --git a/Bungee/src/main/java/me/egg82/antivpn/commands/internal/TestCommand.java b/Bungee/src/main/java/me/egg82/antivpn/commands/internal/TestCommand.java
index c365bb59..9836e40f 100644
--- a/Bungee/src/main/java/me/egg82/antivpn/commands/internal/TestCommand.java
+++ b/Bungee/src/main/java/me/egg82/antivpn/commands/internal/TestCommand.java
@@ -8,7 +8,6 @@
import me.egg82.antivpn.config.CachedConfig;
import me.egg82.antivpn.config.ConfigUtil;
import me.egg82.antivpn.locale.MessageKey;
-import me.egg82.antivpn.utils.ExceptionUtil;
import org.jetbrains.annotations.NotNull;
import java.util.*;
@@ -43,7 +42,7 @@ public void run() {
futures.add(source.getResult(ip).whenCompleteAsync((val, ex) -> {
if (ex != null) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
latch.countDown();
return;
}
diff --git a/Bungee/src/main/java/me/egg82/antivpn/events/PlayerEvents.java b/Bungee/src/main/java/me/egg82/antivpn/events/PlayerEvents.java
index 2b44f941..134ee5b6 100644
--- a/Bungee/src/main/java/me/egg82/antivpn/events/PlayerEvents.java
+++ b/Bungee/src/main/java/me/egg82/antivpn/events/PlayerEvents.java
@@ -13,7 +13,6 @@
import me.egg82.antivpn.hooks.LuckPermsHook;
import me.egg82.antivpn.services.lookup.PlayerInfo;
import me.egg82.antivpn.services.lookup.PlayerLookup;
-import me.egg82.antivpn.utils.ExceptionUtil;
import me.egg82.antivpn.utils.ValidationUtil;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.chat.TextComponent;
@@ -88,7 +87,7 @@ private void checkPerms(@NotNull PreLoginEvent event) {
Thread.currentThread().interrupt();
uuid = null;
} catch (ExecutionException | CancellationException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
uuid = null;
}
@@ -102,7 +101,7 @@ private void checkPerms(@NotNull PreLoginEvent event) {
Thread.currentThread().interrupt();
val = null;
} catch (ExecutionException | CancellationException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
val = null;
}
checkPermsPlayer(event, uuid, Boolean.TRUE.equals(val));
@@ -213,7 +212,7 @@ private void cacheData(@NotNull String ip, @NotNull UUID uuid, @NotNull CachedCo
} catch (InterruptedException ignored) {
Thread.currentThread().interrupt();
} catch (ExecutionException | CancellationException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
}
} else {
try {
@@ -221,7 +220,7 @@ private void cacheData(@NotNull String ip, @NotNull UUID uuid, @NotNull CachedCo
} catch (InterruptedException ignored) {
Thread.currentThread().interrupt();
} catch (ExecutionException | CancellationException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
}
}
}
@@ -234,7 +233,7 @@ private void cacheData(@NotNull String ip, @NotNull UUID uuid, @NotNull CachedCo
} catch (InterruptedException ignored) {
Thread.currentThread().interrupt();
} catch (ExecutionException | CancellationException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
}
}
}
@@ -321,7 +320,7 @@ private boolean isVpn(@NotNull String ip, @NotNull String name, @NotNull CachedC
Thread.currentThread().interrupt();
isVPN = false;
} catch (ExecutionException | CancellationException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
isVPN = false;
}
} else {
@@ -331,7 +330,7 @@ private boolean isVpn(@NotNull String ip, @NotNull String name, @NotNull CachedC
Thread.currentThread().interrupt();
isVPN = false;
} catch (ExecutionException | CancellationException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
isVPN = false;
}
}
@@ -366,7 +365,7 @@ private boolean isMcLeaks(@NotNull String name, @NotNull UUID uuid, @NotNull Cac
Thread.currentThread().interrupt();
isMCLeaks = false;
} catch (ExecutionException | CancellationException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
isMCLeaks = false;
}
diff --git a/Bungee/src/main/java/me/egg82/antivpn/hooks/PlayerAnalyticsHook.java b/Bungee/src/main/java/me/egg82/antivpn/hooks/PlayerAnalyticsHook.java
index 5b0ff645..8a35e5da 100644
--- a/Bungee/src/main/java/me/egg82/antivpn/hooks/PlayerAnalyticsHook.java
+++ b/Bungee/src/main/java/me/egg82/antivpn/hooks/PlayerAnalyticsHook.java
@@ -15,7 +15,6 @@
import me.egg82.antivpn.api.model.ip.IPManager;
import me.egg82.antivpn.api.model.player.PlayerManager;
import me.egg82.antivpn.config.ConfigUtil;
-import me.egg82.antivpn.utils.ExceptionUtil;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import org.jetbrains.annotations.NotNull;
@@ -109,7 +108,7 @@ public long getVpns() {
} catch (InterruptedException ignored) {
Thread.currentThread().interrupt();
} catch (ExecutionException | CancellationException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
}
} else {
try {
@@ -119,7 +118,7 @@ public long getVpns() {
} catch (InterruptedException ignored) {
Thread.currentThread().interrupt();
} catch (ExecutionException | CancellationException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
}
}
latch.countDown();
@@ -169,7 +168,7 @@ public long getMcLeaks() {
} catch (InterruptedException ignored) {
Thread.currentThread().interrupt();
} catch (ExecutionException | CancellationException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
}
latch.countDown();
});
@@ -219,7 +218,7 @@ public boolean getUsingVpn(@NotNull UUID playerID) {
} catch (InterruptedException ignored) {
Thread.currentThread().interrupt();
} catch (ExecutionException | CancellationException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
}
} else {
try {
@@ -227,7 +226,7 @@ public boolean getUsingVpn(@NotNull UUID playerID) {
} catch (InterruptedException ignored) {
Thread.currentThread().interrupt();
} catch (ExecutionException | CancellationException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
}
}
@@ -249,7 +248,7 @@ public boolean getMcLeaks(@NotNull UUID playerId) {
} catch (InterruptedException ignored) {
Thread.currentThread().interrupt();
} catch (ExecutionException | CancellationException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
}
return false;
diff --git a/Common/pom.xml b/Common/pom.xml
index 2f29b21d..b7e568a7 100644
--- a/Common/pom.xml
+++ b/Common/pom.xml
@@ -92,6 +92,10 @@
sponge
https://repo.spongepowered.org/repository/maven-public/
+
+ wesjd-repo
+ https://nexus.wesjd.net/repository/thirdparty/
+
@@ -205,6 +209,12 @@
provided
+
+ me.gong
+ mcleaks-api
+ 1.9.5-SNAPSHOT
+
+
org.jetbrains
diff --git a/Common/src/main/java/me/egg82/antivpn/api/VPNAPIImpl.java b/Common/src/main/java/me/egg82/antivpn/api/VPNAPIImpl.java
index 1df46bcf..4d451606 100644
--- a/Common/src/main/java/me/egg82/antivpn/api/VPNAPIImpl.java
+++ b/Common/src/main/java/me/egg82/antivpn/api/VPNAPIImpl.java
@@ -5,9 +5,9 @@
import me.egg82.antivpn.api.model.player.AbstractPlayerManager;
import me.egg82.antivpn.api.model.source.SourceManagerImpl;
import me.egg82.antivpn.api.platform.Platform;
+import me.egg82.antivpn.api.platform.PluginMetadata;
import me.egg82.antivpn.config.ConfigUtil;
import me.egg82.antivpn.utils.PacketUtil;
-import me.egg82.antivpn.api.platform.AbstractPluginMetadata;
import net.kyori.event.EventBus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -17,7 +17,7 @@
public class VPNAPIImpl implements VPNAPI {
private final @NotNull Platform platform;
- private final @NotNull AbstractPluginMetadata pluginMetadata;
+ private final @NotNull PluginMetadata pluginMetadata;
private final @NotNull AbstractIPManager ipManager;
private final @NotNull AbstractPlayerManager playerManager;
@@ -30,7 +30,7 @@ public class VPNAPIImpl implements VPNAPI {
public VPNAPIImpl(
@NotNull Platform platform,
- @NotNull AbstractPluginMetadata pluginMetadata,
+ @NotNull PluginMetadata pluginMetadata,
@NotNull AbstractIPManager ipManager,
@NotNull AbstractPlayerManager playerManager,
@NotNull SourceManagerImpl sourceManager,
@@ -69,7 +69,7 @@ public VPNAPIImpl(
@Override
@NotNull
- public AbstractPluginMetadata getPluginMetadata() { return pluginMetadata; }
+ public PluginMetadata getPluginMetadata() { return pluginMetadata; }
@Override
@NotNull
diff --git a/Paper/pom.xml b/Paper/pom.xml
index 413893e3..93bcba80 100644
--- a/Paper/pom.xml
+++ b/Paper/pom.xml
@@ -253,7 +253,7 @@
${commodore.version}
- net.kyori
+ me.lucko
adventure-platform-bukkit
${adventure.bukkit.version}
diff --git a/Paper/src/main/java/me/egg82/antivpn/api/model/player/BukkitPlayerManager.java b/Paper/src/main/java/me/egg82/antivpn/api/model/player/BukkitPlayerManager.java
index a06cc49a..5dec61b4 100644
--- a/Paper/src/main/java/me/egg82/antivpn/api/model/player/BukkitPlayerManager.java
+++ b/Paper/src/main/java/me/egg82/antivpn/api/model/player/BukkitPlayerManager.java
@@ -10,7 +10,6 @@
import me.egg82.antivpn.storage.StorageService;
import me.egg82.antivpn.storage.models.PlayerModel;
import me.egg82.antivpn.utils.TimeUtil;
-import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.craftbukkit.BukkitComponentSerializer;
import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
@@ -87,7 +86,7 @@ public boolean kickForMcLeaks(@NotNull String playerName, @NotNull UUID playerUu
}
@Override
- public @Nullable Component getMcLeaksKickMessage(@NotNull String playerName, @NotNull UUID playerUuid, @NotNull String ip) {
+ public @NotNull String getMcLeaksKickMessage(@NotNull String playerName, @NotNull UUID playerUuid, @NotNull String ip) {
CachedConfig cachedConfig = ConfigUtil.getCachedConfig();
if (!cachedConfig.getMCLeaksKickMessage().isEmpty()) {
diff --git a/Paper/src/main/java/me/egg82/antivpn/commands/internal/ScoreCommand.java b/Paper/src/main/java/me/egg82/antivpn/commands/internal/ScoreCommand.java
index dcb513d7..e5229c5e 100644
--- a/Paper/src/main/java/me/egg82/antivpn/commands/internal/ScoreCommand.java
+++ b/Paper/src/main/java/me/egg82/antivpn/commands/internal/ScoreCommand.java
@@ -116,7 +116,7 @@ private void test(@NotNull Source extends SourceModel> source, @NotNull String
error += 1;
continue;
} catch (ExecutionException | CancellationException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
if (!(ex.getCause() instanceof APIException) || !((APIException) ex.getCause()).isHard()) {
error += 1;
}
diff --git a/Paper/src/main/java/me/egg82/antivpn/commands/internal/TestCommand.java b/Paper/src/main/java/me/egg82/antivpn/commands/internal/TestCommand.java
index 29235905..ad062141 100644
--- a/Paper/src/main/java/me/egg82/antivpn/commands/internal/TestCommand.java
+++ b/Paper/src/main/java/me/egg82/antivpn/commands/internal/TestCommand.java
@@ -45,7 +45,7 @@ public void run() {
futures.add(source.getResult(ip).whenCompleteAsync((val, ex) -> {
if (ex != null) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
latch.countDown();
return;
}
diff --git a/Spigot/pom.xml b/Spigot/pom.xml
index 6860dba4..1b55d10f 100644
--- a/Spigot/pom.xml
+++ b/Spigot/pom.xml
@@ -258,10 +258,6 @@
github-rjenkinsjr
https://raw.github.com/rjenkinsjr/maven2/repo
-
- plan
- https://dl.bintray.com/rsl1122/Plan-repository
-
CodeMC
https://repo.codemc.org/repository/maven-public
@@ -301,7 +297,7 @@
${commodore.version}
- net.kyori
+ me.lucko
adventure-platform-bukkit
${adventure.bukkit.version}
@@ -334,10 +330,9 @@
${bstats.version}
- com.djrapitops
- Plan-api
+ com.github.plan-player-analytics
+ Plan
${plan.version}
- provided
me.clip
diff --git a/Spigot/src/main/java/me/egg82/antivpn/api/model/player/BukkitPlayerManager.java b/Spigot/src/main/java/me/egg82/antivpn/api/model/player/BukkitPlayerManager.java
index 961bffa7..f3fbad54 100644
--- a/Spigot/src/main/java/me/egg82/antivpn/api/model/player/BukkitPlayerManager.java
+++ b/Spigot/src/main/java/me/egg82/antivpn/api/model/player/BukkitPlayerManager.java
@@ -9,7 +9,6 @@
import me.egg82.antivpn.storage.StorageService;
import me.egg82.antivpn.storage.models.PlayerModel;
import me.egg82.antivpn.utils.TimeUtil;
-import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.craftbukkit.BukkitComponentSerializer;
import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
@@ -81,7 +80,7 @@ public boolean kickForMcLeaks(@NotNull String playerName, @NotNull UUID playerUu
}
@Override
- public @Nullable Component getMcLeaksKickMessage(@NotNull String playerName, @NotNull UUID playerUuid, @NotNull String ip) {
+ public @NotNull String getMcLeaksKickMessage(@NotNull String playerName, @NotNull UUID playerUuid, @NotNull String ip) {
CachedConfig cachedConfig = ConfigUtil.getCachedConfig();
if (!cachedConfig.getMCLeaksKickMessage().isEmpty()) {
diff --git a/Spigot/src/main/java/me/egg82/antivpn/commands/internal/ScoreCommand.java b/Spigot/src/main/java/me/egg82/antivpn/commands/internal/ScoreCommand.java
index 9fcd7472..3268e9bb 100644
--- a/Spigot/src/main/java/me/egg82/antivpn/commands/internal/ScoreCommand.java
+++ b/Spigot/src/main/java/me/egg82/antivpn/commands/internal/ScoreCommand.java
@@ -116,7 +116,7 @@ private void test(@NotNull Source extends SourceModel> source, @NotNull String
error += 1;
continue;
} catch (ExecutionException | CancellationException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
if (!(ex.getCause() instanceof APIException) || !((APIException) ex.getCause()).isHard()) {
error += 1;
}
diff --git a/Spigot/src/main/java/me/egg82/antivpn/commands/internal/TestCommand.java b/Spigot/src/main/java/me/egg82/antivpn/commands/internal/TestCommand.java
index 5b3e0502..19480e1e 100644
--- a/Spigot/src/main/java/me/egg82/antivpn/commands/internal/TestCommand.java
+++ b/Spigot/src/main/java/me/egg82/antivpn/commands/internal/TestCommand.java
@@ -45,7 +45,7 @@ public void run() {
futures.add(source.getResult(ip).whenCompleteAsync((val, ex) -> {
if (ex != null) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
latch.countDown();
return;
}
diff --git a/Velocity/pom.xml b/Velocity/pom.xml
index 04a9b44e..00668beb 100644
--- a/Velocity/pom.xml
+++ b/Velocity/pom.xml
@@ -246,15 +246,14 @@
github-rjenkinsjr
https://raw.github.com/rjenkinsjr/maven2/repo
-
- plan
- https://dl.bintray.com/rsl1122/Plan-repository
-
CodeMC
https://repo.codemc.org/repository/maven-public
-
+
+ wesjd-repo
+ https://nexus.wesjd.net/repository/thirdparty/
+
jitpack.io
https://jitpack.io
@@ -296,6 +295,11 @@
dep-downloader
${depdownloader.version}
+
+ ninja.egg82
+ service-locator
+ ${servicelocator.version}
+
me.lucko
jar-relocator
@@ -303,10 +307,9 @@
- com.djrapitops
- Plan-api
+ com.github.plan-player-analytics
+ Plan
${plan.version}
- provided
net.luckperms
@@ -325,10 +328,15 @@
+
+ co.aikar
+ acf-velocity
+ 0.5.0-SNAPSHOT
+
net.kyori
adventure-text-minimessage
- ${adventure.version}
+ ${minimessage.version}
net.oneandone.reflections8
@@ -463,7 +471,16 @@
mbassador
${mbassador.version}
-
+
+ me.gong
+ mcleaks-api
+ 1.9.5-SNAPSHOT
+
+
+ javax.inject
+ javax.inject
+ 1
+
org.junit.jupiter
diff --git a/Velocity/src/main/java/me/egg82/antivpn/AntiVPN.java b/Velocity/src/main/java/me/egg82/antivpn/AntiVPN.java
index 4fbddcec..5a09f306 100644
--- a/Velocity/src/main/java/me/egg82/antivpn/AntiVPN.java
+++ b/Velocity/src/main/java/me/egg82/antivpn/AntiVPN.java
@@ -1,6 +1,7 @@
package me.egg82.antivpn;
import co.aikar.commands.*;
+import co.aikar.locales.MessageKeyProvider;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.SetMultimap;
import com.velocitypowered.api.event.PostOrder;
@@ -13,6 +14,7 @@
import me.egg82.antivpn.api.VPNAPI;
import me.egg82.antivpn.api.VPNAPIImpl;
import me.egg82.antivpn.api.VPNAPIProvider;
+import me.egg82.antivpn.api.event.VPNEvent;
import me.egg82.antivpn.api.event.api.APIDisableEventImpl;
import me.egg82.antivpn.api.event.api.APILoadedEventImpl;
import me.egg82.antivpn.api.model.ip.VelocityIPManager;
@@ -33,20 +35,19 @@
import me.egg82.antivpn.hooks.LuckPermsHook;
import me.egg82.antivpn.hooks.PlayerAnalyticsHook;
import me.egg82.antivpn.hooks.PluginHook;
-import me.egg82.antivpn.locale.LanguageFileUtil;
-import me.egg82.antivpn.locale.MessageKey;
-import me.egg82.antivpn.locale.PluginMessageFormatter;
+import me.egg82.antivpn.locale.*;
import me.egg82.antivpn.messaging.MessagingService;
import me.egg82.antivpn.messaging.ServerIDUtil;
import me.egg82.antivpn.messaging.handler.MessagingHandler;
import me.egg82.antivpn.messaging.handler.MessagingHandlerImpl;
-import me.egg82.antivpn.services.GameAnalyticsErrorHandler;
import me.egg82.antivpn.storage.StorageService;
-import me.egg82.antivpn.utils.ExceptionUtil;
import me.egg82.antivpn.utils.ValidationUtil;
import net.engio.mbassy.bus.MBassador;
-import net.kyori.text.format.TextColor;
-import ninja.egg82.events.PriorityEventSubscriber;
+import net.kyori.adventure.audience.Audience;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.format.NamedTextColor;
+import net.kyori.event.SimpleEventBus;
+import ninja.egg82.events.VelocityEventSubscriber;
import ninja.egg82.service.ServiceLocator;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
@@ -70,14 +71,14 @@ public class AntiVPN {
private VelocityCommandManager commandManager;
private final List eventHolders = new ArrayList<>();
- private final List> events = new ArrayList<>();
+ private final List> events = new ArrayList<>();
private final List tasks = new ArrayList<>();
private final Object plugin;
private final ProxyServer proxy;
private final PluginDescription description;
- private CommandIssuer consoleCommandIssuer = null;
+ private LocalizedCommandSender consoleCommandIssuer = null;
public AntiVPN(@NotNull Object plugin, @NotNull ProxyServer proxy, @NotNull PluginDescription description) {
this.plugin = plugin;
@@ -90,17 +91,25 @@ public void onLoad() {
}
public void onEnable() {
- GameAnalyticsErrorHandler.open(ServerIDUtil.getId(new File(
- new File(description.getSource().get().getParent().toFile(), description.getName().get()),
- "stats-id.txt"
- )), description.getVersion().get(), proxy.getVersion().getVersion());
commandManager = new VelocityCommandManager(proxy, plugin);
commandManager.enableUnstableAPI("help");
setChatColors();
- consoleCommandIssuer = commandManager.getCommandIssuer(proxy.getConsoleCommandSource());
+ // TODO fix
+ VelocityCommandIssuer console = commandManager.getCommandIssuer(proxy.getConsoleCommandSource());
+ consoleCommandIssuer = new AbstractLocalizedCommandSender(console, console.getIssuer(), LocaleUtil.getConsoleI18N()) {
+ @Override
+ public boolean isConsole() {
+ return true;
+ }
+
+ @Override
+ public boolean isUser() {
+ return false;
+ }
+ };
loadServices();
loadLanguages();
@@ -114,8 +123,8 @@ public void onEnable() {
numEvents += eventHolder.numEvents();
}
- consoleCommandIssuer.sendInfo(MessageKey.GENERAL__ENABLED);
- consoleCommandIssuer.sendInfo(MessageKey.GENERAL__LOAD,
+ consoleCommandIssuer.sendMessage(MessageKey.GENERAL__ENABLE_MESSAGE);
+ consoleCommandIssuer.sendMessage(MessageKey.GENERAL__LOAD_MESSAGE,
"{version}", description.getVersion().get(),
"{apiversion}", VPNAPIProvider.getInstance().getPluginMetadata().getApiVersion(),
"{commands}", String.valueOf(commandManager.getRegisteredRootCommands().size()),
@@ -135,14 +144,14 @@ public void onDisable() {
try {
VPNAPIProvider.getInstance().runUpdateTask().join();
} catch (CancellationException | CompletionException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
}
for (EventHolder eventHolder : eventHolders) {
eventHolder.cancel();
}
eventHolders.clear();
- for (PriorityEventSubscriber event : events) {
+ for (VelocityEventSubscriber> event : events) {
event.cancel();
}
events.clear();
@@ -150,9 +159,8 @@ public void onDisable() {
unloadHooks();
unloadServices();
- consoleCommandIssuer.sendInfo(MessageKey.GENERAL__DISABLED);
+ consoleCommandIssuer.sendMessage(MessageKey.GENERAL__DISABLE_MESSAGE);
- GameAnalyticsErrorHandler.close();
}
private void loadLanguages() {
@@ -162,13 +170,13 @@ private void loadLanguages() {
try {
for (Locale locale : Locale.getAvailableLocales()) {
- Optional localeFile = LanguageFileUtil.getLanguage(
+ ResourceBundle localeFile = LanguageFileUtil.getLanguage(
new File(description.getSource().get().getParent().toFile(), description.getName().get()),
locale
);
- if (localeFile.isPresent()) {
+ if (localeFile != null) {
commandManager.addSupportedLanguage(locale);
- loadYamlLanguageFile(locales, localeFile.get(), locale);
+ //loadYamlLanguageFile(locales, localeFile.get(), locale);
}
}
} catch (IOException ex) {
@@ -179,25 +187,23 @@ private void loadLanguages() {
locales.setDefaultLocale(cachedConfig.getLanguage());
commandManager.usePerIssuerLocale(true);
- commandManager.setFormat(MessageType.ERROR, new PluginMessageFormatter(commandManager, MessageKey.GENERAL__HEADER));
- commandManager.setFormat(MessageType.INFO, new PluginMessageFormatter(commandManager, MessageKey.GENERAL__HEADER));
setChatColors();
}
private void setChatColors() {
- commandManager.setFormat(MessageType.ERROR, TextColor.DARK_RED, TextColor.YELLOW, TextColor.AQUA, TextColor.WHITE);
- commandManager.setFormat(
+ //commandManager.setFormat(MessageType.ERROR, NamedTextColor.DARK_RED, NamedTextColor.YELLOW, NamedTextColor.AQUA, NamedTextColor.WHITE);
+ /*commandManager.setFormat(
MessageType.INFO,
- TextColor.WHITE,
- TextColor.YELLOW,
- TextColor.AQUA,
- TextColor.GREEN,
- TextColor.RED,
- TextColor.GOLD,
- TextColor.BLUE,
- TextColor.GRAY,
- TextColor.DARK_RED
- );
+ NamedTextColor.WHITE,
+ NamedTextColor.YELLOW,
+ NamedTextColor.AQUA,
+ NamedTextColor.GREEN,
+ NamedTextColor.RED,
+ NamedTextColor.GOLD,
+ NamedTextColor.BLUE,
+ NamedTextColor.GRAY,
+ NamedTextColor.DARK_RED
+ );*/
}
private void loadServices() {
@@ -215,23 +221,21 @@ private void loadServices() {
CachedConfig cachedConfig = ConfigUtil.getCachedConfig();
- VelocityIPManager ipManager = new VelocityIPManager(proxy, sourceManager, cachedConfig.getCacheTime().getTime(), cachedConfig.getCacheTime().getUnit());
+ VelocityIPManager ipManager = new VelocityIPManager(proxy, sourceManager, cachedConfig.getCacheTime(), cachedConfig.getCacheTime().getUnit());
VelocityPlayerManager playerManager = new VelocityPlayerManager(
proxy,
cachedConfig.getThreads(),
cachedConfig.getMcLeaksKey(),
- cachedConfig.getCacheTime().getTime(),
+ cachedConfig.getCacheTime(),
cachedConfig.getCacheTime().getUnit()
);
Platform platform = new VelocityPlatform(System.currentTimeMillis());
- PluginMetadata metadata = new VelocityPluginMetadata(proxy.getVersion().getVersion());
- VPNAPI api = new VPNAPIImpl(platform, metadata, ipManager, playerManager, sourceManager, cachedConfig, new MBassador<>(new GenericPublicationErrorHandler()));
-
- APIUtil.setManagers(ipManager, playerManager, sourceManager);
+ VelocityPluginMetadata metadata = new VelocityPluginMetadata(proxy.getVersion().getVersion());
+ VPNAPI api = new VPNAPIImpl(platform, metadata, ipManager, playerManager, sourceManager, new SimpleEventBus<>(VPNEvent.class));
APIRegistrationUtil.register(api);
- api.getEventBus().post(new APILoadedEventImpl(api)).now();
+ api.getEventBus().post(new APILoadedEventImpl(api));
}
private void loadCommands() {
@@ -242,8 +246,8 @@ private void loadCommands() {
});
commandManager.getCommandConditions().addCondition(String.class, "source", (c, exec, value) -> {
- List> sources = VPNAPIProvider.getInstance().getSourceManager().getSources();
- for (Source extends SourceModel> source : sources) {
+ List> sources = VPNAPIProvider.getInstance().getSourceManager().getSources();
+ for (Source source : sources) {
if (source.getName().equalsIgnoreCase(value)) {
return;
}
@@ -254,7 +258,7 @@ private void loadCommands() {
commandManager.getCommandCompletions().registerCompletion("source", c -> {
String lower = c.getInput().toLowerCase().replace(" ", "_");
- List> sources = VPNAPIProvider.getInstance().getSourceManager().getSources();
+ List> sources = VPNAPIProvider.getInstance().getSourceManager().getSources();
Set retVal = new LinkedHashSet<>();
for (Source extends SourceModel> source : sources) {
@@ -337,7 +341,7 @@ private void loadTasks() {
try {
VPNAPIProvider.getInstance().runUpdateTask().join();
} catch (CancellationException | CompletionException ex) {
- ExceptionUtil.handleException(ex, logger);
+ logger.error(ex.getClass().getName() + ": " + ex.getMessage(), ex);
}
}).delay(1L, TimeUnit.SECONDS).repeat(1L, TimeUnit.SECONDS).schedule());
}
@@ -346,20 +350,20 @@ private void loadHooks() {
PluginManager manager = proxy.getPluginManager();
if (manager.getPlugin("plan").isPresent()) {
- consoleCommandIssuer.sendInfo(MessageKey.GENERAL__HOOK_ENABLE, "{plugin}", "Plan");
+ consoleCommandIssuer.sendMessage(MessageKey.GENERAL__ENABLE_HOOK, "{plugin}", "Plan");
ServiceLocator.register(new PlayerAnalyticsHook(proxy));
} else {
- consoleCommandIssuer.sendInfo(MessageKey.GENERAL__HOOK_DISABLE, "{plugin}", "Plan");
+ consoleCommandIssuer.sendMessage(MessageKey.GENERAL__NO_HOOK, "{plugin}", "Plan");
}
if (manager.getPlugin("luckperms").isPresent()) {
- consoleCommandIssuer.sendInfo(MessageKey.GENERAL__HOOK_ENABLE, "{plugin}", "LuckPerms");
+ consoleCommandIssuer.sendMessage(MessageKey.GENERAL__ENABLE_HOOK, "{plugin}", "LuckPerms");
if (ConfigUtil.getDebugOrFalse()) {
consoleCommandIssuer.sendMessage("Running actions on pre-login.");
}
ServiceLocator.register(new LuckPermsHook(consoleCommandIssuer));
} else {
- consoleCommandIssuer.sendInfo(MessageKey.GENERAL__HOOK_DISABLE, "{plugin}", "LuckPerms");
+ consoleCommandIssuer.sendMessage(MessageKey.GENERAL__NO_HOOK, "{plugin}", "LuckPerms");
if (ConfigUtil.getDebugOrFalse()) {
consoleCommandIssuer.sendMessage("Running actions on post-login.");
}
@@ -387,8 +391,8 @@ private void unloadHooks() {
public void unloadServices() {
VPNAPI api = VPNAPIProvider.getInstance();
- api.getEventBus().post(new APIDisableEventImpl(api)).now();
- api.getEventBus().shutdown();
+ api.getEventBus().post(new APIDisableEventImpl(api));
+ api.getEventBus().unregisterAll();
APIRegistrationUtil.deregister();
CachedConfig cachedConfig = ConfigUtil.getCachedConfig();
@@ -400,9 +404,6 @@ public void unloadServices() {
}
Set extends MessagingHandler> messagingHandlers = ServiceLocator.remove(MessagingHandler.class);
- for (MessagingHandler handler : messagingHandlers) {
- handler.cancel();
- }
}
public boolean loadYamlLanguageFile(@NotNull VelocityLocales locales, @NotNull File file, @NotNull Locale locale) throws IOException {
@@ -416,7 +417,9 @@ private boolean loadLanguage(@NotNull VelocityLocales locales, @NotNull Commente
for (Map.Entry