diff options
| author | Fuwn <[email protected]> | 2026-02-12 22:33:32 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2026-02-12 22:33:32 -0800 |
| commit | c7a9d4a6bd53ed7d61731770f2f10e8b9fd435f9 (patch) | |
| tree | df9f48bf128a6c0186a8e91857d6ff30fe0e9f18 /NET/worlds/core/Std.java | |
| download | worldsplayer-c7a9d4a6bd53ed7d61731770f2f10e8b9fd435f9.tar.xz worldsplayer-c7a9d4a6bd53ed7d61731770f2f10e8b9fd435f9.zip | |
Initial commit
Diffstat (limited to 'NET/worlds/core/Std.java')
| -rw-r--r-- | NET/worlds/core/Std.java | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/NET/worlds/core/Std.java b/NET/worlds/core/Std.java new file mode 100644 index 0000000..7ee2b6f --- /dev/null +++ b/NET/worlds/core/Std.java @@ -0,0 +1,191 @@ +package NET.worlds.core; + +import java.io.File; +import java.io.InputStream; +import java.net.InetAddress; +import java.net.Socket; +import java.util.Date; + +public class Std { + private static String productName; + private static int lastTime; + static boolean syncTimeInited = false; + static int syncTimeBase; + static boolean offline = IniFile.override().getIniInt("Offline", 0) == 1; + static boolean stopOnFault = IniFile.gamma().getIniInt("StopOnHttpFault", 0) == 1; + static String timeServer = IniFile.override().getIniString("timeServer", "time.worlds.net"); + + public static void assertFail(String file, int line) { + String msg = "Assertion failed: file " + file + ", line " + line; + dumpStackTrace(); + exit(); + } + + public static String replaceStr(String in, String seek, String replace) { + if (seek != null && replace != null) { + int idx; + while ((idx = in.indexOf(seek)) != -1) { + String tmp = in.substring(0, idx) + replace + in.substring(idx + seek.length()); + in = tmp; + } + + return in; + } else { + return in; + } + } + + public static native void exit(); + + public static void dumpStackTrace() { + try { + throw new Error(""); + } catch (Error var1) { + var1.printStackTrace(System.out); + } + } + + public static String getProductName() { + assert productName != null; + + return productName; + } + + public static void initProductName() { + assert productName == null; + + productName = IniFile.gamma().getIniString("PRODUCT_NAME", "Worlds.com - The 3D Entertainment Portal"); + productName = IniFile.override().getIniString("productName", productName); + } + + private static native int nativeGetMillis(); + + private static synchronized int getMillis() { + return nativeGetMillis(); + } + + public static native int getTimeZero(); + + public static native long getPerformanceFrequency(); + + public static native long getPerformanceCount(); + + public static boolean sleep(float seconds) { + try { + Thread.sleep((long)(seconds * 1000.0F)); + return false; + } catch (InterruptedException var2) { + return true; + } + } + + public static int getFastTime() { + if (lastTime == 0) { + getRealTime(); + } + + return lastTime; + } + + public static int getRealTime() { + lastTime = getMillis(); + return lastTime; + } + + public static int getSynchronizedTime() { + initSyncTime(); + return getFastTime() / 1000 + syncTimeBase; + } + + static void initSyncTime() { + if (!offline && !stopOnFault) { + if (!syncTimeInited) { + syncTimeInited = true; + + try { + InetAddress ip = InetAddress.getByName(timeServer); + Socket s = new Socket(ip, 37); + InputStream is = s.getInputStream(); + int b1 = is.read(); + int b2 = is.read(); + int b3 = is.read(); + int b4 = is.read(); + is.close(); + long time = (b1 << 24) + (b2 << 16) + (b3 << 8) + b4; + time -= -1141367296L; + syncTimeBase = (int)time - getFastTime() / 1000; + s.close(); + } catch (Exception var9) { + System.out.println("Error retrieving network time: " + var9); + } + } + } else { + syncTimeInited = true; + syncTimeBase = 0; + } + } + + public static native boolean instanceOf(Object var0, Class<?> var1); + + public static native String getenv(String var0); + + public static long GetDiskFreeSpace(String drive) { + long value = -1L; + + try { + if (drive == null) { + drive = "."; + } + + File f = new File(drive); + value = f.getFreeSpace() / 1024L; + } catch (Exception var4) { + value = -1L; + } + + return value; + } + + public static long GetDiskFreeSpace() { + return GetDiskFreeSpace(null); + } + + public static void printThreads() { + ThreadGroup tg = Thread.currentThread().getThreadGroup(); + Thread[] ta = new Thread[100]; + int n = tg.enumerate(ta); + tg.list(); + + for (int i = 0; i < n; i++) { + if (ta[i].isDaemon()) { + System.out.println("is daemon"); + } else { + System.out.println("isn't daemon"); + } + } + } + + public static void printlnOut(String msg) { + System.out.println(msg); + } + + public static native boolean byteArraysEqual(byte[] var0, byte[] var1); + + public static native String getBuildInfo(); + + public static native int getVersion(); + + public static native String getClientVersion(); + + private static native int getBuildYear(); + + private static native int getBuildMonth(); + + private static native int getBuildDay(); + + public static long getBuildDate() { + return Date.UTC(getBuildYear(), getBuildMonth(), getBuildDay(), 0, 0, 0); + } + + public static native int checkNativeHeap(); +} |