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

Compare commits

...

24 Commits

Author SHA1 Message Date
Auxilor
c24d0876ca libreforge-updater 2024-04-15 18:19:34 +01:00
Auxilor
800ef7732a libreforge-updater 2024-04-11 13:17:32 +01:00
Auxilor
e6c82e6ac4 libreforge-updater 2024-03-29 16:08:40 +00:00
Will FP
7008794445 Fixed _example.yml 2024-03-28 11:25:56 +00:00
Will FP
c9aac17937 libreforge-updater 2024-03-11 17:38:41 +00:00
Will FP
3c2f2ba315 libreforge-updater 2024-03-10 20:10:14 +00:00
Will FP
d4a8665a6a Added chance option to replace 2024-03-04 18:36:38 +00:00
Will FP
eb0a5251d3 libreforge-updater 2024-03-02 15:21:29 +00:00
Will FP
782edf8da1 libreforge-updater 2024-02-22 13:18:55 +00:00
Will FP
ac3de8a0fb libreforge-updater 2024-02-15 13:03:11 +00:00
Will FP
d47b4b9567 libreforge-updater 2024-02-08 19:50:40 +00:00
Will FP
613632e7a9 libreforge-updater 2024-01-30 11:28:25 +00:00
Will FP
b8d8d4999f libreforge-updater 2024-01-18 17:03:56 +00:00
Will FP
aa7000b2aa libreforge-updater 2024-01-16 13:29:47 +00:00
Will FP
afe6b34c65 libreforge-updater 2024-01-13 14:24:37 +00:00
Will FP
c9173c06da libreforge-updater 2024-01-07 13:52:32 +00:00
Will FP
57a4f1a708 Improved _example.yml, added permanent mob effects 2024-01-06 12:06:29 +00:00
Will FP
f031fb51c6 Improved _example.yml, added permanent mob effects 2024-01-06 11:56:04 +00:00
Will FP
8745ee5425 Oops 2024-01-06 09:22:10 +00:00
Will FP
428f022d97 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	gradle.properties
2024-01-06 09:22:03 +00:00
Will FP
f17eb06b03 libreforge-updater 2024-01-06 09:20:57 +00:00
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
8 changed files with 67 additions and 6 deletions

View File

@@ -4,6 +4,7 @@ import com.willfp.eco.core.command.impl.PluginCommand
import com.willfp.eco.core.display.DisplayModule
import com.willfp.eco.core.entities.ai.EntityGoals
import com.willfp.eco.core.integrations.IntegrationLoader
import com.willfp.eco.util.toSingletonList
import com.willfp.ecomobs.category.MobCategories
import com.willfp.ecomobs.category.spawning.spawnpoints.SpawnPointGenerator
import com.willfp.ecomobs.commands.CommandEcoMobs
@@ -19,8 +20,13 @@ import com.willfp.ecomobs.integrations.libsdisguises.IntegrationLibsDisguises
import com.willfp.ecomobs.integrations.modelengine.IntegrationModelEngine
import com.willfp.ecomobs.mob.EcoMobs
import com.willfp.ecomobs.mob.damage.TopDamagerHandler
import com.willfp.ecomobs.mob.impl.ecoMob
import com.willfp.libreforge.EmptyProvidedHolder.holder
import com.willfp.libreforge.EntityProvidedHolder
import com.willfp.libreforge.loader.LibreforgePlugin
import com.willfp.libreforge.loader.configs.ConfigCategory
import com.willfp.libreforge.registerSpecificHolderProvider
import org.bukkit.entity.Mob
import org.bukkit.event.Listener
internal lateinit var plugin: EcoMobsPlugin
@@ -34,6 +40,14 @@ class EcoMobsPlugin : LibreforgePlugin() {
plugin = this
}
override fun handleEnable() {
registerSpecificHolderProvider<Mob> {
it.ecoMob?.entityHolder.toSingletonList().map { holder ->
EntityProvidedHolder(holder, it)
}
}
}
override fun handleLoad() {
EntityGoals.register(EntityGoalRandomTeleport.Deserializer)
}

View File

@@ -2,6 +2,7 @@ package com.willfp.ecomobs.category.spawning.impl
import com.willfp.eco.core.config.interfaces.Config
import com.willfp.eco.core.entities.Entities
import com.willfp.eco.util.randDouble
import com.willfp.ecomobs.EcoMobsPlugin
import com.willfp.ecomobs.category.MobCategory
import com.willfp.ecomobs.category.spawning.SpawnMethod
@@ -57,6 +58,10 @@ object SpawnMethodFactoryReplace : SpawnMethodFactory("replace") {
return
}
if (randDouble(0.0, 100.0) > config.getDouble("chance")) {
return
}
val mob = category.mobs.randomOrNull() ?: return

View File

@@ -7,6 +7,7 @@ import com.willfp.ecomobs.category.MobCategory
import com.willfp.ecomobs.integrations.MobIntegration
import com.willfp.ecomobs.mob.event.MobEvent
import com.willfp.ecomobs.mob.options.SpawnEgg
import com.willfp.libreforge.Holder
import com.willfp.libreforge.triggers.DispatchedTrigger
import org.bukkit.Location
import org.bukkit.entity.Mob
@@ -50,6 +51,11 @@ interface EcoMob : KRegistrable {
*/
val customEntity: CustomEntity
/**
* The entity holder.
*/
val entityHolder: Holder
/**
* Get a living mob from a bukkit mob.
*/

View File

@@ -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()
)
)
}

View File

@@ -49,14 +49,19 @@ import com.willfp.ecomobs.tick.TickHandlerBossBar
import com.willfp.ecomobs.tick.TickHandlerDisplayName
import com.willfp.ecomobs.tick.TickHandlerLifespan
import com.willfp.libreforge.ConfigViolation
import com.willfp.libreforge.Holder
import com.willfp.libreforge.ViolationContext
import com.willfp.libreforge.conditions.ConditionList
import com.willfp.libreforge.conditions.Conditions
import com.willfp.libreforge.conditions.emptyConditionList
import com.willfp.libreforge.effects.EffectList
import com.willfp.libreforge.effects.Effects
import com.willfp.libreforge.enumValueOfOrNull
import com.willfp.libreforge.triggers.DispatchedTrigger
import net.kyori.adventure.bossbar.BossBar
import org.bukkit.Bukkit
import org.bukkit.Location
import org.bukkit.NamespacedKey
import org.bukkit.entity.Mob
import org.bukkit.entity.Player
import org.bukkit.event.entity.CreatureSpawnEvent
@@ -311,6 +316,17 @@ internal class ConfigDrivenEcoMob(
this.spawn(it, SpawnReason.COMMAND)!!.entity
}.apply { register() }
override val entityHolder = object : Holder {
override val id = plugin.createNamespacedKey(getID())
override val effects: EffectList = Effects.compile(
config.getSubsections("effects.permanent-effects"),
context.with("effects").with("permanent effects")
)
override val conditions = emptyConditionList()
}
/*
----------
*/

View File

@@ -26,6 +26,9 @@ spawning:
- zombie
- skeleton
# The chance for the mob to override, as a percentage
chance: 100
# Options for custom spawning
custom:

View File

@@ -52,43 +52,59 @@ custom-ai:
# How the mob should behave.
entity-goals: [ ]
# Effects are done from the player's perspective: to treat the player as the victim,
# either use self_as_victim in args, or use player_as_victim in mutators.
# Some effects are ran from the perspective of the entity, and others from the perspective
# of the player - each section is marked with which perspective it is run from.
# You can use display name placeholders in effects
# You can also use top damager placeholders:
# %top_damager_<place>_name%, %top_damager_<place>_damage%, %top_damager_<place>_display%
effects:
# Effects that are active all the time
# Ran from the perspective of the entity
permanent-effects: [ ]
# Effects ran when the mob spawns
# Ran from the perspective of the entity
spawn: [ ]
# Effects ran when the mob despawns
# Ran from the perspective of the entity
despawn: [ ]
# Effects ran when the player interacts with the mob
# Ran from the perspective of the player
interact: [ ]
# Effects ran when the player melee attacks the mob
# Ran from the perspective of the player
melee-attack: [ ]
# Effects ran when the player does a ranged attack on the mob
# Ran from the perspective of the player
ranged-attack: [ ]
# Effects ran when the player attacks the mob
# Ran from the perspective of the player
any-attack: [ ]
# Effects ran when the mob takes damage
# Ran from the perspective of the entity
take-damage: [ ]
# Effects ran when the player is damaged by the mob
# Ran from the perspective of the player
damage-player: [ ]
# Effects ran when the player is killed by the mob
# Ran from the perspective of the player
kill-player: [ ]
# Effects ran when the mob dies
# Ran from the perspective of the entity
death: [ ]
# Effects ran when the mob is killed by the player
# Ran from the perspective of the player
kill: [ ]
# The lifespan of the mob, in seconds. Set to -1 to disable.

View File

@@ -1,5 +1,5 @@
#libreforge-updater
#Mon Jan 01 20:02:24 GMT 2024
#Mon Apr 15 18:19:34 BST 2024
kotlin.code.style=official
libreforge-version=4.52.0
version=10.0.0-b3
libreforge-version=4.58.0
version=10.3.0