forked from git-mirrors/GeyserConnect
Add custom image option for servers
This commit is contained in:
parent
9d1ecdf52c
commit
ef54d8c959
4 changed files with 38 additions and 5 deletions
18
pom.xml
18
pom.xml
|
@ -84,8 +84,22 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.CloudburstMC.Protocol</groupId>
|
<groupId>com.github.CloudburstMC.Protocol</groupId>
|
||||||
<artifactId>bedrock-v419</artifactId>
|
<artifactId>bedrock-v422</artifactId>
|
||||||
<version>ce59d39118</version>
|
<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>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.minecrell</groupId>
|
<groupId>net.minecrell</groupId>
|
||||||
|
|
|
@ -58,13 +58,13 @@ public class UIHandler {
|
||||||
for (Server server : MasterServer.getInstance().getGeyserConnectConfig().getServers()) {
|
for (Server server : MasterServer.getInstance().getGeyserConnectConfig().getServers()) {
|
||||||
// These images would be better if there was a default to fall back on
|
// 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
|
// 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
|
// Add a button for each personal server
|
||||||
if (MasterServer.getInstance().getGeyserConnectConfig().getCustomServers().isEnabled()) {
|
if (MasterServer.getInstance().getGeyserConnectConfig().getCustomServers().isEnabled()) {
|
||||||
for (Server server : servers) {
|
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"));
|
window.getButtons().add(new FormButton("Edit servers"));
|
||||||
|
|
|
@ -28,6 +28,7 @@ package org.geysermc.connect.utils;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
import org.geysermc.common.window.button.FormImage;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
@ -39,6 +40,7 @@ public class Server {
|
||||||
private boolean online = true;
|
private boolean online = true;
|
||||||
private boolean bedrock = false;
|
private boolean bedrock = false;
|
||||||
private String name = null;
|
private String name = null;
|
||||||
|
private String imageUrl = null;
|
||||||
|
|
||||||
public Server(String address) {
|
public Server(String address) {
|
||||||
this(address, -1);
|
this(address, -1);
|
||||||
|
@ -53,7 +55,11 @@ public class Server {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Server(String address, int port, boolean online, boolean bedrock) {
|
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; }
|
private int defaultPort() { return bedrock ? 19132 : 25565; }
|
||||||
|
@ -64,4 +70,12 @@ public class Server {
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return name != null ? name : address + (getPort() != defaultPort() ? ":" + getPort() : "");
|
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");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,11 @@ geyser:
|
||||||
|
|
||||||
# A global list of servers sent to all clients
|
# A global list of servers sent to all clients
|
||||||
servers:
|
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: "play.cubecraft.net"
|
||||||
- address: "127.0.0.1"
|
- address: "127.0.0.1"
|
||||||
port: 25565
|
port: 25565
|
||||||
|
|
Loading…
Add table
Reference in a new issue