From 50dc569023ffb0ee641572601a60f1309c85457d Mon Sep 17 00:00:00 2001 From: Marlon Haenen Date: Thu, 12 Mar 2020 14:48:56 +0100 Subject: [PATCH] [WIP] Dump Started Quest Rework --- .idea/.name | 1 - .../nico/module/quest/data/quest/Quest.kt | 30 +++ .../module/quest/data/quest/QuestProgress.kt | 14 ++ .../module/quest/data/quest/SimpleQuest.kt | 16 ++ .../module/quest/data/task/TaskProgress.kt | 9 + .../nico/module/quest/interfaces/IQuest.kt | 14 ++ .../quest/listener/QuestTrackerListener.kt | 4 +- .../quest/schedule/DailyQuestResetJob.kt | 4 +- .../quest/schedule/WeeklyQuestResetJob.kt | 4 +- .../module/quest/service/QuestRegistry.kt | 184 +++++------------- .../module/quest/service/QuestRegistry_OLD.kt | 171 ++++++++++++++++ .../nico/module/quest/service/QuestTracker.kt | 2 +- 12 files changed, 311 insertions(+), 142 deletions(-) delete mode 100644 .idea/.name create mode 100644 src/main/kotlin/com/nanabell/sponge/nico/module/quest/data/quest/Quest.kt create mode 100644 src/main/kotlin/com/nanabell/sponge/nico/module/quest/data/quest/QuestProgress.kt create mode 100644 src/main/kotlin/com/nanabell/sponge/nico/module/quest/data/quest/SimpleQuest.kt create mode 100644 src/main/kotlin/com/nanabell/sponge/nico/module/quest/data/task/TaskProgress.kt create mode 100644 src/main/kotlin/com/nanabell/sponge/nico/module/quest/interfaces/IQuest.kt create mode 100644 src/main/kotlin/com/nanabell/sponge/nico/module/quest/service/QuestRegistry_OLD.kt diff --git a/.idea/.name b/.idea/.name deleted file mode 100644 index 804f956..0000000 --- a/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -nico-yazawa \ No newline at end of file diff --git a/src/main/kotlin/com/nanabell/sponge/nico/module/quest/data/quest/Quest.kt b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/data/quest/Quest.kt new file mode 100644 index 0000000..5fb1f66 --- /dev/null +++ b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/data/quest/Quest.kt @@ -0,0 +1,30 @@ +package com.nanabell.sponge.nico.module.quest.data.quest + +import com.nanabell.sponge.nico.module.quest.interfaces.IQuest +import ninja.leaping.configurate.ConfigurationNode +import ninja.leaping.configurate.objectmapping.Setting +import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable +import java.util.* + +@ConfigSerializable +abstract class Quest( + + @Setting("quest-id") + override val id: UUID, + + @Setting("name") + override val name: String, + + @Setting("description") + override val description: String?, + + @Setting("tasks") + override val tasks: List, + + @Setting("rewards") + override val rewards: List, + + @Setting("dependencies") + override val dependencies: List + +) : IQuest \ No newline at end of file diff --git a/src/main/kotlin/com/nanabell/sponge/nico/module/quest/data/quest/QuestProgress.kt b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/data/quest/QuestProgress.kt new file mode 100644 index 0000000..153adfe --- /dev/null +++ b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/data/quest/QuestProgress.kt @@ -0,0 +1,14 @@ +package com.nanabell.sponge.nico.module.quest.data.quest + +import com.nanabell.sponge.nico.module.quest.quest.QuestStatus +import java.util.* + +class QuestProgress( + val userId: UUID, + val questId: UUID, + val status: QuestStatus, + val tasks: List, + val dependencies: List +) { + +} \ No newline at end of file diff --git a/src/main/kotlin/com/nanabell/sponge/nico/module/quest/data/quest/SimpleQuest.kt b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/data/quest/SimpleQuest.kt new file mode 100644 index 0000000..c74545d --- /dev/null +++ b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/data/quest/SimpleQuest.kt @@ -0,0 +1,16 @@ +package com.nanabell.sponge.nico.module.quest.data.quest + +import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable +import java.util.* + +@ConfigSerializable +class SimpleQuest( + id: UUID, + name: String, + description: String, + tasks: List, + rewards: List, + dependencies: List +) : Quest(id, name, description, tasks, rewards, dependencies) { + +} \ No newline at end of file diff --git a/src/main/kotlin/com/nanabell/sponge/nico/module/quest/data/task/TaskProgress.kt b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/data/task/TaskProgress.kt new file mode 100644 index 0000000..b93d5c8 --- /dev/null +++ b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/data/task/TaskProgress.kt @@ -0,0 +1,9 @@ +package com.nanabell.sponge.nico.module.quest.data.task + +import java.util.* + +class TaskProgress( + val taskId: UUID, + val userId: UUID +) { +} \ No newline at end of file diff --git a/src/main/kotlin/com/nanabell/sponge/nico/module/quest/interfaces/IQuest.kt b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/interfaces/IQuest.kt new file mode 100644 index 0000000..07ebb65 --- /dev/null +++ b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/interfaces/IQuest.kt @@ -0,0 +1,14 @@ +package com.nanabell.sponge.nico.module.quest.interfaces + +import java.util.* + +interface IQuest { + + val id: UUID + val name: String + val description: String? + val tasks: List + val rewards: List + val dependencies: List + +} \ No newline at end of file diff --git a/src/main/kotlin/com/nanabell/sponge/nico/module/quest/listener/QuestTrackerListener.kt b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/listener/QuestTrackerListener.kt index 419ac12..c69a3ec 100644 --- a/src/main/kotlin/com/nanabell/sponge/nico/module/quest/listener/QuestTrackerListener.kt +++ b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/listener/QuestTrackerListener.kt @@ -5,7 +5,7 @@ import com.nanabell.sponge.nico.internal.annotation.RegisterListener import com.nanabell.sponge.nico.internal.extension.orNull import com.nanabell.sponge.nico.internal.listener.AbstractListener import com.nanabell.sponge.nico.module.quest.QuestModule -import com.nanabell.sponge.nico.module.quest.service.QuestRegistry +import com.nanabell.sponge.nico.module.quest.service.QuestRegistry_OLD import com.nanabell.sponge.nico.module.quest.service.QuestTracker import org.spongepowered.api.entity.living.player.Player import org.spongepowered.api.event.Listener @@ -17,7 +17,7 @@ import org.spongepowered.api.event.network.ClientConnectionEvent class QuestTrackerListener : AbstractListener() { private val tracker: QuestTracker = NicoYazawa.getServiceRegistry().provideUnchecked() - private val registry: QuestRegistry = NicoYazawa.getServiceRegistry().provideUnchecked() + private val registry: QuestRegistry_OLD = NicoYazawa.getServiceRegistry().provideUnchecked() @Listener fun onEntityDeath(event: DestructEntityEvent.Death) { diff --git a/src/main/kotlin/com/nanabell/sponge/nico/module/quest/schedule/DailyQuestResetJob.kt b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/schedule/DailyQuestResetJob.kt index 3eb0e56..4ef3179 100644 --- a/src/main/kotlin/com/nanabell/sponge/nico/module/quest/schedule/DailyQuestResetJob.kt +++ b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/schedule/DailyQuestResetJob.kt @@ -7,7 +7,7 @@ import com.nanabell.sponge.nico.internal.extension.green import com.nanabell.sponge.nico.internal.schedule.AbstractSchedule import com.nanabell.sponge.nico.module.quest.QuestModule import com.nanabell.sponge.nico.module.quest.quest.DailyQuest -import com.nanabell.sponge.nico.module.quest.service.QuestRegistry +import com.nanabell.sponge.nico.module.quest.service.QuestRegistry_OLD import com.nanabell.sponge.nico.module.quest.service.QuestTracker import org.quartz.* @@ -36,7 +36,7 @@ class DailyQuestResetJob : AbstractSchedule() { } override fun execute(context: JobExecutionContext) { - val registry: QuestRegistry = NicoYazawa.getServiceRegistry().provideUnchecked() + val registry: QuestRegistry_OLD = NicoYazawa.getServiceRegistry().provideUnchecked() val tracker: QuestTracker = NicoYazawa.getServiceRegistry().provideUnchecked() tracker.getAll().forEach { (uniqueId, quests) -> diff --git a/src/main/kotlin/com/nanabell/sponge/nico/module/quest/schedule/WeeklyQuestResetJob.kt b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/schedule/WeeklyQuestResetJob.kt index 178d873..1d4baa5 100644 --- a/src/main/kotlin/com/nanabell/sponge/nico/module/quest/schedule/WeeklyQuestResetJob.kt +++ b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/schedule/WeeklyQuestResetJob.kt @@ -7,7 +7,7 @@ import com.nanabell.sponge.nico.internal.extension.green import com.nanabell.sponge.nico.internal.schedule.AbstractSchedule import com.nanabell.sponge.nico.module.quest.QuestModule import com.nanabell.sponge.nico.module.quest.quest.WeeklyQuest -import com.nanabell.sponge.nico.module.quest.service.QuestRegistry +import com.nanabell.sponge.nico.module.quest.service.QuestRegistry_OLD import com.nanabell.sponge.nico.module.quest.service.QuestTracker import org.quartz.* @@ -36,7 +36,7 @@ class WeeklyQuestResetJob : AbstractSchedule() { } override fun execute(context: JobExecutionContext) { - val registry: QuestRegistry = NicoYazawa.getServiceRegistry().provideUnchecked() + val registry: QuestRegistry_OLD = NicoYazawa.getServiceRegistry().provideUnchecked() val tracker: QuestTracker = NicoYazawa.getServiceRegistry().provideUnchecked() tracker.getAll().forEach { (uniqueId, quests) -> diff --git a/src/main/kotlin/com/nanabell/sponge/nico/module/quest/service/QuestRegistry.kt b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/service/QuestRegistry.kt index e312745..783638a 100644 --- a/src/main/kotlin/com/nanabell/sponge/nico/module/quest/service/QuestRegistry.kt +++ b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/service/QuestRegistry.kt @@ -1,171 +1,87 @@ package com.nanabell.sponge.nico.module.quest.service import com.google.common.reflect.TypeToken -import com.nanabell.sponge.nico.NicoYazawa import com.nanabell.sponge.nico.internal.annotation.service.RegisterService -import com.nanabell.sponge.nico.internal.serializer.CurrencySerializer -import com.nanabell.sponge.nico.internal.serializer.DurationSerializer import com.nanabell.sponge.nico.internal.service.AbstractService import com.nanabell.sponge.nico.module.quest.QuestModule -import com.nanabell.sponge.nico.module.quest.quest.DailyQuest -import com.nanabell.sponge.nico.module.quest.quest.Quest -import com.nanabell.sponge.nico.module.quest.quest.SimpleQuest -import com.nanabell.sponge.nico.module.quest.quest.WeeklyQuest -import com.nanabell.sponge.nico.module.quest.reward.MoneyReward -import com.nanabell.sponge.nico.module.quest.task.KillTask +import com.nanabell.sponge.nico.module.quest.data.quest.Quest +import com.nanabell.sponge.nico.module.quest.data.quest.SimpleQuest +import com.nanabell.sponge.nico.module.quest.interfaces.IQuest import ninja.leaping.configurate.ConfigurationNode -import ninja.leaping.configurate.ConfigurationOptions import ninja.leaping.configurate.hocon.HoconConfigurationLoader -import ninja.leaping.configurate.objectmapping.serialize.TypeSerializers import org.spongepowered.api.Sponge -import org.spongepowered.api.service.economy.Currency -import java.time.Duration import java.util.* +import kotlin.collections.ArrayList -@Suppress("UnstableApiUsage") @RegisterService +@Suppress("UnstableApiUsage") class QuestRegistry : AbstractService() { - private val token = object : TypeToken>() {} - private val serializers = TypeSerializers.getDefaultSerializers().newChild() - .registerType(TypeToken.of(Currency::class.java), CurrencySerializer()) - .registerType(TypeToken.of(Duration::class.java), DurationSerializer()) - - private lateinit var defaultLoader: HoconConfigurationLoader - private lateinit var defaultRootNode: ConfigurationNode + private val token = object : TypeToken>() {} + private val quests: MutableList = ArrayList() private lateinit var loader: HoconConfigurationLoader - private lateinit var rootNode: ConfigurationNode + private lateinit var node: ConfigurationNode override fun onPreEnable() { - val path = Sponge.getConfigManager().getPluginConfig(NicoYazawa.getPlugin()).directory.resolve("quests.conf") - loader = HoconConfigurationLoader.builder() - .setDefaultOptions(ConfigurationOptions.defaults().setSerializers(serializers)) - .setPath(path) - .build() + val questPath = Sponge.getConfigManager().getPluginConfig(plugin).directory.resolve("quest/quests.conf") + loader = HoconConfigurationLoader.builder().setPath(questPath).build() + node = loader.load() - val defaultPath = Sponge.getConfigManager().getPluginConfig(NicoYazawa.getPlugin()).directory.resolve("default-quests.conf") - defaultLoader = HoconConfigurationLoader.builder() - .setDefaultOptions(ConfigurationOptions.defaults().setSerializers(serializers)) - .setPath(defaultPath) - .build() - - rootNode = loader.load() - defaultRootNode = defaultLoader.load() + loadQuests() } - override fun onEnable() { - loadDefaults() - } - fun load(uniqueId: UUID): List { - val playerNode = rootNode.getNode(uniqueId.toString()) - if (playerNode.isVirtual) { - save(uniqueId, loadDefaults()) + fun loadQuests() { + val questsNode = node.getNode("quests") + if (questsNode.isVirtual) { + saveQuests() } - val quests = playerNode.getValue(token) - if (quests == null) { - save(uniqueId, loadDefaults()) - return load(uniqueId) + val quests = questsNode.getValue(token) + if (quests == null) { + saveQuests() + return } - val total = quests.toMutableList() - loadDefaults().forEach { quest -> - if (total.none { it.uniqueId == quest.uniqueId }) { - total.add(quest) - } - } - - save(uniqueId, total) - return quests + this.quests.addAll(quests) } - fun save(uniqueId: UUID, quests: List) { - var root: ConfigurationNode = rootNode.getNode(uniqueId.toString()) - root.setValue(token, quests) + fun saveQuests() { + val toSave = quests.plus(defaults()) + var root: ConfigurationNode = node.getNode("quests") + root.setValue(token, toSave) if (root.parent != null) root = root.parent!! - rootNode.mergeValuesFrom(root) - loader.save(rootNode) + node.mergeValuesFrom(root) + loader.save(node) } - fun loadDefaults(): List { - val questNode = defaultRootNode.getNode("quests") - if (questNode.isVirtual) { - saveDefaults(defaults()) - } - - val quests = questNode.getValue(token) - if (quests == null) { - saveDefaults(defaults()) - return loadDefaults() - } - - return quests - } - - fun saveDefaults(quests: List) { - val root: ConfigurationNode = defaultRootNode.getNode("quests") - root.setValue(token, quests) - - defaultRootNode.mergeValuesFrom(root) - defaultLoader.save(defaultRootNode) - } - - // TODO: Move to Default serialized file once serialization stands - fun defaults(): List { + private fun defaults(): List { return listOf( - SimpleQuest.builder() - .setId(UUID.fromString("2e27a2b7-cea4-44fb-ae88-617a97d177fa")) - .setDescription("Kill a single hostile mob") - .addTask(KillTask.builder() - .setAmount(1) - .build()) - .addReward(MoneyReward.builder() - .setAmount(100) - .build()) - .build("Kill 1 Hostile Mob"), - - SimpleQuest.builder() - .setId(UUID.fromString("a82f48d5-a4fd-4a5b-b55d-8635477456f4")) - .setDescription("Kill 2 hostile mobs of any type") - .addTask(KillTask.builder() - .setAmount(2) - .build()) - .addReward(MoneyReward.builder() - .setAmount(200) - .build()) - .addRequirement(UUID.fromString("2e27a2b7-cea4-44fb-ae88-617a97d177fa")) - .build("Kill 2 Hostile Mobs"), - - DailyQuest.builder() - .setId(UUID.fromString("6073df2d-cb4d-4663-a75d-aaf09e159479")) - .setDescription("Kill 5 hostile mobs of any type") - .addTask(KillTask.builder() - .setAmount(5) - .build()) - .addReward(MoneyReward.builder() - .setAmount(300) - .build()) - .addRequirement(UUID.fromString("a82f48d5-a4fd-4a5b-b55d-8635477456f4")) - .build("Kill 5 Hostile Mobs"), - - WeeklyQuest.builder() - .setId(UUID.fromString("a46eae73-28f1-4260-aea1-1d551bf28e72")) - .setDescription("Kill 50 hostile mobs of any type") - .addTask(KillTask.builder() - .setAmount(50) - .build()) - .addReward(MoneyReward.builder() - .setAmount(1000) - .build()) - .addRequirement(UUID.fromString("6073df2d-cb4d-4663-a75d-aaf09e159479")) - .build("Kill 50 Hostile Mobs") - - + SimpleQuest( + UUID.randomUUID(), + "Sample Quest", + "This is a Sample Quest", + listOf(UUID.randomUUID()), + listOf(UUID.randomUUID(), UUID.randomUUID()), + listOf()), + SimpleQuest( + UUID.randomUUID(), + "Sample Quest 2", + "This is a Sample Quest 2", + listOf(UUID.randomUUID()), + listOf(UUID.randomUUID(), UUID.randomUUID()), + listOf()), + SimpleQuest( + UUID.randomUUID(), + "Sample Quest 3", + "This is a Sample Quest 3", + listOf(UUID.randomUUID()), + listOf(UUID.randomUUID(), UUID.randomUUID()), + listOf(UUID.randomUUID(), UUID.randomUUID(), UUID.randomUUID())) ) } -} +} \ No newline at end of file diff --git a/src/main/kotlin/com/nanabell/sponge/nico/module/quest/service/QuestRegistry_OLD.kt b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/service/QuestRegistry_OLD.kt new file mode 100644 index 0000000..5b139bb --- /dev/null +++ b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/service/QuestRegistry_OLD.kt @@ -0,0 +1,171 @@ +package com.nanabell.sponge.nico.module.quest.service + +import com.google.common.reflect.TypeToken +import com.nanabell.sponge.nico.NicoYazawa +import com.nanabell.sponge.nico.internal.annotation.service.RegisterService +import com.nanabell.sponge.nico.internal.serializer.CurrencySerializer +import com.nanabell.sponge.nico.internal.serializer.DurationSerializer +import com.nanabell.sponge.nico.internal.service.AbstractService +import com.nanabell.sponge.nico.module.quest.QuestModule +import com.nanabell.sponge.nico.module.quest.quest.DailyQuest +import com.nanabell.sponge.nico.module.quest.quest.Quest +import com.nanabell.sponge.nico.module.quest.quest.SimpleQuest +import com.nanabell.sponge.nico.module.quest.quest.WeeklyQuest +import com.nanabell.sponge.nico.module.quest.reward.MoneyReward +import com.nanabell.sponge.nico.module.quest.task.KillTask +import ninja.leaping.configurate.ConfigurationNode +import ninja.leaping.configurate.ConfigurationOptions +import ninja.leaping.configurate.hocon.HoconConfigurationLoader +import ninja.leaping.configurate.objectmapping.serialize.TypeSerializers +import org.spongepowered.api.Sponge +import org.spongepowered.api.service.economy.Currency +import java.time.Duration +import java.util.* + +@Suppress("UnstableApiUsage") +@RegisterService +class QuestRegistry_OLD : AbstractService() { + + private val token = object : TypeToken>() {} + private val serializers = TypeSerializers.getDefaultSerializers().newChild() + .registerType(TypeToken.of(Currency::class.java), CurrencySerializer()) + .registerType(TypeToken.of(Duration::class.java), DurationSerializer()) + + private lateinit var defaultLoader: HoconConfigurationLoader + private lateinit var defaultRootNode: ConfigurationNode + + private lateinit var loader: HoconConfigurationLoader + private lateinit var rootNode: ConfigurationNode + + override fun onPreEnable() { + val path = Sponge.getConfigManager().getPluginConfig(NicoYazawa.getPlugin()).directory.resolve("quests.conf") + loader = HoconConfigurationLoader.builder() + .setDefaultOptions(ConfigurationOptions.defaults().setSerializers(serializers)) + .setPath(path) + .build() + + val defaultPath = Sponge.getConfigManager().getPluginConfig(NicoYazawa.getPlugin()).directory.resolve("default-quests.conf") + defaultLoader = HoconConfigurationLoader.builder() + .setDefaultOptions(ConfigurationOptions.defaults().setSerializers(serializers)) + .setPath(defaultPath) + .build() + + rootNode = loader.load() + defaultRootNode = defaultLoader.load() + } + + override fun onEnable() { + loadDefaults() + } + + fun load(uniqueId: UUID): List { + val playerNode = rootNode.getNode(uniqueId.toString()) + if (playerNode.isVirtual) { + save(uniqueId, loadDefaults()) + } + + val quests = playerNode.getValue(token) + if (quests == null) { + save(uniqueId, loadDefaults()) + return load(uniqueId) + } + + val total = quests.toMutableList() + loadDefaults().forEach { quest -> + if (total.none { it.uniqueId == quest.uniqueId }) { + total.add(quest) + } + } + + save(uniqueId, total) + return quests + } + + fun save(uniqueId: UUID, quests: List) { + var root: ConfigurationNode = rootNode.getNode(uniqueId.toString()) + root.setValue(token, quests) + + if (root.parent != null) + root = root.parent!! + + rootNode.mergeValuesFrom(root) + loader.save(rootNode) + } + + fun loadDefaults(): List { + val questNode = defaultRootNode.getNode("quests") + if (questNode.isVirtual) { + saveDefaults(defaults()) + } + + val quests = questNode.getValue(token) + if (quests == null) { + saveDefaults(defaults()) + return loadDefaults() + } + + return quests + } + + fun saveDefaults(quests: List) { + val root: ConfigurationNode = defaultRootNode.getNode("quests") + root.setValue(token, quests) + + defaultRootNode.mergeValuesFrom(root) + defaultLoader.save(defaultRootNode) + } + + // TODO: Move to Default serialized file once serialization stands + fun defaults(): List { + return listOf( + SimpleQuest.builder() + .setId(UUID.fromString("2e27a2b7-cea4-44fb-ae88-617a97d177fa")) + .setDescription("Kill a single hostile mob") + .addTask(KillTask.builder() + .setAmount(1) + .build()) + .addReward(MoneyReward.builder() + .setAmount(100) + .build()) + .build("Kill 1 Hostile Mob"), + + SimpleQuest.builder() + .setId(UUID.fromString("a82f48d5-a4fd-4a5b-b55d-8635477456f4")) + .setDescription("Kill 2 hostile mobs of any type") + .addTask(KillTask.builder() + .setAmount(2) + .build()) + .addReward(MoneyReward.builder() + .setAmount(200) + .build()) + .addRequirement(UUID.fromString("2e27a2b7-cea4-44fb-ae88-617a97d177fa")) + .build("Kill 2 Hostile Mobs"), + + DailyQuest.builder() + .setId(UUID.fromString("6073df2d-cb4d-4663-a75d-aaf09e159479")) + .setDescription("Kill 5 hostile mobs of any type") + .addTask(KillTask.builder() + .setAmount(5) + .build()) + .addReward(MoneyReward.builder() + .setAmount(300) + .build()) + .addRequirement(UUID.fromString("a82f48d5-a4fd-4a5b-b55d-8635477456f4")) + .build("Kill 5 Hostile Mobs"), + + WeeklyQuest.builder() + .setId(UUID.fromString("a46eae73-28f1-4260-aea1-1d551bf28e72")) + .setDescription("Kill 50 hostile mobs of any type") + .addTask(KillTask.builder() + .setAmount(50) + .build()) + .addReward(MoneyReward.builder() + .setAmount(1000) + .build()) + .addRequirement(UUID.fromString("6073df2d-cb4d-4663-a75d-aaf09e159479")) + .build("Kill 50 Hostile Mobs") + + + ) + } +} diff --git a/src/main/kotlin/com/nanabell/sponge/nico/module/quest/service/QuestTracker.kt b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/service/QuestTracker.kt index 508943a..835f60b 100644 --- a/src/main/kotlin/com/nanabell/sponge/nico/module/quest/service/QuestTracker.kt +++ b/src/main/kotlin/com/nanabell/sponge/nico/module/quest/service/QuestTracker.kt @@ -17,7 +17,7 @@ import kotlin.collections.HashMap class QuestTracker : AbstractService() { private val playerQuests: MutableMap> = HashMap() - private lateinit var questRegistry: QuestRegistry + private lateinit var questRegistry: QuestRegistry_OLD override fun onPreEnable() { }