From 63b19f130e00a76f8a8c4196b2f1942e6850ddf7 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Thu, 10 Aug 2023 15:27:29 +0100 Subject: [PATCH] Added quest_xp_multipleir --- .../com/willfp/ecoquests/EcoQuestsPlugin.kt | 2 ++ .../libreforge/EffectQuestXpMultiplier.kt | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 eco-core/core-plugin/src/main/kotlin/com/willfp/ecoquests/libreforge/EffectQuestXpMultiplier.kt diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoquests/EcoQuestsPlugin.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoquests/EcoQuestsPlugin.kt index 9809c61..e3e074e 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoquests/EcoQuestsPlugin.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoquests/EcoQuestsPlugin.kt @@ -12,6 +12,7 @@ import com.willfp.ecoquests.libreforge.ConditionHasCompletedTask import com.willfp.ecoquests.libreforge.ConditionHasQuestActive import com.willfp.ecoquests.libreforge.EffectGainTaskXp import com.willfp.ecoquests.libreforge.EffectGiveTaskXp +import com.willfp.ecoquests.libreforge.EffectQuestXpMultiplier import com.willfp.ecoquests.libreforge.EffectStartQuest import com.willfp.ecoquests.libreforge.FilterQuest import com.willfp.ecoquests.libreforge.FilterTask @@ -40,6 +41,7 @@ class EcoQuestsPlugin : LibreforgePlugin() { Conditions.register(ConditionHasQuestActive) Effects.register(EffectGainTaskXp) Effects.register(EffectGiveTaskXp) + Effects.register(EffectQuestXpMultiplier) Effects.register(EffectStartQuest) Filters.register(FilterQuest) Filters.register(FilterTask) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoquests/libreforge/EffectQuestXpMultiplier.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoquests/libreforge/EffectQuestXpMultiplier.kt new file mode 100644 index 0000000..4d932b3 --- /dev/null +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoquests/libreforge/EffectQuestXpMultiplier.kt @@ -0,0 +1,24 @@ +package com.willfp.ecoquests.libreforge + +import com.willfp.ecoquests.api.event.PlayerTaskExpGainEvent +import com.willfp.ecoquests.quests.Quest +import com.willfp.ecoquests.quests.Quests +import com.willfp.libreforge.effects.templates.MultiMultiplierEffect +import org.bukkit.event.EventHandler + +object EffectQuestXpMultiplier : MultiMultiplierEffect("quest_xp_multiplier") { + override val key = "quests" + + override fun getElement(key: String): Quest? { + return Quests[key] + } + + override fun getAllElements(): Collection { + return Quests.values() + } + + @EventHandler(ignoreCancelled = true) + fun handle(event: PlayerTaskExpGainEvent) { + event.amount *= getMultiplier(event.player, event.quest) + } +}