Added configurable sending to server after login
- Possibly resolves https://github.com/AuthMe/AuthMeReloaded/issues/2425
This commit is contained in:
parent
d267f1c3fa
commit
c1b18455d0
@ -36,11 +36,14 @@ public class AuthMeVelocityPlugin {
|
|||||||
proxy.getChannelRegistrar().register(
|
proxy.getChannelRegistrar().register(
|
||||||
new LegacyChannelIdentifier("authmevelocity:main"),
|
new LegacyChannelIdentifier("authmevelocity:main"),
|
||||||
MinecraftChannelIdentifier.create("authmevelocity", "main"));
|
MinecraftChannelIdentifier.create("authmevelocity", "main"));
|
||||||
proxy.getEventManager().register(this, new ProxyListener(proxy));
|
proxy.getEventManager().register(this, new ProxyListener(proxy, logger));
|
||||||
proxy.getEventManager().register(this, new FastLoginListener(proxy));
|
proxy.getEventManager().register(this, new FastLoginListener(proxy));
|
||||||
AuthMeConfig.defaultConfig();
|
AuthMeConfig.defaultConfig();
|
||||||
logger.info("AuthMeVelocity enabled");
|
logger.info("-- AuthMeVelocity enabled --");
|
||||||
logger.info("AuthServers: " + config.getList("authservers"));
|
logger.info("AuthServers: " + config.getList("authservers"));
|
||||||
|
if(config.getBoolean("teleport.send-to-server-after-login")){
|
||||||
|
logger.info("LobbyServers: " + config.getList("teleport.servers"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Yaml getConfig(){
|
public static Yaml getConfig(){
|
||||||
|
@ -4,8 +4,25 @@ import java.util.List;
|
|||||||
|
|
||||||
import com.glyart.authmevelocity.proxy.AuthMeVelocityPlugin;
|
import com.glyart.authmevelocity.proxy.AuthMeVelocityPlugin;
|
||||||
|
|
||||||
|
import de.leonhard.storage.Yaml;
|
||||||
|
|
||||||
public interface AuthMeConfig {
|
public interface AuthMeConfig {
|
||||||
public static void defaultConfig(){
|
public static void defaultConfig(){
|
||||||
AuthMeVelocityPlugin.getConfig().setDefault("authservers", List.of("auth1", "auth2"));
|
Yaml config = AuthMeVelocityPlugin.getConfig();
|
||||||
|
config.setDefault(
|
||||||
|
"authservers",
|
||||||
|
List.of(
|
||||||
|
"auth1",
|
||||||
|
"auth2"
|
||||||
|
));
|
||||||
|
config.setDefault(
|
||||||
|
"teleport.send-to-server-after-login",
|
||||||
|
false);
|
||||||
|
config.setDefault(
|
||||||
|
"teleport.servers",
|
||||||
|
List.of(
|
||||||
|
"lobby1",
|
||||||
|
"lobby2"
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,14 +17,21 @@ import com.velocitypowered.api.proxy.ProxyServer;
|
|||||||
import com.velocitypowered.api.proxy.ServerConnection;
|
import com.velocitypowered.api.proxy.ServerConnection;
|
||||||
import com.velocitypowered.api.proxy.server.RegisteredServer;
|
import com.velocitypowered.api.proxy.server.RegisteredServer;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import java.util.Random;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.concurrent.ExecutionException;
|
||||||
|
|
||||||
public class ProxyListener {
|
public class ProxyListener {
|
||||||
private final ProxyServer server;
|
private final ProxyServer server;
|
||||||
|
private final Logger logger;
|
||||||
|
|
||||||
public ProxyListener(ProxyServer server) {
|
public ProxyListener(ProxyServer server, Logger logger) {
|
||||||
this.server = server;
|
this.server = server;
|
||||||
|
this.logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
@ -47,6 +54,29 @@ public class ProxyListener {
|
|||||||
|
|
||||||
RegisteredServer loginServer = loggedPlayer.getCurrentServer().get().getServer();
|
RegisteredServer loginServer = loggedPlayer.getCurrentServer().get().getServer();
|
||||||
server.getEventManager().fireAndForget(new ProxyLoginEvent(loggedPlayer, loginServer));
|
server.getEventManager().fireAndForget(new ProxyLoginEvent(loggedPlayer, loginServer));
|
||||||
|
if(AuthMeVelocityPlugin.getConfig().getBoolean("teleport.send-to-server-after-login")){
|
||||||
|
Random rm = new Random();
|
||||||
|
List<String> serverList = AuthMeVelocityPlugin.getConfig().getStringList("teleport.servers");
|
||||||
|
String randomServer = serverList.get(rm.nextInt(serverList.size()));
|
||||||
|
Optional<RegisteredServer> optionalServer = server.getServer(randomServer);
|
||||||
|
if(optionalServer.isPresent()){
|
||||||
|
RegisteredServer serverToSend = optionalServer.get();
|
||||||
|
try{
|
||||||
|
if(!loggedPlayer.createConnectionRequest(serverToSend).connect().get().isSuccessful()){
|
||||||
|
logger.info("Unable to connect the player {} to the server {}",
|
||||||
|
loggedPlayer.getUsername(),
|
||||||
|
serverToSend.getServerInfo().getName());
|
||||||
|
}
|
||||||
|
} catch (InterruptedException | ExecutionException exception){
|
||||||
|
logger.info("Unable to connect the player {} to the server {}. Error: {}",
|
||||||
|
loggedPlayer.getUsername(),
|
||||||
|
serverToSend.getServerInfo().getName(),
|
||||||
|
exception);
|
||||||
|
}
|
||||||
|
} else{
|
||||||
|
logger.info("The server {} does not exist", randomServer);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user