Add priority servers, update servers_v7.json (#8720)

* Update servers_v7.json

* Add priority server outlining and bumping

* a

* chore: A little bit of cleanup :)

* json

* fixed no-server issue

* removed cursed duplication

---------

Co-authored-by: phinner <62483793+Phinner@users.noreply.github.com>
This commit is contained in:
router
2023-06-23 14:00:00 -04:00
committed by GitHub
co-authored by phinner
parent a20ca67527
commit 591c31fd29
3 changed files with 51 additions and 24 deletions
+7 -1
View File
@@ -5,10 +5,16 @@ import arc.*;
public class ServerGroup{ public class ServerGroup{
public String name; public String name;
public String[] addresses; public String[] addresses;
public boolean prioritized = false;
public ServerGroup(String name, String[] addresses){ public ServerGroup(String name, String[] addresses, boolean prioritized){
this.name = name; this.name = name;
this.addresses = addresses; this.addresses = addresses;
this.prioritized = prioritized;
}
public ServerGroup(String name, String[] addresses){
this(name, addresses, false);
} }
public ServerGroup(){ public ServerGroup(){
+29 -13
View File
@@ -417,6 +417,9 @@ public class JoinDialog extends BaseDialog{
Table[] groupTable = {null, null}; Table[] groupTable = {null, null};
if(group.prioritized){
addHeader(groupTable, group, hidden, false);
}
//table containing all groups //table containing all groups
for(String address : group.addresses){ for(String address : group.addresses){
String resaddress = address.contains(":") ? address.split(":")[0] : address; String resaddress = address.contains(":") ? address.split(":")[0] : address;
@@ -430,15 +433,36 @@ public class JoinDialog extends BaseDialog{
|| res.mapname.toLowerCase().contains(serverSearch) || res.mapname.toLowerCase().contains(serverSearch)
|| (res.modeName != null && res.modeName.toLowerCase().contains(serverSearch)))) return; || (res.modeName != null && res.modeName.toLowerCase().contains(serverSearch)))) return;
//add header if(groupTable[0] == null){
addHeader(groupTable, group, hidden, true);
}else if(!groupTable[0].visible){
addHeader(groupTable, group, hidden, true);
}
addCommunityHost(res, groupTable[1]);
groupTable[0].margin(5f);
groupTable[0].pack();
}, e -> {});
}
}
}
void addHeader(Table[] groupTable, ServerGroup group, boolean hidden, boolean doInit){ // outlined separately
if(groupTable[0] == null){ if(groupTable[0] == null){
global.table(t -> groupTable[0] = t).fillX().left().row(); global.table(t -> groupTable[0] = t).fillX().left().row();
}
groupTable[0].visible(() -> doInit);
if(!doInit){
return;
}
groupTable[0].table(head -> { groupTable[0].table(head -> {
Color col = group.prioritized ? Pal.accent : Color.lightGray;
if(!group.name.isEmpty()){ if(!group.name.isEmpty()){
head.add(group.name).color(Color.lightGray).padRight(4); head.add(group.name).color(col).padRight(4);
} }
head.image().height(3f).growX().color(Color.lightGray); head.image().height(3f).growX().color(col);
//button for showing/hiding servers //button for showing/hiding servers
ImageButton[] image = {null}; ImageButton[] image = {null};
@@ -455,15 +479,6 @@ public class JoinDialog extends BaseDialog{
groupTable[1] = groupTable[0].row().table().top().left().grow().get(); groupTable[1] = groupTable[0].row().table().top().left().grow().get();
} }
addCommunityHost(res, groupTable[1]);
groupTable[0].margin(5f);
groupTable[0].pack();
}, e -> {});
}
}
}
int columns(){ int columns(){
return Mathf.clamp((int)((Core.graphics.getWidth() / Scl.scl() * 0.9f) / targetWidth()), 1, 4); return Mathf.clamp((int)((Core.graphics.getWidth() / Scl.scl() * 0.9f) / targetWidth()), 1, 4);
} }
@@ -604,13 +619,14 @@ public class JoinDialog extends BaseDialog{
Seq<ServerGroup> servers = new Seq<>(); Seq<ServerGroup> servers = new Seq<>();
val.asArray().each(child -> { val.asArray().each(child -> {
String name = child.getString("name", ""); String name = child.getString("name", "");
boolean prioritized = child.getBool("prioritized", false);
String[] addresses; String[] addresses;
if(child.has("addresses") || (child.has("address") && child.get("address").isArray())){ if(child.has("addresses") || (child.has("address") && child.get("address").isArray())){
addresses = (child.has("addresses") ? child.get("addresses") : child.get("address")).asArray().map(Jval::asString).toArray(String.class); addresses = (child.has("addresses") ? child.get("addresses") : child.get("address")).asArray().map(Jval::asString).toArray(String.class);
}else{ }else{
addresses = new String[]{child.getString("address", "<invalid>")}; addresses = new String[]{child.getString("address", "<invalid>")};
} }
servers.add(new ServerGroup(name, addresses)); servers.add(new ServerGroup(name, addresses, prioritized));
}); });
//modify default servers on main thread //modify default servers on main thread
Core.app.post(() -> { Core.app.post(() -> {
+5
View File
@@ -174,5 +174,10 @@
{ {
"name": "CreateDustry", "name": "CreateDustry",
"address": ["95.216.68.161:55639"] "address": ["95.216.68.161:55639"]
},
{
"name": "Official Mindustry Events",
"address": ["event.baseduser.eu.org"],
"prioritized": true
} }
] ]