From 68defcf919362d2f0af34faf9cb84606a139c8c2 Mon Sep 17 00:00:00 2001 From: Syrent Date: Sat, 1 Jun 2024 22:28:17 +0330 Subject: [PATCH] feat: add fake message feature --- .../feature/features/FeatureFakeMessage.kt | 45 +++++++++++++++---- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/sayanvanish-bukkit/src/main/kotlin/org/sayandev/sayanvanish/bukkit/feature/features/FeatureFakeMessage.kt b/sayanvanish-bukkit/src/main/kotlin/org/sayandev/sayanvanish/bukkit/feature/features/FeatureFakeMessage.kt index f93bb22e..1f600a89 100644 --- a/sayanvanish-bukkit/src/main/kotlin/org/sayandev/sayanvanish/bukkit/feature/features/FeatureFakeMessage.kt +++ b/sayanvanish-bukkit/src/main/kotlin/org/sayandev/sayanvanish/bukkit/feature/features/FeatureFakeMessage.kt @@ -1,21 +1,16 @@ package org.sayandev.sayanvanish.bukkit.feature.features import org.bukkit.event.EventHandler -import org.bukkit.event.EventPriority import org.bukkit.event.player.PlayerJoinEvent import org.bukkit.event.player.PlayerQuitEvent -import org.sayandev.sayanvanish.api.Permission -import org.sayandev.sayanvanish.api.VanishOptions -import org.sayandev.stickynote.bukkit.utils.AdventureUtils.component import org.sayandev.sayanvanish.api.feature.RegisteredFeature -import org.sayandev.sayanvanish.bukkit.api.SayanVanishBukkitAPI -import org.sayandev.sayanvanish.bukkit.api.SayanVanishBukkitAPI.Companion.getOrCreateUser -import org.sayandev.sayanvanish.bukkit.api.SayanVanishBukkitAPI.Companion.user import org.sayandev.sayanvanish.bukkit.api.event.BukkitUserUnVanishEvent import org.sayandev.sayanvanish.bukkit.api.event.BukkitUserVanishEvent -import org.sayandev.sayanvanish.bukkit.config.language import org.sayandev.sayanvanish.bukkit.feature.ListenedFeature import org.sayandev.stickynote.bukkit.onlinePlayers +import org.sayandev.stickynote.bukkit.utils.AdventureUtils.component +import org.sayandev.stickynote.bukkit.utils.AdventureUtils.sendMessage +import org.sayandev.stickynote.bukkit.warn import org.sayandev.stickynote.lib.kyori.adventure.text.minimessage.tag.resolver.Placeholder import org.sayandev.stickynote.lib.spongepowered.configurate.objectmapping.ConfigSerializable @@ -26,12 +21,44 @@ class FeatureFakeMessage( val sendFakeQuitMessage: Boolean = false, val fakeJoinMessage: String = " joined the game", val fakeQuitMessage: String = " left the game", + val disableJoinMessageIfVanished: Boolean = true, + val disableQuitMessageIfVanished: Boolean = true, ) : ListenedFeature("fake_message") { - @EventHandler(priority = EventPriority.MONITOR) + @EventHandler private fun onJoin(event: PlayerJoinEvent) { if (!isActive()) return + if (disableJoinMessageIfVanished) { + event.joinMessage = null + } + } + + @EventHandler + private fun onQuit(event: PlayerQuitEvent) { + if (!isActive()) return + if (disableQuitMessageIfVanished) { + event.quitMessage = null + } + } + @EventHandler + private fun onVanish(event: BukkitUserVanishEvent) { + if (!isActive()) return + if (sendFakeQuitMessage && !event.options.isOnJoin) { + for (player in onlinePlayers) { + player.sendMessage(fakeQuitMessage.component(Placeholder.unparsed("player", event.user.username))) + } + } + } + + @EventHandler + private fun onUnVanish(event: BukkitUserUnVanishEvent) { + if (!isActive()) return + if (sendFakeJoinMessage && !event.options.isOnJoin) { + for (player in onlinePlayers) { + player.sendMessage(fakeJoinMessage.component(Placeholder.unparsed("player", event.user.username))) + } + } } } \ No newline at end of file