Fix #533
This commit is contained in:
@@ -17,7 +17,9 @@
|
|||||||
*/
|
*/
|
||||||
package org.jackhuang.hmcl.game;
|
package org.jackhuang.hmcl.game;
|
||||||
|
|
||||||
|
import static java.util.Collections.emptyMap;
|
||||||
import static java.util.Collections.singletonMap;
|
import static java.util.Collections.singletonMap;
|
||||||
|
import static java.util.Objects.requireNonNull;
|
||||||
import static org.jackhuang.hmcl.util.Lang.threadPool;
|
import static org.jackhuang.hmcl.util.Lang.threadPool;
|
||||||
import static org.jackhuang.hmcl.util.Logging.LOG;
|
import static org.jackhuang.hmcl.util.Logging.LOG;
|
||||||
|
|
||||||
@@ -48,6 +50,7 @@ import org.jackhuang.hmcl.auth.yggdrasil.TextureType;
|
|||||||
import org.jackhuang.hmcl.auth.yggdrasil.YggdrasilAccount;
|
import org.jackhuang.hmcl.auth.yggdrasil.YggdrasilAccount;
|
||||||
import org.jackhuang.hmcl.auth.yggdrasil.YggdrasilService;
|
import org.jackhuang.hmcl.auth.yggdrasil.YggdrasilService;
|
||||||
import org.jackhuang.hmcl.task.FileDownloadTask;
|
import org.jackhuang.hmcl.task.FileDownloadTask;
|
||||||
|
import org.jackhuang.hmcl.util.StringUtils;
|
||||||
import org.jackhuang.hmcl.util.javafx.MultiStepBinding;
|
import org.jackhuang.hmcl.util.javafx.MultiStepBinding;
|
||||||
|
|
||||||
import javafx.beans.binding.Bindings;
|
import javafx.beans.binding.Bindings;
|
||||||
@@ -69,8 +72,8 @@ public final class TexturesLoader {
|
|||||||
private final Map<String, String> metadata;
|
private final Map<String, String> metadata;
|
||||||
|
|
||||||
public LoadedTexture(BufferedImage image, Map<String, String> metadata) {
|
public LoadedTexture(BufferedImage image, Map<String, String> metadata) {
|
||||||
this.image = image;
|
this.image = requireNonNull(image);
|
||||||
this.metadata = metadata;
|
this.metadata = requireNonNull(metadata);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BufferedImage getImage() {
|
public BufferedImage getImage() {
|
||||||
@@ -98,6 +101,10 @@ public final class TexturesLoader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static LoadedTexture loadTexture(Texture texture) throws IOException {
|
public static LoadedTexture loadTexture(Texture texture) throws IOException {
|
||||||
|
if (StringUtils.isBlank(texture.getUrl())) {
|
||||||
|
throw new IOException("Texture url is empty");
|
||||||
|
}
|
||||||
|
|
||||||
Path file = getTexturePath(texture);
|
Path file = getTexturePath(texture);
|
||||||
if (!Files.isRegularFile(file)) {
|
if (!Files.isRegularFile(file)) {
|
||||||
// download it
|
// download it
|
||||||
@@ -118,7 +125,11 @@ public final class TexturesLoader {
|
|||||||
try (InputStream in = Files.newInputStream(file)) {
|
try (InputStream in = Files.newInputStream(file)) {
|
||||||
img = ImageIO.read(in);
|
img = ImageIO.read(in);
|
||||||
}
|
}
|
||||||
return new LoadedTexture(img, texture.getMetadata());
|
Map<String, String> metadata = texture.getMetadata();
|
||||||
|
if (metadata == null) {
|
||||||
|
metadata = emptyMap();
|
||||||
|
}
|
||||||
|
return new LoadedTexture(img, metadata);
|
||||||
}
|
}
|
||||||
// ====
|
// ====
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
package org.jackhuang.hmcl.auth.yggdrasil;
|
package org.jackhuang.hmcl.auth.yggdrasil;
|
||||||
|
|
||||||
import org.jackhuang.hmcl.util.Immutable;
|
import org.jackhuang.hmcl.util.Immutable;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -36,10 +37,12 @@ public final class Texture {
|
|||||||
this.metadata = metadata;
|
this.metadata = metadata;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
public String getUrl() {
|
public String getUrl() {
|
||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
public Map<String, String> getMetadata() {
|
public Map<String, String> getMetadata() {
|
||||||
return metadata;
|
return metadata;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user