Minestom/src/main/java/net/minestom/server/extras/MojangAuth.java

40 lines
1.3 KiB
Java
Raw Normal View History

package net.minestom.server.extras;
import net.minestom.server.MinecraftServer;
import net.minestom.server.ServerFlag;
2020-11-16 03:10:51 +01:00
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;
2020-11-16 03:10:51 +01:00
import java.security.KeyPair;
2020-11-10 07:42:11 +01:00
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;
2020-10-14 16:41:36 +02:00
/**
2020-11-10 00:13:57 +01:00
* Enables mojang authentication on the server.
* <p>
* Be aware that enabling a proxy will make Mojang authentication ignored.
2020-10-14 16:41:36 +02:00
*/
public static void init() {
Check.stateCondition(enabled, "Mojang auth is already enabled!");
2022-01-05 09:01:21 +01:00
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();
}
2020-11-16 03:10:51 +01:00
public static boolean isEnabled() {
return enabled;
}
public static @Nullable KeyPair getKeyPair() {
2020-11-16 03:10:51 +01:00
return keyPair;
}
}