Add custom image option for servers

This commit is contained in:
rtm516 2020-12-10 11:57:40 +00:00
parent 9d1ecdf52c
commit ef54d8c959
No known key found for this signature in database
GPG key ID: 331715B8B007C67A
4 changed files with 38 additions and 5 deletions

18
pom.xml
View file

@ -84,8 +84,22 @@
</dependency>
<dependency>
<groupId>com.github.CloudburstMC.Protocol</groupId>
<artifactId>bedrock-v419</artifactId>
<version>ce59d39118</version>
<artifactId>bedrock-v422</artifactId>
<version>87d862d69d</version>
<scope>compile</scope>
<exclusions>
<!-- Stay on the older version of Network while it's rewritten -->
<exclusion>
<groupId>com.nukkitx.network</groupId>
<artifactId>raknet</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.nukkitx.network</groupId>
<artifactId>raknet</artifactId>
<version>1.6.20</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>net.minecrell</groupId>

View file

@ -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"));

View file

@ -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");
}
}
}

View file

@ -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