mirror of
https://github.com/Auxilor/EcoQuests.git
synced 2025-12-21 16:09:16 +00:00
Compare commits
33 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b496848143 | ||
|
|
274102ac06 | ||
|
|
08ef85f6d0 | ||
|
|
29d0f8200e | ||
|
|
6496d5c7d1 | ||
|
|
35c89d7aa5 | ||
|
|
ab99f74626 | ||
|
|
ecfa40920f | ||
|
|
202528681a | ||
|
|
7aa02b3a91 | ||
|
|
070d25de67 | ||
|
|
3ab99c9237 | ||
|
|
3ee10633fb | ||
|
|
49c77396ea | ||
|
|
09fb8d2109 | ||
|
|
9623f1c427 | ||
|
|
39eaef3856 | ||
|
|
bf085b4ea5 | ||
|
|
1a1433f84f | ||
|
|
571b4c05e2 | ||
|
|
58aa2fd81d | ||
|
|
335524a2da | ||
|
|
73d748d445 | ||
|
|
e0e0804cce | ||
|
|
c00d5eb7d2 | ||
|
|
f7fab37555 | ||
|
|
a93aac6b6f | ||
|
|
025a74048a | ||
|
|
9db9f542c9 | ||
|
|
75a091624c | ||
|
|
17c81ea5b8 | ||
|
|
81d4faaf0c | ||
|
|
03110e36b1 |
@@ -3,8 +3,6 @@ package com.willfp.ecoquests.commands
|
|||||||
import com.willfp.eco.core.EcoPlugin
|
import com.willfp.eco.core.EcoPlugin
|
||||||
import com.willfp.eco.core.command.impl.PluginCommand
|
import com.willfp.eco.core.command.impl.PluginCommand
|
||||||
import com.willfp.ecoquests.gui.QuestsGUI
|
import com.willfp.ecoquests.gui.QuestsGUI
|
||||||
import com.willfp.libreforge.commands.CommandReload
|
|
||||||
import org.bukkit.command.CommandSender
|
|
||||||
import org.bukkit.entity.Player
|
import org.bukkit.entity.Player
|
||||||
|
|
||||||
class CommandQuests(plugin: EcoPlugin) : PluginCommand(
|
class CommandQuests(plugin: EcoPlugin) : PluginCommand(
|
||||||
|
|||||||
@@ -3,11 +3,8 @@ package com.willfp.ecoquests.commands
|
|||||||
import com.willfp.eco.core.EcoPlugin
|
import com.willfp.eco.core.EcoPlugin
|
||||||
import com.willfp.eco.core.command.impl.PluginCommand
|
import com.willfp.eco.core.command.impl.PluginCommand
|
||||||
import com.willfp.eco.util.StringUtils
|
import com.willfp.eco.util.StringUtils
|
||||||
import com.willfp.ecoquests.gui.QuestsGUI
|
|
||||||
import com.willfp.ecoquests.quests.Quests
|
import com.willfp.ecoquests.quests.Quests
|
||||||
import com.willfp.libreforge.commands.CommandReload
|
|
||||||
import org.bukkit.command.CommandSender
|
import org.bukkit.command.CommandSender
|
||||||
import org.bukkit.entity.Player
|
|
||||||
import org.bukkit.util.StringUtil
|
import org.bukkit.util.StringUtil
|
||||||
|
|
||||||
class CommandStart(plugin: EcoPlugin) : PluginCommand(
|
class CommandStart(plugin: EcoPlugin) : PluginCommand(
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ class PositionedPageChanger(
|
|||||||
direction: PageChanger.Direction
|
direction: PageChanger.Direction
|
||||||
): PositionedComponent {
|
): PositionedComponent {
|
||||||
private val pageChanger = PageChanger(
|
private val pageChanger = PageChanger(
|
||||||
Items.lookup("item").item,
|
Items.lookup(config.getString("item")).item,
|
||||||
direction
|
direction
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,12 @@ package com.willfp.ecoquests.libreforge
|
|||||||
|
|
||||||
import com.willfp.eco.core.config.interfaces.Config
|
import com.willfp.eco.core.config.interfaces.Config
|
||||||
import com.willfp.ecoquests.quests.Quests
|
import com.willfp.ecoquests.quests.Quests
|
||||||
|
import com.willfp.libreforge.Dispatcher
|
||||||
import com.willfp.libreforge.NoCompileData
|
import com.willfp.libreforge.NoCompileData
|
||||||
|
import com.willfp.libreforge.ProvidedHolder
|
||||||
import com.willfp.libreforge.arguments
|
import com.willfp.libreforge.arguments
|
||||||
import com.willfp.libreforge.conditions.Condition
|
import com.willfp.libreforge.conditions.Condition
|
||||||
|
import com.willfp.libreforge.get
|
||||||
import org.bukkit.entity.Player
|
import org.bukkit.entity.Player
|
||||||
|
|
||||||
object ConditionHasCompletedQuest : Condition<NoCompileData>("has_completed_quest") {
|
object ConditionHasCompletedQuest : Condition<NoCompileData>("has_completed_quest") {
|
||||||
@@ -12,7 +15,14 @@ object ConditionHasCompletedQuest : Condition<NoCompileData>("has_completed_ques
|
|||||||
require("quest", "You must specify the quest ID!")
|
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
|
val quest = Quests[config.getString("quest")] ?: return false
|
||||||
|
|
||||||
return quest.hasCompleted(player)
|
return quest.hasCompleted(player)
|
||||||
|
|||||||
@@ -3,9 +3,12 @@ package com.willfp.ecoquests.libreforge
|
|||||||
import com.willfp.eco.core.config.interfaces.Config
|
import com.willfp.eco.core.config.interfaces.Config
|
||||||
import com.willfp.ecoquests.quests.Quests
|
import com.willfp.ecoquests.quests.Quests
|
||||||
import com.willfp.ecoquests.tasks.Tasks
|
import com.willfp.ecoquests.tasks.Tasks
|
||||||
|
import com.willfp.libreforge.Dispatcher
|
||||||
import com.willfp.libreforge.NoCompileData
|
import com.willfp.libreforge.NoCompileData
|
||||||
|
import com.willfp.libreforge.ProvidedHolder
|
||||||
import com.willfp.libreforge.arguments
|
import com.willfp.libreforge.arguments
|
||||||
import com.willfp.libreforge.conditions.Condition
|
import com.willfp.libreforge.conditions.Condition
|
||||||
|
import com.willfp.libreforge.get
|
||||||
import org.bukkit.entity.Player
|
import org.bukkit.entity.Player
|
||||||
|
|
||||||
object ConditionHasCompletedTask : Condition<NoCompileData>("has_completed_task") {
|
object ConditionHasCompletedTask : Condition<NoCompileData>("has_completed_task") {
|
||||||
@@ -14,7 +17,14 @@ object ConditionHasCompletedTask : Condition<NoCompileData>("has_completed_task"
|
|||||||
require("task", "You must specify the task ID!")
|
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 quest = Quests[config.getString("quest")] ?: return false
|
||||||
val template = Tasks[config.getString("task")] ?: return false
|
val template = Tasks[config.getString("task")] ?: return false
|
||||||
val task = quest.getTask(template) ?: return false
|
val task = quest.getTask(template) ?: return false
|
||||||
|
|||||||
@@ -2,9 +2,12 @@ package com.willfp.ecoquests.libreforge
|
|||||||
|
|
||||||
import com.willfp.eco.core.config.interfaces.Config
|
import com.willfp.eco.core.config.interfaces.Config
|
||||||
import com.willfp.ecoquests.quests.Quests
|
import com.willfp.ecoquests.quests.Quests
|
||||||
|
import com.willfp.libreforge.Dispatcher
|
||||||
import com.willfp.libreforge.NoCompileData
|
import com.willfp.libreforge.NoCompileData
|
||||||
|
import com.willfp.libreforge.ProvidedHolder
|
||||||
import com.willfp.libreforge.arguments
|
import com.willfp.libreforge.arguments
|
||||||
import com.willfp.libreforge.conditions.Condition
|
import com.willfp.libreforge.conditions.Condition
|
||||||
|
import com.willfp.libreforge.get
|
||||||
import org.bukkit.entity.Player
|
import org.bukkit.entity.Player
|
||||||
|
|
||||||
object ConditionHasQuestActive : Condition<NoCompileData>("has_quest_active") {
|
object ConditionHasQuestActive : Condition<NoCompileData>("has_quest_active") {
|
||||||
@@ -12,7 +15,14 @@ object ConditionHasQuestActive : Condition<NoCompileData>("has_quest_active") {
|
|||||||
require("quest", "You must specify the quest ID!")
|
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
|
val quest = Quests[config.getString("quest")] ?: return false
|
||||||
|
|
||||||
return quest.hasActive(player)
|
return quest.hasActive(player)
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.willfp.ecoquests.api.event.PlayerTaskExpGainEvent
|
|||||||
import com.willfp.ecoquests.quests.Quest
|
import com.willfp.ecoquests.quests.Quest
|
||||||
import com.willfp.ecoquests.quests.Quests
|
import com.willfp.ecoquests.quests.Quests
|
||||||
import com.willfp.libreforge.effects.templates.MultiMultiplierEffect
|
import com.willfp.libreforge.effects.templates.MultiMultiplierEffect
|
||||||
|
import com.willfp.libreforge.toDispatcher
|
||||||
import org.bukkit.event.EventHandler
|
import org.bukkit.event.EventHandler
|
||||||
|
|
||||||
object EffectQuestXpMultiplier : MultiMultiplierEffect<Quest>("quest_xp_multiplier") {
|
object EffectQuestXpMultiplier : MultiMultiplierEffect<Quest>("quest_xp_multiplier") {
|
||||||
@@ -19,6 +20,6 @@ object EffectQuestXpMultiplier : MultiMultiplierEffect<Quest>("quest_xp_multipli
|
|||||||
|
|
||||||
@EventHandler(ignoreCancelled = true)
|
@EventHandler(ignoreCancelled = true)
|
||||||
fun handle(event: PlayerTaskExpGainEvent) {
|
fun handle(event: PlayerTaskExpGainEvent) {
|
||||||
event.amount *= getMultiplier(event.player, event.quest)
|
event.amount *= getMultiplier(event.player.toDispatcher(), event.quest)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.willfp.ecoquests.libreforge
|
|||||||
|
|
||||||
import com.willfp.ecoquests.api.event.PlayerQuestCompleteEvent
|
import com.willfp.ecoquests.api.event.PlayerQuestCompleteEvent
|
||||||
import com.willfp.ecoquests.api.event.PlayerQuestStartEvent
|
import com.willfp.ecoquests.api.event.PlayerQuestStartEvent
|
||||||
|
import com.willfp.libreforge.toDispatcher
|
||||||
import com.willfp.libreforge.triggers.Trigger
|
import com.willfp.libreforge.triggers.Trigger
|
||||||
import com.willfp.libreforge.triggers.TriggerData
|
import com.willfp.libreforge.triggers.TriggerData
|
||||||
import com.willfp.libreforge.triggers.TriggerParameter
|
import com.willfp.libreforge.triggers.TriggerParameter
|
||||||
@@ -18,7 +19,7 @@ object TriggerCompleteQuest : Trigger("complete_quest") {
|
|||||||
val player = event.player
|
val player = event.player
|
||||||
|
|
||||||
this.dispatch(
|
this.dispatch(
|
||||||
player,
|
player.toDispatcher(),
|
||||||
TriggerData(
|
TriggerData(
|
||||||
player = player,
|
player = player,
|
||||||
event = event
|
event = event
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.willfp.ecoquests.libreforge
|
package com.willfp.ecoquests.libreforge
|
||||||
|
|
||||||
import com.willfp.ecoquests.api.event.PlayerTaskCompleteEvent
|
import com.willfp.ecoquests.api.event.PlayerTaskCompleteEvent
|
||||||
|
import com.willfp.libreforge.toDispatcher
|
||||||
import com.willfp.libreforge.triggers.Trigger
|
import com.willfp.libreforge.triggers.Trigger
|
||||||
import com.willfp.libreforge.triggers.TriggerData
|
import com.willfp.libreforge.triggers.TriggerData
|
||||||
import com.willfp.libreforge.triggers.TriggerParameter
|
import com.willfp.libreforge.triggers.TriggerParameter
|
||||||
@@ -17,7 +18,7 @@ object TriggerCompleteTask : Trigger("complete_task") {
|
|||||||
val player = event.player
|
val player = event.player
|
||||||
|
|
||||||
this.dispatch(
|
this.dispatch(
|
||||||
player,
|
player.toDispatcher(),
|
||||||
TriggerData(
|
TriggerData(
|
||||||
player = player,
|
player = player,
|
||||||
event = event
|
event = event
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.willfp.ecoquests.libreforge
|
package com.willfp.ecoquests.libreforge
|
||||||
|
|
||||||
import com.willfp.ecoquests.api.event.PlayerTaskExpGainEvent
|
import com.willfp.ecoquests.api.event.PlayerTaskExpGainEvent
|
||||||
|
import com.willfp.libreforge.toDispatcher
|
||||||
import com.willfp.libreforge.triggers.Trigger
|
import com.willfp.libreforge.triggers.Trigger
|
||||||
import com.willfp.libreforge.triggers.TriggerData
|
import com.willfp.libreforge.triggers.TriggerData
|
||||||
import com.willfp.libreforge.triggers.TriggerParameter
|
import com.willfp.libreforge.triggers.TriggerParameter
|
||||||
@@ -19,7 +20,7 @@ object TriggerGainTaskXp : Trigger("gain_task_xp") {
|
|||||||
val player = event.player
|
val player = event.player
|
||||||
|
|
||||||
this.dispatch(
|
this.dispatch(
|
||||||
player,
|
player.toDispatcher(),
|
||||||
TriggerData(
|
TriggerData(
|
||||||
player = player,
|
player = player,
|
||||||
event = event,
|
event = event,
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.willfp.ecoquests.libreforge
|
package com.willfp.ecoquests.libreforge
|
||||||
|
|
||||||
import com.willfp.ecoquests.api.event.PlayerQuestStartEvent
|
import com.willfp.ecoquests.api.event.PlayerQuestStartEvent
|
||||||
|
import com.willfp.libreforge.toDispatcher
|
||||||
import com.willfp.libreforge.triggers.Trigger
|
import com.willfp.libreforge.triggers.Trigger
|
||||||
import com.willfp.libreforge.triggers.TriggerData
|
import com.willfp.libreforge.triggers.TriggerData
|
||||||
import com.willfp.libreforge.triggers.TriggerParameter
|
import com.willfp.libreforge.triggers.TriggerParameter
|
||||||
@@ -17,7 +18,7 @@ object TriggerStartQuest : Trigger("start_quest") {
|
|||||||
val player = event.player
|
val player = event.player
|
||||||
|
|
||||||
this.dispatch(
|
this.dispatch(
|
||||||
player,
|
player.toDispatcher(),
|
||||||
TriggerData(
|
TriggerData(
|
||||||
player = player,
|
player = player,
|
||||||
event = event
|
event = event
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import com.willfp.libreforge.ViolationContext
|
|||||||
import com.willfp.libreforge.conditions.Conditions
|
import com.willfp.libreforge.conditions.Conditions
|
||||||
import com.willfp.libreforge.effects.Effects
|
import com.willfp.libreforge.effects.Effects
|
||||||
import com.willfp.libreforge.effects.executors.impl.NormalExecutorFactory
|
import com.willfp.libreforge.effects.executors.impl.NormalExecutorFactory
|
||||||
|
import com.willfp.libreforge.toDispatcher
|
||||||
import org.bukkit.Bukkit
|
import org.bukkit.Bukkit
|
||||||
import org.bukkit.OfflinePlayer
|
import org.bukkit.OfflinePlayer
|
||||||
import org.bukkit.entity.Player
|
import org.bukkit.entity.Player
|
||||||
@@ -58,7 +59,7 @@ class Quest(
|
|||||||
)
|
)
|
||||||
|
|
||||||
addLoreLines(
|
addLoreLines(
|
||||||
startConditions.getNotMetLines(player, EmptyProvidedHolder)
|
startConditions.getNotMetLines(player.toDispatcher(), EmptyProvidedHolder)
|
||||||
)
|
)
|
||||||
|
|
||||||
setDisplayName(
|
setDisplayName(
|
||||||
@@ -257,7 +258,7 @@ class Quest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun meetsStartConditions(player: Player): Boolean {
|
fun meetsStartConditions(player: Player): Boolean {
|
||||||
return startConditions.areMet(player, EmptyProvidedHolder)
|
return startConditions.areMet(player.toDispatcher(), EmptyProvidedHolder)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun shouldStart(player: Player): Boolean {
|
fun shouldStart(player: Player): Boolean {
|
||||||
@@ -282,10 +283,15 @@ class Quest(
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
startEffects?.trigger(player)
|
startEffects?.trigger(player.toDispatcher())
|
||||||
player.profile.write(hasStartedKey, true)
|
player.profile.write(hasStartedKey, true)
|
||||||
player.profile.write(startedTimeKey, currentTimeMinutes)
|
player.profile.write(startedTimeKey, currentTimeMinutes)
|
||||||
|
|
||||||
|
// Reset tasks to generate new xp requirements
|
||||||
|
for (task in tasks) {
|
||||||
|
task.reset(player)
|
||||||
|
}
|
||||||
|
|
||||||
Bukkit.getPluginManager().callEvent(PlayerQuestStartEvent(player, this))
|
Bukkit.getPluginManager().callEvent(PlayerQuestStartEvent(player, this))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -403,7 +409,7 @@ class Quest(
|
|||||||
private fun complete(player: Player) {
|
private fun complete(player: Player) {
|
||||||
player.profile.write(hasCompletedKey, true)
|
player.profile.write(hasCompletedKey, true)
|
||||||
player.profile.write(completedTimeKey, currentTimeMinutes)
|
player.profile.write(completedTimeKey, currentTimeMinutes)
|
||||||
rewards?.trigger(player)
|
rewards?.trigger(player.toDispatcher())
|
||||||
|
|
||||||
Bukkit.getPluginManager().callEvent(PlayerQuestCompleteEvent(player, this))
|
Bukkit.getPluginManager().callEvent(PlayerQuestCompleteEvent(player, this))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import com.willfp.ecoquests.api.event.PlayerTaskExpGainEvent
|
|||||||
import com.willfp.ecoquests.quests.Quest
|
import com.willfp.ecoquests.quests.Quest
|
||||||
import com.willfp.ecoquests.quests.Quests
|
import com.willfp.ecoquests.quests.Quests
|
||||||
import com.willfp.libreforge.counters.Accumulator
|
import com.willfp.libreforge.counters.Accumulator
|
||||||
|
import com.willfp.libreforge.toDispatcher
|
||||||
import org.bukkit.Bukkit
|
import org.bukkit.Bukkit
|
||||||
import org.bukkit.OfflinePlayer
|
import org.bukkit.OfflinePlayer
|
||||||
import org.bukkit.entity.Player
|
import org.bukkit.entity.Player
|
||||||
@@ -32,6 +33,12 @@ class Task(
|
|||||||
0.0
|
0.0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
private val xpRequiredKey = PersistentDataKey(
|
||||||
|
plugin.createNamespacedKey("${quest.id}_task_${template.id}_xp_required"),
|
||||||
|
PersistentDataKeyType.DOUBLE,
|
||||||
|
0.0
|
||||||
|
)
|
||||||
|
|
||||||
private val hasCompletedKey = PersistentDataKey(
|
private val hasCompletedKey = PersistentDataKey(
|
||||||
plugin.createNamespacedKey("${quest.id}_task_${template.id}_has_completed"),
|
plugin.createNamespacedKey("${quest.id}_task_${template.id}_has_completed"),
|
||||||
PersistentDataKeyType.BOOLEAN,
|
PersistentDataKeyType.BOOLEAN,
|
||||||
@@ -89,7 +96,7 @@ class Task(
|
|||||||
return player.profile.read(hasCompletedKey)
|
return player.profile.read(hasCompletedKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getExperienceRequired(player: Player): Double {
|
private fun generateExperienceRequired(player: Player): Double {
|
||||||
return evaluateExpression(
|
return evaluateExpression(
|
||||||
xpExpr,
|
xpExpr,
|
||||||
placeholderContext(
|
placeholderContext(
|
||||||
@@ -98,6 +105,24 @@ class Task(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getExperienceRequired(player: Player): Double {
|
||||||
|
val required = player.profile.read(xpRequiredKey)
|
||||||
|
|
||||||
|
return if (required <= 0) {
|
||||||
|
val newRequired = generateExperienceRequired(player)
|
||||||
|
|
||||||
|
if (newRequired <= 0) {
|
||||||
|
throw IllegalStateException("Invalid XP Required for task ${template.id} in quest ${quest.id}" +
|
||||||
|
"(Requirement was $newRequired, which is less than or equal to 0)")
|
||||||
|
}
|
||||||
|
|
||||||
|
player.profile.write(xpRequiredKey, newRequired)
|
||||||
|
newRequired
|
||||||
|
} else {
|
||||||
|
required
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun getExperience(player: OfflinePlayer): Double {
|
fun getExperience(player: OfflinePlayer): Double {
|
||||||
return player.profile.read(xpKey)
|
return player.profile.read(xpKey)
|
||||||
}
|
}
|
||||||
@@ -128,6 +153,7 @@ class Task(
|
|||||||
|
|
||||||
if (newXp >= requiredXp) {
|
if (newXp >= requiredXp) {
|
||||||
player.profile.write(hasCompletedKey, true)
|
player.profile.write(hasCompletedKey, true)
|
||||||
|
template.onComplete?.trigger(player.toDispatcher())
|
||||||
|
|
||||||
Bukkit.getPluginManager().callEvent(PlayerTaskCompleteEvent(player, template, quest))
|
Bukkit.getPluginManager().callEvent(PlayerTaskCompleteEvent(player, template, quest))
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.willfp.eco.core.registry.KRegistrable
|
|||||||
import com.willfp.ecoquests.quests.Quest
|
import com.willfp.ecoquests.quests.Quest
|
||||||
import com.willfp.libreforge.ViolationContext
|
import com.willfp.libreforge.ViolationContext
|
||||||
import com.willfp.libreforge.counters.Counters
|
import com.willfp.libreforge.counters.Counters
|
||||||
|
import com.willfp.libreforge.effects.Effects
|
||||||
|
|
||||||
class TaskTemplate(
|
class TaskTemplate(
|
||||||
private val plugin: EcoPlugin,
|
private val plugin: EcoPlugin,
|
||||||
@@ -16,6 +17,11 @@ class TaskTemplate(
|
|||||||
Counters.compile(it, ViolationContext(plugin, "task $id tasks"))
|
Counters.compile(it, ViolationContext(plugin, "task $id tasks"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val onComplete = Effects.compileChain(
|
||||||
|
config.getSubsections("on-complete"),
|
||||||
|
ViolationContext(plugin, "task $id on-complete")
|
||||||
|
)
|
||||||
|
|
||||||
fun create(quest: Quest, xpExpr: String) =
|
fun create(quest: Quest, xpExpr: String) =
|
||||||
Task(plugin, this, quest, xpExpr)
|
Task(plugin, this, quest, xpExpr)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,11 @@
|
|||||||
# by Auxilor
|
# by Auxilor
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# Even if eco is set up to use a database, you can
|
||||||
|
# force EcoQuests to save to local storage to disable
|
||||||
|
# cross-server sync.
|
||||||
|
use-local-storage: false
|
||||||
|
|
||||||
scan-interval: 20 # How often to scan for quests auto-starting (in ticks)
|
scan-interval: 20 # How often to scan for quests auto-starting (in ticks)
|
||||||
|
|
||||||
gui:
|
gui:
|
||||||
|
|||||||
@@ -1,52 +0,0 @@
|
|||||||
name: ${pluginName}
|
|
||||||
version: ${version}
|
|
||||||
main: com.willfp.ecoquests.EcoQuestsPlugin
|
|
||||||
api-version: 1.19
|
|
||||||
|
|
||||||
dependencies:
|
|
||||||
- name: eco
|
|
||||||
required: true
|
|
||||||
bootstrap: false
|
|
||||||
|
|
||||||
- name: libreforge
|
|
||||||
required: false
|
|
||||||
bootstrap: false
|
|
||||||
|
|
||||||
load-after:
|
|
||||||
- name: eco
|
|
||||||
bootstrap: false
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
ecoquests.*:
|
|
||||||
description: All ecoquests permissions
|
|
||||||
default: op
|
|
||||||
children:
|
|
||||||
ecoquests.command.*: true
|
|
||||||
ecoquests.command.*:
|
|
||||||
description: All commands
|
|
||||||
default: op
|
|
||||||
children:
|
|
||||||
ecoquests.command.reload: true
|
|
||||||
ecoquests.command.quests: true
|
|
||||||
ecoquests.command.start: true
|
|
||||||
ecoquests.command.reset: true
|
|
||||||
ecoquests.command.resetplayer: true
|
|
||||||
|
|
||||||
ecoquests.command.reload:
|
|
||||||
description: Allows reloading the config
|
|
||||||
default: op
|
|
||||||
ecoquests.command.ecoquests:
|
|
||||||
description: Allows the use of /ecoquests.
|
|
||||||
default: true
|
|
||||||
ecoquests.command.quests:
|
|
||||||
description: Allows the use of /quests.
|
|
||||||
default: true
|
|
||||||
ecoquests.command.start:
|
|
||||||
description: Allows using /ecoquests start.
|
|
||||||
default: op
|
|
||||||
ecoquests.command.reset:
|
|
||||||
description: Allows using /ecoquests reset.
|
|
||||||
default: op
|
|
||||||
ecoquests.command.resetplayer:
|
|
||||||
description: Allows using /ecoquests resetplayer.
|
|
||||||
default: op
|
|
||||||
@@ -21,3 +21,10 @@ xp-gain-methods:
|
|||||||
filters:
|
filters:
|
||||||
blocks:
|
blocks:
|
||||||
- stone
|
- stone
|
||||||
|
|
||||||
|
# An optional list of effects to run when a player completes the task
|
||||||
|
# Read here: https://plugins.auxilor.io/effects/configuring-an-effect
|
||||||
|
on-complete:
|
||||||
|
- id: send_message
|
||||||
|
args:
|
||||||
|
message: "Task Completed!"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#libreforge-updater
|
#libreforge-updater
|
||||||
#Sat Aug 19 15:32:52 BST 2023
|
#Sun Dec 03 15:59:50 GMT 2023
|
||||||
kotlin.code.style=official
|
kotlin.code.style=official
|
||||||
libreforge-version=4.29.1
|
libreforge-version=4.48.0
|
||||||
version=1.2.1
|
version=1.20.0
|
||||||
|
|||||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,5 +1,5 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
|||||||
Reference in New Issue
Block a user