Skip to content

Commit ca3f360

Browse files
committed
✨ support add lore
1 parent 2eeb928 commit ca3f360

File tree

4 files changed

+22
-3
lines changed

4 files changed

+22
-3
lines changed

src/main/kotlin/xyz/xasmc/hashbook/config/ConfigLoader.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@ object ConfigLoader {
3131
ItemDataMode.PDC
3232
}
3333
},
34-
setHashWhenOpenBook = yamlConfig.getBoolean("set_hash_when_open_book")
34+
setHashWhenOpenBook = yamlConfig.getBoolean("set_hash_when_open_book"),
35+
setLore = yamlConfig.getBoolean("set_lore"),
36+
loreContent = yamlConfig.getString("lore_content") ?: "<dark_aqua>Recorded by HashBook",
3537
)
3638

3739
return config

src/main/kotlin/xyz/xasmc/hashbook/config/PluginConfig.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,7 @@ data class PluginConfig(
44
val debug: Boolean,
55
val storageMode: StorageMode,
66
val itemDataMode: ItemDataMode,
7-
val setHashWhenOpenBook: Boolean
7+
val setHashWhenOpenBook: Boolean,
8+
val setLore: Boolean,
9+
val loreContent: String
810
)

src/main/kotlin/xyz/xasmc/hashbook/util/BookUtil.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ import org.bukkit.entity.Player
44
import org.bukkit.inventory.EquipmentSlot
55
import org.bukkit.inventory.ItemStack
66
import org.bukkit.inventory.meta.BookMeta
7+
import xyz.xasmc.hashbook.HashBook
78
import xyz.xasmc.hashbook.service.ItemDataServices
89
import xyz.xasmc.hashbook.service.StorageServices
910
import xyz.xasmc.hashbook.util.MessageUtil.debugMiniMessage
1011
import xyz.xasmc.hashbook.util.MessageUtil.sendMiniMessage
12+
import java.util.*
1113

1214
object BookUtil {
1315
@OptIn(ExperimentalStdlibApi::class)
@@ -39,6 +41,13 @@ object BookUtil {
3941
if (!ItemDataServices.hasItemData(newItem, "HashBook.Hash")) {
4042
val hash = generateHash(bookMeta)
4143

44+
if (HashBook.config.setLore) {
45+
val lore = bookMeta.lore() ?: LinkedList()
46+
lore.add(MessageUtil.mm.deserialize(HashBook.config.loreContent))
47+
bookMeta.lore(lore)
48+
newItem.setItemMeta(bookMeta)
49+
}
50+
4251
StorageServices.save(hash, bookMeta.pages())
4352
player.debugMiniMessage("$msgTitle <aqua>[debug]<dark_green>已存储成书书页</dark_green> <aqua>hash</aqua>: <green>$hash</green> <aqua>meta</aqua>: <green>$bookMeta</green>")
4453

src/main/resources/config.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,10 @@ storage_mode: file
1212
item_data_mode: pdc
1313

1414
# 打开成书时立即设置哈希
15-
set_hash_when_open_book: true
15+
set_hash_when_open_book: true
16+
17+
# 是否为已存储哈希的成书添加简介
18+
set_lore: true
19+
20+
# 简介内容, 使用 MiniMessage 格式, 详见 https://docs.advntr.dev/minimessage/format.html
21+
lore_content: "<dark_aqua>Recorded by HashBook"

0 commit comments

Comments
 (0)