diff options
| author | Hayden Andreyka <haydenandreyka@gmail.com> | 2020-12-15 13:58:27 -0700 |
|---|---|---|
| committer | Hayden Andreyka <haydenandreyka@gmail.com> | 2020-12-15 13:58:27 -0700 |
| commit | 282517d00c22ee0ec35b8597c2214af9595116b3 (patch) | |
| tree | 97a57cc834a9e9faa4ef779ca0fd12296a67e01d /serverlist-server | |
| parent | a830e9e597ffe968d59b8697cf6621b53eb95917 (diff) | |
| download | BedrockConnect-282517d00c22ee0ec35b8597c2214af9595116b3.tar.gz BedrockConnect-282517d00c22ee0ec35b8597c2214af9595116b3.tar.bz2 BedrockConnect-282517d00c22ee0ec35b8597c2214af9595116b3.zip | |
implement custom servers into ui form and packet handler
Diffstat (limited to 'serverlist-server')
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) { |
