Skip to content

Commit e1a8c95

Browse files
committed
feat: add Rarity enum for item and entity rarity representation
1 parent fe7b763 commit e1a8c95

4 files changed

Lines changed: 81 additions & 1 deletion

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled
77
javaVersion=25
88
mcVersion=1.21.11
99
group=dev.slne.surf
10-
version=1.21.11-2.63.1
10+
version=1.21.11-2.64.0
1111
relocationPrefix=dev.slne.surf.surfapi.libs
1212
snapshot=false

surf-api-bukkit/surf-api-bukkit-api/api/surf-api-bukkit-api.api

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2177,6 +2177,22 @@ public abstract class dev/slne/surf/surfapi/bukkit/api/permission/PermissionRegi
21772177
public final fun create (Ljava/lang/String;)Ljava/lang/String;
21782178
}
21792179

2180+
public final class dev/slne/surf/surfapi/bukkit/api/rarity/Rarity : java/lang/Enum, net/kyori/adventure/text/ComponentLike {
2181+
public static final field COMMON Ldev/slne/surf/surfapi/bukkit/api/rarity/Rarity;
2182+
public static final field EPIC Ldev/slne/surf/surfapi/bukkit/api/rarity/Rarity;
2183+
public static final field LEGENDARY Ldev/slne/surf/surfapi/bukkit/api/rarity/Rarity;
2184+
public static final field MYTHIC Ldev/slne/surf/surfapi/bukkit/api/rarity/Rarity;
2185+
public static final field RARE Ldev/slne/surf/surfapi/bukkit/api/rarity/Rarity;
2186+
public static final field UNCOMMON Ldev/slne/surf/surfapi/bukkit/api/rarity/Rarity;
2187+
public synthetic fun asComponent ()Lnet/kyori/adventure/text/Component;
2188+
public fun asComponent ()Lnet/kyori/adventure/text/TextComponent;
2189+
public final fun getColor ()Lnet/kyori/adventure/text/format/TextColor;
2190+
public final fun getDisplayName ()Lnet/kyori/adventure/text/TextComponent;
2191+
public static fun getEntries ()Lkotlin/enums/EnumEntries;
2192+
public static fun valueOf (Ljava/lang/String;)Ldev/slne/surf/surfapi/bukkit/api/rarity/Rarity;
2193+
public static fun values ()[Ldev/slne/surf/surfapi/bukkit/api/rarity/Rarity;
2194+
}
2195+
21802196
public abstract interface annotation class dev/slne/surf/surfapi/bukkit/api/scoreboard/ObsoleteScoreboardApi : java/lang/annotation/Annotation {
21812197
}
21822198

surf-api-core/surf-api-core-api/api/surf-api-core-api.api

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8299,6 +8299,22 @@ public abstract interface class dev/slne/surf/surfapi/core/api/random/Weighted {
82998299
public abstract fun getWeight ()D
83008300
}
83018301

8302+
public final class dev/slne/surf/surfapi/core/api/rarity/Rarity : java/lang/Enum, net/kyori/adventure/text/ComponentLike {
8303+
public static final field COMMON Ldev/slne/surf/surfapi/core/api/rarity/Rarity;
8304+
public static final field EPIC Ldev/slne/surf/surfapi/core/api/rarity/Rarity;
8305+
public static final field LEGENDARY Ldev/slne/surf/surfapi/core/api/rarity/Rarity;
8306+
public static final field MYTHIC Ldev/slne/surf/surfapi/core/api/rarity/Rarity;
8307+
public static final field RARE Ldev/slne/surf/surfapi/core/api/rarity/Rarity;
8308+
public static final field UNCOMMON Ldev/slne/surf/surfapi/core/api/rarity/Rarity;
8309+
public synthetic fun asComponent ()Lnet/kyori/adventure/text/Component;
8310+
public fun asComponent ()Lnet/kyori/adventure/text/TextComponent;
8311+
public final fun getColor ()Lnet/kyori/adventure/text/format/TextColor;
8312+
public final fun getDisplayName ()Lnet/kyori/adventure/text/TextComponent;
8313+
public static fun getEntries ()Lkotlin/enums/EnumEntries;
8314+
public static fun valueOf (Ljava/lang/String;)Ldev/slne/surf/surfapi/core/api/rarity/Rarity;
8315+
public static fun values ()[Ldev/slne/surf/surfapi/core/api/rarity/Rarity;
8316+
}
8317+
83028318
public abstract interface annotation class dev/slne/surf/surfapi/core/api/reflection/Constructor : java/lang/annotation/Annotation {
83038319
}
83048320

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package dev.slne.surf.surfapi.core.api.rarity
2+
3+
import dev.slne.surf.surfapi.core.api.messages.adventure.buildText
4+
import dev.slne.surf.surfapi.core.api.messages.builder.SurfComponentBuilder
5+
import net.kyori.adventure.text.ComponentLike
6+
import net.kyori.adventure.text.format.TextColor
7+
8+
/**
9+
* Represents the rarity of an item or entity within the system.
10+
*
11+
* Each rarity level is associated with a display name and a color,
12+
* allowing visually distinct representations for different levels.
13+
*
14+
* @property displayName The visual display name of the rarity level.
15+
* @property color The textual color associated with the rarity level.
16+
*/
17+
enum class Rarity(
18+
displayName: SurfComponentBuilder.() -> Unit,
19+
val color: TextColor
20+
) : ComponentLike {
21+
COMMON(
22+
displayName = { spacer("Gewöhnlich") },
23+
color = TextColor.color(0xAAAAAA)
24+
),
25+
UNCOMMON(
26+
displayName = { spacer("Ungewöhnlich") },
27+
color = TextColor.color(0x55FF55)
28+
),
29+
RARE(
30+
displayName = { success("Selten") },
31+
color = TextColor.color(0x55FFFF)
32+
),
33+
EPIC(
34+
displayName = { info("Episch") },
35+
color = TextColor.color(0xFF55FF)
36+
),
37+
LEGENDARY(
38+
displayName = { warning("Legendär") },
39+
color = TextColor.color(0xFFAA00)
40+
),
41+
MYTHIC(
42+
displayName = { error("Mythisch") },
43+
color = TextColor.color(0xAA00AA)
44+
);
45+
46+
val displayName = buildText(displayName)
47+
override fun asComponent() = displayName
48+
}

0 commit comments

Comments
 (0)