From a574c1fe2a53dc474f94b159a22d60b1df51b49e Mon Sep 17 00:00:00 2001 From: themode Date: Sat, 7 Nov 2020 22:58:19 +0100 Subject: [PATCH] Close the command scanner once stopped --- src/main/java/net/minestom/server/command/CommandManager.java | 1 + src/main/java/net/minestom/server/data/DataImpl.java | 2 +- src/main/java/net/minestom/server/entity/PlayerSkin.java | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minestom/server/command/CommandManager.java b/src/main/java/net/minestom/server/command/CommandManager.java index 45213edd7..bbd4debd3 100644 --- a/src/main/java/net/minestom/server/command/CommandManager.java +++ b/src/main/java/net/minestom/server/command/CommandManager.java @@ -61,6 +61,7 @@ public final class CommandManager { execute(consoleSender, command); } } + scanner.close(); }, "ConsoleCommand-Thread"); consoleThread.setDaemon(true); consoleThread.start(); diff --git a/src/main/java/net/minestom/server/data/DataImpl.java b/src/main/java/net/minestom/server/data/DataImpl.java index 0c1a373cb..d3dc75a78 100644 --- a/src/main/java/net/minestom/server/data/DataImpl.java +++ b/src/main/java/net/minestom/server/data/DataImpl.java @@ -21,7 +21,7 @@ public class DataImpl implements Data { protected final ConcurrentHashMap dataType = new ConcurrentHashMap<>(); @Override - public void set(@NotNull String key, @Nullable T value, @Nullable Class type) { + public synchronized void set(@NotNull String key, @Nullable T value, @Nullable Class type) { if (value != null) { this.data.put(key, value); this.dataType.put(key, type); diff --git a/src/main/java/net/minestom/server/entity/PlayerSkin.java b/src/main/java/net/minestom/server/entity/PlayerSkin.java index f563812a8..8c11364e1 100644 --- a/src/main/java/net/minestom/server/entity/PlayerSkin.java +++ b/src/main/java/net/minestom/server/entity/PlayerSkin.java @@ -86,9 +86,11 @@ public class PlayerSkin { final String url = "https://api.mojang.com/users/profiles/minecraft/" + username; try { + // Retrieve the mojang uuid from the name final String response = URLUtils.getText(url); final JsonObject jsonObject = JsonParser.parseString(response).getAsJsonObject(); final String uuid = jsonObject.get("id").getAsString(); + // Retrieve the skin data from the mojang uuid return fromUuid(uuid); } catch (IOException e) { e.printStackTrace();