9
0
mirror of https://github.com/Auxilor/EcoMobs.git synced 2025-12-19 23:19:17 +00:00

Compare commits

...

9 Commits

Author SHA1 Message Date
Auxilor
e4a805c627 libreforge-updater 2024-01-04 17:25:24 +00:00
Auxilor
ce24ea4cf4 Updated to 10.0.0-b4 2024-01-03 16:45:47 +00:00
Auxilor
47e9ff13dc Improved top damager placeholders 2024-01-03 16:45:37 +00:00
Auxilor
93c5ce5b6c libreforge-updater 2024-01-01 20:02:25 +00:00
Auxilor
11acfed77c Fixed top damager placeholders 2024-01-01 18:05:27 +00:00
Auxilor
8cca1f7994 Fixed 'death' event, fixed top damagers 2024-01-01 17:59:02 +00:00
Will FP
f6a40d84f7 Updated to 10.0.0-b2 2023-12-30 13:34:28 +01:00
Will FP
9e663e89e8 Fixed model engine integration 2023-12-30 13:34:17 +01:00
Will FP
58b0ba6b81 Updated bStats ID 2023-12-28 16:45:23 +01:00
8 changed files with 39 additions and 17 deletions

View File

@@ -52,7 +52,8 @@ class EcoMobsPlugin : LibreforgePlugin() {
VanillaCompatibilityHandlers(), VanillaCompatibilityHandlers(),
DiscoverRecipeListener(this), DiscoverRecipeListener(this),
SpawnEggHandler(this), SpawnEggHandler(this),
SpawnTotemHandler() SpawnTotemHandler(),
topDamagerHandler
) )
} }

View File

@@ -21,7 +21,7 @@ class IntegrationModelEngine : Listener, Integration {
val modelled = ModelEngineBridge.instance.createModeledEntity(entity) val modelled = ModelEngineBridge.instance.createModeledEntity(entity)
modelled.addModel(model) modelled.addModel(model)
modelled.isBaseEntityVisible = true modelled.isBaseEntityVisible = false
} }
override fun getPluginName(): String { override fun getPluginName(): String {

View File

@@ -27,7 +27,7 @@ interface LivingMob {
/** /**
* Kill the mob. * Kill the mob.
*/ */
fun kill(player: Player?) fun kill(player: Player?, removeTracking: Boolean = true)
/** /**
* Despawn the mob. * Despawn the mob.

View File

@@ -1,9 +1,11 @@
package com.willfp.ecomobs.mob.damage package com.willfp.ecomobs.mob.damage
import com.willfp.eco.util.savedDisplayName import com.willfp.eco.util.savedDisplayName
import com.willfp.eco.util.toNiceString
import com.willfp.eco.util.tryAsPlayer import com.willfp.eco.util.tryAsPlayer
import com.willfp.ecomobs.EcoMobsPlugin import com.willfp.ecomobs.EcoMobsPlugin
import com.willfp.libreforge.NamedValue import com.willfp.libreforge.NamedValue
import com.willfp.libreforge.triggers.TriggerData
import org.bukkit.Bukkit import org.bukkit.Bukkit
import org.bukkit.entity.Mob import org.bukkit.entity.Mob
import org.bukkit.event.EventHandler import org.bukkit.event.EventHandler
@@ -49,10 +51,21 @@ class TopDamagerHandler(
fun generatePlaceholders(mob: Mob): List<NamedValue> { fun generatePlaceholders(mob: Mob): List<NamedValue> {
return mob.topDamagers return mob.topDamagers
.mapIndexed { index, damager -> .flatMapIndexed { index, damager ->
NamedValue("top_damager_${index + 1}_name", Bukkit.getOfflinePlayer(damager.uuid).name ?: "Unknown") listOf(
NamedValue("top_damager_${index + 1}_display", Bukkit.getOfflinePlayer(damager.uuid).savedDisplayName) NamedValue(
NamedValue("top_damager_${index + 1}_damage", damager.damage.toString()) "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.toNiceString()
)
)
} }
} }
} }

View File

@@ -33,6 +33,12 @@ object MobEventKill : MobEvent("kill") {
Bukkit.getPluginManager().callEvent(EcoMobKillEvent(living, player)) Bukkit.getPluginManager().callEvent(EcoMobKillEvent(living, player))
living.handleEvent(this, data.dispatch(player.toDispatcher())) 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
)
} }
} }

View File

@@ -19,7 +19,7 @@ internal class LivingMobImpl(
private val plugin: EcoMobsPlugin, private val plugin: EcoMobsPlugin,
override val mob: EcoMob, override val mob: EcoMob,
override val entity: Mob, override val entity: Mob,
private val deathCallback: () -> Unit private val trackingRemovalCallback: () -> Unit
) : LivingMob { ) : LivingMob {
private val ticker = plugin.runnableFactory.create { private val ticker = plugin.runnableFactory.create {
tick(tick) tick(tick)
@@ -77,8 +77,8 @@ internal class LivingMobImpl(
mob.handleEvent(event, trigger) mob.handleEvent(event, trigger)
} }
override fun kill(player: Player?) { override fun kill(player: Player?, removeTracking: Boolean) {
handleRemove() handleRemove(removeTracking = removeTracking)
mob.spawnDrops(entity.location, player) mob.spawnDrops(entity.location, player)
} }
@@ -92,9 +92,11 @@ internal class LivingMobImpl(
) )
} }
private fun handleRemove() { private fun handleRemove(removeTracking: Boolean = true) {
ticker.cancel() ticker.cancel()
deathCallback() if (removeTracking) {
trackingRemovalCallback()
}
for (handler in this.tickHandlers) { for (handler in this.tickHandlers) {
handler.onRemove(this, tick) handler.onRemove(this, tick)

View File

@@ -4,6 +4,6 @@ environment:
options: options:
resource-id: 525 resource-id: 525
bstats-id: 10635 bstats-id: 20581
color: "&9" color: "&9"
proxy-package: "com.willfp.ecomobs.nms" proxy-package: "com.willfp.ecomobs.nms"

View File

@@ -1,5 +1,5 @@
#libreforge-updater #libreforge-updater
#Sun Dec 24 14:55:22 CET 2023 #Thu Jan 04 17:25:24 GMT 2024
kotlin.code.style=official kotlin.code.style=official
libreforge-version=4.51.0 libreforge-version=4.53.0
version=10.0.0-b1 version=10.0.0-b5