Fix edge-case where Texture#toString has a NullPointer, fix join requests (#838)

* Fix edge-case where Texture#toString has a NullPointer because gson set a null metadata

Also changes NORMAL name to WIDE since that's the accurate name.

* Fix join requests

Fixes #837
This commit is contained in:
Alex 2024-07-18 12:20:02 +02:00 committed by GitHub
parent 86903ecd73
commit 05a699d1ba
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 12 additions and 6 deletions

View file

@ -14,7 +14,6 @@ import java.security.spec.X509EncodedKeySpec;
import java.util.ArrayList;
import java.util.Base64;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@ -371,7 +370,7 @@ public class GameProfile {
* The model used for a profile texture.
*/
public enum TextureModel {
NORMAL,
WIDE,
SLIM;
}
@ -390,7 +389,7 @@ public class GameProfile {
*/
public Texture(String url, Map<String, String> metadata) {
this.url = url;
this.metadata = new HashMap<>(metadata);
this.metadata = metadata;
}
/**
@ -408,6 +407,10 @@ public class GameProfile {
* @return The metadata value corresponding to the given key.
*/
public String getMetadata(String key) {
if (this.metadata == null) {
return null;
}
return this.metadata.get(key);
}
@ -418,7 +421,7 @@ public class GameProfile {
*/
public TextureModel getModel() {
String model = this.getMetadata("model");
return model != null && model.equals("slim") ? TextureModel.SLIM : TextureModel.NORMAL;
return model != null && model.equals("slim") ? TextureModel.SLIM : TextureModel.WIDE;
}
/**

View file

@ -36,8 +36,11 @@ public class HTTPUtils {
throw new IllegalArgumentException("URI cannot be null.");
}
HttpResponse response = createHttpClient(proxy).execute(input == null ? new HttpRequest("GET", uri.toURL()) :
new HttpContentRequest("POST", uri.toURL()).setContent(HttpContent.string(GSON.toJson(input))));
HttpResponse response = createHttpClient(proxy)
.execute(input == null ? new HttpRequest("GET", uri.toURL()) :
new HttpContentRequest("POST", uri.toURL())
.setContent(HttpContent.string(GSON.toJson(input)))
.setHeader(Headers.CONTENT_TYPE, ContentTypes.APPLICATION_JSON.toString()));
if (responseType == null) {
return null;