From 353c40cc460f966d1a02733c0b2d2a1d865c37a3 Mon Sep 17 00:00:00 2001 From: cyberpwn Date: Mon, 16 Aug 2021 16:00:05 -0400 Subject: [PATCH 1/5] Update number handlers --- .../volmit/iris/util/decree/handlers/DoubleHandler.java | 6 +++++- .../com/volmit/iris/util/decree/handlers/FloatHandler.java | 6 +++++- .../volmit/iris/util/decree/handlers/IntegerHandler.java | 7 ++++++- .../com/volmit/iris/util/decree/handlers/LongHandler.java | 6 +++++- .../com/volmit/iris/util/decree/handlers/ShortHandler.java | 6 +++++- 5 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/DoubleHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/DoubleHandler.java index 45c4c7b92..0fc5577ea 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/DoubleHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/DoubleHandler.java @@ -24,6 +24,8 @@ import com.volmit.iris.util.decree.exceptions.DecreeParsingException; import com.volmit.iris.util.format.Form; import com.volmit.iris.util.math.RNG; +import java.util.concurrent.atomic.AtomicReference; + public class DoubleHandler implements DecreeParameterHandler { @Override public KList getPossibilities() { @@ -34,7 +36,9 @@ public class DoubleHandler implements DecreeParameterHandler { public Double parse(String in) throws DecreeParsingException { try { - return Double.parseDouble(in); + AtomicReference r = new AtomicReference<>(in); + double m = getMultiplier(r); + return Double.parseDouble(r.get()) * m; } catch(Throwable e) diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/FloatHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/FloatHandler.java index 27f127f80..8f7942ca4 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/FloatHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/FloatHandler.java @@ -24,6 +24,8 @@ import com.volmit.iris.util.decree.exceptions.DecreeParsingException; import com.volmit.iris.util.format.Form; import com.volmit.iris.util.math.RNG; +import java.util.concurrent.atomic.AtomicReference; + public class FloatHandler implements DecreeParameterHandler { @Override public KList getPossibilities() { @@ -34,7 +36,9 @@ public class FloatHandler implements DecreeParameterHandler { public Float parse(String in) throws DecreeParsingException { try { - return Float.parseFloat(in); + AtomicReference r = new AtomicReference<>(in); + double m = getMultiplier(r); + return (float)(Float.parseFloat(r.get()) * m); } catch(Throwable e) diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/IntegerHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/IntegerHandler.java index b9bb6f983..454866a2f 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/IntegerHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/IntegerHandler.java @@ -24,6 +24,9 @@ import com.volmit.iris.util.decree.exceptions.DecreeParsingException; import com.volmit.iris.util.format.Form; import com.volmit.iris.util.math.RNG; +import java.util.Locale; +import java.util.concurrent.atomic.AtomicReference; + public class IntegerHandler implements DecreeParameterHandler { @Override public KList getPossibilities() { @@ -34,7 +37,9 @@ public class IntegerHandler implements DecreeParameterHandler { public Integer parse(String in) throws DecreeParsingException { try { - return Integer.parseInt(in); + AtomicReference r = new AtomicReference<>(in); + double m = getMultiplier(r); + return (int)(Integer.valueOf(r.get()).doubleValue() * m); } catch(Throwable e) diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/LongHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/LongHandler.java index 1d7085a16..cfe40ea33 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/LongHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/LongHandler.java @@ -23,6 +23,8 @@ import com.volmit.iris.util.decree.DecreeParameterHandler; import com.volmit.iris.util.decree.exceptions.DecreeParsingException; import com.volmit.iris.util.math.RNG; +import java.util.concurrent.atomic.AtomicReference; + public class LongHandler implements DecreeParameterHandler { @Override public KList getPossibilities() { @@ -33,7 +35,9 @@ public class LongHandler implements DecreeParameterHandler { public Long parse(String in) throws DecreeParsingException { try { - return Long.parseLong(in); + AtomicReference r = new AtomicReference<>(in); + double m = getMultiplier(r); + return (long)(Long.valueOf(r.get()).doubleValue() * m); } catch(Throwable e) diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/ShortHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/ShortHandler.java index 6fb6d6ce4..174f20d47 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/ShortHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/ShortHandler.java @@ -23,6 +23,8 @@ import com.volmit.iris.util.decree.DecreeParameterHandler; import com.volmit.iris.util.decree.exceptions.DecreeParsingException; import com.volmit.iris.util.math.RNG; +import java.util.concurrent.atomic.AtomicReference; + public class ShortHandler implements DecreeParameterHandler { @Override public KList getPossibilities() { @@ -33,7 +35,9 @@ public class ShortHandler implements DecreeParameterHandler { public Short parse(String in) throws DecreeParsingException { try { - return Short.parseShort(in); + AtomicReference r = new AtomicReference<>(in); + double m = getMultiplier(r); + return (short)(Short.valueOf(r.get()).doubleValue() * m); } catch(Throwable e) From a7e78cc3fba7c956ed9d9c6aae08cc954087dc2b Mon Sep 17 00:00:00 2001 From: cyberpwn Date: Mon, 16 Aug 2021 16:01:01 -0400 Subject: [PATCH 2/5] Num util --- .../util/decree/DecreeParameterHandler.java | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java b/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java index 9d7d437eb..e52d54fd4 100644 --- a/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java @@ -23,6 +23,8 @@ import com.volmit.iris.util.decree.exceptions.DecreeParsingException; import com.volmit.iris.util.decree.exceptions.DecreeWhichException; import org.jetbrains.annotations.NotNull; +import java.util.concurrent.atomic.AtomicReference; + public interface DecreeParameterHandler { /** * Should return the possible values for this type @@ -111,4 +113,55 @@ public interface DecreeParameterHandler { { return "NOEXAMPLE"; } + + default double getMultiplier(AtomicReference g) + { + double multiplier = 1; + String in = g.get(); + boolean valid = true; + while(valid) { + boolean trim = false; + if (in.toLowerCase().endsWith("k")) + { + multiplier *= 1000; + trim = true; + } + + else if(in.toLowerCase().endsWith("m")) + { + multiplier *= 1000000; + trim = true; + } + + else if(in.toLowerCase().endsWith("h")) + { + multiplier *= 100; + trim = true; + } + + else if(in.toLowerCase().endsWith("c")) + { + multiplier *= 16; + trim = true; + } + + else if(in.toLowerCase().endsWith("r")) + { + multiplier *= (16 * 32); + trim = true; + } + + else { + valid = false; + } + + if(trim) + { + in = in.substring(0, in.length() - 1); + } + } + + g.set(in); + return multiplier; + } } From 9f16fa189f6bda54b2d1c984fece5a99620a39d7 Mon Sep 17 00:00:00 2001 From: cyberpwn Date: Mon, 16 Aug 2021 16:07:00 -0400 Subject: [PATCH 3/5] Compiler tweak for param names --- build.gradle | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build.gradle b/build.gradle index 8d6579c0a..06deb50c4 100644 --- a/build.gradle +++ b/build.gradle @@ -153,6 +153,10 @@ repositories { // maven { allowInsecureProtocol true, url 'http://archive.arcane.art/repository/arcane'} } +compileJava { + options.compilerArgs << '-parameters' +} + shadowJar { minimize() From 953d702ed65a03fd09c9752be0abe675388494a6 Mon Sep 17 00:00:00 2001 From: cyberpwn Date: Mon, 16 Aug 2021 16:10:04 -0400 Subject: [PATCH 4/5] Allow leaf decay if setting is changed --- src/main/java/com/volmit/iris/core/IrisSettings.java | 1 + src/main/java/com/volmit/iris/util/data/B.java | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/volmit/iris/core/IrisSettings.java b/src/main/java/com/volmit/iris/core/IrisSettings.java index ed02347d9..9d8de9366 100644 --- a/src/main/java/com/volmit/iris/core/IrisSettings.java +++ b/src/main/java/com/volmit/iris/core/IrisSettings.java @@ -129,6 +129,7 @@ public class IrisSettings { public boolean systemEntitySpawnOverrides = true; public boolean systemEntityInitialSpawns = true; public int maxBiomeChildDepth = 4; + public boolean preventLeafDecay = true; } @Data diff --git a/src/main/java/com/volmit/iris/util/data/B.java b/src/main/java/com/volmit/iris/util/data/B.java index ff96be0b9..15de96ad3 100644 --- a/src/main/java/com/volmit/iris/util/data/B.java +++ b/src/main/java/com/volmit/iris/util/data/B.java @@ -19,6 +19,7 @@ package com.volmit.iris.util.data; import com.volmit.iris.Iris; +import com.volmit.iris.core.IrisSettings; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.collection.KSet; @@ -156,10 +157,15 @@ public class B { bx = Bukkit.createBlockData(ix); } - if (bx instanceof Leaves) { + if (bx instanceof Leaves && IrisSettings.get().getGenerator().preventLeafDecay) { ((Leaves) bx).setPersistent(true); } + else if(bx instanceof Leaves) + { + ((Leaves) bx).setPersistent(false); + } + blockDataCache.put(ix, bx); return bx; } catch (Exception e) { From 990ed86283cd71f4d7732cbbbeed487fd10e0b0a Mon Sep 17 00:00:00 2001 From: cyberpwn Date: Mon, 16 Aug 2021 16:10:37 -0400 Subject: [PATCH 5/5] V+ --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 06deb50c4..a614f23db 100644 --- a/build.gradle +++ b/build.gradle @@ -32,7 +32,7 @@ plugins { } group 'com.volmit.iris' -version '1.7' +version '1.7.1' def apiVersion = '1.17' def name = getRootProject().getName() // See settings.gradle def main = 'com.volmit.iris.Iris'