diff --git a/pom.xml b/pom.xml index cc2e29f..4cad70f 100644 --- a/pom.xml +++ b/pom.xml @@ -84,8 +84,22 @@ com.github.CloudburstMC.Protocol - bedrock-v419 - ce59d39118 + bedrock-v422 + 87d862d69d + compile + + + + com.nukkitx.network + raknet + + + + + com.nukkitx.network + raknet + 1.6.20 + compile net.minecrell diff --git a/src/main/java/org/geysermc/connect/ui/UIHandler.java b/src/main/java/org/geysermc/connect/ui/UIHandler.java index cd9703d..a49d68a 100644 --- a/src/main/java/org/geysermc/connect/ui/UIHandler.java +++ b/src/main/java/org/geysermc/connect/ui/UIHandler.java @@ -58,13 +58,13 @@ public class UIHandler { for (Server server : MasterServer.getInstance().getGeyserConnectConfig().getServers()) { // These images would be better if there was a default to fall back on // But that would require a web api as bedrock doesn't support doing that - window.getButtons().add(new FormButton(server.toString(), new FormImage(FormImage.FormImageType.URL, "https://eu.mc-api.net/v3/server/favicon/" + server.getAddress() + ":" + server.getPort() + ".png?use-fallback-icon=true"))); + window.getButtons().add(new FormButton(server.toString(), server.getFormImage())); } // Add a button for each personal server if (MasterServer.getInstance().getGeyserConnectConfig().getCustomServers().isEnabled()) { for (Server server : servers) { - window.getButtons().add(new FormButton(server.toString(), new FormImage(FormImage.FormImageType.URL, "https://eu.mc-api.net/v3/server/favicon/" + server.getAddress() + ":" + server.getPort() + ".png?use-fallback-icon=true"))); + window.getButtons().add(new FormButton(server.toString(), server.getFormImage())); } window.getButtons().add(new FormButton("Edit servers")); diff --git a/src/main/java/org/geysermc/connect/utils/Server.java b/src/main/java/org/geysermc/connect/utils/Server.java index 73ff139..4ba89d5 100644 --- a/src/main/java/org/geysermc/connect/utils/Server.java +++ b/src/main/java/org/geysermc/connect/utils/Server.java @@ -28,6 +28,7 @@ package org.geysermc.connect.utils; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; +import org.geysermc.common.window.button.FormImage; @Getter @AllArgsConstructor @@ -39,6 +40,7 @@ public class Server { private boolean online = true; private boolean bedrock = false; private String name = null; + private String imageUrl = null; public Server(String address) { this(address, -1); @@ -53,7 +55,11 @@ public class Server { } public Server(String address, int port, boolean online, boolean bedrock) { - this(address, port, online, false, null); + this(address, port, online, bedrock, null); + } + + public Server(String address, int port, boolean online, boolean bedrock, String name) { + this(address, port, online, bedrock, name, null); } private int defaultPort() { return bedrock ? 19132 : 25565; } @@ -64,4 +70,12 @@ public class Server { public String toString() { return name != null ? name : address + (getPort() != defaultPort() ? ":" + getPort() : ""); } + + public FormImage getFormImage() { + if (imageUrl != null && !imageUrl.isEmpty()) { + return new FormImage(FormImage.FormImageType.URL, imageUrl); + } else { + return new FormImage(FormImage.FormImageType.URL, "https://eu.mc-api.net/v3/server/favicon/" + address + ":" + port + ".png?use-fallback-icon=true"); + } + } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 861ffc7..6cbeab0 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -34,6 +34,11 @@ geyser: # A global list of servers sent to all clients servers: + - address: test.geysermc.org + port: 19132 + bedrock: true + name: Official Geyser Test Server + imageUrl: https://geysermc.org/android-chrome-192x192.png - address: "play.cubecraft.net" - address: "127.0.0.1" port: 25565