diff options
-rw-r--r-- | ledger-rules.pro | 3 | ||||
-rw-r--r-- | src/main/kotlin/moe/nea/ledger/ItemId.kt | 5 | ||||
-rw-r--r-- | src/main/kotlin/moe/nea/ledger/utils/NoSideEffects.java | 8 |
3 files changed, 15 insertions, 1 deletions
diff --git a/ledger-rules.pro b/ledger-rules.pro index 2d8459e..32cd337 100644 --- a/ledger-rules.pro +++ b/ledger-rules.pro @@ -1,3 +1,4 @@ -keep class !moe.nea.ledger.gen.** {*;} -dontobfuscate --assumenosideeffects class moe.nea.ledger.ItemId { *; }
\ No newline at end of file +-assumenosideeffects class ** { @moe.nea.ledger.utils.NoSideEffects <methods>; } +#-dontoptimize diff --git a/src/main/kotlin/moe/nea/ledger/ItemId.kt b/src/main/kotlin/moe/nea/ledger/ItemId.kt index ade63fb..8211cd3 100644 --- a/src/main/kotlin/moe/nea/ledger/ItemId.kt +++ b/src/main/kotlin/moe/nea/ledger/ItemId.kt @@ -1,12 +1,16 @@ package moe.nea.ledger +import moe.nea.ledger.utils.NoSideEffects + data class ItemId( val string: String ) { + @NoSideEffects fun singleItem(): Pair<ItemId, Double> { return withStackSize(1) } + @NoSideEffects fun withStackSize(size: Number): Pair<ItemId, Double> { return Pair(this, size.toDouble()) } @@ -15,6 +19,7 @@ data class ItemId( companion object { @JvmStatic + @NoSideEffects fun forName(string: String) = ItemId(string) fun skill(skill: String) = ItemId("SKYBLOCK_SKILL_$skill") diff --git a/src/main/kotlin/moe/nea/ledger/utils/NoSideEffects.java b/src/main/kotlin/moe/nea/ledger/utils/NoSideEffects.java new file mode 100644 index 0000000..f432130 --- /dev/null +++ b/src/main/kotlin/moe/nea/ledger/utils/NoSideEffects.java @@ -0,0 +1,8 @@ +package moe.nea.ledger.utils; + +import kotlin.annotation.AnnotationRetention; +import kotlin.annotation.Retention; + +@Retention(AnnotationRetention.BINARY) +public @interface NoSideEffects { +} |