Skip to content

Commit

Permalink
Fix Java 8 compat
Browse files Browse the repository at this point in the history
  • Loading branch information
fullwall committed Mar 13, 2023
1 parent f8c8b8a commit b9f10a2
Show file tree
Hide file tree
Showing 6 changed files with 47 additions and 16 deletions.
1 change: 1 addition & 0 deletions main/src/main/java/net/citizensnpcs/Citizens.java
Expand Up @@ -509,6 +509,7 @@ public void reload() throws NPCLoadException {
despawnNPCs(false);
ProfileFetcher.reset();
Skin.clearCache();

getServer().getPluginManager().callEvent(new CitizensPreReloadEvent());

saves.reloadFromSource();
Expand Down
6 changes: 1 addition & 5 deletions main/src/main/java/net/citizensnpcs/Settings.java
Expand Up @@ -226,15 +226,11 @@ public List<String> asList() {
return (List<String>) value;
}

public long asLong() {
return ((Number) value).longValue();
}

public int asSeconds() {
if (duration == null) {
duration = SpigotUtil.parseDuration(asString());
}
return (int) TimeUnit.SECONDS.convert(duration);
return (int) TimeUnit.SECONDS.convert(duration.getNano(), TimeUnit.NANOSECONDS);
}

public String asString() {
Expand Down
Expand Up @@ -704,10 +704,9 @@ public void create(CommandContext args, CommandSender sender, NPC npc, @Flag("at

String msg = "Created [[" + npc.getName() + "]] (ID [[" + npc.getId() + "]])";

int age = 0;
if (args.hasFlag('b')) {
age = -24000;
msg += " as a baby";
npc.getOrAddTrait(Age.class).setAge(-24000);
}

if (args.hasFlag('s')) {
Expand Down Expand Up @@ -810,8 +809,6 @@ public void create(CommandContext args, CommandSender sender, NPC npc, @Flag("at
msg += " with templates " + builder.toString();
}

npc.getOrAddTrait(Age.class).setAge(age);

selector.select(sender, npc);
history.add(sender, new CreateNPCHistoryItem(npc));
Messaging.send(sender, msg + '.');
Expand Down
4 changes: 2 additions & 2 deletions main/src/main/java/net/citizensnpcs/trait/CommandTrait.java
Expand Up @@ -574,7 +574,7 @@ public NPCCommandBuilder command(String command) {
}

public NPCCommandBuilder cooldown(Duration cd) {
return cooldown((int) TimeUnit.SECONDS.convert(cd));
return cooldown((int) TimeUnit.SECONDS.convert(cd.getNano(), TimeUnit.NANOSECONDS));
}

public NPCCommandBuilder cooldown(int cooldown) {
Expand All @@ -588,7 +588,7 @@ public NPCCommandBuilder delay(int delay) {
}

public NPCCommandBuilder globalCooldown(Duration cd) {
return globalCooldown((int) TimeUnit.SECONDS.convert(cd));
return globalCooldown((int) TimeUnit.SECONDS.convert(cd.getNano(), TimeUnit.NANOSECONDS));
}

public NPCCommandBuilder globalCooldown(int cooldown) {
Expand Down
45 changes: 41 additions & 4 deletions main/src/main/java/net/citizensnpcs/util/Quaternion.java
Expand Up @@ -36,6 +36,23 @@ public Quaternion norm() {
return ZERO;
}

public EulerAngle toEuler() {
double w2 = w * w;
double x2 = x * x;
double y2 = y * y;
double z2 = z * z;
double length = x2 + y2 + z2 + w2;
double test = x * y + z * w;
if (test > 0.499 * length) {
return new EulerAngle(0, 2 * Math.atan2(x, w), Math.PI / 2);
} else if (test < -0.499 * length) {
return new EulerAngle(0, -2 * Math.atan2(x, w), -(Math.PI / 2));
} else {
return new EulerAngle(Math.atan2(2 * x * w - 2 * y * z, -x2 + y2 - z2 + w2),
Math.atan2(2 * y * 2 - 2 * x * z, x2 - y2 - z2 + w2), Math.asin(2 * test / length));
}
}

private static double fastisqrt(double x) {
double xhalf = 0.5d * x;
long i = Double.doubleToLongBits(x);
Expand All @@ -56,16 +73,36 @@ public static Quaternion fromEuler(double x, double y, double z) {
double s1 = Math.sin(x * 0.5);
double s2 = Math.sin(y * 0.5);
double s3 = Math.sin(z * 0.5);
return new Quaternion(s1 * s2 * c3 + c1 * c2 * s3, s1 * c2 * c3 + c1 * s2 * s3, c1 * s2 * c3 - s1 * c2 * s3,
c1 * c2 * c3 - s1 * s2 * s3);

double c1c2 = c1 * c2;
double s1s2 = s1 * s2;
return new Quaternion(s1s2 * c3 + c1c2 * s3, s1 * c2 * c3 + c1 * s2 * s3, c1 * s2 * c3 - s1 * c2 * s3,
c1c2 * c3 - s1s2 * s3);
}

public static Quaternion lerp(Quaternion a, Quaternion b, double t) {
public static Quaternion nlerp(Quaternion a, Quaternion b, double t) {
if (a.dot(b) < 0) {
b = b.mul(-1);
}
return new Quaternion(a.x - t * (a.x - b.x), a.y - t * (a.y - b.y), a.z - t * (a.z - b.z),
a.w - t * (a.w - b.w));
a.w - t * (a.w - b.w)).norm();
}

public static Quaternion slerp(Quaternion a, Quaternion b, double t) {
double len = a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w;
if (len < 0) {
b = b.mul(-1);
len = -len;
}
double sa = 1 - t;
double sb = t;
if (0.1 < 1 - len) {
double theta = Math.acos(len);
double itheta = 1 / Math.sin(theta);
sa = Math.sin(theta * (1 - t)) * itheta;
sb = Math.sin(theta * t) * itheta;
}
return new Quaternion(sa * a.x + sb * b.x, sa * a.y + sb * b.y, sa * a.z + sb * b.z, sa * a.w + sb * b.w);
}

private static final Quaternion ZERO = new Quaternion(0, 0, 0, 0);
Expand Down
2 changes: 1 addition & 1 deletion main/src/main/java/net/citizensnpcs/util/Util.java
Expand Up @@ -411,7 +411,7 @@ public static void setRotation(Entity entity, float yaw, float pitch) {
}

public static int toTicks(Duration delay) {
return (int) TimeUnit.MILLISECONDS.convert(delay) / 50;
return (int) TimeUnit.MILLISECONDS.convert(delay.getNano(), TimeUnit.NANOSECONDS) / 50;
}

private static final Location AT_LOCATION = new Location(null, 0, 0, 0);
Expand Down

0 comments on commit b9f10a2

Please sign in to comment.