mirror of
https://github.com/Auxilor/EcoMobs.git
synced 2025-12-19 15:09:17 +00:00
Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
25844170eb | ||
|
|
00cc509b40 | ||
|
|
77e46ffb55 | ||
|
|
1f72e3b9b3 | ||
|
|
a94a5cc04d | ||
|
|
2b8d8eb20a | ||
|
|
1b4851fb9c | ||
|
|
80181bb66e | ||
|
|
d2d6355003 | ||
|
|
b44016d4fe | ||
|
|
74f1953074 | ||
|
|
041e8e070e | ||
|
|
d69b205de5 | ||
|
|
ad827f2b65 | ||
|
|
e8b8dcd2c4 | ||
|
|
e54660cf5e |
@@ -63,7 +63,7 @@ allprojects {
|
||||
|
||||
dependencies {
|
||||
compileOnly 'com.willfp:eco:6.35.1'
|
||||
implementation 'com.willfp:libreforge:3.87.2'
|
||||
implementation 'com.willfp:libreforge:3.95.0'
|
||||
implementation 'org.joml:joml:1.10.4'
|
||||
|
||||
compileOnly 'org.jetbrains:annotations:23.0.0'
|
||||
@@ -85,6 +85,7 @@ allprojects {
|
||||
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile) {
|
||||
kotlinOptions {
|
||||
jvmTarget = "17"
|
||||
freeCompilerArgs += ["-Xjvm-default=all"]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ import com.willfp.ecobosses.bosses.Bosses
|
||||
import com.willfp.ecobosses.bosses.EggDisplay
|
||||
import com.willfp.ecobosses.bosses.bossHolders
|
||||
import com.willfp.ecobosses.commands.CommandEcobosses
|
||||
import com.willfp.ecobosses.config.EcoBossesYml
|
||||
import com.willfp.ecobosses.defence.DamageMultiplierHandler
|
||||
import com.willfp.ecobosses.defence.ImmunitiesHandler
|
||||
import com.willfp.ecobosses.defence.MountHandler
|
||||
@@ -26,14 +25,15 @@ import com.willfp.libreforge.LibReforgePlugin
|
||||
import org.bukkit.event.Listener
|
||||
|
||||
class EcoBossesPlugin : LibReforgePlugin() {
|
||||
val ecoBossesYml: EcoBossesYml
|
||||
|
||||
init {
|
||||
instance = this
|
||||
ecoBossesYml = EcoBossesYml(this)
|
||||
registerHolderProvider { it.bossHolders }
|
||||
}
|
||||
|
||||
override fun handleEnableAdditional() {
|
||||
this.copyConfigs("bosses")
|
||||
}
|
||||
|
||||
override fun handleReloadAdditional() {
|
||||
Bosses.getAllAlive().forEach { it.remove() }
|
||||
|
||||
|
||||
@@ -3,11 +3,13 @@ package com.willfp.ecobosses.bosses
|
||||
import com.google.common.collect.BiMap
|
||||
import com.google.common.collect.HashBiMap
|
||||
import com.google.common.collect.ImmutableList
|
||||
import com.willfp.eco.core.config.ConfigType
|
||||
import com.willfp.eco.core.config.TransientConfig
|
||||
import com.willfp.eco.core.config.updating.ConfigUpdater
|
||||
import com.willfp.ecobosses.EcoBossesPlugin
|
||||
import com.willfp.libreforge.chains.EffectChains
|
||||
import org.bukkit.entity.LivingEntity
|
||||
import java.util.UUID
|
||||
import java.io.File
|
||||
import java.util.*
|
||||
|
||||
object Bosses {
|
||||
/**
|
||||
@@ -44,16 +46,18 @@ object Bosses {
|
||||
@ConfigUpdater
|
||||
@JvmStatic
|
||||
fun update(plugin: EcoBossesPlugin) {
|
||||
plugin.ecoBossesYml.getSubsections("chains").mapNotNull {
|
||||
EffectChains.compile(it, "Effect Chains")
|
||||
}
|
||||
|
||||
for (boss in values()) {
|
||||
removeBoss(boss)
|
||||
}
|
||||
|
||||
for (bossConfig in plugin.ecoBossesYml.getSubsections("bosses")) {
|
||||
addNewBoss(EcoBoss(bossConfig, plugin))
|
||||
for ((id, config) in plugin.fetchConfigs("bosses")) {
|
||||
addNewBoss(EcoBoss(id, config, plugin))
|
||||
}
|
||||
|
||||
val ecoBossesYml = TransientConfig(File(plugin.dataFolder, "ecobosses.yml"), ConfigType.YAML)
|
||||
|
||||
for (bossConfig in ecoBossesYml.getSubsections("bosses")) {
|
||||
addNewBoss(EcoBoss(bossConfig.getString("id"), bossConfig, plugin))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,11 @@ import com.willfp.eco.core.config.interfaces.Config
|
||||
import com.willfp.eco.core.entities.CustomEntity
|
||||
import com.willfp.eco.core.entities.Entities
|
||||
import com.willfp.eco.core.entities.TestableEntity
|
||||
import com.willfp.eco.core.entities.ai.*
|
||||
import com.willfp.eco.core.entities.ai.EntityController
|
||||
import com.willfp.eco.core.entities.ai.EntityGoal
|
||||
import com.willfp.eco.core.entities.ai.EntityGoals
|
||||
import com.willfp.eco.core.entities.ai.TargetGoal
|
||||
import com.willfp.eco.core.entities.ai.TargetGoals
|
||||
import com.willfp.eco.core.items.CustomItem
|
||||
import com.willfp.eco.core.items.Items
|
||||
import com.willfp.eco.core.items.builder.ItemStackBuilder
|
||||
@@ -16,8 +20,22 @@ import com.willfp.eco.util.NamespacedKeyUtils
|
||||
import com.willfp.eco.util.toComponent
|
||||
import com.willfp.ecobosses.events.BossKillEvent
|
||||
import com.willfp.ecobosses.lifecycle.BossLifecycle
|
||||
import com.willfp.ecobosses.tick.*
|
||||
import com.willfp.ecobosses.util.*
|
||||
import com.willfp.ecobosses.tick.BossBarTicker
|
||||
import com.willfp.ecobosses.tick.BossTicker
|
||||
import com.willfp.ecobosses.tick.ChunkTicker
|
||||
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.conditions.Conditions
|
||||
import com.willfp.libreforge.effects.Effects
|
||||
@@ -33,11 +51,10 @@ import org.bukkit.persistence.PersistentDataType
|
||||
import java.util.*
|
||||
|
||||
class EcoBoss(
|
||||
override val id: String,
|
||||
val config: Config,
|
||||
private val plugin: EcoPlugin
|
||||
) : Holder {
|
||||
override val id: String = config.getString("id")
|
||||
|
||||
val displayName: String = config.getString("displayName")
|
||||
|
||||
val lifespan = config.getInt("lifespan")
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
package com.willfp.ecobosses.config
|
||||
|
||||
import com.willfp.eco.core.config.BaseConfig
|
||||
import com.willfp.eco.core.config.ConfigType
|
||||
import com.willfp.ecobosses.EcoBossesPlugin
|
||||
|
||||
class EcoBossesYml(plugin: EcoBossesPlugin) : BaseConfig(
|
||||
"ecobosses",
|
||||
plugin,
|
||||
true,
|
||||
ConfigType.YAML
|
||||
)
|
||||
189
eco-core/core-plugin/src/main/resources/bosses/_example.yml
Normal file
189
eco-core/core-plugin/src/main/resources/bosses/_example.yml
Normal file
@@ -0,0 +1,189 @@
|
||||
# The ID of the boss is the name of the .yml file,
|
||||
# for example steel_golem.yml has the ID of steel_golem
|
||||
# You can place bosses anywhere in this folder,
|
||||
# including in subfolders if you want to organize your boss configs
|
||||
# _example.yml is not loaded.
|
||||
|
||||
# A base mob and modifiers
|
||||
# View an explanation for this system here: https://plugins.auxilor.io/all-plugins/the-entity-lookup-system
|
||||
mob: iron_golem attack-damage:90 movement-speed:1.5 follow-range:16 health:1200
|
||||
# Supported placeholders: %health%, %time% (formats as minutes:seconds, eg 1:56)
|
||||
displayName: "&8Steel Golem &7| &c%health%♥ &7| &e%time%"
|
||||
influence: 40 # The distance at which effects will be applied to players
|
||||
customai: # Custom mob AI using the entity goal system.
|
||||
enabled: false # If custom AI should be enabled, this will override the vanilla mob behaviour.
|
||||
target-goals: [ ] # How the boss decides who to attack, if the target mode isn't being used.
|
||||
ai-goals: [ ] # How the boss should behave.
|
||||
effects: # Effects are done from the player's perspective: to treat the player as the victim, use the self_as_victim option in args
|
||||
- id: run_chain
|
||||
args:
|
||||
chain: blind
|
||||
self_as_victim: true
|
||||
chance: 20
|
||||
triggers:
|
||||
- static_20
|
||||
conditions: [ ] # Conditions to apply effects to players; useful if you don't want to affect low-level players
|
||||
lifespan: 120 # The lifespan of the boss before it despawns, in seconds. Set to a massive number to disable.
|
||||
defence:
|
||||
preventMounts: true # If the boss shouldn't be able to get into boats, minecarts, etc
|
||||
explosionImmune: true # If the boss should be immune to explosions
|
||||
fireImmune: true # If the boss should be immune to fire damage
|
||||
drowningImmune: true # If the boss should be immune to drowning damage
|
||||
suffocationImmune: true # If the boss should be immune to suffocation
|
||||
|
||||
meleeDamageMultiplier: 0.8 # Incoming melee damage will be multiplied by this value. Set to 0 to render immune against melee
|
||||
projectileDamageMultiplier: 0.2 # Same as melee multiplier, but for projectiles
|
||||
|
||||
teleportation: # Teleport every x ticks in order to avoid being caged in obsidian or similar
|
||||
enabled: true # If the boss should teleport
|
||||
interval: 100 # Ticks between teleportation attempts
|
||||
range: 20 # The range that the boss should check for safe teleportation blocks.
|
||||
rewards:
|
||||
xp: # Experience will be randomly generated between these values
|
||||
minimum: 30000
|
||||
maximum: 60000
|
||||
topDamagerCommands:
|
||||
# You can specify as many ranks as you want (adding 4, 5, etc)
|
||||
# You can use %player% as a placeholder for the player name
|
||||
1:
|
||||
- chance: 100 # As a percentage
|
||||
commands:
|
||||
- eco give %player% 10000
|
||||
2: [ ]
|
||||
3: [ ]
|
||||
nearbyPlayerCommands:
|
||||
# Commands to be executed for all players near the boss death location
|
||||
radius: 10
|
||||
# Uses the same syntax as top damager commands (chance and a list of commands, can use %player%)
|
||||
commands: [ ]
|
||||
# You can specify as many drops as you want, and group several drops together under one chance
|
||||
drops:
|
||||
- chance: 100
|
||||
items:
|
||||
- diamond_sword unbreaking:1 name:"Example Sword"
|
||||
target:
|
||||
# How the boss should choose which player to attack, choices are:
|
||||
# highest_health, lowest_health, closest, random
|
||||
mode: highest_health
|
||||
# The distance to scan for players
|
||||
range: 40
|
||||
bossBar:
|
||||
# If the boss should have a boss bar
|
||||
enabled: true
|
||||
color: white # Options: blue, green, pink, purple, red, white, yellow
|
||||
style: progress # Options: progress, notched_20, notched_12, notched_10, notched_6
|
||||
radius: 120 # The distance from the boss where the boss bar is visible
|
||||
spawn:
|
||||
# A list of conditions required for a player to be able to spawn a boss, useful to set
|
||||
# minimum skill levels, etc
|
||||
conditions: [ ]
|
||||
autospawn:
|
||||
# Spawn the boss automatically every x ticks. Picks a random location, but will only
|
||||
# ever spawn in a world if there are no other bosses of that type in the world.
|
||||
interval: -1 # The interval in ticks, set to -1 to disable
|
||||
locations: # Add as many locations as you want
|
||||
- world: world
|
||||
x: 100
|
||||
y: 100
|
||||
z: 100
|
||||
totem:
|
||||
enabled: false # A spawn totem is a set of 3 blocks on top of each other to spawn a boss (like a snow golem)
|
||||
top: netherite_block
|
||||
middle: iron_block
|
||||
bottom: magma_block
|
||||
notInWorlds: [ ] # If spawn totems should be disallowed in certain worlds, specify them here
|
||||
egg:
|
||||
enabled: true # If the boss should have a spawn egg
|
||||
item: evoker_spawn_egg unbreaking:1 hide_enchants
|
||||
name: "&8Steel Golem&f Spawn Egg"
|
||||
lore:
|
||||
- ""
|
||||
- "&8&oPlace on the ground to"
|
||||
- "&8&osummon a &8Steel Golem"
|
||||
craftable: true
|
||||
recipe:
|
||||
- iron_block
|
||||
- netherite_block
|
||||
- iron_block
|
||||
- air
|
||||
- ecoitems:boss_core ? nether_star
|
||||
- air
|
||||
- iron_block
|
||||
- netherite_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:
|
||||
# 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
|
||||
# Set to -1 to broadcast globally to all players online
|
||||
|
||||
# Supported placeholders: %x%, %y%, %z% (coordinates)
|
||||
spawn:
|
||||
- message:
|
||||
- ""
|
||||
- "&fA &8&lSteel Golem&r&f has been spawned!"
|
||||
- "&fCome fight it at &8%x%&f, &8%y%&f, &8%z%&f!"
|
||||
- ""
|
||||
radius: -1
|
||||
|
||||
# Supported placeholders: %damage_<x>_player%, %damage_<X>%
|
||||
# You can include as many ranks as you want - if there is no player at a certain rank,
|
||||
# it will be replaced with N/A (change in lang.yml)
|
||||
kill:
|
||||
- message:
|
||||
- ""
|
||||
- "&fThe &8&lSteel Golem&r&f has been killed!"
|
||||
- "&fMost Damage:"
|
||||
- "&f - &8%damage_1_player%&f (%damage_1% Damage)"
|
||||
- "&f - &8%damage_2_player%&f (%damage_2% Damage)"
|
||||
- "&f - &8%damage_3_player%&f (%damage_3% Damage)"
|
||||
- ""
|
||||
radius: -1
|
||||
despawn:
|
||||
- message:
|
||||
- ""
|
||||
- "&fYou ran out of time to kill the &8&lSteel Golem&r&f!"
|
||||
- ""
|
||||
radius: -1
|
||||
injure: [ ]
|
||||
|
||||
# All sounds will be played together at the same time
|
||||
# A list of sounds can be found here: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html
|
||||
# Volume functions as the distance at which the sound will be heard
|
||||
# Pitch is any value between 0.5 and 2
|
||||
# If you don't want the vanilla mob sounds, add 'silent' as an option to the mob
|
||||
sounds:
|
||||
spawn:
|
||||
- sound: entity_iron_golem_death
|
||||
pitch: 0.8
|
||||
volume: 100
|
||||
- sound: entity_iron_golem_hurt
|
||||
pitch: 0.5
|
||||
volume: 100
|
||||
- sound: entity_ender_dragon_growl
|
||||
pitch: 0.5
|
||||
volume: 100
|
||||
kill:
|
||||
- sound: entity_ender_dragon_death
|
||||
pitch: 1.8
|
||||
volume: 100
|
||||
- sound: entity_wither_death
|
||||
pitch: 1.2
|
||||
volume: 100
|
||||
despawn:
|
||||
- sound: entity_ender_dragon_ambient
|
||||
pitch: 0.5
|
||||
volume: 50
|
||||
- sound: entity_enderman_death
|
||||
pitch: 0.5
|
||||
volume: 50
|
||||
injure:
|
||||
- sound: entity_iron_golem_damage
|
||||
pitch: 0.7
|
||||
volume: 10
|
||||
21
eco-core/core-plugin/src/main/resources/chains.yml
Normal file
21
eco-core/core-plugin/src/main/resources/chains.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
# Read more about chains: https://plugins.auxilor.io/effects/configuring-an-effect#effect-chains
|
||||
|
||||
chains:
|
||||
- id: example_chain
|
||||
effects:
|
||||
- id: teleport
|
||||
- id: potion_effect
|
||||
args:
|
||||
effect: blindness
|
||||
level: 3
|
||||
duration: 30
|
||||
apply_to_player: true
|
||||
- id: send_message
|
||||
args:
|
||||
message: "&fYou have been teleported!"
|
||||
action_bar: true
|
||||
- id: play_sound
|
||||
args:
|
||||
sound: entity_dragon_fireball_explode
|
||||
pitch: 1.5
|
||||
volume: 4
|
||||
@@ -1,205 +0,0 @@
|
||||
chains:
|
||||
- id: blind
|
||||
effects:
|
||||
- id: teleport
|
||||
- id: potion_effect
|
||||
args:
|
||||
effect: blindness
|
||||
level: 3
|
||||
duration: 30
|
||||
apply_to_player: true
|
||||
- id: send_message
|
||||
args:
|
||||
message: "&cYou have been blinded!"
|
||||
action_bar: true
|
||||
- id: play_sound
|
||||
args:
|
||||
sound: entity_dragon_fireball_explode
|
||||
pitch: 1.5
|
||||
volume: 4
|
||||
|
||||
bosses:
|
||||
- id: steel_golem
|
||||
# A base mob and modifiers
|
||||
# View an explanation for this system here: https://plugins.auxilor.io/all-plugins/the-entity-lookup-system
|
||||
mob: iron_golem attack-damage:90 movement-speed:1.5 follow-range:16 health:1200
|
||||
# Supported placeholders: %health%, %time% (formats as minutes:seconds, eg 1:56)
|
||||
displayName: "&8Steel Golem &7| &c%health%♥ &7| &e%time%"
|
||||
influence: 40 # The distance at which effects will be applied to players
|
||||
customai: # Custom mob AI using the entity goal system.
|
||||
enabled: false # If custom AI should be enabled, this will override the vanilla mob behaviour.
|
||||
target-goals: [ ] # How the boss decides who to attack, if the target mode isn't being used.
|
||||
ai-goals: [ ] # How the boss should behave.
|
||||
effects: # Effects are done from the player's perspective: to treat the player as the victim, use the self_as_victim option in args
|
||||
- id: run_chain
|
||||
args:
|
||||
chain: blind
|
||||
self_as_victim: true
|
||||
chance: 20
|
||||
triggers:
|
||||
- static_20
|
||||
conditions: [ ] # Conditions to apply effects to players; useful if you don't want to affect low-level players
|
||||
lifespan: 120 # The lifespan of the boss before it despawns, in seconds. Set to a massive number to disable.
|
||||
defence:
|
||||
preventMounts: true # If the boss shouldn't be able to get into boats, minecarts, etc
|
||||
explosionImmune: true # If the boss should be immune to explosions
|
||||
fireImmune: true # If the boss should be immune to fire damage
|
||||
drowningImmune: true # If the boss should be immune to drowning damage
|
||||
suffocationImmune: true # If the boss should be immune to suffocation
|
||||
|
||||
meleeDamageMultiplier: 0.8 # Incoming melee damage will be multiplied by this value. Set to 0 to render immune against melee
|
||||
projectileDamageMultiplier: 0.2 # Same as melee multiplier, but for projectiles
|
||||
|
||||
teleportation: # Teleport every x ticks in order to avoid being caged in obsidian or similar
|
||||
enabled: true # If the boss should teleport
|
||||
interval: 100 # Ticks between teleportation attempts
|
||||
range: 20 # The range that the boss should check for safe teleportation blocks.
|
||||
rewards:
|
||||
xp: # Experience will be randomly generated between these values
|
||||
minimum: 30000
|
||||
maximum: 60000
|
||||
topDamagerCommands:
|
||||
# You can specify as many ranks as you want (adding 4, 5, etc)
|
||||
# You can use %player% as a placeholder for the player name
|
||||
1:
|
||||
- chance: 100 # As a percentage
|
||||
commands:
|
||||
- eco give %player% 10000
|
||||
2: [ ]
|
||||
3: [ ]
|
||||
nearbyPlayerCommands:
|
||||
# Commands to be executed for all players near the boss death location
|
||||
radius: 10
|
||||
# Uses the same syntax as top damager commands (chance and a list of commands, can use %player%)
|
||||
commands: [ ]
|
||||
# You can specify as many drops as you want, and group several drops together under one chance
|
||||
drops:
|
||||
- chance: 100
|
||||
items:
|
||||
- diamond_sword unbreaking:1 name:"Example Sword"
|
||||
target:
|
||||
# How the boss should choose which player to attack, choices are:
|
||||
# highest_health, lowest_health, closest, random
|
||||
mode: highest_health
|
||||
# The distance to scan for players
|
||||
range: 40
|
||||
bossBar:
|
||||
# If the boss should have a boss bar
|
||||
enabled: true
|
||||
color: white # Options: blue, green, pink, purple, red, white, yellow
|
||||
style: progress # Options: progress, notched_20, notched_12, notched_10, notched_6
|
||||
radius: 120 # The distance from the boss where the boss bar is visible
|
||||
spawn:
|
||||
# A list of conditions required for a player to be able to spawn a boss, useful to set
|
||||
# minimum skill levels, etc
|
||||
conditions: [ ]
|
||||
autospawn:
|
||||
# Spawn the boss automatically every x ticks. Picks a random location, but will only
|
||||
# ever spawn in a world if there are no other bosses of that type in the world.
|
||||
interval: -1 # The interval in ticks, set to -1 to disable
|
||||
locations: # Add as many locations as you want
|
||||
- world: world
|
||||
x: 100
|
||||
y: 100
|
||||
z: 100
|
||||
totem:
|
||||
enabled: false # A spawn totem is a set of 3 blocks on top of each other to spawn a boss (like a snow golem)
|
||||
top: netherite_block
|
||||
middle: iron_block
|
||||
bottom: magma_block
|
||||
notInWorlds: [ ] # If spawn totems should be disallowed in certain worlds, specify them here
|
||||
egg:
|
||||
enabled: true # If the boss should have a spawn egg
|
||||
item: evoker_spawn_egg unbreaking:1 hide_enchants
|
||||
name: "&8Steel Golem&f Spawn Egg"
|
||||
lore:
|
||||
- ""
|
||||
- "&8&oPlace on the ground to"
|
||||
- "&8&osummon a &8Steel Golem"
|
||||
craftable: true
|
||||
recipe:
|
||||
- iron_block
|
||||
- netherite_block
|
||||
- iron_block
|
||||
- air
|
||||
- ecoitems:boss_core ? nether_star
|
||||
- air
|
||||
- iron_block
|
||||
- netherite_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:
|
||||
# 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
|
||||
# Set to -1 to broadcast globally to all players online
|
||||
|
||||
# Supported placeholders: %x%, %y%, %z% (coordinates)
|
||||
spawn:
|
||||
- message:
|
||||
- ""
|
||||
- "&fA &8&lSteel Golem&r&f has been spawned!"
|
||||
- "&fCome fight it at &8%x%&f, &8%y%&f, &8%z%&f!"
|
||||
- ""
|
||||
radius: -1
|
||||
|
||||
# Supported placeholders: %damage_<x>_player%, %damage_<X>%
|
||||
# You can include as many ranks as you want - if there is no player at a certain rank,
|
||||
# it will be replaced with N/A (change in lang.yml)
|
||||
kill:
|
||||
- message:
|
||||
- ""
|
||||
- "&fThe &8&lSteel Golem&r&f has been killed!"
|
||||
- "&fMost Damage:"
|
||||
- "&f - &8%damage_1_player%&f (%damage_1% Damage)"
|
||||
- "&f - &8%damage_2_player%&f (%damage_2% Damage)"
|
||||
- "&f - &8%damage_3_player%&f (%damage_3% Damage)"
|
||||
- ""
|
||||
radius: -1
|
||||
despawn:
|
||||
- message:
|
||||
- ""
|
||||
- "&fYou ran out of time to kill the &8&lSteel Golem&r&f!"
|
||||
- ""
|
||||
radius: -1
|
||||
injure: [ ]
|
||||
|
||||
# All sounds will be played together at the same time
|
||||
# A list of sounds can be found here: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html
|
||||
# Volume functions as the distance at which the sound will be heard
|
||||
# Pitch is any value between 0.5 and 2
|
||||
# If you don't want the vanilla mob sounds, add 'silent' as an option to the mob
|
||||
sounds:
|
||||
spawn:
|
||||
- sound: entity_iron_golem_death
|
||||
pitch: 0.8
|
||||
volume: 100
|
||||
- sound: entity_iron_golem_hurt
|
||||
pitch: 0.5
|
||||
volume: 100
|
||||
- sound: entity_ender_dragon_growl
|
||||
pitch: 0.5
|
||||
volume: 100
|
||||
kill:
|
||||
- sound: entity_ender_dragon_death
|
||||
pitch: 1.8
|
||||
volume: 100
|
||||
- sound: entity_wither_death
|
||||
pitch: 1.2
|
||||
volume: 100
|
||||
despawn:
|
||||
- sound: entity_ender_dragon_ambient
|
||||
pitch: 0.5
|
||||
volume: 50
|
||||
- sound: entity_enderman_death
|
||||
pitch: 0.5
|
||||
volume: 50
|
||||
injure:
|
||||
- sound: entity_iron_golem_damage
|
||||
pitch: 0.7
|
||||
volume: 10
|
||||
@@ -1,4 +1,4 @@
|
||||
#libreforge-updater
|
||||
#Wed Aug 24 12:50:14 CEST 2022
|
||||
version=8.72.2
|
||||
#Sat Sep 10 10:51:17 BST 2022
|
||||
version=8.80.0
|
||||
plugin-name=EcoBosses
|
||||
|
||||
Reference in New Issue
Block a user