This commit is contained in:
4drian3d 2021-09-14 08:00:30 -05:00
parent 8c9ee11dd8
commit bb2803dbb4
5 changed files with 18 additions and 44 deletions

View File

@ -77,5 +77,4 @@
</resource> </resource>
</resources> </resources>
</build> </build>
</project> </project>

View File

@ -12,16 +12,15 @@ import org.slf4j.Logger;
import de.leonhard.storage.Yaml; import de.leonhard.storage.Yaml;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
public class AuthMeVelocityPlugin { public class AuthMeVelocityPlugin {
public final ProxyServer server; private final ProxyServer server;
private final Logger logger; private final Logger logger;
static Yaml config = new Yaml("config", "plugins/AuthmeVelocity"); private static Yaml config = new Yaml("config", "plugins/AuthmeVelocity");
public final List<UUID> loggedPlayers = Collections.synchronizedList(new ArrayList<>()); public final List<UUID> loggedPlayers = Collections.synchronizedList(new ArrayList<>());
@ -32,11 +31,11 @@ public class AuthMeVelocityPlugin {
} }
@Subscribe @Subscribe
public void onProxyInitialize(ProxyInitializeEvent event) throws IOException { public void onProxyInitialize(ProxyInitializeEvent event) {
server.getChannelRegistrar().register(new LegacyChannelIdentifier("authmevelocity:main"), MinecraftChannelIdentifier.create("authmevelocity", "main")); server.getChannelRegistrar().register(new LegacyChannelIdentifier("authmevelocity:main"), MinecraftChannelIdentifier.create("authmevelocity", "main"));
server.getEventManager().register(this, new ProxyListener(this)); server.getEventManager().register(this, new ProxyListener(this, server));
AuthMeConfig.defaultConfig(); AuthMeConfig.defaultConfig();
logger.info("AuthMeVelocity enabled."); logger.info("AuthMeVelocity enabled");
logger.info("AuthServers: " + config.getList("authservers")); logger.info("AuthServers: " + config.getList("authservers"));
} }

View File

@ -17,36 +17,27 @@ import java.util.Optional;
import java.util.UUID; import java.util.UUID;
public class ProxyListener { public class ProxyListener {
private final AuthMeVelocityPlugin plugin; private final AuthMeVelocityPlugin plugin;
private final ProxyServer server; private final ProxyServer server;
public ProxyListener(AuthMeVelocityPlugin plugin) { public ProxyListener(AuthMeVelocityPlugin plugin, ProxyServer server) {
this.plugin = plugin; this.plugin = plugin;
server = plugin.server; this.server = server;
} }
@Subscribe @Subscribe
public void onPluginMessage(final PluginMessageEvent event) { public void onPluginMessage(final PluginMessageEvent event) {
if (!(event.getSource() instanceof ServerConnection)) { if (!(event.getSource() instanceof ServerConnection)) return;
return;
}
if (!event.getIdentifier().getId().equals("authmevelocity:main")) { if (!event.getIdentifier().getId().equals("authmevelocity:main")) return;
return;
}
ByteArrayDataInput input = event.dataAsDataStream(); ByteArrayDataInput input = event.dataAsDataStream();
String sChannel = input.readUTF(); String sChannel = input.readUTF();
if (!sChannel.equals("LOGIN")) { if (!sChannel.equals("LOGIN")) return;
return;
}
String user = input.readUTF(); String user = input.readUTF();
Optional<Player> player = server.getPlayer(UUID.fromString(user)); Optional<Player> player = server.getPlayer(UUID.fromString(user));
if (!player.isPresent()) { if (!player.isPresent()) return;
return;
}
plugin.loggedPlayers.add(player.get().getUniqueId()); plugin.loggedPlayers.add(player.get().getUniqueId());
} }
@ -58,22 +49,17 @@ public class ProxyListener {
@Subscribe @Subscribe
public void onCommandExecute(final CommandExecuteEvent event) { public void onCommandExecute(final CommandExecuteEvent event) {
if (!(event.getCommandSource() instanceof Player)) if (!(event.getCommandSource() instanceof Player player)) return;
return;
final var player = (Player) event.getCommandSource(); if (plugin.loggedPlayers.contains(player.getUniqueId())) return;
if (plugin.loggedPlayers.contains(player.getUniqueId()))
return;
Optional<ServerConnection> server = player.getCurrentServer(); Optional<ServerConnection> server = player.getCurrentServer();
boolean isAuthServer = boolean isAuthServer = server.isPresent() &&
server.isPresent() &&
AuthMeVelocityPlugin.getConfig().getList("authservers").contains(server.get().getServerInfo().getName()); AuthMeVelocityPlugin.getConfig().getList("authservers").contains(server.get().getServerInfo().getName());
if (isAuthServer) { if (isAuthServer) {
event.setResult(CommandExecuteEvent.CommandResult.forwardToServer()); event.setResult(CommandExecuteEvent.CommandResult.forwardToServer());
} } else {
else {
event.setResult(CommandExecuteEvent.CommandResult.denied()); event.setResult(CommandExecuteEvent.CommandResult.denied());
} }
} }
@ -81,8 +67,7 @@ public class ProxyListener {
@Subscribe @Subscribe
public void onPlayerChat(final PlayerChatEvent event) { public void onPlayerChat(final PlayerChatEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
if (plugin.loggedPlayers.contains(player.getUniqueId())) if (plugin.loggedPlayers.contains(player.getUniqueId())) return;
return;
Optional<ServerConnection> server = player.getCurrentServer(); Optional<ServerConnection> server = player.getCurrentServer();
if (server.isPresent() && AuthMeVelocityPlugin.getConfig().getList("authservers").contains(server.get().getServerInfo().getName())) { if (server.isPresent() && AuthMeVelocityPlugin.getConfig().getList("authservers").contains(server.get().getServerInfo().getName())) {
@ -95,8 +80,7 @@ public class ProxyListener {
@Subscribe @Subscribe
public void onServerPreConnect(ServerPreConnectEvent event) { public void onServerPreConnect(ServerPreConnectEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
if (plugin.loggedPlayers.contains(player.getUniqueId())) if (plugin.loggedPlayers.contains(player.getUniqueId())) return;
return;
Optional<RegisteredServer> server = event.getResult().getServer(); Optional<RegisteredServer> server = event.getResult().getServer();
if (server.isPresent() && AuthMeVelocityPlugin.getConfig().getList("authservers").contains(server.get().getServerInfo().getName())) { if (server.isPresent() && AuthMeVelocityPlugin.getConfig().getList("authservers").contains(server.get().getServerInfo().getName())) {

View File

@ -7,7 +7,6 @@ import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
public class AuthMeVelocityPlugin extends JavaPlugin { public class AuthMeVelocityPlugin extends JavaPlugin {
@Override @Override
public void onEnable() { public void onEnable() {
getServer().getMessenger().registerOutgoingPluginChannel(this, "authmevelocity:main"); getServer().getMessenger().registerOutgoingPluginChannel(this, "authmevelocity:main");
@ -16,11 +15,6 @@ public class AuthMeVelocityPlugin extends JavaPlugin {
getLogger().info("AuthMeVelocity enabled."); getLogger().info("AuthMeVelocity enabled.");
} }
@Override
public void onDisable() {
}
public void sendLoginToProxy(Player player) { public void sendLoginToProxy(Player player) {
ByteArrayDataOutput out = ByteStreams.newDataOutput(); ByteArrayDataOutput out = ByteStreams.newDataOutput();
out.writeUTF("LOGIN"); out.writeUTF("LOGIN");

View File

@ -6,7 +6,6 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
public class AuthMeListener implements Listener { public class AuthMeListener implements Listener {
private final AuthMeVelocityPlugin plugin; private final AuthMeVelocityPlugin plugin;
public AuthMeListener(AuthMeVelocityPlugin plugin) { public AuthMeListener(AuthMeVelocityPlugin plugin) {
@ -17,5 +16,4 @@ public class AuthMeListener implements Listener {
public void onLogin(LoginEvent event) { public void onLogin(LoginEvent event) {
plugin.sendLoginToProxy(event.getPlayer()); plugin.sendLoginToProxy(event.getPlayer());
} }
} }