Skip to content

Commit

Permalink
💬 update hash message
Browse files Browse the repository at this point in the history
  • Loading branch information
XiYang6666 committed Jun 8, 2024
1 parent 95e9eb2 commit 912e10d
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 23 deletions.
31 changes: 16 additions & 15 deletions src/main/kotlin/xyz/xasmc/hashbook/command/HashBookCommand.kt
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ import xyz.xasmc.hashbook.HashBook
import xyz.xasmc.hashbook.service.ItemDataServices
import xyz.xasmc.hashbook.service.StorageServices
import xyz.xasmc.hashbook.util.BookUtil
import xyz.xasmc.hashbook.util.MessageUtil
import xyz.xasmc.hashbook.util.MessageUtil.msgTitle
import xyz.xasmc.hashbook.util.MessageUtil.sendMiniMessage
import xyz.xasmc.hashbook.util.MessageUtil.shortHashMessage

object HashBookCommand {
fun create(): CommandAPICommand {
Expand All @@ -35,8 +35,8 @@ object HashBookCommand {
val (item) = checkWrittenBook(player) ?: return@CommandExecutor
val bookMeta = item.itemMeta as BookMeta
val hash = BookUtil.generateHash(bookMeta)
val copyMsg = MessageUtil.copyMsg("[点击复制]", hash, "<gold>点击复制")
player.sendMiniMessage("$msgTitle <aqua>hash</aqua>: <green>${hash}</green> <gold>$copyMsg</gold>")
val shortHashMsg = shortHashMessage(hash)
player.sendMiniMessage("$msgTitle <aqua>hash</aqua>: <green>$shortHashMsg")
})

val setHashCommand = CommandAPICommand("setHash")
Expand All @@ -49,23 +49,24 @@ object HashBookCommand {
ItemDataServices.getItemData(item, "HashBook.hash", ItemDataServices.DataType.String) ?: "<null>"
val newHash = args["hash"] as String
ItemDataServices.setItemData(item, "HashBook.hash", ItemDataServices.DataType.String, newHash)
val oldHashCopyMsg = MessageUtil.copyMsg("[点击复制]", oldHash, "<gold>点击复制")
val newHashCopyMsg = MessageUtil.copyMsg("[点击复制]", newHash, "<gold>点击复制")
val oldShortHashMsg = shortHashMessage(oldHash)
val newShortHashMsg = shortHashMessage(newHash)
player.sendMiniMessage("$msgTitle <dark_green>已修改成书哈希")
player.sendMiniMessage("$msgTitle <aqua>old_hash</aqua>: <green>$oldHash</green> <gold>$oldHashCopyMsg</gold>")
player.sendMiniMessage("$msgTitle <aqua>new_hash</aqua>: <green>$newHash</green> <gold>$newHashCopyMsg</gold>")
player.sendMiniMessage("$msgTitle <aqua>old_hash</aqua>: <green>$oldShortHashMsg")
player.sendMiniMessage("$msgTitle <aqua>new_hash</aqua>: <green>$newShortHashMsg")
})

val searchBookCommand = CommandAPICommand("searchBook")
.withPermission("xasmc.hashbook.command.searchbook")
.withArguments(StringArgument("incompleteHash"))
.executes(CommandExecutor { sender, args ->
val incompleteHash = args["incompleteHash"] as String
sender.sendMiniMessage("$msgTitle <dark_green>搜索到以下结果")
StorageServices.search(args["incompleteHash"] as String).forEach {
val copyMsg = MessageUtil.copyMsg("[点击复制]", it.first, "<gold>点击复制")
StorageServices.search(incompleteHash).forEach {
val shortHashMsg = shortHashMessage(it.first)
sender.sendMiniMessage("<light_purple>==============================")
sender.sendMiniMessage("$msgTitle <aqua>hash</aqua>: <green>${it.first} <gold>${copyMsg}</gold>")
sender.sendMiniMessage("$msgTitle <aqua>content:")
sender.sendMiniMessage("$msgTitle <aqua>hash</aqua>: <green>$shortHashMsg")
sender.sendMiniMessage("$msgTitle <aqua>content</aqua>:")
sender.sendMiniMessage(it.second)
}
})
Expand Down Expand Up @@ -95,11 +96,11 @@ object HashBookCommand {

Bukkit.getLogger().info(hash.javaClass.name)

val copyMsg = MessageUtil.copyMsg("[点击复制]", hash, "<gold>点击复制")
val shortHashMsg = shortHashMessage(hash)
player.sendMiniMessage("$msgTitle <blue>HashBook Book Info")
player.sendMiniMessage("$msgTitle <aqua>title</aqua>: <green>${title}")
player.sendMiniMessage("$msgTitle <aqua>author</aqua>: <green>${author}")
player.sendMiniMessage("$msgTitle <aqua>hash</aqua>: <green>${hash}</green> <gold>$copyMsg</gold>")
player.sendMiniMessage("$msgTitle <aqua>title</aqua>: <green>$title")
player.sendMiniMessage("$msgTitle <aqua>author</aqua>: <green>$author")
player.sendMiniMessage("$msgTitle <aqua>hash</aqua>: <green>$shortHashMsg")
})

val command = CommandAPICommand("hashbook")
Expand Down
12 changes: 7 additions & 5 deletions src/main/kotlin/xyz/xasmc/hashbook/listener/OpenBookListener.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ import xyz.xasmc.hashbook.HashBook
import xyz.xasmc.hashbook.service.ItemDataServices
import xyz.xasmc.hashbook.service.StorageServices
import xyz.xasmc.hashbook.util.BookUtil
import xyz.xasmc.hashbook.util.MessageUtil
import xyz.xasmc.hashbook.util.MessageUtil.debugMiniMessage
import xyz.xasmc.hashbook.util.MessageUtil.sendMiniMessage
import xyz.xasmc.hashbook.util.MessageUtil.shortHashMessage


class OpenBookListener : Listener {
Expand All @@ -36,19 +36,21 @@ class OpenBookListener : Listener {
if (!ItemDataServices.hasItemData(item, "HashBook.Hash")) return
val hash = ItemDataServices.getItemData(item, "HashBook.Hash", ItemDataServices.DataType.String) ?: run {
player.sendMiniMessage("$msgTitle <yellow>[warn] 无法读取成书哈希值")
event.isCancelled = true
return@onPlayerInteract
}
val bookMeta = item.itemMeta as BookMeta
bookMeta.pages(BookUtil.deserializePages(StorageServices.read(hash) ?: run {
val copyMsg = MessageUtil.copyMsg("[点击复制]", hash, "<gold>点击复制")
val shortHashMsg = shortHashMessage(hash)
player.sendMiniMessage("$msgTitle <yellow>[warn] 无法读取成书书页")
player.sendMiniMessage("$msgTitle <yellow>[warn] <aqua>hash</aqua>: <green>$hash</green> <gold>$copyMsg</gold>")
player.sendMiniMessage("$msgTitle <yellow>[warn] <aqua>hash</aqua>: <green>$shortHashMsg")
event.isCancelled = true
return@onPlayerInteract
}))
val copyMsg = MessageUtil.copyMsg("[点击复制]", hash, "<gold>点击复制")
val shortHashMsg = shortHashMessage(hash)
player.openBook(bookMeta)
player.debugMiniMessage("$msgTitle <aqua>[debug] <dark_green>成功替换数据")
player.debugMiniMessage("$msgTitle <aqua>[debug] <aqua>hash</aqua>: <green>$hash</green> <gold>$copyMsg</gold>")
player.debugMiniMessage("$msgTitle <aqua>[debug] <aqua>hash</aqua>: <green>$shortHashMsg")
event.isCancelled = true
}
}
7 changes: 4 additions & 3 deletions src/main/kotlin/xyz/xasmc/hashbook/util/BookUtil.kt
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import xyz.xasmc.hashbook.service.StorageServices
import xyz.xasmc.hashbook.util.MessageUtil.debugMiniMessage
import xyz.xasmc.hashbook.util.MessageUtil.msgTitle
import xyz.xasmc.hashbook.util.MessageUtil.sendMiniMessage
import xyz.xasmc.hashbook.util.MessageUtil.shortHashMessage
import java.util.*

object BookUtil {
Expand Down Expand Up @@ -69,10 +70,10 @@ object BookUtil {
val serialized = serializePages(bookMeta.pages())
val hash = HashUtil.HashString(serialized)
StorageServices.save(hash, serialized)
val copyMsg = MessageUtil.copyMsg("[点击复制]", hash, "<gold>点击复制")
val shortHashMsg = shortHashMessage(hash)
player.debugMiniMessage("$msgTitle <aqua>[debug]<dark_green>已存储成书书页</dark_green>")
player.debugMiniMessage("$msgTitle <aqua>[debug]<aqua>hash</aqua>: <green>$hash</green> <gold>$copyMsg</gold>")
player.debugMiniMessage("$msgTitle <aqua>[debug]<aqua>meta</aqua>: <green>$bookMeta</green>")
player.debugMiniMessage("$msgTitle <aqua>[debug]<aqua>hash</aqua>: <green>$shortHashMsg")
player.debugMiniMessage("$msgTitle <aqua>[debug]<aqua>meta</aqua>: <green>$bookMeta")

newItem = ItemDataServices.setItemData(
newItem, "HashBook.Hash", ItemDataServices.DataType.String, hash
Expand Down
5 changes: 5 additions & 0 deletions src/main/kotlin/xyz/xasmc/hashbook/util/MessageUtil.kt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ object MessageUtil {
)
}

fun shortHashMessage(hash: String): String {
val shortHash = hash.substring(0..6)
return copyMsg(shortHash, hash, "<green>$hash</green>")
}

infix fun Player.sendMiniMessage(message: String) =
this.sendMessage(mm.deserialize(message))

Expand Down

0 comments on commit 912e10d

Please sign in to comment.