Spaces:
Build error
Build error
File size: 2,593 Bytes
d46f4a3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
package com.mojang.realmsclient.client;
import com.google.common.collect.Lists;
import com.mojang.realmsclient.dto.RegionPingResult;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
import java.util.Comparator;
import java.util.List;
import net.minecraft.Util;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import org.apache.commons.io.IOUtils;
@OnlyIn(Dist.CLIENT)
public class Ping {
public static List<RegionPingResult> ping(Ping.Region... p_87131_) {
for (Ping.Region ping$region : p_87131_) {
ping(ping$region.endpoint);
}
List<RegionPingResult> list = Lists.newArrayList();
for (Ping.Region ping$region1 : p_87131_) {
list.add(new RegionPingResult(ping$region1.name, ping(ping$region1.endpoint)));
}
list.sort(Comparator.comparingInt(RegionPingResult::ping));
return list;
}
private static int ping(String p_87127_) {
int i = 700;
long j = 0L;
Socket socket = null;
for (int k = 0; k < 5; k++) {
try {
SocketAddress socketaddress = new InetSocketAddress(p_87127_, 80);
socket = new Socket();
long l = now();
socket.connect(socketaddress, 700);
j += now() - l;
} catch (Exception exception) {
j += 700L;
} finally {
IOUtils.closeQuietly(socket);
}
}
return (int)((double)j / 5.0);
}
private static long now() {
return Util.getMillis();
}
public static List<RegionPingResult> pingAllRegions() {
return ping(Ping.Region.values());
}
@OnlyIn(Dist.CLIENT)
static enum Region {
US_EAST_1("us-east-1", "ec2.us-east-1.amazonaws.com"),
US_WEST_2("us-west-2", "ec2.us-west-2.amazonaws.com"),
US_WEST_1("us-west-1", "ec2.us-west-1.amazonaws.com"),
EU_WEST_1("eu-west-1", "ec2.eu-west-1.amazonaws.com"),
AP_SOUTHEAST_1("ap-southeast-1", "ec2.ap-southeast-1.amazonaws.com"),
AP_SOUTHEAST_2("ap-southeast-2", "ec2.ap-southeast-2.amazonaws.com"),
AP_NORTHEAST_1("ap-northeast-1", "ec2.ap-northeast-1.amazonaws.com"),
SA_EAST_1("sa-east-1", "ec2.sa-east-1.amazonaws.com");
final String name;
final String endpoint;
private Region(final String p_87148_, final String p_87149_) {
this.name = p_87148_;
this.endpoint = p_87149_;
}
}
} |