mirror of https://github.com/Minestom/Minestom.git
40 lines
1.3 KiB
Java
40 lines
1.3 KiB
Java
package net.minestom.server.extras;
|
|
|
|
import net.minestom.server.MinecraftServer;
|
|
import net.minestom.server.ServerFlag;
|
|
import net.minestom.server.extras.mojangAuth.MojangCrypt;
|
|
import net.minestom.server.extras.velocity.VelocityProxy;
|
|
import net.minestom.server.utils.validate.Check;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
import java.security.KeyPair;
|
|
|
|
public final class MojangAuth {
|
|
public static final String AUTH_URL = ServerFlag.AUTH_URL.concat("?username=%s&serverId=%s");
|
|
private static volatile boolean enabled = false;
|
|
private static volatile KeyPair keyPair;
|
|
|
|
/**
|
|
* Enables mojang authentication on the server.
|
|
* <p>
|
|
* Be aware that enabling a proxy will make Mojang authentication ignored.
|
|
*/
|
|
public static void init() {
|
|
Check.stateCondition(enabled, "Mojang auth is already enabled!");
|
|
Check.stateCondition(MinecraftServer.process().isAlive(), "The server has already been started!");
|
|
Check.stateCondition(VelocityProxy.isEnabled(), "Velocity modern forwarding should not be enabled with MojangAuth");
|
|
|
|
MojangAuth.enabled = true;
|
|
// Generate necessary fields...
|
|
MojangAuth.keyPair = MojangCrypt.generateKeyPair();
|
|
}
|
|
|
|
public static boolean isEnabled() {
|
|
return enabled;
|
|
}
|
|
|
|
public static @Nullable KeyPair getKeyPair() {
|
|
return keyPair;
|
|
}
|
|
}
|