mirror of
https://github.com/Auxilor/EcoMobs.git
synced 2025-12-22 16:39:25 +00:00
Adapted pull request
This commit is contained in:
@@ -14,8 +14,21 @@ import com.willfp.eco.core.recipe.recipes.CraftingRecipe
|
|||||||
import com.willfp.eco.util.toComponent
|
import com.willfp.eco.util.toComponent
|
||||||
import com.willfp.ecobosses.events.BossKillEvent
|
import com.willfp.ecobosses.events.BossKillEvent
|
||||||
import com.willfp.ecobosses.lifecycle.BossLifecycle
|
import com.willfp.ecobosses.lifecycle.BossLifecycle
|
||||||
import com.willfp.ecobosses.tick.*
|
import com.willfp.ecobosses.tick.BossBarTicker
|
||||||
import com.willfp.ecobosses.util.*
|
import com.willfp.ecobosses.tick.BossTicker
|
||||||
|
import com.willfp.ecobosses.tick.DisplayNameTicker
|
||||||
|
import com.willfp.ecobosses.tick.LifespanTicker
|
||||||
|
import com.willfp.ecobosses.tick.TargetTicker
|
||||||
|
import com.willfp.ecobosses.tick.TeleportHandler
|
||||||
|
import com.willfp.ecobosses.util.BossDrop
|
||||||
|
import com.willfp.ecobosses.util.CommandReward
|
||||||
|
import com.willfp.ecobosses.util.ConfiguredSound
|
||||||
|
import com.willfp.ecobosses.util.LocalBroadcast
|
||||||
|
import com.willfp.ecobosses.util.LocalCommands
|
||||||
|
import com.willfp.ecobosses.util.PlayableSound
|
||||||
|
import com.willfp.ecobosses.util.SpawnTotem
|
||||||
|
import com.willfp.ecobosses.util.XpReward
|
||||||
|
import com.willfp.ecobosses.util.topDamagers
|
||||||
import com.willfp.libreforge.Holder
|
import com.willfp.libreforge.Holder
|
||||||
import com.willfp.libreforge.conditions.Conditions
|
import com.willfp.libreforge.conditions.Conditions
|
||||||
import com.willfp.libreforge.effects.Effects
|
import com.willfp.libreforge.effects.Effects
|
||||||
@@ -27,7 +40,8 @@ import org.bukkit.entity.LivingEntity
|
|||||||
import org.bukkit.entity.Player
|
import org.bukkit.entity.Player
|
||||||
import org.bukkit.inventory.ItemStack
|
import org.bukkit.inventory.ItemStack
|
||||||
import org.bukkit.persistence.PersistentDataType
|
import org.bukkit.persistence.PersistentDataType
|
||||||
import java.util.*
|
import java.util.Objects
|
||||||
|
import java.util.UUID
|
||||||
|
|
||||||
class EcoBoss(
|
class EcoBoss(
|
||||||
val config: Config,
|
val config: Config,
|
||||||
@@ -190,13 +204,11 @@ class EcoBoss(
|
|||||||
map
|
map
|
||||||
}
|
}
|
||||||
|
|
||||||
private val commands: Map<BossLifecycle, Iterable<LocalCommands>> = run {
|
private val commands: Map<BossLifecycle, LocalCommands> = run {
|
||||||
val map = mutableMapOf<BossLifecycle, Iterable<LocalCommands>>()
|
val map = mutableMapOf<BossLifecycle, LocalCommands>()
|
||||||
|
|
||||||
for (value in BossLifecycle.values()) {
|
for (value in BossLifecycle.values()) {
|
||||||
map[value] = config.getSubsections("messages.${value.name.lowercase()}").map {
|
map[value] = LocalCommands(config.getStrings("commands.${value.name.lowercase()}"))
|
||||||
LocalCommands.fromConfig(it)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
map
|
map
|
||||||
@@ -297,7 +309,11 @@ class EcoBoss(
|
|||||||
mob.isPersistent = true
|
mob.isPersistent = true
|
||||||
mob.isCustomNameVisible = true
|
mob.isCustomNameVisible = true
|
||||||
mob.removeWhenFarAway = false
|
mob.removeWhenFarAway = false
|
||||||
mob.persistentDataContainer.set(plugin.namespacedKeyFactory.create("boss"), PersistentDataType.STRING, "backwards_compat")
|
mob.persistentDataContainer.set(
|
||||||
|
plugin.namespacedKeyFactory.create("boss"),
|
||||||
|
PersistentDataType.STRING,
|
||||||
|
"backwards_compat"
|
||||||
|
)
|
||||||
|
|
||||||
val boss = LivingEcoBoss(
|
val boss = LivingEcoBoss(
|
||||||
plugin,
|
plugin,
|
||||||
@@ -336,8 +352,7 @@ class EcoBoss(
|
|||||||
fun handleLifecycle(lifecycle: BossLifecycle, location: Location, entity: LivingEntity?) {
|
fun handleLifecycle(lifecycle: BossLifecycle, location: Location, entity: LivingEntity?) {
|
||||||
sounds[lifecycle]?.play(location)
|
sounds[lifecycle]?.play(location)
|
||||||
messages[lifecycle]?.forEach { it.broadcast(location, entity?.topDamagers ?: emptyList()) }
|
messages[lifecycle]?.forEach { it.broadcast(location, entity?.topDamagers ?: emptyList()) }
|
||||||
commands[lifecycle]?.forEach { it.dispatch(location, entity?.topDamagers ?: emptyList()) }
|
commands[lifecycle]?.dispatch(location, entity?.topDamagers ?: emptyList())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun processRewards(event: BossKillEvent) {
|
fun processRewards(event: BossKillEvent) {
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package com.willfp.ecobosses.util
|
|||||||
|
|
||||||
import com.willfp.eco.core.config.interfaces.Config
|
import com.willfp.eco.core.config.interfaces.Config
|
||||||
import com.willfp.eco.util.NumberUtils
|
import com.willfp.eco.util.NumberUtils
|
||||||
import com.willfp.eco.util.formatEco
|
|
||||||
import com.willfp.eco.util.savedDisplayName
|
import com.willfp.eco.util.savedDisplayName
|
||||||
import com.willfp.ecobosses.EcoBossesPlugin
|
import com.willfp.ecobosses.EcoBossesPlugin
|
||||||
import org.bukkit.Bukkit
|
import org.bukkit.Bukkit
|
||||||
@@ -27,24 +26,13 @@ data class LocalCommands(
|
|||||||
.replace("%damage_${i}_player%", player)
|
.replace("%damage_${i}_player%", player)
|
||||||
}
|
}
|
||||||
|
|
||||||
command = command.replace("%x%", location.blockX.toString())
|
command.replace("%x%", location.blockX.toString())
|
||||||
.replace("%y%", location.blockY.toString())
|
.replace("%y%", location.blockY.toString())
|
||||||
.replace("%z%", location.blockZ.toString())
|
.replace("%z%", location.blockZ.toString())
|
||||||
|
|
||||||
command.formatEco()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (s in toDispatch) {
|
for (s in toDispatch) {
|
||||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), s);
|
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), s);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
fun fromConfig(config: Config): LocalCommands {
|
|
||||||
return LocalCommands(
|
|
||||||
config.getStrings("commands"),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -123,6 +123,13 @@ bosses:
|
|||||||
- iron_block
|
- iron_block
|
||||||
- netherite_block
|
- netherite_block
|
||||||
- iron_block
|
- iron_block
|
||||||
|
commands:
|
||||||
|
# For each category, you can add as many commands as you want, which will be executed by
|
||||||
|
# console. Supported placeholders are the same as for messages (see below)
|
||||||
|
spawn: [ ]
|
||||||
|
kill: [ ]
|
||||||
|
despawn: [ ]
|
||||||
|
injure: [ ]
|
||||||
messages:
|
messages:
|
||||||
# For each category, you can add as many messages as you want, each with their own radius.
|
# For each category, you can add as many messages as you want, each with their own radius.
|
||||||
# Radius is the distance from the boss where the player will be sent the message
|
# Radius is the distance from the boss where the player will be sent the message
|
||||||
|
|||||||
Reference in New Issue
Block a user