From 8ae96cb3f7092a9eadf2cf02a97daed0db2604f8 Mon Sep 17 00:00:00 2001 From: XiYang6666 <1782356858@qq.com> Date: Wed, 7 Aug 2024 22:33:44 +0800 Subject: [PATCH] :bug: fix player quit --- .../kotlin/xyz/xasmc/hashbook/listener/BookshelfListener.kt | 6 ++++++ src/main/kotlin/xyz/xasmc/hashbook/util/MarkUtil.kt | 3 --- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/xyz/xasmc/hashbook/listener/BookshelfListener.kt b/src/main/kotlin/xyz/xasmc/hashbook/listener/BookshelfListener.kt index 845bd52..64dfab1 100644 --- a/src/main/kotlin/xyz/xasmc/hashbook/listener/BookshelfListener.kt +++ b/src/main/kotlin/xyz/xasmc/hashbook/listener/BookshelfListener.kt @@ -5,6 +5,7 @@ import org.bukkit.block.ChiseledBookshelf import org.bukkit.event.EventHandler import org.bukkit.event.Listener import org.bukkit.event.player.PlayerMoveEvent +import org.bukkit.event.player.PlayerQuitEvent import org.bukkit.inventory.meta.BookMeta import org.bukkit.inventory.meta.BookMeta.Generation.* import xyz.xasmc.hashbook.util.MarkUtil @@ -58,4 +59,9 @@ class BookshelfListener : Listener { } MarkUtil.updateMark(player, markLocation.toLocation(world), nameSb.toString()) } + + @EventHandler + fun onPlayerQuit(event: PlayerQuitEvent) { + MarkUtil.removeMark(event.player) + } } diff --git a/src/main/kotlin/xyz/xasmc/hashbook/util/MarkUtil.kt b/src/main/kotlin/xyz/xasmc/hashbook/util/MarkUtil.kt index 583add9..91c45a7 100644 --- a/src/main/kotlin/xyz/xasmc/hashbook/util/MarkUtil.kt +++ b/src/main/kotlin/xyz/xasmc/hashbook/util/MarkUtil.kt @@ -17,15 +17,12 @@ object MarkUtil { val count = textList.size val interval = 0.2 val offset = -0.4 - val marks = playerMark[player] ?: mutableListOf().also { playerMark[player] = it } - val currentCount = marks.size when { count > currentCount -> repeat(count - currentCount) { marks.add(createArmorStand(world)) } count < currentCount -> repeat(currentCount - count) { marks.removeLast()?.remove() } } - val top = location.clone().add(0.0, interval * count / 2 + offset, 0.0) textList.forEachIndexed { i, it -> val mark = playerMark[player]!![i]