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(
|
||||
new LegacyChannelIdentifier("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));
|
||||
AuthMeConfig.defaultConfig();
|
||||
logger.info("AuthMeVelocity enabled");
|
||||
logger.info("-- AuthMeVelocity enabled --");
|
||||
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(){
|
||||
|
@ -4,8 +4,25 @@ import java.util.List;
|
||||
|
||||
import com.glyart.authmevelocity.proxy.AuthMeVelocityPlugin;
|
||||
|
||||
import de.leonhard.storage.Yaml;
|
||||
|
||||
public interface AuthMeConfig {
|
||||
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.server.RegisteredServer;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.Random;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
public class ProxyListener {
|
||||
private final ProxyServer server;
|
||||
private final Logger logger;
|
||||
|
||||
public ProxyListener(ProxyServer server) {
|
||||
public ProxyListener(ProxyServer server, Logger logger) {
|
||||
this.server = server;
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
@ -47,6 +54,29 @@ public class ProxyListener {
|
||||
|
||||
RegisteredServer loginServer = loggedPlayer.getCurrentServer().get().getServer();
|
||||
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