Skip to content

Commit 7b6379b

Browse files
committed
Fixes
1 parent 62865ef commit 7b6379b

4 files changed

Lines changed: 27 additions & 9 deletions

File tree

src/main/java/de/kcodeyt/headsdb/database/Database.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.net.HttpURLConnection;
2121
import java.net.URL;
2222
import java.util.*;
23+
import java.util.stream.Collectors;
2324

2425
@Getter
2526
public class Database {
@@ -53,7 +54,8 @@ public boolean load() {
5354
if(connection.getResponseCode() == 200) {
5455
try(final InputStream inputStream = connection.getInputStream();
5556
final Reader reader = new InputStreamReader(inputStream)) {
56-
final List<HeadEntry> headEntries = GSON.<List<HeadEntry>>fromJson(reader, List.class);
57+
final List<Map<String, String>> values = GSON.<List<Map<String, String>>>fromJson(reader, List.class);
58+
final List<HeadEntry> headEntries = values.stream().map(map -> new HeadEntry(map.get("name"), map.get("uuid"), map.get("value"))).collect(Collectors.toList());
5759
this.headEntries.addAll(headEntries);
5860
this.categories.add(new Category(category, category.getDisplayName(), Iterables.getLast(headEntries).getTexture(), Collections.unmodifiableList(headEntries)));
5961
}
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
package de.kcodeyt.headsdb.database;
22

33
import lombok.Getter;
4-
import lombok.NoArgsConstructor;
4+
import lombok.RequiredArgsConstructor;
55
import lombok.ToString;
66

77
@Getter
88
@ToString
9-
@NoArgsConstructor
9+
@RequiredArgsConstructor
1010
public class HeadEntry {
1111

12-
private final String name = null;
13-
private final String id = null;
14-
private final String texture = null;
12+
private final String name;
13+
private final String id;
14+
private final String texture;
1515

1616
}

src/main/java/de/kcodeyt/headsdb/util/FormAPI.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
package de.kcodeyt.headsdb.util;
22

33
import cn.nukkit.Player;
4+
import cn.nukkit.Server;
45
import cn.nukkit.event.EventHandler;
56
import cn.nukkit.event.Listener;
67
import cn.nukkit.event.player.PlayerFormRespondedEvent;
78
import cn.nukkit.event.player.PlayerQuitEvent;
89
import cn.nukkit.form.window.FormWindow;
10+
import cn.nukkit.plugin.PluginManager;
911
import cn.nukkit.scheduler.TaskHandler;
12+
import de.kcodeyt.headsdb.HeadsDB;
1013

1114
import java.lang.reflect.Field;
1215
import java.util.HashMap;
1316
import java.util.Map;
17+
import java.util.concurrent.atomic.AtomicBoolean;
1418

1519
public class FormAPI {
1620

@@ -22,6 +26,8 @@ public static void create(Player player, FormWindow formWindow, Runnable onRespo
2226

2327
public static class FormListener implements Listener {
2428

29+
private static final AtomicBoolean INITIATED = new AtomicBoolean(false);
30+
2531
@EventHandler
2632
public void onForm(PlayerFormRespondedEvent event) {
2733
this.handle(event.getWindow(), false);
@@ -54,10 +60,21 @@ private static class Handler {
5460
private final TaskHandler taskHandler;
5561

5662
private Handler(Player player, FormWindow formWindow, Runnable runnable) {
63+
final Server server = player.getServer();
5764
this.runnable = runnable;
65+
this.taskHandler = server.getScheduler().scheduleDelayedRepeatingTask(null, player::sendExperience, 3, 3);
66+
5867
player.showFormWindow(formWindow);
59-
this.taskHandler = player.getServer().getScheduler().scheduleDelayedRepeatingTask(null, player::sendExperience, 3, 3);
6068
HANDLERS.put(formWindow, this);
69+
if(!FormListener.INITIATED.get()) {
70+
FormListener.INITIATED.set(true);
71+
final PluginManager pluginManager = server.getPluginManager();
72+
pluginManager.registerEvents(new FormListener(),
73+
pluginManager.getPlugins().values().stream().
74+
filter(plugin -> plugin instanceof HeadsDB).
75+
findAny().
76+
orElseThrow(RuntimeException::new));
77+
}
6178
}
6279

6380
private void handle(boolean isQuit) {

src/main/java/de/kcodeyt/headsdb/util/HeadRender.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@
77
public class HeadRender {
88

99
private static final String URL = "https://mc-heads.net/head/";
10-
private static final int SIZE = 256;
1110

1211
private static String createUrl(String texture) {
13-
return URL + SkinAPI.fromBase64(texture).substring(Mojang.TEXTURES.length()) + "/" + SIZE;
12+
return URL + SkinAPI.fromBase64(texture).substring(Mojang.TEXTURES.length()) + ".png";
1413
}
1514

1615
public static ElementButtonImageData createButtonImage(String texture) {

0 commit comments

Comments
 (0)