From 8cca1f79943490f849f8b6c744c5db6d92d2c05d Mon Sep 17 00:00:00 2001 From: Auxilor Date: Mon, 1 Jan 2024 17:59:02 +0000 Subject: [PATCH 1/6] Fixed 'death' event, fixed top damagers --- .../main/kotlin/com/willfp/ecomobs/EcoMobsPlugin.kt | 3 ++- .../main/kotlin/com/willfp/ecomobs/mob/LivingMob.kt | 2 +- .../willfp/ecomobs/mob/event/impl/MobEventKill.kt | 8 +++++++- .../com/willfp/ecomobs/mob/impl/LivingMobImpl.kt | 12 +++++++----- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/EcoMobsPlugin.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/EcoMobsPlugin.kt index 7593cb2..847b275 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/EcoMobsPlugin.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/EcoMobsPlugin.kt @@ -52,7 +52,8 @@ class EcoMobsPlugin : LibreforgePlugin() { VanillaCompatibilityHandlers(), DiscoverRecipeListener(this), SpawnEggHandler(this), - SpawnTotemHandler() + SpawnTotemHandler(), + topDamagerHandler ) } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/LivingMob.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/LivingMob.kt index 304a047..9c77382 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/LivingMob.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/LivingMob.kt @@ -27,7 +27,7 @@ interface LivingMob { /** * Kill the mob. */ - fun kill(player: Player?) + fun kill(player: Player?, removeTracking: Boolean = true) /** * Despawn the mob. diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventKill.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventKill.kt index 19ea603..424d7da 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventKill.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/event/impl/MobEventKill.kt @@ -33,6 +33,12 @@ object MobEventKill : MobEvent("kill") { Bukkit.getPluginManager().callEvent(EcoMobKillEvent(living, player)) living.handleEvent(this, data.dispatch(player.toDispatcher())) - living.kill(player) + + // Tracking isn't removed here because it's removed in MobEventDeath, which is called after this one. + // Otherwise, player kills wouldn't fire the death event. + living.kill( + player, + removeTracking = false + ) } } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/impl/LivingMobImpl.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/impl/LivingMobImpl.kt index c3105e4..f5575b4 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/impl/LivingMobImpl.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/impl/LivingMobImpl.kt @@ -19,7 +19,7 @@ internal class LivingMobImpl( private val plugin: EcoMobsPlugin, override val mob: EcoMob, override val entity: Mob, - private val deathCallback: () -> Unit + private val trackingRemovalCallback: () -> Unit ) : LivingMob { private val ticker = plugin.runnableFactory.create { tick(tick) @@ -77,8 +77,8 @@ internal class LivingMobImpl( mob.handleEvent(event, trigger) } - override fun kill(player: Player?) { - handleRemove() + override fun kill(player: Player?, removeTracking: Boolean) { + handleRemove(removeTracking = removeTracking) mob.spawnDrops(entity.location, player) } @@ -92,9 +92,11 @@ internal class LivingMobImpl( ) } - private fun handleRemove() { + private fun handleRemove(removeTracking: Boolean = true) { ticker.cancel() - deathCallback() + if (removeTracking) { + trackingRemovalCallback() + } for (handler in this.tickHandlers) { handler.onRemove(this, tick) From 11acfed77c9bd22a756b0316543777797ef96a6f Mon Sep 17 00:00:00 2001 From: Auxilor Date: Mon, 1 Jan 2024 18:05:27 +0000 Subject: [PATCH 2/6] Fixed top damager placeholders --- .../willfp/ecomobs/mob/damage/TopDamagers.kt | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/damage/TopDamagers.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/damage/TopDamagers.kt index 58e73fc..733290e 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/damage/TopDamagers.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/damage/TopDamagers.kt @@ -49,10 +49,21 @@ class TopDamagerHandler( fun generatePlaceholders(mob: Mob): List { return mob.topDamagers - .mapIndexed { index, damager -> - NamedValue("top_damager_${index + 1}_name", Bukkit.getOfflinePlayer(damager.uuid).name ?: "Unknown") - NamedValue("top_damager_${index + 1}_display", Bukkit.getOfflinePlayer(damager.uuid).savedDisplayName) - NamedValue("top_damager_${index + 1}_damage", damager.damage.toString()) + .flatMapIndexed { index, damager -> + listOf( + NamedValue( + "top_damager_${index + 1}_name", + Bukkit.getOfflinePlayer(damager.uuid).name ?: "Unknown" + ), + NamedValue( + "top_damager_${index + 1}_display", + Bukkit.getOfflinePlayer(damager.uuid).savedDisplayName + ), + NamedValue( + "top_damager_${index + 1}_damage", + damager.damage.toString() + ) + ) } } } From 93c5ce5b6c325f256f098ff68637ff57d8070087 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Mon, 1 Jan 2024 20:02:25 +0000 Subject: [PATCH 3/6] libreforge-updater --- .../kotlin/com/willfp/ecomobs/mob/damage/TopDamagers.kt | 1 + gradle.properties | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/damage/TopDamagers.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/damage/TopDamagers.kt index 733290e..c7b7a4d 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/damage/TopDamagers.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/damage/TopDamagers.kt @@ -4,6 +4,7 @@ import com.willfp.eco.util.savedDisplayName import com.willfp.eco.util.tryAsPlayer import com.willfp.ecomobs.EcoMobsPlugin import com.willfp.libreforge.NamedValue +import com.willfp.libreforge.triggers.TriggerData import org.bukkit.Bukkit import org.bukkit.entity.Mob import org.bukkit.event.EventHandler diff --git a/gradle.properties b/gradle.properties index a69cba0..de75380 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ #libreforge-updater -#Sun Dec 24 14:55:22 CET 2023 +#Mon Jan 01 20:02:24 GMT 2024 kotlin.code.style=official -libreforge-version=4.51.0 -version=10.0.0-b2 +libreforge-version=4.52.0 +version=10.0.0-b3 From 47e9ff13dc221784c19b4c8b4a76e2c35426face Mon Sep 17 00:00:00 2001 From: Auxilor Date: Wed, 3 Jan 2024 16:45:37 +0000 Subject: [PATCH 4/6] Improved top damager placeholders --- .../main/kotlin/com/willfp/ecomobs/mob/damage/TopDamagers.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/damage/TopDamagers.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/damage/TopDamagers.kt index c7b7a4d..7672451 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/damage/TopDamagers.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomobs/mob/damage/TopDamagers.kt @@ -1,6 +1,7 @@ package com.willfp.ecomobs.mob.damage import com.willfp.eco.util.savedDisplayName +import com.willfp.eco.util.toNiceString import com.willfp.eco.util.tryAsPlayer import com.willfp.ecomobs.EcoMobsPlugin import com.willfp.libreforge.NamedValue @@ -62,7 +63,7 @@ class TopDamagerHandler( ), NamedValue( "top_damager_${index + 1}_damage", - damager.damage.toString() + damager.damage.toNiceString() ) ) } From ce24ea4cf45300c6179dc53dbab581b4eadef7b6 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Wed, 3 Jan 2024 16:45:47 +0000 Subject: [PATCH 5/6] Updated to 10.0.0-b4 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index de75380..645e20f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,4 +2,4 @@ #Mon Jan 01 20:02:24 GMT 2024 kotlin.code.style=official libreforge-version=4.52.0 -version=10.0.0-b3 +version=10.0.0-b4 From e4a805c627e19d63aab967e3791aaf3a42ab75b5 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Thu, 4 Jan 2024 17:25:24 +0000 Subject: [PATCH 6/6] libreforge-updater --- gradle.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index 645e20f..4672f70 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ #libreforge-updater -#Mon Jan 01 20:02:24 GMT 2024 +#Thu Jan 04 17:25:24 GMT 2024 kotlin.code.style=official -libreforge-version=4.52.0 -version=10.0.0-b4 +libreforge-version=4.53.0 +version=10.0.0-b5