Search in sources :

Example 1 with YggdrasilAuthenticationService

use of com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService in project Citizens2 by CitizensDev.

the class NMSImpl method fillProfileProperties.

@Override
public GameProfile fillProfileProperties(GameProfile profile, boolean requireSecure) throws Exception {
    if (Bukkit.isPrimaryThread())
        throw new IllegalStateException("NMS.fillProfileProperties cannot be invoked from the main thread.");
    MinecraftSessionService sessionService = ((CraftServer) Bukkit.getServer()).getServer().ay();
    if (!(sessionService instanceof YggdrasilMinecraftSessionService)) {
        return sessionService.fillProfileProperties(profile, requireSecure);
    }
    YggdrasilAuthenticationService auth = ((YggdrasilMinecraftSessionService) sessionService).getAuthenticationService();
    URL url = HttpAuthenticationService.constantURL(getAuthServerBaseUrl() + UUIDTypeAdapter.fromUUID(profile.getId()));
    url = HttpAuthenticationService.concatenateURL(url, "unsigned=" + !requireSecure);
    MinecraftProfilePropertiesResponse response = (MinecraftProfilePropertiesResponse) MAKE_REQUEST.invoke(auth, url, null, MinecraftProfilePropertiesResponse.class);
    if (response == null)
        return profile;
    GameProfile result = new GameProfile(response.getId(), response.getName());
    result.getProperties().putAll(response.getProperties());
    profile.getProperties().putAll(response.getProperties());
    return result;
}
Also used : GameProfile(com.mojang.authlib.GameProfile) MinecraftProfilePropertiesResponse(com.mojang.authlib.yggdrasil.response.MinecraftProfilePropertiesResponse) YggdrasilMinecraftSessionService(com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService) YggdrasilMinecraftSessionService(com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService) MinecraftSessionService(com.mojang.authlib.minecraft.MinecraftSessionService) YggdrasilAuthenticationService(com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService) URL(java.net.URL)

Example 2 with YggdrasilAuthenticationService

use of com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService in project MinecraftForge by MinecraftForge.

the class Yggdrasil method login.

public static void login(Map<String, String> args) {
    if (!args.containsKey("--username") || !args.containsKey("--password"))
        return;
    YggdrasilUserAuthentication auth = (YggdrasilUserAuthentication) new YggdrasilAuthenticationService(Proxy.NO_PROXY, "1").createUserAuthentication(Agent.MINECRAFT);
    auth.setUsername(args.get("--username"));
    auth.setPassword(args.remove("--password"));
    try {
        auth.logIn();
    } catch (AuthenticationException e) {
        LogManager.getLogger("FMLTWEAK").error("-- Login failed!  " + e.getMessage());
        Throwables.propagate(e);
        // don't set other variables
        return;
    }
    args.put("--username", auth.getSelectedProfile().getName());
    args.put("--uuid", auth.getSelectedProfile().getId().toString().replace("-", ""));
    args.put("--accessToken", auth.getAuthenticatedToken());
    args.put("--userProperties", auth.getUserProperties().toString());
}
Also used : AuthenticationException(com.mojang.authlib.exceptions.AuthenticationException) YggdrasilAuthenticationService(com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService) YggdrasilUserAuthentication(com.mojang.authlib.yggdrasil.YggdrasilUserAuthentication)

Example 3 with YggdrasilAuthenticationService

use of com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService in project SpongeVanilla by SpongePowered.

the class SpongeVanilla method start.

private static void start(String[] args) {
    // Attempt to load metadata
    MetadataContainer metadata = MetadataContainer.load();
    // Register Minecraft plugin container
    MinecraftPluginContainer.register();
    OptionSet options = VanillaCommandLine.parse(args);
    // Note: This launches the server instead of MinecraftServer.main
    // Keep command line options up-to-date with Vanilla
    Bootstrap.register();
    File worldDir = options.has(WORLD_DIR) ? options.valueOf(WORLD_DIR) : new File(".");
    YggdrasilAuthenticationService authenticationService = new YggdrasilAuthenticationService(Proxy.NO_PROXY, UUID.randomUUID().toString());
    MinecraftSessionService sessionService = authenticationService.createMinecraftSessionService();
    GameProfileRepository profileRepository = authenticationService.createProfileRepository();
    PlayerProfileCache profileCache = new PlayerProfileCache(profileRepository, new File(worldDir, USER_CACHE_FILE.getName()));
    DedicatedServer server = new DedicatedServer(worldDir, DataFixesManager.createFixer(), authenticationService, sessionService, profileRepository, profileCache);
    // We force-load NetHandlerPlayServer here.
    // Otherwise, VanillaChannelRegistrar causes it to be loaded from
    // within the Guice injector (see SpongeVanillaModule), thus swallowing
    // any Mixin exception that occurs.
    // 
    // See https://github.com/SpongePowered/SpongeVanilla/issues/235 for a more
    // in-depth explanation
    NetHandlerPlayServer.class.getName();
    final Stage stage = SpongeGuice.getInjectorStage(VanillaLaunch.ENVIRONMENT == DEVELOPMENT ? Stage.DEVELOPMENT : Stage.PRODUCTION);
    SpongeImpl.getLogger().debug("Creating injector in stage '{}'", stage);
    Guice.createInjector(stage, new SpongeModule(), new SpongeVanillaModule(server, metadata));
    if (options.has(WORLD_NAME)) {
        server.setFolderName(options.valueOf(WORLD_NAME));
    }
    if (options.has(PORT)) {
        server.setServerPort(options.valueOf(PORT));
    }
    if (options.has(BONUS_CHEST)) {
        server.canCreateBonusChest(true);
    }
    server.startServerThread();
    Runtime.getRuntime().addShutdownHook(new Thread(server::stopServer, "Server Shutdown Thread"));
}
Also used : MetadataContainer(org.spongepowered.server.plugin.MetadataContainer) SpongeModule(org.spongepowered.common.inject.SpongeModule) PlayerProfileCache(net.minecraft.server.management.PlayerProfileCache) GameProfileRepository(com.mojang.authlib.GameProfileRepository) Stage(com.google.inject.Stage) YggdrasilAuthenticationService(com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService) MinecraftSessionService(com.mojang.authlib.minecraft.MinecraftSessionService) DedicatedServer(net.minecraft.server.dedicated.DedicatedServer) OptionSet(joptsimple.OptionSet) File(java.io.File) SpongeVanillaModule(org.spongepowered.server.inject.SpongeVanillaModule)

Example 4 with YggdrasilAuthenticationService

use of com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService in project Wurst-MC-1.12 by Wurst-Imperium.

the class LoginManager method login.

public static String login(String email, String password) {
    YggdrasilUserAuthentication auth = (YggdrasilUserAuthentication) new YggdrasilAuthenticationService(Proxy.NO_PROXY, "").createUserAuthentication(Agent.MINECRAFT);
    auth.setUsername(email);
    auth.setPassword(password);
    try {
        auth.logIn();
        Minecraft.getMinecraft().session = new Session(auth.getSelectedProfile().getName(), auth.getSelectedProfile().getId().toString(), auth.getAuthenticatedToken(), "mojang");
        return "";
    } catch (AuthenticationUnavailableException e) {
        return "�4�lCannot contact authentication server!";
    } catch (AuthenticationException e) {
        e.printStackTrace();
        if (e.getMessage().contains("Invalid username or password.") || e.getMessage().toLowerCase().contains("account migrated"))
            return "�4�lWrong password!";
        else
            return "�4�lCannot contact authentication server!";
    } catch (NullPointerException e) {
        return "�4�lWrong password!";
    }
}
Also used : AuthenticationUnavailableException(com.mojang.authlib.exceptions.AuthenticationUnavailableException) AuthenticationException(com.mojang.authlib.exceptions.AuthenticationException) YggdrasilAuthenticationService(com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService) YggdrasilUserAuthentication(com.mojang.authlib.yggdrasil.YggdrasilUserAuthentication) Session(net.minecraft.util.Session)

Example 5 with YggdrasilAuthenticationService

use of com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService in project Citizens2 by CitizensDev.

the class NMSImpl method fillProfileProperties.

@Override
public GameProfile fillProfileProperties(GameProfile profile, boolean requireSecure) throws Exception {
    if (Bukkit.isPrimaryThread())
        throw new IllegalStateException("NMS.fillProfileProperties cannot be invoked from the main thread.");
    MinecraftSessionService sessionService = ((CraftServer) Bukkit.getServer()).getServer().aD();
    if (!(sessionService instanceof YggdrasilMinecraftSessionService)) {
        return sessionService.fillProfileProperties(profile, requireSecure);
    }
    YggdrasilAuthenticationService auth = ((YggdrasilMinecraftSessionService) sessionService).getAuthenticationService();
    URL url = HttpAuthenticationService.constantURL(getAuthServerBaseUrl() + UUIDTypeAdapter.fromUUID(profile.getId()));
    url = HttpAuthenticationService.concatenateURL(url, "unsigned=" + !requireSecure);
    MinecraftProfilePropertiesResponse response = (MinecraftProfilePropertiesResponse) MAKE_REQUEST.invoke(auth, url, null, MinecraftProfilePropertiesResponse.class);
    if (response == null)
        return profile;
    GameProfile result = new GameProfile(response.getId(), response.getName());
    result.getProperties().putAll(response.getProperties());
    profile.getProperties().putAll(response.getProperties());
    return result;
}
Also used : GameProfile(com.mojang.authlib.GameProfile) MinecraftProfilePropertiesResponse(com.mojang.authlib.yggdrasil.response.MinecraftProfilePropertiesResponse) YggdrasilMinecraftSessionService(com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService) YggdrasilMinecraftSessionService(com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService) MinecraftSessionService(com.mojang.authlib.minecraft.MinecraftSessionService) YggdrasilAuthenticationService(com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService) URL(java.net.URL)

Aggregations

YggdrasilAuthenticationService (com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService)7 MinecraftSessionService (com.mojang.authlib.minecraft.MinecraftSessionService)5 GameProfile (com.mojang.authlib.GameProfile)4 YggdrasilMinecraftSessionService (com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService)4 MinecraftProfilePropertiesResponse (com.mojang.authlib.yggdrasil.response.MinecraftProfilePropertiesResponse)4 URL (java.net.URL)4 AuthenticationException (com.mojang.authlib.exceptions.AuthenticationException)2 YggdrasilUserAuthentication (com.mojang.authlib.yggdrasil.YggdrasilUserAuthentication)2 Stage (com.google.inject.Stage)1 GameProfileRepository (com.mojang.authlib.GameProfileRepository)1 AuthenticationUnavailableException (com.mojang.authlib.exceptions.AuthenticationUnavailableException)1 File (java.io.File)1 OptionSet (joptsimple.OptionSet)1 DedicatedServer (net.minecraft.server.dedicated.DedicatedServer)1 PlayerProfileCache (net.minecraft.server.management.PlayerProfileCache)1 Session (net.minecraft.util.Session)1 SpongeModule (org.spongepowered.common.inject.SpongeModule)1 SpongeVanillaModule (org.spongepowered.server.inject.SpongeVanillaModule)1 MetadataContainer (org.spongepowered.server.plugin.MetadataContainer)1