mirror of
https://github.com/Auxilor/EcoMobs.git
synced 2025-12-19 15:09:17 +00:00
Compare commits
79 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e83cafb752 | ||
|
|
a4aa97006a | ||
|
|
3d1dce4567 | ||
|
|
45ef970521 | ||
|
|
16c9640163 | ||
|
|
8ed4dbc9d3 | ||
|
|
3805f8e2dd | ||
|
|
97e0832f7a | ||
|
|
99a3a1f4a9 | ||
|
|
87989ef899 | ||
|
|
754ab3b6fe | ||
|
|
8b0dfd4d8c | ||
|
|
bb73e2e8f7 | ||
|
|
4ab79995b3 | ||
|
|
4e3ba7321a | ||
|
|
0dbee3cead | ||
|
|
5c8cb3baf3 | ||
|
|
314d977a8b | ||
|
|
93c435be9e | ||
|
|
5293dd2095 | ||
|
|
1a9a9afab3 | ||
|
|
934de35447 | ||
|
|
909eaab967 | ||
|
|
27ddb0b97f | ||
|
|
6b0708cb5d | ||
|
|
c8bd1b379d | ||
|
|
683b3fe082 | ||
|
|
0b95669a35 | ||
|
|
f6a9493645 | ||
|
|
fb3aae24e0 | ||
|
|
9c05965b76 | ||
|
|
fdc12dda3d | ||
|
|
f79aad596f | ||
|
|
b29de7effb | ||
|
|
45725b95fe | ||
|
|
a350769ff2 | ||
|
|
9028db8309 | ||
|
|
1535ab476e | ||
|
|
908d929718 | ||
|
|
f410216ab8 | ||
|
|
26cc3be8a7 | ||
|
|
91b85fea88 | ||
|
|
b16e427da6 | ||
|
|
16df926b84 | ||
|
|
16336c5716 | ||
|
|
776b8718b2 | ||
|
|
2dec97e473 | ||
|
|
c177543653 | ||
|
|
aeae0d3737 | ||
|
|
710fb6d2e4 | ||
|
|
9a903e285e | ||
|
|
a033751019 | ||
|
|
d9ab454ca8 | ||
|
|
2ead72ad15 | ||
|
|
365f99a49b | ||
|
|
b8fbfe24b6 | ||
|
|
f545a6c010 | ||
|
|
1c6f1c037e | ||
|
|
fc35c2b7a9 | ||
|
|
632f43fe80 | ||
|
|
e5b43cce98 | ||
|
|
372b74ef69 | ||
|
|
03a1f3af28 | ||
|
|
ed0c7ae238 | ||
|
|
5de65f086e | ||
|
|
bf81feea40 | ||
|
|
9229bdee7b | ||
|
|
bd2637d709 | ||
|
|
4264892c5f | ||
|
|
9e07b39c10 | ||
|
|
08d984794e | ||
|
|
1c770e07e7 | ||
|
|
9a48077c9e | ||
|
|
553e006da3 | ||
|
|
c658decff0 | ||
|
|
3af948b712 | ||
|
|
81eeabef5e | ||
|
|
2efa705760 | ||
|
|
040c43f072 |
1
.github/CODEOWNERS
vendored
Normal file
1
.github/CODEOWNERS
vendored
Normal file
@@ -0,0 +1 @@
|
||||
* @WillFP
|
||||
@@ -2,7 +2,7 @@ plugins {
|
||||
java
|
||||
`java-library`
|
||||
`maven-publish`
|
||||
kotlin("jvm") version "1.7.10"
|
||||
kotlin("jvm") version "1.9.20"
|
||||
id("com.github.johnrengelman.shadow") version "8.0.0"
|
||||
id("com.willfp.libreforge-gradle-plugin") version "1.0.0"
|
||||
}
|
||||
@@ -40,7 +40,7 @@ allprojects {
|
||||
dependencies {
|
||||
compileOnly("com.willfp:eco:6.56.0")
|
||||
compileOnly("org.jetbrains:annotations:23.0.0")
|
||||
compileOnly("org.jetbrains.kotlin:kotlin-stdlib:1.7.10")
|
||||
compileOnly("org.jetbrains.kotlin:kotlin-stdlib:1.9.20")
|
||||
}
|
||||
|
||||
java {
|
||||
@@ -51,6 +51,7 @@ allprojects {
|
||||
tasks {
|
||||
shadowJar {
|
||||
relocate("com.willfp.libreforge.loader", "com.willfp.ecobosses.libreforge.loader")
|
||||
relocate("com.willfp.modelenginebridge", "com.willfp.ecobosses.modelenginebridge")
|
||||
}
|
||||
|
||||
compileKotlin {
|
||||
|
||||
@@ -4,14 +4,17 @@ version = rootProject.version
|
||||
dependencies {
|
||||
compileOnly("io.papermc.paper:paper-api:1.19.3-R0.1-SNAPSHOT")
|
||||
compileOnly("com.github.lokka30:LevelledMobs:3.1.4")
|
||||
compileOnly("com.ticxo.modelengine:api:R3.1.5")
|
||||
implementation("com.willfp:ModelEngineBridge:1.2.0")
|
||||
}
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
register("maven", MavenPublication::class) {
|
||||
from(components["java"])
|
||||
register<MavenPublication>("maven") {
|
||||
groupId = project.group.toString()
|
||||
version = project.version.toString()
|
||||
artifactId = rootProject.name
|
||||
|
||||
artifact(rootProject.tasks.shadowJar.get().archiveFile)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.willfp.ecobosses.defence.MountHandler
|
||||
import com.willfp.ecobosses.defence.PickupHandler
|
||||
import com.willfp.ecobosses.integrations.levelledmobs.IntegrationLevelledMobs
|
||||
import com.willfp.ecobosses.libreforge.EffectBossDropChanceMultiplier
|
||||
import com.willfp.ecobosses.libreforge.MutatorLocationToBoss
|
||||
import com.willfp.ecobosses.libreforge.TriggerKillBoss
|
||||
import com.willfp.ecobosses.libreforge.TriggerSpawnBoss
|
||||
import com.willfp.ecobosses.lifecycle.CompatibilityListeners
|
||||
@@ -27,8 +28,11 @@ import com.willfp.ecobosses.util.TopDamagerListener
|
||||
import com.willfp.libreforge.effects.Effects
|
||||
import com.willfp.libreforge.loader.LibreforgePlugin
|
||||
import com.willfp.libreforge.loader.configs.ConfigCategory
|
||||
import com.willfp.libreforge.mutators.Mutators
|
||||
import com.willfp.libreforge.registerHolderProvider
|
||||
import com.willfp.libreforge.registerSpecificHolderProvider
|
||||
import com.willfp.libreforge.triggers.Triggers
|
||||
import org.bukkit.entity.Player
|
||||
import org.bukkit.event.Listener
|
||||
|
||||
class EcoBossesPlugin : LibreforgePlugin() {
|
||||
@@ -46,10 +50,13 @@ class EcoBossesPlugin : LibreforgePlugin() {
|
||||
Effects.register(EffectBossDropChanceMultiplier)
|
||||
Triggers.register(TriggerKillBoss)
|
||||
Triggers.register(TriggerSpawnBoss)
|
||||
Mutators.register(MutatorLocationToBoss)
|
||||
}
|
||||
|
||||
override fun handleEnable() {
|
||||
registerHolderProvider { it.bossHolders }
|
||||
registerSpecificHolderProvider<Player> {
|
||||
it.bossHolders
|
||||
}
|
||||
}
|
||||
|
||||
override fun handleReload() {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.willfp.ecobosses.bosses
|
||||
|
||||
import com.ticxo.modelengine.api.ModelEngineAPI
|
||||
import com.willfp.eco.core.EcoPlugin
|
||||
import com.willfp.eco.core.config.interfaces.Config
|
||||
import com.willfp.eco.core.entities.CustomEntity
|
||||
@@ -42,6 +41,7 @@ import com.willfp.libreforge.Holder
|
||||
import com.willfp.libreforge.ViolationContext
|
||||
import com.willfp.libreforge.conditions.Conditions
|
||||
import com.willfp.libreforge.effects.Effects
|
||||
import com.willfp.modelenginebridge.ModelEngineBridge
|
||||
import net.kyori.adventure.bossbar.BossBar
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.Location
|
||||
@@ -306,8 +306,6 @@ class EcoBoss(
|
||||
|
||||
private val modelEngineID = config.getStringOrNull("model-engine-id")
|
||||
|
||||
private val modelEngineAnimation = config.getStringOrNull("model-engine-animation")
|
||||
|
||||
private val currentlyAlive = mutableMapOf<UUID, LivingEcoBoss>()
|
||||
|
||||
override val conditions = Conditions.compile(
|
||||
@@ -357,32 +355,15 @@ class EcoBoss(
|
||||
}
|
||||
|
||||
if (modelEngineID != null && Bukkit.getPluginManager().isPluginEnabled("ModelEngine")) {
|
||||
val model = ModelEngineAPI.createActiveModel(modelEngineID)
|
||||
val model = ModelEngineBridge.instance.createActiveModel(modelEngineID)
|
||||
|
||||
if (model == null) {
|
||||
plugin.logger.warning("Invalid Model Engine ID for boss $id")
|
||||
} else {
|
||||
val modelled = ModelEngineBridge.instance.createModeledEntity(mob)
|
||||
modelled.addModel(model)
|
||||
modelled.isBaseEntityVisible = false
|
||||
}
|
||||
|
||||
if (modelEngineAnimation != null) {
|
||||
val animationHandler = model.animationHandler
|
||||
val animationProperty = animationHandler.getAnimation(modelEngineAnimation)
|
||||
|
||||
if (animationProperty != null) {
|
||||
animationHandler.playAnimation(animationProperty, true)
|
||||
} else {
|
||||
plugin.logger.warning("Animation $modelEngineAnimation not found in model $modelEngineID, defaulting to walk!")
|
||||
val animationPropertyWalk = animationHandler.getAnimation("walk")
|
||||
if (animationPropertyWalk != null) {
|
||||
animationHandler.playAnimation(animationPropertyWalk, true)
|
||||
} else {
|
||||
plugin.logger.warning("Walk animation not found in $modelEngineID!")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val modelled = ModelEngineAPI.createModeledEntity(mob)
|
||||
modelled.addModel(model, true)
|
||||
modelled.isBaseEntityVisible = false
|
||||
}
|
||||
|
||||
val boss = LivingEcoBoss(
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.willfp.eco.core.display.DisplayModule
|
||||
import com.willfp.eco.core.display.DisplayPriority
|
||||
import com.willfp.eco.core.fast.fast
|
||||
import com.willfp.libreforge.SimpleProvidedHolder
|
||||
import com.willfp.libreforge.toDispatcher
|
||||
import org.bukkit.entity.Player
|
||||
import org.bukkit.inventory.ItemStack
|
||||
|
||||
@@ -27,7 +28,7 @@ class EggDisplay(
|
||||
val egg = itemStack.bossEgg ?: return
|
||||
|
||||
val lines = egg.spawnConditions
|
||||
.filterNot { it.isMet(player, SimpleProvidedHolder(egg)) }
|
||||
.filterNot { it.isMet(player.toDispatcher(), SimpleProvidedHolder(egg)) }
|
||||
.map { it.notMetLines.map { line -> Display.PREFIX + line } }
|
||||
.flatten()
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.willfp.ecobosses.bosses.Bosses
|
||||
import com.willfp.ecobosses.bosses.EcoBoss
|
||||
import com.willfp.ecobosses.events.BossTryDropItemEvent
|
||||
import com.willfp.libreforge.effects.templates.MultiMultiplierEffect
|
||||
import com.willfp.libreforge.toDispatcher
|
||||
import org.bukkit.event.EventHandler
|
||||
|
||||
object EffectBossDropChanceMultiplier : MultiMultiplierEffect<EcoBoss>("boss_drop_chance_multiplier") {
|
||||
@@ -21,7 +22,7 @@ object EffectBossDropChanceMultiplier : MultiMultiplierEffect<EcoBoss>("boss_dro
|
||||
fun handle(event: BossTryDropItemEvent) {
|
||||
val player = event.player ?: return
|
||||
|
||||
val multiplier = getMultiplier(player, event.boss)
|
||||
val multiplier = getMultiplier(player.toDispatcher(), event.boss)
|
||||
|
||||
event.chance *= multiplier
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.willfp.ecobosses.libreforge
|
||||
|
||||
import com.willfp.eco.core.config.interfaces.Config
|
||||
import com.willfp.ecobosses.events.BossSpawnEvent
|
||||
import com.willfp.libreforge.NoCompileData
|
||||
import com.willfp.libreforge.getProvider
|
||||
import com.willfp.libreforge.mutators.Mutator
|
||||
import com.willfp.libreforge.triggers.Trigger
|
||||
import com.willfp.libreforge.triggers.TriggerData
|
||||
import com.willfp.libreforge.triggers.TriggerParameter
|
||||
import org.bukkit.entity.Entity
|
||||
import org.bukkit.entity.LivingEntity
|
||||
import org.bukkit.event.EventHandler
|
||||
|
||||
object MutatorLocationToBoss : Mutator<NoCompileData>("location_to_boss") {
|
||||
override fun mutate(data: TriggerData, config: Config, compileData: NoCompileData): TriggerData {
|
||||
val entity = data.holder.getProvider<LivingEntity>() ?: return data
|
||||
val location = entity.location
|
||||
|
||||
return data.copy(
|
||||
location = location
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.willfp.ecobosses.libreforge
|
||||
|
||||
import com.willfp.ecobosses.events.BossKillEvent
|
||||
import com.willfp.libreforge.toDispatcher
|
||||
import com.willfp.libreforge.triggers.Trigger
|
||||
import com.willfp.libreforge.triggers.TriggerData
|
||||
import com.willfp.libreforge.triggers.TriggerParameter
|
||||
@@ -20,7 +21,7 @@ object TriggerKillBoss : Trigger("kill_boss") {
|
||||
val entity = event.boss.entity
|
||||
|
||||
this.dispatch(
|
||||
killer,
|
||||
killer.toDispatcher(),
|
||||
TriggerData(
|
||||
player = killer,
|
||||
victim = entity,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.willfp.ecobosses.libreforge
|
||||
|
||||
import com.willfp.ecobosses.events.BossSpawnEvent
|
||||
import com.willfp.libreforge.toDispatcher
|
||||
import com.willfp.libreforge.triggers.Trigger
|
||||
import com.willfp.libreforge.triggers.TriggerData
|
||||
import com.willfp.libreforge.triggers.TriggerParameter
|
||||
@@ -18,7 +19,7 @@ object TriggerSpawnBoss : Trigger("spawn_boss") {
|
||||
val location = event.location
|
||||
|
||||
this.dispatch(
|
||||
player,
|
||||
player.toDispatcher(),
|
||||
TriggerData(
|
||||
player = player,
|
||||
location = location
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.willfp.ecobosses.EcoBossesPlugin
|
||||
import com.willfp.ecobosses.bosses.bossEgg
|
||||
import com.willfp.ecobosses.events.BossSpawnEvent
|
||||
import com.willfp.libreforge.SimpleProvidedHolder
|
||||
import com.willfp.libreforge.toDispatcher
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.Location
|
||||
import org.bukkit.block.Container
|
||||
@@ -79,7 +80,7 @@ class SpawnEggHandler(
|
||||
}
|
||||
|
||||
if (player != null) {
|
||||
if (!boss.spawnConditions.areMet(player, SimpleProvidedHolder(boss))) {
|
||||
if (!boss.spawnConditions.areMet(player.toDispatcher(), SimpleProvidedHolder(boss))) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.willfp.ecobosses.bosses.Bosses
|
||||
import com.willfp.ecobosses.events.BossSpawnEvent
|
||||
import com.willfp.ecobosses.util.SpawnTotem
|
||||
import com.willfp.libreforge.SimpleProvidedHolder
|
||||
import com.willfp.libreforge.toDispatcher
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.Material
|
||||
import org.bukkit.block.Block
|
||||
@@ -55,7 +56,7 @@ class SpawnTotemHandler : Listener {
|
||||
|
||||
val player = event.player
|
||||
|
||||
if (!boss.spawnConditions.areMet(player, SimpleProvidedHolder(boss))) {
|
||||
if (!boss.spawnConditions.areMet(player.toDispatcher(), SimpleProvidedHolder(boss))) {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -8,9 +8,8 @@
|
||||
# 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
|
||||
|
||||
# If you're using model engine, you can specify the ID and animation here. You can also specify these in the mob with the lookup system.
|
||||
# If you're using model engine, you can specify the ID here. You can also specify these in the mob with the lookup system.
|
||||
model-engine-id: ""
|
||||
model-engine-animation: ""
|
||||
|
||||
# Supported placeholders: %health%, %time% (formats as minutes:seconds, eg 1:56)
|
||||
display-name: "&8Steel Golem &7| &c%health%♥ &7| &e%time%"
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
mob: illusioner attack-damage:50 health:600 hand:"iron_sword sharpness:5"
|
||||
|
||||
model-engine-id: ""
|
||||
model-engine-animation: ""
|
||||
|
||||
display-name: "&9Illusioner &7| &c%health%♥ &7| &e%time%"
|
||||
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
name: ${pluginName}
|
||||
version: ${version}
|
||||
main: com.willfp.ecobosses.EcoBossesPlugin
|
||||
api-version: 1.19
|
||||
|
||||
dependencies:
|
||||
- name: eco
|
||||
required: true
|
||||
bootstrap: false
|
||||
|
||||
- name: libreforge
|
||||
required: false
|
||||
bootstrap: false
|
||||
|
||||
load-after:
|
||||
- name: eco
|
||||
bootstrap: false
|
||||
|
||||
|
||||
permissions:
|
||||
ecobosses.*:
|
||||
description: All ecobosses permissions
|
||||
default: op
|
||||
children:
|
||||
ecobosses.command.*: true
|
||||
ecobosses.command.*:
|
||||
description: All ecobosses commands
|
||||
default: op
|
||||
children:
|
||||
ecobosses.command.ecobosses: true
|
||||
ecobosses.command.reload: true
|
||||
ecobosses.command.spawn: true
|
||||
ecobosses.command.give: true
|
||||
|
||||
ecobosses.command.ecobosses:
|
||||
description: Allows the use of /ecobosses
|
||||
default: true
|
||||
|
||||
ecobosses.command.give:
|
||||
description: Allows the use of /ecobosses give
|
||||
default: op
|
||||
|
||||
ecobosses.command.spawn:
|
||||
description: Allows the use of /ecobosses spawn
|
||||
default: op
|
||||
|
||||
ecobosses.command.killall:
|
||||
description: Allows the use of /ecobosses killall
|
||||
default: op
|
||||
|
||||
ecobosses.command.reload:
|
||||
description: Allows the use of /ecobosses reload
|
||||
default: op
|
||||
@@ -1,5 +1,5 @@
|
||||
#libreforge-updater
|
||||
#Sat Apr 29 17:19:28 BST 2023
|
||||
#Mon Dec 11 12:12:40 GMT 2023
|
||||
kotlin.code.style=official
|
||||
libreforge-version=4.7.0
|
||||
version=9.7.0
|
||||
libreforge-version=4.49.0
|
||||
version=9.48.0
|
||||
|
||||
Reference in New Issue
Block a user