soiz1's picture
Upload folder using huggingface_hub
d46f4a3 verified
package net.minecraft.client.server;
import com.mojang.logging.LogUtils;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.atomic.AtomicInteger;
import net.minecraft.DefaultUncaughtExceptionHandler;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import org.slf4j.Logger;
@OnlyIn(Dist.CLIENT)
public class LanServerPinger extends Thread {
private static final AtomicInteger UNIQUE_THREAD_ID = new AtomicInteger(0);
private static final Logger LOGGER = LogUtils.getLogger();
public static final String MULTICAST_GROUP = "224.0.2.60";
public static final int PING_PORT = 4445;
private static final long PING_INTERVAL = 1500L;
private final String motd;
private final DatagramSocket socket;
private boolean isRunning = true;
private final String serverAddress;
public LanServerPinger(String p_120109_, String p_120110_) throws IOException {
super("LanServerPinger #" + UNIQUE_THREAD_ID.incrementAndGet());
this.motd = p_120109_;
this.serverAddress = p_120110_;
this.setDaemon(true);
this.setUncaughtExceptionHandler(new DefaultUncaughtExceptionHandler(LOGGER));
this.socket = new DatagramSocket();
}
@Override
public void run() {
String s = createPingString(this.motd, this.serverAddress);
byte[] abyte = s.getBytes(StandardCharsets.UTF_8);
while (!this.isInterrupted() && this.isRunning) {
try {
InetAddress inetaddress = InetAddress.getByName("224.0.2.60");
DatagramPacket datagrampacket = new DatagramPacket(abyte, abyte.length, inetaddress, 4445);
this.socket.send(datagrampacket);
} catch (IOException ioexception) {
LOGGER.warn("LanServerPinger: {}", ioexception.getMessage());
break;
}
try {
sleep(1500L);
} catch (InterruptedException interruptedexception) {
}
}
}
@Override
public void interrupt() {
super.interrupt();
this.isRunning = false;
}
public static String createPingString(String p_120114_, String p_120115_) {
return "[MOTD]" + p_120114_ + "[/MOTD][AD]" + p_120115_ + "[/AD]";
}
public static String parseMotd(String p_120112_) {
int i = p_120112_.indexOf("[MOTD]");
if (i < 0) {
return "missing no";
} else {
int j = p_120112_.indexOf("[/MOTD]", i + "[MOTD]".length());
return j < i ? "missing no" : p_120112_.substring(i + "[MOTD]".length(), j);
}
}
public static String parseAddress(String p_120117_) {
int i = p_120117_.indexOf("[/MOTD]");
if (i < 0) {
return null;
} else {
int j = p_120117_.indexOf("[/MOTD]", i + "[/MOTD]".length());
if (j >= 0) {
return null;
} else {
int k = p_120117_.indexOf("[AD]", i + "[/MOTD]".length());
if (k < 0) {
return null;
} else {
int l = p_120117_.indexOf("[/AD]", k + "[AD]".length());
return l < k ? null : p_120117_.substring(k + "[AD]".length(), l);
}
}
}
}
}