Skip to content

Commit

Permalink
libreforge-updater
Browse files Browse the repository at this point in the history
  • Loading branch information
WillFP committed Nov 21, 2023
1 parent 35c89d7 commit 6496d5c
Show file tree
Hide file tree
Showing 11 changed files with 53 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,27 @@ package com.willfp.ecoquests.libreforge

import com.willfp.eco.core.config.interfaces.Config
import com.willfp.ecoquests.quests.Quests
import com.willfp.libreforge.Dispatcher
import com.willfp.libreforge.NoCompileData
import com.willfp.libreforge.ProvidedHolder
import com.willfp.libreforge.arguments
import com.willfp.libreforge.conditions.Condition
import com.willfp.libreforge.get
import org.bukkit.entity.Player

object ConditionHasCompletedQuest : Condition<NoCompileData>("has_completed_quest") {
override val arguments = arguments {
require("quest", "You must specify the quest ID!")
}

override fun isMet(player: Player, config: Config, compileData: NoCompileData): Boolean {
override fun isMet(
dispatcher: Dispatcher<*>,
config: Config,
holder: ProvidedHolder,
compileData: NoCompileData
): Boolean {
val player = dispatcher.get<Player>() ?: return false

val quest = Quests[config.getString("quest")] ?: return false

return quest.hasCompleted(player)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,12 @@ package com.willfp.ecoquests.libreforge
import com.willfp.eco.core.config.interfaces.Config
import com.willfp.ecoquests.quests.Quests
import com.willfp.ecoquests.tasks.Tasks
import com.willfp.libreforge.Dispatcher
import com.willfp.libreforge.NoCompileData
import com.willfp.libreforge.ProvidedHolder
import com.willfp.libreforge.arguments
import com.willfp.libreforge.conditions.Condition
import com.willfp.libreforge.get
import org.bukkit.entity.Player

object ConditionHasCompletedTask : Condition<NoCompileData>("has_completed_task") {
Expand All @@ -14,7 +17,14 @@ object ConditionHasCompletedTask : Condition<NoCompileData>("has_completed_task"
require("task", "You must specify the task ID!")
}

override fun isMet(player: Player, config: Config, compileData: NoCompileData): Boolean {
override fun isMet(
dispatcher: Dispatcher<*>,
config: Config,
holder: ProvidedHolder,
compileData: NoCompileData
): Boolean {
val player = dispatcher.get<Player>() ?: return false

val quest = Quests[config.getString("quest")] ?: return false
val template = Tasks[config.getString("task")] ?: return false
val task = quest.getTask(template) ?: return false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,27 @@ package com.willfp.ecoquests.libreforge

import com.willfp.eco.core.config.interfaces.Config
import com.willfp.ecoquests.quests.Quests
import com.willfp.libreforge.Dispatcher
import com.willfp.libreforge.NoCompileData
import com.willfp.libreforge.ProvidedHolder
import com.willfp.libreforge.arguments
import com.willfp.libreforge.conditions.Condition
import com.willfp.libreforge.get
import org.bukkit.entity.Player

object ConditionHasQuestActive : Condition<NoCompileData>("has_quest_active") {
override val arguments = arguments {
require("quest", "You must specify the quest ID!")
}

override fun isMet(player: Player, config: Config, compileData: NoCompileData): Boolean {
override fun isMet(
dispatcher: Dispatcher<*>,
config: Config,
holder: ProvidedHolder,
compileData: NoCompileData
): Boolean {
val player = dispatcher.get<Player>() ?: return false

val quest = Quests[config.getString("quest")] ?: return false

return quest.hasActive(player)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ 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 com.willfp.libreforge.toDispatcher
import org.bukkit.event.EventHandler

object EffectQuestXpMultiplier : MultiMultiplierEffect<Quest>("quest_xp_multiplier") {
Expand All @@ -19,6 +20,6 @@ object EffectQuestXpMultiplier : MultiMultiplierEffect<Quest>("quest_xp_multipli

@EventHandler(ignoreCancelled = true)
fun handle(event: PlayerTaskExpGainEvent) {
event.amount *= getMultiplier(event.player, event.quest)
event.amount *= getMultiplier(event.player.toDispatcher(), event.quest)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.willfp.ecoquests.libreforge

import com.willfp.ecoquests.api.event.PlayerQuestCompleteEvent
import com.willfp.ecoquests.api.event.PlayerQuestStartEvent
import com.willfp.libreforge.toDispatcher
import com.willfp.libreforge.triggers.Trigger
import com.willfp.libreforge.triggers.TriggerData
import com.willfp.libreforge.triggers.TriggerParameter
Expand All @@ -18,7 +19,7 @@ object TriggerCompleteQuest : Trigger("complete_quest") {
val player = event.player

this.dispatch(
player,
player.toDispatcher(),
TriggerData(
player = player,
event = event
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.willfp.ecoquests.libreforge

import com.willfp.ecoquests.api.event.PlayerTaskCompleteEvent
import com.willfp.libreforge.toDispatcher
import com.willfp.libreforge.triggers.Trigger
import com.willfp.libreforge.triggers.TriggerData
import com.willfp.libreforge.triggers.TriggerParameter
Expand All @@ -17,7 +18,7 @@ object TriggerCompleteTask : Trigger("complete_task") {
val player = event.player

this.dispatch(
player,
player.toDispatcher(),
TriggerData(
player = player,
event = event
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.willfp.ecoquests.libreforge

import com.willfp.ecoquests.api.event.PlayerTaskExpGainEvent
import com.willfp.libreforge.toDispatcher
import com.willfp.libreforge.triggers.Trigger
import com.willfp.libreforge.triggers.TriggerData
import com.willfp.libreforge.triggers.TriggerParameter
Expand All @@ -19,7 +20,7 @@ object TriggerGainTaskXp : Trigger("gain_task_xp") {
val player = event.player

this.dispatch(
player,
player.toDispatcher(),
TriggerData(
player = player,
event = event,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.willfp.ecoquests.libreforge

import com.willfp.ecoquests.api.event.PlayerQuestStartEvent
import com.willfp.libreforge.toDispatcher
import com.willfp.libreforge.triggers.Trigger
import com.willfp.libreforge.triggers.TriggerData
import com.willfp.libreforge.triggers.TriggerParameter
Expand All @@ -17,7 +18,7 @@ object TriggerStartQuest : Trigger("start_quest") {
val player = event.player

this.dispatch(
player,
player.toDispatcher(),
TriggerData(
player = player,
event = event
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import com.willfp.libreforge.ViolationContext
import com.willfp.libreforge.conditions.Conditions
import com.willfp.libreforge.effects.Effects
import com.willfp.libreforge.effects.executors.impl.NormalExecutorFactory
import com.willfp.libreforge.toDispatcher
import org.bukkit.Bukkit
import org.bukkit.OfflinePlayer
import org.bukkit.entity.Player
Expand Down Expand Up @@ -58,7 +59,7 @@ class Quest(
)

addLoreLines(
startConditions.getNotMetLines(player, EmptyProvidedHolder)
startConditions.getNotMetLines(player.toDispatcher(), EmptyProvidedHolder)
)

setDisplayName(
Expand Down Expand Up @@ -257,7 +258,7 @@ class Quest(
}

fun meetsStartConditions(player: Player): Boolean {
return startConditions.areMet(player, EmptyProvidedHolder)
return startConditions.areMet(player.toDispatcher(), EmptyProvidedHolder)
}

fun shouldStart(player: Player): Boolean {
Expand All @@ -282,7 +283,7 @@ class Quest(
return
}

startEffects?.trigger(player)
startEffects?.trigger(player.toDispatcher())
player.profile.write(hasStartedKey, true)
player.profile.write(startedTimeKey, currentTimeMinutes)

Expand Down Expand Up @@ -408,7 +409,7 @@ class Quest(
private fun complete(player: Player) {
player.profile.write(hasCompletedKey, true)
player.profile.write(completedTimeKey, currentTimeMinutes)
rewards?.trigger(player)
rewards?.trigger(player.toDispatcher())

Bukkit.getPluginManager().callEvent(PlayerQuestCompleteEvent(player, this))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import com.willfp.ecoquests.api.event.PlayerTaskExpGainEvent
import com.willfp.ecoquests.quests.Quest
import com.willfp.ecoquests.quests.Quests
import com.willfp.libreforge.counters.Accumulator
import com.willfp.libreforge.toDispatcher
import org.bukkit.Bukkit
import org.bukkit.OfflinePlayer
import org.bukkit.entity.Player
Expand Down Expand Up @@ -152,7 +153,7 @@ class Task(

if (newXp >= requiredXp) {
player.profile.write(hasCompletedKey, true)
template.onComplete?.trigger(player)
template.onComplete?.trigger(player.toDispatcher())

Bukkit.getPluginManager().callEvent(PlayerTaskCompleteEvent(player, template, quest))

Expand Down
6 changes: 3 additions & 3 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#libreforge-updater
#Sun Nov 19 14:14:25 GMT 2023
#Tue Nov 21 22:41:42 GMT 2023
kotlin.code.style=official
libreforge-version=4.43.1
version=1.15.1
libreforge-version=4.44.0
version=1.16.0

0 comments on commit 6496d5c

Please sign in to comment.