Add has_pet condition and fix has_active_pet

This commit is contained in:
Sen2000
2023-07-20 15:44:22 +07:00
parent 8e90f57364
commit 9f55826f5e
3 changed files with 24 additions and 11 deletions

View File

@@ -5,13 +5,7 @@ import com.willfp.eco.core.integrations.IntegrationLoader
import com.willfp.eco.core.placeholder.PlayerPlaceholder
import com.willfp.ecopets.commands.CommandEcoPets
import com.willfp.ecopets.commands.CommandPets
import com.willfp.ecopets.libreforge.ConditionHasActivePet
import com.willfp.ecopets.libreforge.ConditionHasPetLevel
import com.willfp.ecopets.libreforge.EffectGivePetXp
import com.willfp.ecopets.libreforge.EffectPetXpMultiplier
import com.willfp.ecopets.libreforge.FilterPet
import com.willfp.ecopets.libreforge.TriggerGainPetXp
import com.willfp.ecopets.libreforge.TriggerLevelUpPet
import com.willfp.ecopets.libreforge.*
import com.willfp.ecopets.pets.DiscoverRecipeListener
import com.willfp.ecopets.pets.PetDisplay
import com.willfp.ecopets.pets.PetLevelListener
@@ -48,6 +42,7 @@ class EcoPetsPlugin : LibreforgePlugin() {
override fun handleEnable() {
Conditions.register(ConditionHasPetLevel)
Conditions.register(ConditionHasActivePet)
Conditions.register(ConditionHasPet)
Effects.register(EffectPetXpMultiplier)
Effects.register(EffectGivePetXp)
Triggers.register(TriggerGainPetXp)

View File

@@ -14,9 +14,10 @@ object ConditionHasActivePet : Condition<NoCompileData>("has_active_pet") {
}
override fun isMet(player: Player, config: Config, compileData: NoCompileData): Boolean {
return EcoPetsAPI.instance.hasPet(
player,
Pets.getByID(config.getString("pet").lowercase()) ?: return false
)
return EcoPetsAPI.instance.getActivePet(player) == Pets.getByID(config.getString("pet").lowercase())
// return EcoPetsAPI.instance.hasPet(
// player,
// Pets.getByID(config.getString("pet").lowercase()) ?: return false
// )
}
}

View File

@@ -0,0 +1,17 @@
package com.willfp.ecopets.libreforge
import com.willfp.eco.core.config.interfaces.Config
import com.willfp.ecopets.api.EcoPetsAPI
import com.willfp.ecopets.pets.Pets
import com.willfp.libreforge.NoCompileData
import com.willfp.libreforge.conditions.Condition
import org.bukkit.entity.Player
object ConditionHasPet : Condition<NoCompileData>("has_pet") {
override fun isMet(player: Player, config: Config, compileData: NoCompileData): Boolean {
return EcoPetsAPI.instance.hasPet(
player,
Pets.getByID(config.getString("pet").lowercase()) ?: return false
)
}
}