trying to not bash my head through a window

This commit is contained in:
Ntdi 2023-06-26 17:30:19 -04:00
parent dd7f56bd41
commit aac9ca5188
15 changed files with 732 additions and 189 deletions

View File

@ -29,7 +29,7 @@
<dependency>
<groupId>fr.litarvan</groupId>
<artifactId>openauth</artifactId>
<version>1.1.3</version>
<version>1.1.6</version>
</dependency>
<dependency>
<groupId>net.minecraft</groupId>

View File

@ -1,25 +1,16 @@
package rip.athena.client.gui.menu.altmanager.panels;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import fr.litarvan.openauth.microsoft.LoginFrame;
import fr.litarvan.openauth.microsoft.MicrosoftAuthResult;
import fr.litarvan.openauth.microsoft.MicrosoftAuthenticationException;
import fr.litarvan.openauth.microsoft.MicrosoftAuthenticator;
import javafx.embed.swing.JFXPanel;
import javafx.scene.Scene;
import javafx.scene.web.WebView;
import fr.litarvan.openauth.microsoft.*;
import net.minecraft.client.Minecraft;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.Session;
import org.apache.commons.io.IOUtils;
import org.lwjgl.input.Keyboard;
import rip.athena.client.Athena;
import rip.athena.client.account.Account;
import rip.athena.client.account.AccountType;
import rip.athena.client.gui.menu.altmanager.Panel;
import rip.athena.client.gui.menu.altmanager.button.AltButton;
import rip.athena.client.gui.menu.altmanager.helpers.AltManagerUtils;
import rip.athena.client.gui.menu.altmanager.panels.auth.AthenaAuth;
import rip.athena.client.gui.menu.altmanager.panels.auth.MicrosoftAuthResult;
import rip.athena.client.utils.animations.Animation;
import rip.athena.client.utils.animations.Direction;
import rip.athena.client.utils.animations.impl.DecelerateAnimation;
@ -28,9 +19,6 @@ import rip.athena.client.utils.render.*;
import rip.athena.client.utils.render.TextField;
import java.awt.*;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
@ -154,10 +142,9 @@ public class LoginPanel extends Panel {
if (hoveringMicrosoft && button == 0) {
new Thread(() -> {
MicrosoftAuthenticator authenticator = new MicrosoftAuthenticator();
AthenaAuth authenticator = new AthenaAuth();
TextField username = textFields.get(0);
String email = username.getText();
String email = textFields.get(0).getText();
String password = textFields.get(1).getText();
if (email.contains(":")) {
String[] split = email.split(":");
@ -169,7 +156,7 @@ public class LoginPanel extends Panel {
try {
Athena.INSTANCE.getLog().info(email + password);
MicrosoftAuthResult acc = authenticator.loginWithCredentials(email, password);
MicrosoftAuthResult acc = authenticator.loginWithWebview();
Minecraft.getMinecraft().session = new Session(acc.getProfile().getName(), acc.getProfile().getId(), acc.getAccessToken(), "legacy");
@ -181,7 +168,7 @@ public class LoginPanel extends Panel {
Athena.INSTANCE.getLog().info("Success: Logged into " + acc.getProfile().getName());
} catch (MicrosoftAuthenticationException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
resetTextFields();

View File

@ -0,0 +1,175 @@
package rip.athena.client.gui.menu.altmanager.panels.auth;
import fr.litarvan.openauth.microsoft.*;
import fr.litarvan.openauth.microsoft.model.request.MinecraftLoginRequest;
import fr.litarvan.openauth.microsoft.model.request.XSTSAuthorizationProperties;
import fr.litarvan.openauth.microsoft.model.request.XboxLiveLoginProperties;
import fr.litarvan.openauth.microsoft.model.request.XboxLoginRequest;
import fr.litarvan.openauth.microsoft.model.response.MinecraftLoginResponse;
import fr.litarvan.openauth.microsoft.model.response.MinecraftProfile;
import fr.litarvan.openauth.microsoft.model.response.MinecraftStoreResponse;
import fr.litarvan.openauth.microsoft.model.response.XboxLoginResponse;
import java.io.UnsupportedEncodingException;
import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.URLDecoder;
import java.util.Arrays;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionException;
import java.util.concurrent.ExecutionException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class AthenaAuth {
public static final String MICROSOFT_AUTHORIZATION_ENDPOINT = "https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize";
public static final String MICROSOFT_TOKEN_ENDPOINT = "https://login.live.com/oauth20_token.srf";
public static final String MICROSOFT_REDIRECTION_ENDPOINT = "https://login.live.com/oauth20_desktop.srf";
public static final String XBOX_LIVE_AUTH_HOST = "user.auth.xboxlive.com";
public static final String XBOX_LIVE_CLIENT_ID = "000000004C12AE6F";
public static final String XBOX_LIVE_SERVICE_SCOPE = "service::user.auth.xboxlive.com::MBI_SSL";
public static final String XBOX_LIVE_AUTHORIZATION_ENDPOINT = "https://user.auth.xboxlive.com/user/authenticate";
public static final String XSTS_AUTHORIZATION_ENDPOINT = "https://xsts.auth.xboxlive.com/xsts/authorize";
public static final String MINECRAFT_AUTH_ENDPOINT = "https://api.minecraftservices.com/authentication/login_with_xbox";
public static final String XBOX_LIVE_AUTH_RELAY = "http://auth.xboxlive.com";
public static final String MINECRAFT_AUTH_RELAY = "rp://api.minecraftservices.com/";
public static final String MINECRAFT_STORE_ENDPOINT = "https://api.minecraftservices.com/entitlements/mcstore";
public static final String MINECRAFT_PROFILE_ENDPOINT = "https://api.minecraftservices.com/minecraft/profile";
public static final String MINECRAFT_STORE_IDENTIFIER = "game_minecraft";
private final HttpClient http;
public AthenaAuth() {
this.http = new HttpClient();
}
public MicrosoftAuthResult loginWithWebview() throws MicrosoftAuthenticationException {
try {
return loginWithAsyncWebview().get();
} catch (InterruptedException | ExecutionException e) {
throw new MicrosoftAuthenticationException(e);
}
}
private CompletableFuture<MicrosoftAuthResult> loginWithAsyncWebview() {
if(!System.getProperty("java.version").startsWith("1."))
CookieHandler.setDefault(new CookieManager());
String url = String.format("%s?%s", MICROSOFT_AUTHORIZATION_ENDPOINT, http.buildParams(getLoginParams()));
LoginFrame frame = new LoginFrame();
return frame.start(url).thenApplyAsync(result -> {
try {
if(result != null)
return loginWithTokens(extractTokens(result),true);
else return null;
} catch (MicrosoftAuthenticationException e) {
throw new CompletionException(e);
}
});
}
private MicrosoftAuthResult loginWithTokens(AuthTokens tokens) throws MicrosoftAuthenticationException {
return loginWithTokens(tokens,true);
}
public MicrosoftAuthResult loginWithTokens(AuthTokens tokens, boolean retrieveProfile) throws MicrosoftAuthenticationException {
XboxLoginResponse xboxLiveResponse = xboxLiveLogin(tokens.getAccessToken());
XboxLoginResponse xstsResponse = xstsLogin(xboxLiveResponse.getToken());
String userHash = xstsResponse.getDisplayClaims().getUsers()[0].getUserHash();
MinecraftLoginResponse minecraftResponse = minecraftLogin(userHash, xstsResponse.getToken());
MinecraftStoreResponse storeResponse = http.getJson(
MINECRAFT_STORE_ENDPOINT,
minecraftResponse.getAccessToken(),
MinecraftStoreResponse.class
);
if (Arrays.stream(storeResponse.getItems()).noneMatch(item -> item.getName().equals(MINECRAFT_STORE_IDENTIFIER))) {
throw new MicrosoftAuthenticationException("Player didn't buy Minecraft Java Edition or did not migrate its account");
}
MinecraftProfile profile = null;
if (retrieveProfile) {
profile = http.getJson(
MINECRAFT_PROFILE_ENDPOINT,
minecraftResponse.getAccessToken(),
MinecraftProfile.class
);
}
return new MicrosoftAuthResult(
profile,
minecraftResponse.getAccessToken(),
tokens.getRefreshToken(),
xboxLiveResponse.getDisplayClaims().getUsers()[0].getUserHash(),
Base64.getEncoder().encodeToString(minecraftResponse.getUsername().getBytes())
);
}
protected XboxLoginResponse xboxLiveLogin(String accessToken) throws MicrosoftAuthenticationException {
XboxLiveLoginProperties properties = new XboxLiveLoginProperties("RPS", XBOX_LIVE_AUTH_HOST, accessToken);
XboxLoginRequest<XboxLiveLoginProperties> request = new XboxLoginRequest<>(
properties, XBOX_LIVE_AUTH_RELAY, "JWT"
);
return http.postJson(XBOX_LIVE_AUTHORIZATION_ENDPOINT, request, XboxLoginResponse.class);
}
protected XboxLoginResponse xstsLogin(String xboxLiveToken) throws MicrosoftAuthenticationException {
XSTSAuthorizationProperties properties = new XSTSAuthorizationProperties("RETAIL", new String[]{xboxLiveToken});
XboxLoginRequest<XSTSAuthorizationProperties> request = new XboxLoginRequest<>(
properties, MINECRAFT_AUTH_RELAY, "JWT"
);
return http.postJson(XSTS_AUTHORIZATION_ENDPOINT, request, XboxLoginResponse.class);
}
protected MinecraftLoginResponse minecraftLogin(String userHash, String xstsToken) throws MicrosoftAuthenticationException {
MinecraftLoginRequest request = new MinecraftLoginRequest(String.format("XBL3.0 x=%s;%s", userHash, xstsToken));
return http.postJson(MINECRAFT_AUTH_ENDPOINT, request, MinecraftLoginResponse.class);
}
protected Map<String, String> getLoginParams() {
Map<String, String> params = new HashMap<>();
params.put("client_id", XBOX_LIVE_CLIENT_ID);
params.put("redirect_uri", MICROSOFT_REDIRECTION_ENDPOINT);
params.put("scope", XBOX_LIVE_SERVICE_SCOPE);
params.put("response_type", "token");
return params;
}
protected AuthTokens extractTokens(String url) throws MicrosoftAuthenticationException {
return new AuthTokens(extractValue(url, "access_token"), extractValue(url, "refresh_token"));
}
protected String extractValue(String url, String key) throws MicrosoftAuthenticationException {
String matched = match(key + "=([^&]*)", url);
if (matched == null) {
throw new MicrosoftAuthenticationException("Invalid credentials or tokens");
}
try {
return URLDecoder.decode(matched, "UTF-8");
} catch (UnsupportedEncodingException e) {
throw new MicrosoftAuthenticationException(e);
}
}
protected String match(String regex, String content) {
Matcher matcher = Pattern.compile(regex).matcher(content);
if (!matcher.find()) {
return null;
}
return matcher.group(1);
}
}

View File

@ -0,0 +1,216 @@
/*
* Copyright 2015-2021 Adrien 'Litarvan' Navratil
*
* This file is part of OpenAuth.
* OpenAuth is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* OpenAuth is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with OpenAuth. If not, see <http://www.gnu.org/licenses/>.
*/
package rip.athena.client.gui.menu.altmanager.panels.auth;
import com.google.gson.Gson;
import fr.litarvan.openauth.microsoft.MicrosoftAuthenticationException;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.Proxy;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Map;
public class HttpClient
{
public static final String MIME_TYPE_JSON = "application/json";
public static final String MIME_TYPE_URLENCODED_FORM = "application/x-www-form-urlencoded";
private final Gson gson;
private final Proxy proxy;
public HttpClient()
{
this(Proxy.NO_PROXY);
}
public HttpClient(Proxy proxy)
{
this.gson = new Gson();
this.proxy = proxy;
}
public String getText(String url, Map<String, String> params) throws MicrosoftAuthenticationException
{
return readResponse(createConnection(url + '?' + buildParams(params)));
}
public <T> T getJson(String url, String token, Class<T> responseClass) throws MicrosoftAuthenticationException
{
HttpURLConnection connection = createConnection(url);
connection.addRequestProperty("Authorization", "Bearer " + token);
connection.addRequestProperty("Accept", MIME_TYPE_JSON);
return readJson(connection, responseClass);
}
public HttpURLConnection postForm(String url, Map<String, String> params) throws MicrosoftAuthenticationException
{
return post(url, MIME_TYPE_URLENCODED_FORM, "*/*", buildParams(params));
}
public <T> T postJson(String url, Object request, Class<T> responseClass) throws MicrosoftAuthenticationException
{
HttpURLConnection connection = post(url, MIME_TYPE_JSON, MIME_TYPE_JSON, gson.toJson(request));
return readJson(connection, responseClass);
}
public <T> T postFormGetJson(String url, Map<String, String> params, Class<T> responseClass) throws MicrosoftAuthenticationException
{
return readJson(postForm(url, params), responseClass);
}
protected HttpURLConnection post(String url, String contentType, String accept, String data) throws MicrosoftAuthenticationException
{
HttpURLConnection connection = createConnection(url);
connection.setDoOutput(true);
connection.addRequestProperty("Content-Type", contentType);
connection.addRequestProperty("Accept", accept);
try {
connection.setRequestMethod("POST");
connection.getOutputStream().write(data.getBytes(StandardCharsets.UTF_8));
} catch (IOException e) {
throw new MicrosoftAuthenticationException(e);
}
return connection;
}
protected <T> T readJson(HttpURLConnection connection, Class<T> responseType) throws MicrosoftAuthenticationException
{
return gson.fromJson(readResponse(connection), responseType);
}
protected String readResponse(HttpURLConnection connection) throws MicrosoftAuthenticationException
{
String redirection = connection.getHeaderField("Location");
if (redirection != null) {
return readResponse(createConnection(redirection));
}
StringBuilder response = new StringBuilder();
try
{
InputStream inputStream = connection.getInputStream();
// check if the url corresponds to a related authentication url
if(this.checkUrl(connection.getURL()))
{
// then patch the input stream like in the old MicrosoftPatchedHttpURLConnection class.
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int n;
byte[] data = new byte[8192];
while ((n = inputStream.read(data, 0, data.length)) != -1) {
buffer.write(data, 0, n);
}
byte[] patched = buffer
.toString("UTF-8")
.replaceAll("integrity ?=", "integrity.disabled=")
.replaceAll("setAttribute\\(\"integrity\"", "setAttribute(\"integrity.disabled\"")
.getBytes(StandardCharsets.UTF_8);
inputStream = new ByteArrayInputStream(patched);
}
try (BufferedReader br = new BufferedReader(new InputStreamReader(inputStream))) {
String line;
while ((line = br.readLine()) != null) {
response.append(line).append('\n');
}
} catch (IOException e) {
throw new MicrosoftAuthenticationException(e);
}
} catch (IOException e)
{
throw new RuntimeException(e);
}
return response.toString();
}
private boolean checkUrl(URL url)
{
return (("login.microsoftonline.com".equals(url.getHost()) && url.getPath().endsWith("/oauth2/authorize"))
|| ("login.live.com".equals(url.getHost()) && "/oauth20_authorize.srf".equals(url.getPath()))
|| ("login.live.com".equals(url.getHost()) && "/ppsecure/post.srf".equals(url.getPath()))
|| ("login.microsoftonline.com".equals(url.getHost()) && "/login.srf".equals(url.getPath()))
|| ("login.microsoftonline.com".equals(url.getHost()) && url.getPath().endsWith("/login"))
|| ("login.microsoftonline.com".equals(url.getHost()) && url.getPath().endsWith("/SAS/ProcessAuth"))
|| ("login.microsoftonline.com".equals(url.getHost()) && url.getPath().endsWith("/federation/oauth2"))
|| ("login.microsoftonline.com".equals(url.getHost()) && url.getPath().endsWith("/oauth2/v2.0/authorize")));
}
protected HttpURLConnection followRedirects(HttpURLConnection connection) throws MicrosoftAuthenticationException
{
String redirection = connection.getHeaderField("Location");
if (redirection != null) {
connection = followRedirects(createConnection(redirection));
}
return connection;
}
protected String buildParams(Map<String, String> params)
{
StringBuilder query = new StringBuilder();
params.forEach((key, value) -> {
if (query.length() > 0) {
query.append('&');
}
try {
query.append(key).append('=').append(URLEncoder.encode(value, StandardCharsets.UTF_8.name()));
} catch (UnsupportedEncodingException ignored) {
// Can't happen
}
});
return query.toString();
}
protected HttpURLConnection createConnection(String url) throws MicrosoftAuthenticationException
{
HttpURLConnection connection;
try {
connection = (HttpURLConnection) new URL(url).openConnection(proxy);
} catch (IOException e) {
throw new MicrosoftAuthenticationException(e);
}
String userAgent = "Mozilla/5.0 (XboxReplay; XboxLiveAuth/3.0) " +
"AppleWebKit/537.36 (KHTML, like Gecko) " +
"Chrome/71.0.3578.98 " +
"Safari/537.36";
connection.setConnectTimeout(30 * 1000); // 30s
connection.setReadTimeout(60 * 1000); // 60s
connection.setRequestProperty("Accept-Language", "en-US");
connection.setRequestProperty("Accept-Charset", "UTF-8");
connection.setRequestProperty("User-Agent", userAgent);
return connection;
}
}

View File

@ -0,0 +1,95 @@
/*
* Copyright 2015-2021 Adrien 'Litarvan' Navratil
*
* This file is part of OpenAuth.
* OpenAuth is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* OpenAuth is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with OpenAuth. If not, see <http://www.gnu.org/licenses/>.
*/
package rip.athena.client.gui.menu.altmanager.panels.auth;
import javafx.application.Platform;
import javafx.embed.swing.JFXPanel;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebView;
import org.apache.http.protocol.RequestUserAgent;
import javax.swing.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.concurrent.CompletableFuture;
/*
* Had to use Swing here, JavaFX is meant to have an 'Application' but only one can exist.
* Creating one would break compatibility with JavaFX apps (which already have their own
* class), and letting the user do so would break compatibility with Swing apps.
*
* This method makes the frame compatible with pretty much everything.
*/
public class LoginFrame extends JFrame
{
private CompletableFuture<String> future;
private boolean completed;
public LoginFrame()
{
this.setTitle("Microsoft Authentication");
this.setSize(750, 750);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setContentPane(new JFXPanel());
}
public CompletableFuture<String> start(String url)
{
if (this.future != null) {
return this.future;
}
this.future = new CompletableFuture<>();
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
if(!completed)
future.complete(null);
}
});
Platform.runLater(() -> this.init(url));
return this.future;
}
protected void init(String url) {
WebView webView = new WebView();
JFXPanel content = (JFXPanel) this.getContentPane();
content.setScene(new Scene(webView, this.getWidth(), this.getHeight()));
webView.getEngine().locationProperty().addListener((observable, oldValue, newValue) -> {
if (newValue.contains("access_token")) {
this.future.complete(newValue);
completed = true;
this.dispose();
}
});
webView.getEngine().setUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36");
webView.getEngine().load("github.com");
System.out.println(url);
this.setVisible(true);
}
}

View File

@ -0,0 +1,91 @@
/*
* Copyright 2015-2021 Adrien 'Litarvan' Navratil
*
* This file is part of OpenAuth.
* OpenAuth is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* OpenAuth is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with OpenAuth. If not, see <http://www.gnu.org/licenses/>.
*/
package rip.athena.client.gui.menu.altmanager.panels.auth;
import fr.litarvan.openauth.microsoft.model.response.MinecraftProfile;
/**
* Microsoft authentication result
*
* <p>
* This class contains the result of a successful Microsoft authentication: a player profile and its tokens (both
* access and refresh token).
* </p>
*
* @author Litarvan
* @version 1.1.5
*/
public class MicrosoftAuthResult
{
private final MinecraftProfile profile;
private final String accessToken;
private final String refreshToken;
private final String xuid;
private final String clientId;
public MicrosoftAuthResult(MinecraftProfile profile, String accessToken, String refreshToken, String xuid, String clientId)
{
this.profile = profile;
this.accessToken = accessToken;
this.refreshToken = refreshToken;
this.xuid = xuid;
this.clientId = clientId;
}
/**
* @return The player Minecraft profile (contains its UUID and username)
*/
public MinecraftProfile getProfile()
{
return profile;
}
/**
* @return The Minecraft access token
*/
public String getAccessToken()
{
return accessToken;
}
/**
* @return The Microsoft refresh token that can be used to log the user back silently using
*
*/
public String getRefreshToken()
{
return refreshToken;
}
/**
* @return The XUID of the player
*/
public String getXuid()
{
return this.xuid;
}
/**
* @return The client ID of the player
*/
public String getClientId()
{
return this.clientId;
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,167 +1,146 @@
[15:14:00] [Client thread/INFO]: Setting user: Player276
[15:14:00] [Client thread/INFO]: (Session ID is token:0:Player276)
[15:14:01] [Client thread/INFO]: [OptiFine] *** Reflector Forge ***
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.Attributes
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: mods.betterfoliage.client.BetterFoliageClient
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.asm.transformers.BlamingTransformer
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.world.ChunkWatchEvent$UnWatch
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.relauncher.CoreModManager
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.DimensionManager
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.GuiScreenEvent$DrawScreenEvent$Pre
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.GuiScreenEvent$DrawScreenEvent$Post
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.EntityViewRenderEvent$CameraSetup
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.EntityViewRenderEvent$FogColors
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.eventhandler.Event
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.eventhandler.EventBus
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.eventhandler.Event$Result
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.property.ExtendedBlockState
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.client.FMLClientHandler
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.FMLCommonHandler
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.biome.BiomeGenBase.getWaterColorMultiplier
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.addDestroyEffects
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.addHitEffects
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.canCreatureSpawn
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.canRenderInLayer
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.doesSideBlockRendering
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.getBedDirection
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.getExtendedState
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.hasTileEntity
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.isAir
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.isBed
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.isBedFoot
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.isSideSolid
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.entity.Entity.canRiderInteract
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Field not present: net.minecraft.entity.Entity.captureDrops
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Field not present: net.minecraft.entity.Entity.capturedDrops
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.entity.Entity.shouldRenderInPass
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.entity.Entity.shouldRiderSit
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.ForgeEventFactory
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.ForgeHooks
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.ForgeHooksClient
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.getDurabilityForDisplay
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.getModel
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.onEntitySwing
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.shouldCauseReequipAnimation
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.showDurabilityBar
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.ItemRecord.getRecordResource
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.ForgeModContainer
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.potion.PotionEffect.isCurativeItem
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.tileentity.TileEntity.canRenderBreaking
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.tileentity.TileEntity.getRenderBoundingBox
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.tileentity.TileEntity.hasFastRenderer
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.tileentity.TileEntity.shouldRenderInPass
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.preDrawBatch
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.drawBatch
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.renderer.vertex.VertexFormatElement$EnumUsage.preDraw
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.renderer.vertex.VertexFormatElement$EnumUsage.postDraw
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.World.countEntities
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.World.getPerWorldStorage
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.WorldProvider.getCloudRenderer
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.WorldProvider.getSkyRenderer
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.WorldProvider.getWeatherRenderer
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.client.GuiModList
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.IColoredBakedQuad
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.property.IExtendedBlockState
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.IRenderHandler
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.ISmartBlockModel
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.ItemModelMesherForge
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraft.launchwrapper.Launch
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.pipeline.LightUtil
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.MinecraftForge
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.MinecraftForgeClient
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.ModelLoader
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderBlockOverlayEvent$OverlayType
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.client.registry.RenderingRegistry
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderItemInFrameEvent
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderLivingEvent$Pre
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderLivingEvent$Post
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderLivingEvent$Specials$Pre
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderLivingEvent$Specials$Post
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.client.SplashProgress
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.world.WorldEvent$Load
[15:14:01] [Client thread/INFO]: [OptiFine] *** Reflector Vanilla ***
[15:14:01] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: optifine.OptiFineClassTransformer
[15:14:02] [Client thread/ERROR]: [Athena] Failed to load resource outside namespace (C:\Users\nitro\OneDrive\Desktop\programming\AthenaClient\Athena-Client\workspace\.\assets\minecraft\Athena\gui\settings.png).javax.imageio.IIOException: Can't read input file!
[15:14:02] [Client thread/WARN]: [Athena] Tried accessing non-existing module: theme
[15:14:02] [Client thread/WARN]: [Athena] Loaded config default with left over setting theme which is no longer used.
[15:14:02] [Client thread/WARN]: [Athena] Tried accessing non-existing module: cape
[15:14:02] [Client thread/WARN]: [Athena] Loaded config default with left over setting cape which is no longer used.
[15:14:02] [Client thread/INFO]: [Athena] rip.athena.client.cosmetics.cape.Cape@fa11fdaziue's headziue's head
[15:14:02] [Client thread/INFO]: LWJGL Version: 2.9.4
[15:14:03] [Client thread/INFO]: [OptiFine]
[15:14:03] [Client thread/INFO]: [OptiFine] OptiFine_1.8.8_HD_U_H8
[15:14:03] [Client thread/INFO]: [OptiFine] Build: null
[15:14:03] [Client thread/INFO]: [OptiFine] OS: Windows 10 (amd64) version 10.0
[15:14:03] [Client thread/INFO]: [OptiFine] Java: 1.8.0_202, Oracle Corporation
[15:14:03] [Client thread/INFO]: [OptiFine] VM: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
[15:14:03] [Client thread/INFO]: [OptiFine] LWJGL: 2.9.4
[15:14:03] [Client thread/INFO]: [OptiFine] OpenGL: NVIDIA GeForce RTX 2060 SUPER/PCIe/SSE2, version 4.6.0 NVIDIA 536.23, NVIDIA Corporation
[15:14:03] [Client thread/INFO]: [OptiFine] OpenGL Version: 4.6.0
[15:14:03] [Client thread/INFO]: [OptiFine] Maximum texture size: 32768x32768
[15:14:03] [Thread-7/INFO]: [OptiFine] Checking for new version
[15:14:03] [Client thread/INFO]: [Shaders] ShadersMod version: 2.4.12
[15:14:03] [Client thread/INFO]: [Shaders] OpenGL Version: 4.6.0 NVIDIA 536.23
[15:14:03] [Client thread/INFO]: [Shaders] Vendor: NVIDIA Corporation
[15:14:03] [Client thread/INFO]: [Shaders] Renderer: NVIDIA GeForce RTX 2060 SUPER/PCIe/SSE2
[15:14:03] [Client thread/INFO]: [Shaders] Capabilities: 2.0 2.1 3.0 3.2 4.0
[15:14:03] [Client thread/INFO]: [Shaders] GL_MAX_DRAW_BUFFERS: 8
[15:14:03] [Client thread/INFO]: [Shaders] GL_MAX_COLOR_ATTACHMENTS_EXT: 8
[15:14:03] [Client thread/INFO]: [Shaders] GL_MAX_TEXTURE_IMAGE_UNITS: 32
[15:14:03] [Client thread/INFO]: [Shaders] Load ShadersMod configuration.
[15:14:03] [Client thread/INFO]: [Shaders] Shaders can not be loaded, Fast Render is enabled.
[15:14:03] [Client thread/INFO]: [Shaders] No shaderpack loaded.
[15:14:03] [Thread-7/INFO]: [OptiFine] Version found: I7
[15:14:03] [Client thread/INFO]: Reloading ResourceManager: Default, ! §bPotfast 5kay.zip
[15:14:03] [Client thread/INFO]: [OptiFine] *** Reloading textures ***
[15:14:03] [Client thread/INFO]: [OptiFine] Resource packs: ! §bPotfast 5kay.zip
[15:14:03] [Sound Library Loader/INFO]: Starting up SoundSystem...
[15:14:03] [Thread-8/INFO]: Initializing LWJGL OpenAL
[15:14:03] [Thread-8/INFO]: (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org)
[15:14:03] [Thread-8/INFO]: OpenAL initialized.
[15:14:04] [Sound Library Loader/INFO]: Sound engine started
[15:14:04] [Client thread/INFO]: [OptiFine] Sprite size: 32
[15:14:04] [Client thread/INFO]: [OptiFine] Mipmap levels: 5
[15:14:04] [Client thread/INFO]: [OptiFine] Multitexture: false
[15:14:05] [Client thread/INFO]: Created: 2048x2048 textures-atlas
[15:14:05] [Client thread/INFO]: [OptiFine] *** Reloading custom textures ***
[15:14:05] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky1.properties
[15:14:05] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky2.properties
[15:14:05] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky3.properties
[15:14:05] [Client thread/INFO]: [OptiFine] CustomSky: Texture not found: minecraft:terrain/sky0/sky_sunflare2.png
[15:14:05] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky4.properties
[15:14:05] [Client thread/INFO]: [OptiFine] CustomSky: Texture not found: minecraft:terrain/sky0/sky_sunflare1.png
[15:14:05] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky5.properties
[15:14:05] [Client thread/INFO]: [OptiFine] CustomSky: Texture not found: minecraft:terrain/sky0/sky_sunflare3.png
[15:14:05] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky6.properties
[15:14:05] [Client thread/INFO]: [OptiFine] CustomSky: Texture not found: minecraft:terrain/sky0/sky_sunflare.png
[15:14:05] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky7.properties
[15:14:05] [Client thread/INFO]: [OptiFine] CustomSky: Texture not found: minecraft:terrain/sky0/sky_box.png
[15:14:05] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky8.properties
[15:14:05] [Client thread/INFO]: [OptiFine] CustomSky: Texture not found: minecraft:terrain/sky0/sky_clouds.png
[15:14:05] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky9.properties
[15:14:05] [Client thread/INFO]: [OptiFine] CustomSky: Texture not found: minecraft:terrain/sky0/night_skybox.png
[15:14:05] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky10.properties
[15:14:05] [Client thread/INFO]: [OptiFine] Enable face culling: acacia_leaves, birch_leaves, dark_oak_leaves, jungle_leaves, oak_leaves, spruce_leaves
[15:14:11] [Server thread/INFO]: Starting integrated minecraft server version 1.8.8
[15:14:11] [Server thread/INFO]: Generating keypair
[15:14:12] [Server thread/INFO]: Preparing start region for level 0
[15:14:12] [Server thread/INFO]: Changing view distance to 8, from 10
[15:14:12] [Server thread/INFO]: Ntdi[local:E:76f9e1cb] logged in with entity id 97 at (733.1438735401466, 78.04097159015387, 375.5908084570898)
[15:14:12] [Server thread/INFO]: Ntdi joined the game
[15:14:13] [Client thread/INFO]: [CHAT] A new §eOptiFine§f version is available: §eHD Ultra I7§f
[15:15:22] [Server thread/INFO]: Ntdi has just earned the achievement [Taking Inventory]
[15:15:22] [Client thread/INFO]: [CHAT] Ntdi has just earned the achievement [Taking Inventory]
[15:16:05] [Server thread/INFO]: Saving and pausing game...
[15:16:05] [Server thread/INFO]: Saving chunks for level 'mcpworld'/Overworld
[15:16:05] [Server thread/INFO]: Saving chunks for level 'mcpworld'/Nether
[15:16:05] [Server thread/INFO]: Saving chunks for level 'mcpworld'/The End
[15:16:06] [Server thread/INFO]: Stopping server
[15:16:06] [Server thread/INFO]: Saving players
[15:16:06] [Server thread/INFO]: Saving worlds
[15:16:06] [Server thread/INFO]: Saving chunks for level 'mcpworld'/Overworld
[15:16:06] [Server thread/INFO]: Saving chunks for level 'mcpworld'/Nether
[15:16:06] [Server thread/INFO]: Saving chunks for level 'mcpworld'/The End
[15:16:08] [Client thread/INFO]: Stopping!
[15:16:08] [Client thread/INFO]: [Athena] Shutting down client
[15:16:08] [Client thread/INFO]: SoundSystem shutting down...
[15:16:08] [Client thread/WARN]: Author: Paul Lamb, www.paulscode.com
[17:26:33] [Client thread/INFO]: Setting user: Player451
[17:26:33] [Client thread/INFO]: (Session ID is token:0:Player451)
[17:26:34] [Client thread/INFO]: [OptiFine] *** Reflector Forge ***
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.Attributes
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: mods.betterfoliage.client.BetterFoliageClient
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.asm.transformers.BlamingTransformer
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.world.ChunkWatchEvent$UnWatch
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.relauncher.CoreModManager
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.DimensionManager
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.GuiScreenEvent$DrawScreenEvent$Pre
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.GuiScreenEvent$DrawScreenEvent$Post
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.EntityViewRenderEvent$CameraSetup
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.EntityViewRenderEvent$FogColors
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.eventhandler.Event
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.eventhandler.EventBus
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.eventhandler.Event$Result
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.property.ExtendedBlockState
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.client.FMLClientHandler
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.common.FMLCommonHandler
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.biome.BiomeGenBase.getWaterColorMultiplier
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.addDestroyEffects
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.addHitEffects
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.canCreatureSpawn
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.canRenderInLayer
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.doesSideBlockRendering
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.getBedDirection
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.getExtendedState
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.hasTileEntity
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.isAir
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.isBed
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.isBedFoot
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.block.Block.isSideSolid
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.entity.Entity.canRiderInteract
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Field not present: net.minecraft.entity.Entity.captureDrops
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Field not present: net.minecraft.entity.Entity.capturedDrops
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.entity.Entity.shouldRenderInPass
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.entity.Entity.shouldRiderSit
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.ForgeEventFactory
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.ForgeHooks
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.ForgeHooksClient
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.getDurabilityForDisplay
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.getModel
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.onEntitySwing
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.shouldCauseReequipAnimation
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.Item.showDurabilityBar
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.item.ItemRecord.getRecordResource
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.ForgeModContainer
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.potion.PotionEffect.isCurativeItem
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.tileentity.TileEntity.canRenderBreaking
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.tileentity.TileEntity.getRenderBoundingBox
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.tileentity.TileEntity.hasFastRenderer
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.tileentity.TileEntity.shouldRenderInPass
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.preDrawBatch
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.drawBatch
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.renderer.vertex.VertexFormatElement$EnumUsage.preDraw
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.client.renderer.vertex.VertexFormatElement$EnumUsage.postDraw
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.World.countEntities
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.World.getPerWorldStorage
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.WorldProvider.getCloudRenderer
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.WorldProvider.getSkyRenderer
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Method not present: net.minecraft.world.WorldProvider.getWeatherRenderer
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.client.GuiModList
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.IColoredBakedQuad
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.property.IExtendedBlockState
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.IRenderHandler
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.ISmartBlockModel
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.ItemModelMesherForge
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraft.launchwrapper.Launch
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.pipeline.LightUtil
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.common.MinecraftForge
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.MinecraftForgeClient
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.model.ModelLoader
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderBlockOverlayEvent$OverlayType
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.client.registry.RenderingRegistry
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderItemInFrameEvent
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderLivingEvent$Pre
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderLivingEvent$Post
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderLivingEvent$Specials$Pre
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.client.event.RenderLivingEvent$Specials$Post
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.fml.client.SplashProgress
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraftforge.event.world.WorldEvent$Load
[17:26:34] [Client thread/INFO]: [OptiFine] *** Reflector Vanilla ***
[17:26:34] [Client thread/INFO]: [OptiFine] (Reflector) Class not present: optifine.OptiFineClassTransformer
[17:26:39] [Client thread/ERROR]: [Athena] Failed to load resource outside namespace (C:\Users\nitro\OneDrive\Desktop\programming\AthenaClient\Athena-Client\workspace\.\assets\minecraft\Athena\gui\settings.png).javax.imageio.IIOException: Can't read input file!
[17:26:39] [Client thread/WARN]: [Athena] Tried accessing non-existing module: theme
[17:26:39] [Client thread/WARN]: [Athena] Loaded config default with left over setting theme which is no longer used.
[17:26:39] [Client thread/WARN]: [Athena] Tried accessing non-existing module: cape
[17:26:39] [Client thread/WARN]: [Athena] Loaded config default with left over setting cape which is no longer used.
[17:26:39] [Client thread/INFO]: [Athena] rip.athena.client.cosmetics.cape.Cape@7a04f730ziue's headziue's head
[17:26:39] [Client thread/INFO]: LWJGL Version: 2.9.4
[17:26:40] [Client thread/INFO]: [OptiFine]
[17:26:40] [Client thread/INFO]: [OptiFine] OptiFine_1.8.8_HD_U_H8
[17:26:40] [Client thread/INFO]: [OptiFine] Build: null
[17:26:40] [Client thread/INFO]: [OptiFine] OS: Windows 10 (amd64) version 10.0
[17:26:40] [Client thread/INFO]: [OptiFine] Java: 1.8.0_202, Oracle Corporation
[17:26:40] [Client thread/INFO]: [OptiFine] VM: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
[17:26:40] [Client thread/INFO]: [OptiFine] LWJGL: 2.9.4
[17:26:40] [Client thread/INFO]: [OptiFine] OpenGL: NVIDIA GeForce RTX 2060 SUPER/PCIe/SSE2, version 4.6.0 NVIDIA 536.23, NVIDIA Corporation
[17:26:40] [Client thread/INFO]: [OptiFine] OpenGL Version: 4.6.0
[17:26:40] [Client thread/INFO]: [OptiFine] Maximum texture size: 32768x32768
[17:26:40] [Thread-7/INFO]: [OptiFine] Checking for new version
[17:26:40] [Client thread/INFO]: [Shaders] ShadersMod version: 2.4.12
[17:26:40] [Client thread/INFO]: [Shaders] OpenGL Version: 4.6.0 NVIDIA 536.23
[17:26:40] [Client thread/INFO]: [Shaders] Vendor: NVIDIA Corporation
[17:26:40] [Client thread/INFO]: [Shaders] Renderer: NVIDIA GeForce RTX 2060 SUPER/PCIe/SSE2
[17:26:40] [Client thread/INFO]: [Shaders] Capabilities: 2.0 2.1 3.0 3.2 4.0
[17:26:40] [Client thread/INFO]: [Shaders] GL_MAX_DRAW_BUFFERS: 8
[17:26:40] [Client thread/INFO]: [Shaders] GL_MAX_COLOR_ATTACHMENTS_EXT: 8
[17:26:40] [Client thread/INFO]: [Shaders] GL_MAX_TEXTURE_IMAGE_UNITS: 32
[17:26:40] [Client thread/INFO]: [Shaders] Load ShadersMod configuration.
[17:26:40] [Client thread/INFO]: [Shaders] Shaders can not be loaded, Fast Render is enabled.
[17:26:40] [Client thread/INFO]: [Shaders] No shaderpack loaded.
[17:26:40] [Thread-7/INFO]: [OptiFine] Version found: I7
[17:26:40] [Client thread/INFO]: Reloading ResourceManager: Default, ! §bPotfast 5kay.zip
[17:26:40] [Client thread/INFO]: [OptiFine] *** Reloading textures ***
[17:26:40] [Client thread/INFO]: [OptiFine] Resource packs: ! §bPotfast 5kay.zip
[17:26:40] [Sound Library Loader/INFO]: Starting up SoundSystem...
[17:26:40] [Thread-8/INFO]: Initializing LWJGL OpenAL
[17:26:40] [Thread-8/INFO]: (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org)
[17:26:40] [Thread-8/INFO]: OpenAL initialized.
[17:26:41] [Sound Library Loader/INFO]: Sound engine started
[17:26:41] [Client thread/INFO]: [OptiFine] Sprite size: 32
[17:26:41] [Client thread/INFO]: [OptiFine] Mipmap levels: 5
[17:26:41] [Client thread/INFO]: [OptiFine] Multitexture: false
[17:26:41] [Client thread/INFO]: Created: 2048x2048 textures-atlas
[17:26:42] [Client thread/INFO]: [OptiFine] *** Reloading custom textures ***
[17:26:42] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky1.properties
[17:26:42] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky2.properties
[17:26:42] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky3.properties
[17:26:42] [Client thread/INFO]: [OptiFine] CustomSky: Texture not found: minecraft:terrain/sky0/sky_sunflare2.png
[17:26:42] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky4.properties
[17:26:42] [Client thread/INFO]: [OptiFine] CustomSky: Texture not found: minecraft:terrain/sky0/sky_sunflare1.png
[17:26:42] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky5.properties
[17:26:42] [Client thread/INFO]: [OptiFine] CustomSky: Texture not found: minecraft:terrain/sky0/sky_sunflare3.png
[17:26:42] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky6.properties
[17:26:42] [Client thread/INFO]: [OptiFine] CustomSky: Texture not found: minecraft:terrain/sky0/sky_sunflare.png
[17:26:42] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky7.properties
[17:26:42] [Client thread/INFO]: [OptiFine] CustomSky: Texture not found: minecraft:terrain/sky0/sky_box.png
[17:26:42] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky8.properties
[17:26:42] [Client thread/INFO]: [OptiFine] CustomSky: Texture not found: minecraft:terrain/sky0/sky_clouds.png
[17:26:42] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky9.properties
[17:26:42] [Client thread/INFO]: [OptiFine] CustomSky: Texture not found: minecraft:terrain/sky0/night_skybox.png
[17:26:42] [Client thread/INFO]: [OptiFine] CustomSky properties: mcpatcher/sky/world0/sky10.properties
[17:26:42] [Client thread/INFO]: [OptiFine] Enable face culling: acacia_leaves, birch_leaves, dark_oak_leaves, jungle_leaves, oak_leaves, spruce_leaves
[17:27:03] [Thread-13/INFO]: [Athena]
[17:29:57] [Client Shutdown Thread/INFO]: Stopping server

File diff suppressed because one or more lines are too long