diff --git a/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/AuthMeVelocityAPI.java b/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/AuthMeVelocityAPI.java index bd08fd9..8eb184c 100644 --- a/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/AuthMeVelocityAPI.java +++ b/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/AuthMeVelocityAPI.java @@ -17,14 +17,13 @@ package me.adrianed.authmevelocity.api.velocity; -import java.util.function.Predicate; - import com.velocitypowered.api.proxy.Player; import com.velocitypowered.api.proxy.ServerConnection; import com.velocitypowered.api.proxy.server.RegisteredServer; - import org.jetbrains.annotations.NotNull; +import java.util.function.Predicate; + /** * API provided to interact with logged players */ diff --git a/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/PreSendOnLoginEvent.java b/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/PreSendOnLoginEvent.java index d18ff85..c1f4b87 100644 --- a/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/PreSendOnLoginEvent.java +++ b/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/PreSendOnLoginEvent.java @@ -37,7 +37,7 @@ import org.jetbrains.annotations.NotNull; public final class PreSendOnLoginEvent implements ResultedEvent { private ServerResult result; private final Player player; - private final RegisteredServer actualserver; + private final RegisteredServer actualServer; /** * Create a new PreSendOnLoginEvent @@ -47,7 +47,7 @@ public final class PreSendOnLoginEvent implements ResultedEvent { */ public PreSendOnLoginEvent(@NotNull Player player, @NotNull RegisteredServer actualServer, @NotNull RegisteredServer serverToSend){ this.player = player; - this.actualserver = actualServer; + this.actualServer = actualServer; result = ServerResult.allowed(serverToSend); } @@ -64,7 +64,7 @@ public final class PreSendOnLoginEvent implements ResultedEvent { * @return the actual server of the player */ public @NotNull RegisteredServer actualServer(){ - return this.actualserver; + return this.actualServer; } @Override diff --git a/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyForcedUnregisterEvent.java b/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyForcedUnregisterEvent.java index fd38737..5724630 100644 --- a/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyForcedUnregisterEvent.java +++ b/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyForcedUnregisterEvent.java @@ -18,7 +18,6 @@ package me.adrianed.authmevelocity.api.velocity.event; import com.velocitypowered.api.proxy.Player; - import org.jetbrains.annotations.Nullable; /**Event executed in case a player is forced unregister by a server operator*/ diff --git a/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyLoginEvent.java b/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyLoginEvent.java index ab23395..2f3361d 100644 --- a/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyLoginEvent.java +++ b/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyLoginEvent.java @@ -18,7 +18,6 @@ package me.adrianed.authmevelocity.api.velocity.event; import com.velocitypowered.api.proxy.Player; - import org.jetbrains.annotations.NotNull; /** diff --git a/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyLogoutEvent.java b/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyLogoutEvent.java index eb15bd1..148f911 100644 --- a/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyLogoutEvent.java +++ b/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyLogoutEvent.java @@ -18,7 +18,6 @@ package me.adrianed.authmevelocity.api.velocity.event; import com.velocitypowered.api.proxy.Player; - import org.jetbrains.annotations.NotNull; /**Event executed in case the player has logout from the network */ diff --git a/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyRegisterEvent.java b/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyRegisterEvent.java index 6210ab8..485f6a5 100644 --- a/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyRegisterEvent.java +++ b/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyRegisterEvent.java @@ -18,7 +18,6 @@ package me.adrianed.authmevelocity.api.velocity.event; import com.velocitypowered.api.proxy.Player; - import org.jetbrains.annotations.NotNull; /**Event executed in case the player has register itself*/ diff --git a/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyUnregisterEvent.java b/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyUnregisterEvent.java index b0d4469..4527993 100644 --- a/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyUnregisterEvent.java +++ b/api/velocity/src/main/java/me/adrianed/authmevelocity/api/velocity/event/ProxyUnregisterEvent.java @@ -18,7 +18,6 @@ package me.adrianed.authmevelocity.api.velocity.event; import com.velocitypowered.api.proxy.Player; - import org.jetbrains.annotations.NotNull; /**Event executed in case the player has unregistered itself*/ diff --git a/build.gradle.kts b/build.gradle.kts index 72a3d8c..7b0920b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -20,7 +20,6 @@ allprojects { tasks.compileJava { options.encoding = Charsets.UTF_8.name() - options.release.set(17) } @@ -47,11 +46,5 @@ tasks { build { dependsOn(shadowJar) } - - compileJava { - options.encoding = Charsets.UTF_8.name() - - options.release.set(17) - } } diff --git a/common/src/main/java/me/adrianed/authmevelocity/common/LibsManager.java b/common/src/main/java/me/adrianed/authmevelocity/common/LibsManager.java index a1db5dc..dca3645 100644 --- a/common/src/main/java/me/adrianed/authmevelocity/common/LibsManager.java +++ b/common/src/main/java/me/adrianed/authmevelocity/common/LibsManager.java @@ -32,11 +32,17 @@ public final class LibsManager { public void loadLibraries() { final Relocation configurateRelocation - = new Relocation("org{}spongepowered", "me.adrianed.authmevelocity.libs.sponge"); + = new Relocation( + "org{}spongepowered", + "me.adrianed.authmevelocity.libs.sponge"); final Relocation geantyrefRelocation = - new Relocation("io{}leangen{}geantyref", "me.adrianed.authmevelocity.libs.geantyref"); + new Relocation( + "io{}leangen{}geantyref", + "me.adrianed.authmevelocity.libs.geantyref"); final Relocation typesafeRelocation - = new Relocation("com{}typesafe", "me.adrianed.authmevelocity.libs.config"); + = new Relocation( + "com{}typesafe", + "me.adrianed.authmevelocity.libs.config"); final Library hocon = Library.builder() .groupId("org{}spongepowered") .artifactId("configurate-hocon") diff --git a/paper/src/main/java/me/adrianed/authmevelocity/paper/AuthmePlaceholders.java b/paper/src/main/java/me/adrianed/authmevelocity/paper/AuthMePlaceholders.java similarity index 96% rename from paper/src/main/java/me/adrianed/authmevelocity/paper/AuthmePlaceholders.java rename to paper/src/main/java/me/adrianed/authmevelocity/paper/AuthMePlaceholders.java index 283458a..c0ff25c 100644 --- a/paper/src/main/java/me/adrianed/authmevelocity/paper/AuthmePlaceholders.java +++ b/paper/src/main/java/me/adrianed/authmevelocity/paper/AuthMePlaceholders.java @@ -26,8 +26,8 @@ import net.kyori.adventure.text.minimessage.tag.Tag; import static me.dreamerzero.miniplaceholders.api.utils.Components.*; -final class AuthmePlaceholders { - private AuthmePlaceholders() {} +final class AuthMePlaceholders { + private AuthMePlaceholders() {} static Expansion getExpansion(){ return Expansion.builder("authme") diff --git a/paper/src/main/java/me/adrianed/authmevelocity/paper/AuthMeVelocityPlugin.java b/paper/src/main/java/me/adrianed/authmevelocity/paper/AuthMeVelocityPlugin.java index b19ae53..2ef7bb7 100644 --- a/paper/src/main/java/me/adrianed/authmevelocity/paper/AuthMeVelocityPlugin.java +++ b/paper/src/main/java/me/adrianed/authmevelocity/paper/AuthMeVelocityPlugin.java @@ -53,12 +53,14 @@ public final class AuthMeVelocityPlugin extends JavaPlugin { return; } - this.getServer().getMessenger().registerOutgoingPluginChannel(this, CHANNEL); - this.getServer().getMessenger().registerIncomingPluginChannel(this, CHANNEL, new MessageListener(this)); - this.getServer().getPluginManager().registerEvents(new AuthMeListener(this), this); + final var server = this.getServer(); - if (this.getServer().getPluginManager().isPluginEnabled("MiniPlaceholders")) { - AuthmePlaceholders.getExpansion().register(); + server.getMessenger().registerOutgoingPluginChannel(this, CHANNEL); + server.getMessenger().registerIncomingPluginChannel(this, CHANNEL, new MessageListener(this)); + server.getPluginManager().registerEvents(new AuthMeListener(this), this); + + if (server.getPluginManager().isPluginEnabled("MiniPlaceholders")) { + AuthMePlaceholders.getExpansion().register(); } this.getLogger().info("AuthMeVelocity enabled"); @@ -72,21 +74,31 @@ public final class AuthMeVelocityPlugin extends JavaPlugin { this.getLogger().info("AuthMeVelocity disabled"); } - public void sendMessageToProxy(final Player player, @NotNull MessageType type, @NotNull String playername) { - @SuppressWarnings("UnstableApiUsage") - ByteArrayDataOutput out = ByteStreams.newDataOutput(); + public void sendMessageToProxy( + final Player player, + final @NotNull MessageType type, + final @NotNull String playername + ) { + @SuppressWarnings("UnstableApiUsage") final ByteArrayDataOutput out = ByteStreams.newDataOutput(); out.writeUTF(type.toString()); out.writeUTF(playername); if (player == null) { - logDebug("MessageToProxy | Null Player, Player Name: "+playername); + logDebug("MessageToProxy | Null Player, Player Name: " + playername); Bukkit.getServer().sendPluginMessage(this, CHANNEL, out.toByteArray()); } else { - logDebug("MessageToProxy | Player Present: "+player.getName()+", Player Name: "+playername); + logDebug("MessageToProxy | Player Present: " + player.getName() + ", Player Name: " + playername); player.sendPluginMessage(this, CHANNEL, out.toByteArray()); } } + public void sendMessageToProxy( + final Player player, + final @NotNull MessageType type + ) { + sendMessageToProxy(player, type, player.getName()); + } + public void logDebug(String debug) { if (config.get().debug()) { getLogger().info("[DEBUG] " + debug); diff --git a/paper/src/main/java/me/adrianed/authmevelocity/paper/listeners/AuthMeListener.java b/paper/src/main/java/me/adrianed/authmevelocity/paper/listeners/AuthMeListener.java index f659d0c..884c1b4 100644 --- a/paper/src/main/java/me/adrianed/authmevelocity/paper/listeners/AuthMeListener.java +++ b/paper/src/main/java/me/adrianed/authmevelocity/paper/listeners/AuthMeListener.java @@ -17,16 +17,14 @@ package me.adrianed.authmevelocity.paper.listeners; -import me.adrianed.authmevelocity.paper.AuthMeVelocityPlugin; -import me.adrianed.authmevelocity.common.MessageType; -import me.adrianed.authmevelocity.api.paper.event.PreSendLoginEvent; - import fr.xephi.authme.events.LoginEvent; import fr.xephi.authme.events.LogoutEvent; import fr.xephi.authme.events.RegisterEvent; import fr.xephi.authme.events.UnregisterByAdminEvent; import fr.xephi.authme.events.UnregisterByPlayerEvent; - +import me.adrianed.authmevelocity.api.paper.event.PreSendLoginEvent; +import me.adrianed.authmevelocity.common.MessageType; +import me.adrianed.authmevelocity.paper.AuthMeVelocityPlugin; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -41,7 +39,7 @@ public final class AuthMeListener implements Listener { } @EventHandler(priority = EventPriority.HIGHEST) - public void onLogin(LoginEvent event) { + public void onLogin(final LoginEvent event) { final Player player = event.getPlayer(); plugin.logDebug("LoginEvent | Start"); @@ -56,25 +54,25 @@ public final class AuthMeListener implements Listener { } @EventHandler - public void onRegister(RegisterEvent event) { + public void onRegister(final RegisterEvent event) { plugin.logDebug("RegisterEvent | Executed"); - plugin.sendMessageToProxy(event.getPlayer(), MessageType.REGISTER, event.getPlayer().getName()); + plugin.sendMessageToProxy(event.getPlayer(), MessageType.REGISTER); } @EventHandler - public void onLogout(LogoutEvent event) { + public void onLogout(final LogoutEvent event) { plugin.logDebug("LogoutEvent | Executed"); - plugin.sendMessageToProxy(event.getPlayer(), MessageType.LOGOUT, event.getPlayer().getName()); + plugin.sendMessageToProxy(event.getPlayer(), MessageType.LOGOUT); } @EventHandler - public void onUnRegister(UnregisterByPlayerEvent event) { + public void onUnRegister(final UnregisterByPlayerEvent event) { plugin.logDebug("UnregisterByPlayerEvent | Executed"); - plugin.sendMessageToProxy(event.getPlayer(), MessageType.UNREGISTER, event.getPlayer().getName()); + plugin.sendMessageToProxy(event.getPlayer(), MessageType.UNREGISTER); } @EventHandler - public void onAdminUnRegister(UnregisterByAdminEvent event) { + public void onAdminUnRegister(final UnregisterByAdminEvent event) { plugin.logDebug("UnregisterByAdminEvent | Executed"); plugin.sendMessageToProxy(event.getPlayer(), MessageType.FORCE_UNREGISTER, event.getPlayerName()); } diff --git a/paper/src/main/java/me/adrianed/authmevelocity/paper/listeners/MessageListener.java b/paper/src/main/java/me/adrianed/authmevelocity/paper/listeners/MessageListener.java index 91609e4..93ac255 100644 --- a/paper/src/main/java/me/adrianed/authmevelocity/paper/listeners/MessageListener.java +++ b/paper/src/main/java/me/adrianed/authmevelocity/paper/listeners/MessageListener.java @@ -19,19 +19,16 @@ package me.adrianed.authmevelocity.paper.listeners; import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteStreams; - +import fr.xephi.authme.api.v3.AuthMeApi; +import me.adrianed.authmevelocity.api.paper.event.LoginByProxyEvent; import me.adrianed.authmevelocity.common.MessageType; +import me.adrianed.authmevelocity.paper.AuthMeVelocityPlugin; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.plugin.messaging.PluginMessageListener; import org.jetbrains.annotations.NotNull; -import me.adrianed.authmevelocity.api.paper.event.LoginByProxyEvent; -import me.adrianed.authmevelocity.paper.AuthMeVelocityPlugin; - -import fr.xephi.authme.api.v3.AuthMeApi; - -public class MessageListener implements PluginMessageListener { +public final class MessageListener implements PluginMessageListener { private final AuthMeVelocityPlugin plugin; public MessageListener(AuthMeVelocityPlugin plugin) { @@ -39,7 +36,11 @@ public class MessageListener implements PluginMessageListener { } @Override - public void onPluginMessageReceived(@NotNull String identifier, @NotNull Player player, byte @NotNull [] bytes) { + public void onPluginMessageReceived( + final @NotNull String identifier, + final @NotNull Player player, + final byte @NotNull [] bytes + ) { if (!identifier.equals("authmevelocity")) { plugin.logDebug("PluginMessage | Not AuthMeVelocity identifier"); return; diff --git a/velocity/build.gradle.kts b/velocity/build.gradle.kts index 92500a8..ecfc27e 100644 --- a/velocity/build.gradle.kts +++ b/velocity/build.gradle.kts @@ -9,7 +9,7 @@ repositories { includeGroup("com.github.games647") } } - maven("https://repo.alessiodp.com/releases/"){ + maven("https://repo.alessiodp.com/releases/") { mavenContent { includeGroup("net.byteflux") } diff --git a/velocity/src/main/java/me/adrianed/authmevelocity/velocity/AuthMePlaceholders.java b/velocity/src/main/java/me/adrianed/authmevelocity/velocity/AuthMePlaceholders.java index 6942061..c59350a 100644 --- a/velocity/src/main/java/me/adrianed/authmevelocity/velocity/AuthMePlaceholders.java +++ b/velocity/src/main/java/me/adrianed/authmevelocity/velocity/AuthMePlaceholders.java @@ -18,40 +18,41 @@ package me.adrianed.authmevelocity.velocity; import com.velocitypowered.api.proxy.Player; - import me.dreamerzero.miniplaceholders.api.Expansion; import net.kyori.adventure.text.minimessage.tag.Tag; -import static me.dreamerzero.miniplaceholders.api.utils.Components.*; +import static me.dreamerzero.miniplaceholders.api.utils.Components.FALSE_COMPONENT; +import static me.dreamerzero.miniplaceholders.api.utils.Components.TRUE_COMPONENT; final class AuthMePlaceholders { - private AuthMePlaceholders() {} + private AuthMePlaceholders() { + } - static Expansion getExpansion(AuthMeVelocityPlugin plugin){ + static Expansion getExpansion(AuthMeVelocityPlugin plugin) { return Expansion.builder("authme") - .filter(Player.class) - // Logged Placeholders - .audiencePlaceholder("is_logged", (aud, queue, ctx) -> - Tag.selfClosingInserting(plugin.isLogged((Player)aud) ? TRUE_COMPONENT : FALSE_COMPONENT)) - .globalPlaceholder("is_player_logged", (queue, ctx) -> { - String playerName = queue.popOr(() -> "you need to provide a player").value(); - return Tag.selfClosingInserting( - plugin.getProxy().getPlayer(playerName) - .map(plugin::isLogged) - .orElse(false) ? TRUE_COMPONENT : FALSE_COMPONENT + .filter(Player.class) + // Logged Placeholders + .audiencePlaceholder("is_logged", (aud, queue, ctx) -> + Tag.selfClosingInserting(plugin.isLogged((Player) aud) ? TRUE_COMPONENT : FALSE_COMPONENT)) + .globalPlaceholder("is_player_logged", (queue, ctx) -> { + String playerName = queue.popOr(() -> "you need to provide a player").value(); + return Tag.selfClosingInserting( + plugin.getProxy().getPlayer(playerName) + .map(plugin::isLogged) + .orElse(false) ? TRUE_COMPONENT : FALSE_COMPONENT ); - }) - // In Auth Server placeholders - .audiencePlaceholder("in_auth_server", (aud, queue, ctx) -> - Tag.selfClosingInserting(plugin.isInAuthServer((Player)aud) ? TRUE_COMPONENT : FALSE_COMPONENT)) - .globalPlaceholder("player_in_auth_server", (queue, ctx) -> { - String playerName = queue.popOr(() -> "you need to provide a player").value(); - return Tag.selfClosingInserting( - plugin.getProxy().getPlayer(playerName) - .map(plugin::isInAuthServer) - .orElse(false) ? TRUE_COMPONENT : FALSE_COMPONENT + }) + // In Auth Server placeholders + .audiencePlaceholder("in_auth_server", (aud, queue, ctx) -> + Tag.selfClosingInserting(plugin.isInAuthServer((Player) aud) ? TRUE_COMPONENT : FALSE_COMPONENT)) + .globalPlaceholder("player_in_auth_server", (queue, ctx) -> { + String playerName = queue.popOr(() -> "you need to provide a player").value(); + return Tag.selfClosingInserting( + plugin.getProxy().getPlayer(playerName) + .map(plugin::isInAuthServer) + .orElse(false) ? TRUE_COMPONENT : FALSE_COMPONENT ); - }) - .build(); + }) + .build(); } } diff --git a/velocity/src/main/java/me/adrianed/authmevelocity/velocity/AuthMeVelocityPlugin.java b/velocity/src/main/java/me/adrianed/authmevelocity/velocity/AuthMeVelocityPlugin.java index 0abd62d..578d048 100644 --- a/velocity/src/main/java/me/adrianed/authmevelocity/velocity/AuthMeVelocityPlugin.java +++ b/velocity/src/main/java/me/adrianed/authmevelocity/velocity/AuthMeVelocityPlugin.java @@ -17,50 +17,48 @@ package me.adrianed.authmevelocity.velocity; -import me.adrianed.authmevelocity.velocity.commands.AuthmeCommand; -import me.adrianed.authmevelocity.velocity.listener.ConnectListener; -import me.adrianed.authmevelocity.velocity.listener.FastLoginListener; -import me.adrianed.authmevelocity.velocity.listener.PluginMessageListener; -import me.adrianed.authmevelocity.velocity.listener.ProxyListener; +import com.google.inject.Inject; +import com.velocitypowered.api.command.CommandSource; +import com.velocitypowered.api.event.Subscribe; +import com.velocitypowered.api.event.proxy.ProxyInitializeEvent; +import com.velocitypowered.api.plugin.Dependency; +import com.velocitypowered.api.plugin.Plugin; +import com.velocitypowered.api.plugin.annotation.DataDirectory; +import com.velocitypowered.api.proxy.Player; +import com.velocitypowered.api.proxy.ProxyServer; +import com.velocitypowered.api.proxy.ServerConnection; +import com.velocitypowered.api.proxy.messages.ChannelIdentifier; +import com.velocitypowered.api.proxy.messages.MinecraftChannelIdentifier; +import com.velocitypowered.api.proxy.server.RegisteredServer; import me.adrianed.authmevelocity.api.velocity.AuthMeVelocityAPI; import me.adrianed.authmevelocity.common.Constants; import me.adrianed.authmevelocity.common.LibsManager; import me.adrianed.authmevelocity.common.configuration.ConfigurationContainer; import me.adrianed.authmevelocity.common.configuration.Loader; import me.adrianed.authmevelocity.common.configuration.ProxyConfiguration; -import com.google.inject.Inject; -import com.velocitypowered.api.command.CommandSource; -import com.velocitypowered.api.event.Subscribe; -import com.velocitypowered.api.event.proxy.ProxyInitializeEvent; -import com.velocitypowered.api.plugin.annotation.DataDirectory; -import com.velocitypowered.api.plugin.Plugin; -import com.velocitypowered.api.plugin.Dependency; -import com.velocitypowered.api.proxy.ProxyServer; -import com.velocitypowered.api.proxy.Player; -import com.velocitypowered.api.proxy.ServerConnection; -import com.velocitypowered.api.proxy.server.RegisteredServer; -import com.velocitypowered.api.proxy.messages.ChannelIdentifier; -import com.velocitypowered.api.proxy.messages.MinecraftChannelIdentifier; - +import me.adrianed.authmevelocity.velocity.commands.AuthMeCommand; +import me.adrianed.authmevelocity.velocity.listener.ConnectListener; +import me.adrianed.authmevelocity.velocity.listener.FastLoginListener; +import me.adrianed.authmevelocity.velocity.listener.PluginMessageListener; +import me.adrianed.authmevelocity.velocity.listener.ProxyListener; import net.byteflux.libby.VelocityLibraryManager; import net.kyori.adventure.text.minimessage.MiniMessage; - -import org.jetbrains.annotations.NotNull; -import org.slf4j.Logger; import org.bstats.charts.SimplePie; import org.bstats.velocity.Metrics; +import org.jetbrains.annotations.NotNull; +import org.slf4j.Logger; -import java.util.function.Predicate; import java.nio.file.Path; -import java.util.concurrent.ConcurrentHashMap; import java.util.List; import java.util.Set; import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Predicate; @Plugin( id = "authmevelocity", name = "AuthMeVelocity", - url = "https://github.com/4drian3d/AuthMeVelocity", + url = "https://modrinth.com/plugin/authmevelocity", description = Constants.DESCRIPTION, version = Constants.VERSION, authors = {"xQuickGlare", "4drian3d"}, @@ -78,27 +76,19 @@ import java.util.UUID; public final class AuthMeVelocityPlugin implements AuthMeVelocityAPI { public static final ChannelIdentifier AUTHMEVELOCITY_CHANNEL = MinecraftChannelIdentifier.create("authmevelocity", "main"); - private final ProxyServer proxy; - private final Logger logger; - private final Path pluginDirectory; - private final Metrics.Factory metricsFactory; + @Inject + private ProxyServer proxy; + @Inject + private Logger logger; + @Inject + @DataDirectory + private Path pluginDirectory; + @Inject + private Metrics.Factory metricsFactory; private ConfigurationContainer config; final Set loggedPlayers = ConcurrentHashMap.newKeySet(); - @Inject - public AuthMeVelocityPlugin( - ProxyServer proxy, - Logger logger, - @DataDirectory Path dataDirectory, - Metrics.Factory factory - ) { - this.proxy = proxy; - this.logger = logger; - this.pluginDirectory = dataDirectory; - this.metricsFactory = factory; - } - @Subscribe public void onProxyInitialization(ProxyInitializeEvent event) { final LibsManager libraries @@ -117,7 +107,7 @@ public final class AuthMeVelocityPlugin implements AuthMeVelocityAPI { logDebug("Loaded plugin libraries"); final int pluginId = 16128; - Metrics metrics = metricsFactory.make(this, pluginId); + final Metrics metrics = metricsFactory.make(this, pluginId); proxy.getChannelRegistrar().register(AUTHMEVELOCITY_CHANNEL); @@ -142,7 +132,7 @@ public final class AuthMeVelocityPlugin implements AuthMeVelocityAPI { AuthMePlaceholders.getExpansion(this).register(); } - AuthmeCommand.register(this, proxy.getCommandManager(), logger); + AuthMeCommand.register(this, proxy.getCommandManager(), logger); this.sendInfoMessage(); } @@ -152,7 +142,7 @@ public final class AuthMeVelocityPlugin implements AuthMeVelocityAPI { } public void sendInfoMessage() { - CommandSource source = proxy.getConsoleCommandSource(); + final CommandSource source = proxy.getConsoleCommandSource(); source.sendMessage(MiniMessage.miniMessage().deserialize( " --- AuthMeVelocity ---")); source.sendMessage(MiniMessage.miniMessage().deserialize( diff --git a/velocity/src/main/java/me/adrianed/authmevelocity/velocity/commands/AuthMeCommand.java b/velocity/src/main/java/me/adrianed/authmevelocity/velocity/commands/AuthMeCommand.java new file mode 100644 index 0000000..d19d8e6 --- /dev/null +++ b/velocity/src/main/java/me/adrianed/authmevelocity/velocity/commands/AuthMeCommand.java @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2023 AuthMeVelocity Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package me.adrianed.authmevelocity.velocity.commands; + +import com.mojang.brigadier.Command; +import com.mojang.brigadier.builder.LiteralArgumentBuilder; +import com.mojang.brigadier.tree.LiteralCommandNode; +import com.velocitypowered.api.command.BrigadierCommand; +import com.velocitypowered.api.command.CommandManager; +import com.velocitypowered.api.command.CommandMeta; +import com.velocitypowered.api.command.CommandSource; + +import me.adrianed.authmevelocity.velocity.AuthMeVelocityPlugin; +import net.kyori.adventure.text.minimessage.MiniMessage; +import org.slf4j.Logger; + +public class AuthMeCommand { + private AuthMeCommand() { + } + + public static void register( + final AuthMeVelocityPlugin plugin, + final CommandManager manager, + final Logger logger + ) { + LiteralCommandNode command = LiteralArgumentBuilder.literal("authmevelocity") + .requires(src -> src.hasPermission("authmevelocity.commands")) + .then(LiteralArgumentBuilder.literal("reload") + .executes(cmd -> { + final CommandSource source = cmd.getSource(); + plugin.config().reload().handleAsync((v, ex) -> { + if (ex == null) { + plugin.sendInfoMessage(); + source.sendMessage(MiniMessage.miniMessage().deserialize( + "AuthmeVelocity has been successfully reloaded")); + } else { + source.sendMessage(MiniMessage.miniMessage().deserialize( + "There was an error while reloading the configuration. Check the server console")); + logger.error(ex.getMessage(), ex.getCause()); + } + return null; + }); + return Command.SINGLE_SUCCESS; + }) + ).build(); + + final BrigadierCommand brigadier = new BrigadierCommand(command); + final CommandMeta meta = manager.metaBuilder(brigadier) + .plugin(plugin) + .aliases("vauthme", "authmev") + .build(); + + manager.register(meta, brigadier); + + } +} diff --git a/velocity/src/main/java/me/adrianed/authmevelocity/velocity/commands/AuthmeCommand.java b/velocity/src/main/java/me/adrianed/authmevelocity/velocity/commands/AuthmeCommand.java deleted file mode 100644 index 4bed90b..0000000 --- a/velocity/src/main/java/me/adrianed/authmevelocity/velocity/commands/AuthmeCommand.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (C) 2023 AuthMeVelocity Contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package me.adrianed.authmevelocity.velocity.commands; - -import com.mojang.brigadier.Command; -import com.mojang.brigadier.builder.LiteralArgumentBuilder; -import com.mojang.brigadier.tree.LiteralCommandNode; -import com.velocitypowered.api.command.BrigadierCommand; -import com.velocitypowered.api.command.CommandManager; -import com.velocitypowered.api.command.CommandMeta; -import com.velocitypowered.api.command.CommandSource; - -import me.adrianed.authmevelocity.velocity.AuthMeVelocityPlugin; -import net.kyori.adventure.text.minimessage.MiniMessage; -import org.slf4j.Logger; - -public class AuthmeCommand { - private AuthmeCommand() {} - - public static void register(AuthMeVelocityPlugin plugin, CommandManager manager, Logger logger) { - LiteralCommandNode command = LiteralArgumentBuilder.literal("authmevelocity") - .requires(src -> src.hasPermission("authmevelocity.commands")) - .then(LiteralArgumentBuilder.literal("reload") - .executes(cmd -> { - CommandSource source = cmd.getSource(); - plugin.config().reload().handleAsync((v, ex) -> { - if (ex == null) { - plugin.sendInfoMessage(); - source.sendMessage(MiniMessage.miniMessage().deserialize( - "AuthmeVelocity has been successfully reloaded")); - } else { - source.sendMessage(MiniMessage.miniMessage().deserialize( - "There was an error while reloading the configuration. Check the server console")); - logger.error(ex.getMessage(), ex.getCause()); - } - return null; - }); - return Command.SINGLE_SUCCESS; - }) - ).build(); - - BrigadierCommand brigadier = new BrigadierCommand(command); - CommandMeta meta = manager.metaBuilder(brigadier) - .plugin(plugin) - .aliases("vauthme", "authmev") - .build(); - - manager.register(meta, brigadier); - - } -} diff --git a/velocity/src/main/java/me/adrianed/authmevelocity/velocity/listener/ConnectListener.java b/velocity/src/main/java/me/adrianed/authmevelocity/velocity/listener/ConnectListener.java index be45715..03ae38f 100644 --- a/velocity/src/main/java/me/adrianed/authmevelocity/velocity/listener/ConnectListener.java +++ b/velocity/src/main/java/me/adrianed/authmevelocity/velocity/listener/ConnectListener.java @@ -17,10 +17,6 @@ package me.adrianed.authmevelocity.velocity.listener; -import java.util.Optional; - -import org.slf4j.Logger; - import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; import com.velocitypowered.api.event.Continuation; @@ -32,38 +28,47 @@ import com.velocitypowered.api.event.player.ServerPreConnectEvent; import com.velocitypowered.api.proxy.Player; import com.velocitypowered.api.proxy.ProxyServer; import com.velocitypowered.api.proxy.server.RegisteredServer; - import me.adrianed.authmevelocity.velocity.AuthMeVelocityPlugin; import me.adrianed.authmevelocity.velocity.utils.AuthmeUtils; +import org.slf4j.Logger; + +import java.util.Optional; public final class ConnectListener { private final ProxyServer proxy; private final Logger logger; private final AuthMeVelocityPlugin plugin; - public ConnectListener(AuthMeVelocityPlugin plugin, ProxyServer proxy, Logger logger) { + public ConnectListener( + final AuthMeVelocityPlugin plugin, + final ProxyServer proxy, + final Logger logger + ) { this.plugin = plugin; this.logger = logger; this.proxy = proxy; } @Subscribe(order = PostOrder.LATE) - public void onInitialServer(PlayerChooseInitialServerEvent event, Continuation continuation){ + public void onInitialServer( + final PlayerChooseInitialServerEvent event, + Continuation continuation + ) { if (!plugin.config().get().ensureAuthServer().ensureFirstServerIsAuthServer()) { continuation.resume(); plugin.logDebug("PlayerChooseInitialServerEvent | Not enabled"); return; } - Optional optionalSV = event.getInitialServer(); - if (optionalSV.isPresent() && plugin.isAuthServer(optionalSV.get())){ + final Optional optionalSV = event.getInitialServer(); + if (optionalSV.isPresent() && plugin.isAuthServer(optionalSV.get())) { continuation.resume(); plugin.logDebug("PlayerChooseInitialServerEvent | Player is in auth server"); return; } - var config = plugin.config().get(); - var server = AuthmeUtils.serverToSend( - config.ensureAuthServer().sendMode(), proxy, config.authServers(), config.advanced().randomAttempts()); + final var config = plugin.config().get(); + final var server = AuthmeUtils.serverToSend( + config.ensureAuthServer().sendMode(), proxy, config.authServers(), config.advanced().randomAttempts()); // Velocity takes over in case the initial server is not present event.setInitialServer(server.object()); @@ -75,7 +80,10 @@ public final class ConnectListener { } @Subscribe - public void onServerPreConnect(ServerPreConnectEvent event, Continuation continuation) { + public void onServerPreConnect( + final ServerPreConnectEvent event, + final Continuation continuation + ) { if (!event.getResult().isAllowed() || plugin.isLogged(event.getPlayer())) { plugin.logDebug("ServerPreConnectEvent | Not allowed or player not logged"); continuation.resume(); @@ -92,14 +100,14 @@ public final class ConnectListener { @SuppressWarnings("UnstableApiUsage") @Subscribe - public void onServerPostConnect(ServerPostConnectEvent event) { + public void onServerPostConnect(final ServerPostConnectEvent event) { final Player player = event.getPlayer(); if (plugin.isLogged(player) && plugin.isInAuthServer(player)) { plugin.logDebug("ServerPostConnectEvent | Already logged player and connected to an Auth server"); final ByteArrayDataOutput buf = ByteStreams.newDataOutput(); buf.writeUTF("LOGIN"); player.getCurrentServer().ifPresent(sv -> - sv.sendPluginMessage(AuthMeVelocityPlugin.AUTHMEVELOCITY_CHANNEL, buf.toByteArray())); + sv.sendPluginMessage(AuthMeVelocityPlugin.AUTHMEVELOCITY_CHANNEL, buf.toByteArray())); } } } diff --git a/velocity/src/main/java/me/adrianed/authmevelocity/velocity/listener/FastLoginListener.java b/velocity/src/main/java/me/adrianed/authmevelocity/velocity/listener/FastLoginListener.java index cf8cb8d..ae07e5b 100644 --- a/velocity/src/main/java/me/adrianed/authmevelocity/velocity/listener/FastLoginListener.java +++ b/velocity/src/main/java/me/adrianed/authmevelocity/velocity/listener/FastLoginListener.java @@ -20,7 +20,6 @@ package me.adrianed.authmevelocity.velocity.listener; import com.github.games647.fastlogin.velocity.event.VelocityFastLoginAutoLoginEvent; import com.velocitypowered.api.event.Subscribe; import com.velocitypowered.api.proxy.ProxyServer; - import me.adrianed.authmevelocity.velocity.AuthMeVelocityPlugin; public class FastLoginListener { diff --git a/velocity/src/main/java/me/adrianed/authmevelocity/velocity/listener/PluginMessageListener.java b/velocity/src/main/java/me/adrianed/authmevelocity/velocity/listener/PluginMessageListener.java index d23af06..ba0ddfc 100644 --- a/velocity/src/main/java/me/adrianed/authmevelocity/velocity/listener/PluginMessageListener.java +++ b/velocity/src/main/java/me/adrianed/authmevelocity/velocity/listener/PluginMessageListener.java @@ -17,15 +17,6 @@ package me.adrianed.authmevelocity.velocity.listener; -import java.util.Locale; - -import me.adrianed.authmevelocity.api.velocity.event.PreSendOnLoginEvent; -import me.adrianed.authmevelocity.api.velocity.event.ProxyForcedUnregisterEvent; -import me.adrianed.authmevelocity.api.velocity.event.ProxyLoginEvent; -import me.adrianed.authmevelocity.api.velocity.event.ProxyLogoutEvent; -import me.adrianed.authmevelocity.api.velocity.event.ProxyRegisterEvent; -import me.adrianed.authmevelocity.api.velocity.event.ProxyUnregisterEvent; -import me.adrianed.authmevelocity.common.MessageType; import com.google.common.io.ByteArrayDataInput; import com.velocitypowered.api.event.Continuation; import com.velocitypowered.api.event.Subscribe; @@ -34,14 +25,16 @@ import com.velocitypowered.api.proxy.Player; import com.velocitypowered.api.proxy.ProxyServer; import com.velocitypowered.api.proxy.ServerConnection; import com.velocitypowered.api.proxy.server.RegisteredServer; - +import me.adrianed.authmevelocity.api.velocity.event.*; +import me.adrianed.authmevelocity.common.MessageType; import me.adrianed.authmevelocity.velocity.AuthMeVelocityPlugin; import me.adrianed.authmevelocity.velocity.utils.AuthmeUtils; - import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; +import java.util.Locale; + public class PluginMessageListener { private final ProxyServer proxy; private final Logger logger; @@ -80,7 +73,9 @@ public class PluginMessageListener { plugin.logDebug("PluginMessageEvent | Login type"); if (player != null && plugin.addPlayer(player)) { proxy.getEventManager().fireAndForget(new ProxyLoginEvent(player)); - this.createServerConnectionRequest(player, connection); + if (plugin.config().get().sendOnLogin().sendToServerOnLogin()) { + this.createServerConnectionRequest(player, connection); + } plugin.logDebug("PluginMessageEvent | Player not null"); } } @@ -115,15 +110,11 @@ public class PluginMessageListener { } private void createServerConnectionRequest(Player player, ServerConnection connection){ - if (!plugin.config().get().sendOnLogin().sendToServerOnLogin()) { - return; - } - final RegisteredServer loginServer = player.getCurrentServer().orElse(connection).getServer(); - var config = plugin.config().get(); + final var config = plugin.config().get(); - var toSend = AuthmeUtils.serverToSend( + final var toSend = AuthmeUtils.serverToSend( config.sendOnLogin().sendMode(), proxy, config.sendOnLogin().teleportServers(), config.advanced().randomAttempts()); if (toSend.isEmpty()) { diff --git a/velocity/src/main/java/me/adrianed/authmevelocity/velocity/listener/ProxyListener.java b/velocity/src/main/java/me/adrianed/authmevelocity/velocity/listener/ProxyListener.java index 2b8aebf..d418650 100644 --- a/velocity/src/main/java/me/adrianed/authmevelocity/velocity/listener/ProxyListener.java +++ b/velocity/src/main/java/me/adrianed/authmevelocity/velocity/listener/ProxyListener.java @@ -17,8 +17,6 @@ package me.adrianed.authmevelocity.velocity.listener; -import me.adrianed.authmevelocity.velocity.utils.AuthmeUtils; -import me.adrianed.authmevelocity.velocity.AuthMeVelocityPlugin; import com.velocitypowered.api.event.Continuation; import com.velocitypowered.api.event.EventTask; import com.velocitypowered.api.event.PostOrder; @@ -29,7 +27,8 @@ import com.velocitypowered.api.event.player.PlayerChatEvent; import com.velocitypowered.api.event.player.TabCompleteEvent; import com.velocitypowered.api.network.ProtocolVersion; import com.velocitypowered.api.proxy.Player; - +import me.adrianed.authmevelocity.velocity.AuthMeVelocityPlugin; +import me.adrianed.authmevelocity.velocity.utils.AuthmeUtils; import net.kyori.adventure.text.minimessage.MiniMessage; public final class ProxyListener { diff --git a/velocity/src/main/java/me/adrianed/authmevelocity/velocity/utils/AuthmeUtils.java b/velocity/src/main/java/me/adrianed/authmevelocity/velocity/utils/AuthmeUtils.java index 4e6ffc8..2d12ecb 100644 --- a/velocity/src/main/java/me/adrianed/authmevelocity/velocity/utils/AuthmeUtils.java +++ b/velocity/src/main/java/me/adrianed/authmevelocity/velocity/utils/AuthmeUtils.java @@ -17,18 +17,16 @@ package me.adrianed.authmevelocity.velocity.utils; +import com.velocitypowered.api.proxy.ProxyServer; +import com.velocitypowered.api.proxy.server.RegisteredServer; +import me.adrianed.authmevelocity.common.enums.SendMode; +import org.jetbrains.annotations.NotNull; + import java.util.List; import java.util.Objects; import java.util.Optional; import java.util.Random; -import org.jetbrains.annotations.NotNull; - -import com.velocitypowered.api.proxy.ProxyServer; -import com.velocitypowered.api.proxy.server.RegisteredServer; - -import me.adrianed.authmevelocity.common.enums.SendMode; - public class AuthmeUtils { //Origin: https://github.com/4drian3d/ChatRegulator/blob/main/src/main/java/me/dreamerzero/chatregulator/utils/CommandUtils.java#L71 /**