Skip to content
This repository was archived by the owner on Apr 23, 2025. It is now read-only.

Commit e881a19

Browse files
committed
feat: add some component utils & automatically reset name styling
1 parent 3c9980a commit e881a19

File tree

7 files changed

+80
-35
lines changed

7 files changed

+80
-35
lines changed

build.gradle.kts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ plugins {
1212
}
1313

1414
apply(plugin = "maven-publish")
15-
val versionVar = "0.5.90"
15+
val versionVar = "0.5.91"
1616
val groupIdVar = "com.undefined"
1717
val artifactIdVar = "api"
1818

@@ -41,7 +41,6 @@ publishing {
4141
}
4242
}
4343

44-
4544
allprojects {
4645
apply(plugin = "java")
4746
apply(plugin = "java-library")

common/src/main/java/com/undefined/api/extension/string/StringExtension.kt

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ import java.util.regex.Pattern
1111
*
1212
* @return The converted string in small text.
1313
*/
14-
fun String.toSmallText(): String {
15-
return lowercase()
14+
fun String.toSmallText(): String = lowercase()
1615
.replace("q", "")
1716
.replace("w", "")
1817
.replace("e", "")
@@ -39,7 +38,39 @@ fun String.toSmallText(): String {
3938
.replace("b", "ʙ")
4039
.replace("n", "ɴ")
4140
.replace("m", "")
42-
}
41+
42+
/**
43+
* Converts the given small text string to normal text.
44+
*
45+
* @return The converted string in normal text.
46+
*/
47+
fun String.toNormalText() = lowercase()
48+
.replace("", "q")
49+
.replace("", "w")
50+
.replace("", "e")
51+
.replace("ʀ", "r")
52+
.replace("", "t")
53+
.replace("ʏ", "y")
54+
.replace("", "u")
55+
.replace("ɪ", "i")
56+
.replace("", "o")
57+
.replace("", "p")
58+
.replace("", "a")
59+
.replace("ѕ", "s")
60+
.replace("", "d")
61+
.replace("", "f")
62+
.replace("ɢ", "g")
63+
.replace("ʜ", "h")
64+
.replace("", "j")
65+
.replace("", "k")
66+
.replace("ʟ", "l")
67+
.replace("", "z")
68+
.replace("x", "x")
69+
.replace("", "c")
70+
.replace("", "v")
71+
.replace("ʙ", "b")
72+
.replace("ɴ", "n")
73+
.replace("", "m")
4374

4475
/**
4576
* Converts the given string to a Component using the MiniMessage deserialization.

common/src/main/java/com/undefined/api/menu/page/UndefinedPageMenu.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ abstract class UndefinedPageMenu(private val title: String, private val size: In
137137
*/
138138
fun update(shouldGenerateInventory: Boolean = true) {
139139
lambdaList?.let { list = it.invoke(Unit) }
140-
if (shouldGenerateInventory) generateInventory()
140+
if (shouldGenerateInventory) inventory = generateInventory()
141141
}
142142

143143
/**

common/src/main/java/com/undefined/api/menu/presets/UndefinedDefaultPageMenu.kt

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package com.undefined.api.menu.presets
22

3-
import com.undefined.api.builders.ItemBuilder
43
import com.undefined.api.extension.string.translateColor
54
import com.undefined.api.menu.MenuSize
65
import com.undefined.api.menu.normal.button.ClickData
76
import com.undefined.api.menu.page.UndefinedPageMenu
87
import com.undefined.api.menu.page.button.PageButton
98
import com.undefined.api.menu.setRow
9+
import com.undefined.api.utils.item.ItemBuilder
1010
import org.bukkit.Material
1111
import org.bukkit.inventory.Inventory
1212
import org.bukkit.inventory.ItemStack
@@ -33,19 +33,25 @@ class UndefinedDefaultPageMenu(
3333
*/
3434
override fun generateInventory(): Inventory = createPageInventory {
3535
setBackButton(
36-
PageButton(45, ItemBuilder(Material.RED_STAINED_GLASS_PANE)
37-
.setName("<reset><#d92323>ʙᴀᴄᴋ ᴀ ᴘᴀɢᴇ".translateColor())
38-
.addLine(" ")
39-
.addLine("<reset><gray>ᴄʟɪᴄᴋ ᴛᴏ ɢᴏ ʙᴀᴄᴋ ᴀɴ ᴘᴀɢᴇ".translateColor()).build(),
40-
ItemBuilder(Material.GRAY_STAINED_GLASS_PANE).setName(" ").build())
36+
PageButton(
37+
45,
38+
ItemBuilder(Material.RED_STAINED_GLASS_PANE)
39+
.setName("<reset><#d92323>ʙᴀᴄᴋ ᴀ ᴘᴀɢᴇ")
40+
.addPlainLore(" ")
41+
.addLore("<reset><gray>ᴄʟɪᴄᴋ ᴛᴏ ɢᴏ ʙᴀᴄᴋ ᴀɴ ᴘᴀɢᴇ").build(),
42+
ItemBuilder(Material.GRAY_STAINED_GLASS_PANE).setName(" ").build()
43+
)
4144
)
4245
setNextButton(
43-
PageButton(53, ItemBuilder(Material.LIME_STAINED_GLASS_PANE)
44-
.setName("<reset><#32e67d>ɴᴇxᴛ ᴘᴀɢᴇ".translateColor())
45-
.addLine(" ")
46-
.addLine("<reset><gray>ᴄʟɪᴄᴋ ᴛᴏ ɢᴏ ᴛᴏ ᴛʜᴇ ɴᴇxᴛ ᴘᴀɢᴇ".translateColor()).build(), com.undefined.api.builders.ItemBuilder(
47-
Material.GRAY_STAINED_GLASS_PANE
48-
).setName(" ").build())
46+
PageButton(
47+
53,
48+
ItemBuilder(Material.LIME_STAINED_GLASS_PANE)
49+
.setName("<reset><#32e67d>ɴᴇxᴛ ᴘᴀɢᴇ")
50+
.addPlainLore(" ")
51+
.addLore("<reset><gray>ᴄʟɪᴄᴋ ᴛᴏ ɢᴏ ᴛᴏ ᴛʜᴇ ɴᴇxᴛ ᴘᴀɢᴇ")
52+
.build(),
53+
ItemBuilder(Material.GRAY_STAINED_GLASS_PANE).setName(" ").build()
54+
)
4955
)
5056

5157
setRow(5, ItemBuilder(Material.GRAY_STAINED_GLASS_PANE).setName(" ").build())

common/src/main/java/com/undefined/api/utils/ComponentUtil.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@ package com.undefined.api.utils
33
import net.kyori.adventure.text.Component
44
import net.kyori.adventure.text.minimessage.MiniMessage
55
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer
6+
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer
7+
8+
/**
9+
* Convert component into a plain string.
10+
*
11+
* @return A string in plain text format.
12+
*/
13+
fun Component.plainText(): String = PlainTextComponentSerializer.plainText().serialize(this)
614

715
/**
816
* Convert component into a string that uses the legacy format.
@@ -23,4 +31,4 @@ fun miniMessage(input: String): Component = MiniMessage.miniMessage().deserializ
2331
*
2432
* @return A string in MiniMessage format.
2533
*/
26-
fun miniMessage(component: Component): String = MiniMessage.miniMessage().serialize(component)
34+
fun miniMessage(component: Component): String = MiniMessage.miniMessage().serialize(component)

common/src/main/java/com/undefined/api/utils/item/ItemBuilder.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class ItemBuilder(private val material: Material) {
4242
}
4343

4444
fun setName(name: String): ItemBuilder {
45-
this.name = name.miniMessage()
45+
this.name = "<reset>$name".miniMessage()
4646
return this
4747
}
4848

@@ -62,7 +62,7 @@ class ItemBuilder(private val material: Material) {
6262
}
6363

6464
fun setLore(vararg lore: String): ItemBuilder {
65-
this.lore = lore.map { it.miniMessage() }.toMutableList()
65+
this.lore = lore.map { "<reset>$it".miniMessage() }.toMutableList()
6666
return this
6767
}
6868

@@ -72,7 +72,7 @@ class ItemBuilder(private val material: Material) {
7272
}
7373

7474
fun addLore(vararg lore: String): ItemBuilder {
75-
this.lore.addAll(lore.map { it.miniMessage() }.toList())
75+
this.lore.addAll(lore.map { "<reset>$it".miniMessage() }.toList())
7676
return this
7777
}
7878

server/src/main/java/com/undefined/api/TestPage.kt

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,10 @@ import com.undefined.api.menu.page.UndefinedPageMenu
88
import com.undefined.api.menu.page.button.PageButton
99
import com.undefined.api.utils.item.ItemBuilder
1010
import org.bukkit.Material
11-
import org.bukkit.inventory.Inventory
1211

1312
class TestPage : UndefinedPageMenu("title", MenuSize.MINI, { Main.INSTANCE.value }) {
1413
override var clickData: ClickData.() -> Unit = {
15-
val page = object : UndefinedMenu("title", MenuSize.MINI) {
16-
override fun generateInventory() = createInventory {
17-
setItem(1, ItemBuilder(Material.EMERALD).setName("test").build()) {
18-
println("click!")
19-
Main.INSTANCE.value.add(ItemBuilder(Material.RED_STAINED_GLASS_PANE).setName("<reset><#ef4444>Test1").build())
20-
println(Main.INSTANCE.value)
21-
this@TestPage.update()
22-
println(Main.INSTANCE.value)
23-
player.openMenu(this@TestPage)
24-
}
25-
}
26-
}
14+
val page = OtherPage(this@TestPage)
2715
player.openMenu(page)
2816
}
2917

@@ -32,4 +20,17 @@ class TestPage : UndefinedPageMenu("title", MenuSize.MINI, { Main.INSTANCE.value
3220
setNextButton(PageButton(26, ItemBuilder(Material.LIME_STAINED_GLASS_PANE).setName("<reset><#1ff04c>ɴᴇxᴛ ᴘᴀɢᴇ").build(), ItemBuilder(Material.RED_STAINED_GLASS_PANE).setName("<reset><#ef4444>ᴘʀᴇᴠɪᴏᴜѕ ᴘᴀɢᴇ").build())) // TODO("Greener green")
3321
}
3422

23+
}
24+
25+
class OtherPage(val parent: UndefinedPageMenu) : UndefinedMenu("title", MenuSize.MINI) {
26+
override fun generateInventory() = createInventory {
27+
setItem(1, ItemBuilder(Material.EMERALD).setName("test").build()) {
28+
println("click!")
29+
Main.INSTANCE.value.add(ItemBuilder(Material.RED_STAINED_GLASS_PANE).setName("<reset><#ef4444>Test1").build())
30+
println(Main.INSTANCE.value.map { it.type })
31+
parent.update()
32+
println(Main.INSTANCE.value.map { it.type })
33+
player.openMenu(parent)
34+
}
35+
}
3536
}

0 commit comments

Comments
 (0)