mirror of
https://github.com/YatopiaMC/Yatopia.git
synced 2024-11-04 18:02:27 +01:00
cc91a8080f
* Updated Upstream and Sidestream(s) (Paper) Upstream/An Sidestream has released updates that appears to apply and compile correctly This update has NOT been tested by YatopiaMC and as with ANY update, please do your own testing. Paper Changes: 8a29f5894 [Auto] Updated Upstream (Bukkit/CraftBukkit) 8756d232c Expose server protocol version (#5416) * Updated Upstream and Sidestream(s) (Tuinity/Purpur) Upstream/An Sidestream has released updates that appears to apply and compile correctly This update has NOT been tested by YatopiaMC and as with ANY update, please do your own testing. Tuinity Changes: 32b4d52 Updated Upstream (Paper) ac5adca Make sure lit is set for pre 1.14 chunks Purpur Changes: 24d9e61 Piglin portal spawn modifier 5866f36 Fix #263 - NPE on TPSBar when player disconnects 7f7f024 Updated Upstream (Paper, Tuinity, & Airplane) * bump kotlin-stdlib * Updated Upstream and Sidestream(s) (Paper/Airplane/Purpur) Upstream/An Sidestream has released updates that appears to apply and compile correctly This update has NOT been tested by YatopiaMC and as with ANY update, please do your own testing. Paper Changes: 606cdac60 Update the view distance before scheduling chunk loads (#5269) Airplane Changes: 0789789 Updated Upstream (Tuinity) c1e4d71 Fluid cache patch Purpur Changes: 04f73c5 Fix error when using non living entity on monster egg 76c35fc Fix #287 - TPSBarTask NPE (again) * Updated Upstream and Sidestream(s) (Purpur) Upstream/An Sidestream has released updates that appears to apply and compile correctly This update has NOT been tested by YatopiaMC and as with ANY update, please do your own testing. Purpur Changes: 2e62618 Fix #280 - Ridables do not reset idle timer
144 lines
4.4 KiB
Diff
144 lines
4.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: YatopiaMC <yatopiamc@gmail.com>
|
|
Date: Fri, 23 Oct 2020 09:20:01 -0700
|
|
Subject: [PATCH] Utilities
|
|
|
|
This patch includes all utilities required by the Yatopia project and its patches.
|
|
|
|
Co-authored-by: Mykyta Komarnytskyy <nkomarn@hotmail.com>
|
|
Co-authored-by: Ivan Pekov <ivan@mrivanplays.com>
|
|
|
|
diff --git a/pom.xml b/pom.xml
|
|
index 8f864ce333418e6eb617dd55a9e9f73887f981a6..eb1c3ea442ca73317b18179ad7de3ce16a60d3d5 100644
|
|
--- a/pom.xml
|
|
+++ b/pom.xml
|
|
@@ -197,6 +197,12 @@
|
|
<artifactId>commons-math3</artifactId>
|
|
<version>3.6.1</version>
|
|
</dependency>
|
|
+ <!-- Fast Random -->
|
|
+ <dependency>
|
|
+ <groupId>org.apache.commons</groupId>
|
|
+ <artifactId>commons-rng-core</artifactId>
|
|
+ <version>1.3</version>
|
|
+ </dependency>
|
|
</dependencies>
|
|
|
|
<repositories>
|
|
diff --git a/src/main/java/org/yatopiamc/yatopia/server/util/Constants.java b/src/main/java/org/yatopiamc/yatopia/server/util/Constants.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..ac5235155eb1b5515165fc9648b7c9d7a0713b44
|
|
--- /dev/null
|
|
+++ b/src/main/java/org/yatopiamc/yatopia/server/util/Constants.java
|
|
@@ -0,0 +1,7 @@
|
|
+package org.yatopiamc.yatopia.server.util;
|
|
+
|
|
+public class Constants {
|
|
+
|
|
+ public static final int[] EMPTY_ARRAY = new int[0];
|
|
+ public static final int[] ZERO_ARRAY = new int[]{0};
|
|
+}
|
|
diff --git a/src/main/java/org/yatopiamc/yatopia/server/util/FastRandom.java b/src/main/java/org/yatopiamc/yatopia/server/util/FastRandom.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..e41c1e3fa656d8f595733897ab05089c3b0976a7
|
|
--- /dev/null
|
|
+++ b/src/main/java/org/yatopiamc/yatopia/server/util/FastRandom.java
|
|
@@ -0,0 +1,64 @@
|
|
+package org.yatopiamc.yatopia.server.util;
|
|
+
|
|
+import org.apache.commons.rng.core.source64.XoRoShiRo128PlusPlus;
|
|
+
|
|
+import java.util.Random;
|
|
+import java.util.SplittableRandom;
|
|
+
|
|
+public class FastRandom extends Random {
|
|
+
|
|
+ private XoRoShiRo128PlusPlus random;
|
|
+
|
|
+ public FastRandom() {
|
|
+ super();
|
|
+ SplittableRandom randomseed = new SplittableRandom();
|
|
+ this.random = new XoRoShiRo128PlusPlus(randomseed.nextLong(), randomseed.nextLong());
|
|
+ }
|
|
+
|
|
+ public FastRandom(long seed) {
|
|
+ super(seed);
|
|
+ SplittableRandom randomseed = new SplittableRandom(seed);
|
|
+ this.random = new XoRoShiRo128PlusPlus(randomseed.nextLong(), randomseed.nextLong());
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean nextBoolean() {
|
|
+ return random.nextBoolean();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public int nextInt() {
|
|
+ return random.nextInt();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public float nextFloat() {
|
|
+ return (float) random.nextDouble();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public double nextDouble() {
|
|
+ return random.nextDouble();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public synchronized void setSeed(long seed) {
|
|
+ SplittableRandom randomseed = new SplittableRandom(seed);
|
|
+ this.random = new XoRoShiRo128PlusPlus(randomseed.nextLong(), randomseed.nextLong());
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void nextBytes(byte[] bytes) {
|
|
+ random.nextBytes(bytes);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public int nextInt(int bound) {
|
|
+ return random.nextInt(bound);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public long nextLong() {
|
|
+ return random.nextLong();
|
|
+ }
|
|
+}
|
|
diff --git a/src/main/java/org/yatopiamc/yatopia/server/util/TimeUtils.java b/src/main/java/org/yatopiamc/yatopia/server/util/TimeUtils.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..acdf3d60738791b767a3bafa2c9511342a8c18df
|
|
--- /dev/null
|
|
+++ b/src/main/java/org/yatopiamc/yatopia/server/util/TimeUtils.java
|
|
@@ -0,0 +1,27 @@
|
|
+package org.yatopiamc.yatopia.server.util;
|
|
+
|
|
+import java.util.concurrent.TimeUnit;
|
|
+
|
|
+public class TimeUtils {
|
|
+
|
|
+ public static String getFriendlyName(TimeUnit unit) {
|
|
+ switch (unit) {
|
|
+ case NANOSECONDS:
|
|
+ return "ns";
|
|
+ case MILLISECONDS:
|
|
+ return "ms";
|
|
+ case MICROSECONDS:
|
|
+ return "micros";
|
|
+ case SECONDS:
|
|
+ return "s";
|
|
+ case MINUTES:
|
|
+ return "m";
|
|
+ case DAYS:
|
|
+ return "d";
|
|
+ case HOURS:
|
|
+ return "h";
|
|
+ default:
|
|
+ throw new AssertionError();
|
|
+ }
|
|
+ }
|
|
+}
|