33 lines
1.5 KiB
Java
33 lines
1.5 KiB
Java
package net.minecraft.server;
|
|
|
|
import com.mojang.authlib.GameProfileRepository;
|
|
import com.mojang.authlib.minecraft.MinecraftSessionService;
|
|
import com.mojang.authlib.yggdrasil.ServicesKeySet;
|
|
import com.mojang.authlib.yggdrasil.ServicesKeyType;
|
|
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
|
|
import java.io.File;
|
|
import net.minecraft.server.players.GameProfileCache;
|
|
import net.minecraft.util.SignatureValidator;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
public record Services(
|
|
MinecraftSessionService sessionService, ServicesKeySet servicesKeySet, GameProfileRepository profileRepository, GameProfileCache profileCache
|
|
) {
|
|
private static final String USERID_CACHE_FILE = "usercache.json";
|
|
|
|
public static Services create(YggdrasilAuthenticationService authenticationService, File profileRepository) {
|
|
MinecraftSessionService minecraftSessionService = authenticationService.createMinecraftSessionService();
|
|
GameProfileRepository gameProfileRepository = authenticationService.createProfileRepository();
|
|
GameProfileCache gameProfileCache = new GameProfileCache(gameProfileRepository, new File(profileRepository, "usercache.json"));
|
|
return new Services(minecraftSessionService, authenticationService.getServicesKeySet(), gameProfileRepository, gameProfileCache);
|
|
}
|
|
|
|
@Nullable
|
|
public SignatureValidator profileKeySignatureValidator() {
|
|
return SignatureValidator.from(this.servicesKeySet, ServicesKeyType.PROFILE_KEY);
|
|
}
|
|
|
|
public boolean canValidateProfileKeys() {
|
|
return !this.servicesKeySet.keys(ServicesKeyType.PROFILE_KEY).isEmpty();
|
|
}
|
|
}
|