summaryrefslogtreecommitdiff
path: root/serverlist-server
diff options
context:
space:
mode:
authorHayden Andreyka <haydenandreyka@gmail.com>2020-12-15 13:58:27 -0700
committerHayden Andreyka <haydenandreyka@gmail.com>2020-12-15 13:58:27 -0700
commit282517d00c22ee0ec35b8597c2214af9595116b3 (patch)
tree97a57cc834a9e9faa4ef779ca0fd12296a67e01d /serverlist-server
parenta830e9e597ffe968d59b8697cf6621b53eb95917 (diff)
downloadBedrockConnect-282517d00c22ee0ec35b8597c2214af9595116b3.tar.gz
BedrockConnect-282517d00c22ee0ec35b8597c2214af9595116b3.tar.bz2
BedrockConnect-282517d00c22ee0ec35b8597c2214af9595116b3.zip
implement custom servers into ui form and packet handler
Diffstat (limited to 'serverlist-server')
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/CustomServer.java7
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIForms.java7
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java28
3 files changed, 32 insertions, 10 deletions
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/CustomServer.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/CustomServer.java
index eecaa1d..579718f 100644
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/CustomServer.java
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/CustomServer.java
@@ -1,6 +1,8 @@
package main.com.pyratron.pugmatt.bedrockconnect;
public class CustomServer {
+ public final String DEFAULT_ICON = "https://i.imgur.com/3BmFZRE.png";
+
private String name;
private String iconUrl;
private String address;
@@ -20,7 +22,10 @@ public class CustomServer {
}
public String getIconUrl() {
- return iconUrl;
+ if (iconUrl == null)
+ return DEFAULT_ICON;
+ else
+ return iconUrl;
}
public String getAddress() {
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIForms.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIForms.java
index 4a97b0b..19e0f13 100644
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIForms.java
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIForms.java
@@ -4,6 +4,9 @@ import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.nukkitx.protocol.bedrock.packet.ModalFormRequestPacket;
+import main.com.pyratron.pugmatt.bedrockconnect.CustomServer;
+import main.com.pyratron.pugmatt.bedrockconnect.CustomServerHandler;
+
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
@@ -24,12 +27,16 @@ public class UIForms {
out.addProperty("content", "");
JsonArray buttons = new JsonArray();
+ CustomServer[] customServers = CustomServerHandler.getServers();
buttons.add(UIComponents.createButton("Connect to a Server"));
buttons.add(UIComponents.createButton("Remove a Server"));
for(int i=0;i<servers.size();i++) {
buttons.add(UIComponents.createButton(servers.get(i), "https://i.imgur.com/3BmFZRE.png", "url"));
}
+ for (CustomServer cs : customServers) {
+ buttons.add(UIComponents.createButton(cs.getName(), cs.getIconUrl(), "url"));
+ }
buttons.add(UIComponents.createButton("The Hive", "https://forum.playhive.com/uploads/default/original/1X/0d05e3240037f7592a0f16b11b57c08eba76f19c.png", "url"));
buttons.add(UIComponents.createButton("Mineplex", "https://www.mineplex.com/assets/www-mp/img/footer/footer_smalllogo.png", "url"));
buttons.add(UIComponents.createButton("CubeCraft Games", "https://i.imgur.com/aFH1NUr.png", "url"));
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java
index 36346ff..3c7cb18 100644
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java
@@ -22,6 +22,8 @@ import com.nukkitx.protocol.bedrock.v407.Bedrock_v407;
import io.netty.util.AsciiString;
import io.netty.util.internal.ThreadLocalRandom;
import main.com.pyratron.pugmatt.bedrockconnect.BedrockConnect;
+import main.com.pyratron.pugmatt.bedrockconnect.CustomServer;
+import main.com.pyratron.pugmatt.bedrockconnect.CustomServerHandler;
import main.com.pyratron.pugmatt.bedrockconnect.Server;
import main.com.pyratron.pugmatt.bedrockconnect.gui.UIComponents;
import main.com.pyratron.pugmatt.bedrockconnect.gui.UIForms;
@@ -940,31 +942,39 @@ public class PacketHandler implements BedrockPacketHandler {
session.sendPacketImmediately(UIForms.createRemoveServer(server.getPlayer(uuid).getServerList()));
} else { // Choosing Server
+ CustomServer[] customServers = CustomServerHandler.getServers();
+ List<String> playerServers = server.getPlayer(uuid).getServerList();
+ int serverIndex = chosen - 2;
+
// If server chosen is a featued server
- if(chosen-2 > server.getPlayer(uuid).getServerList().size()-1) {
- int featuredServer = (chosen - 2) - (server.getPlayer(uuid).getServerList().size() - 1);
+ if(serverIndex + 1 > playerServers.size() + customServers.length) {
+ int featuredServer = serverIndex - playerServers.size() - customServers.length;
switch (featuredServer) {
- case 1: // Hive
+ case 0: // Hive
transfer("54.39.75.136", 19132);
break;
- case 2: // Mineplex
+ case 1: // Mineplex
transfer("108.178.12.125", 19132);
break;
- case 3: // Cubecraft
+ case 2: // Cubecraft
transfer("play.cubecraft.net", 19132);
break;
- case 4: // Lifeboat
+ case 3: // Lifeboat
transfer("63.143.40.66", 19132);
break;
- case 5: // Mineville
+ case 4: // Mineville
transfer("52.234.131.7", 19132);
break;
- case 6: // Galaxite
+ case 5: // Galaxite
transfer("51.89.152.241", 19132);
break;
}
- } else { // If server chosen is not a featured server
+ } else if (serverIndex + 1 > playerServers.size() && serverIndex - playerServers.size() < customServers.length) { // if server is a custom server
+ CustomServer server = customServers[serverIndex - playerServers.size()];
+ transfer(server.getAddress(), server.getPort());
+
+ } else { // if server is a player server
String address = server.getPlayer(uuid).getServerList().get(chosen-2);
if (address.split(":").length > 1) {