diff --git a/src/main/kotlin/net/trueog/questsOG/ClaimQuest.kt b/src/main/kotlin/net/trueog/questsOG/ClaimQuest.kt index 138f497..19273ea 100644 --- a/src/main/kotlin/net/trueog/questsOG/ClaimQuest.kt +++ b/src/main/kotlin/net/trueog/questsOG/ClaimQuest.kt @@ -2,6 +2,7 @@ package net.trueog.questsOG import kotlinx.coroutines.launch import net.trueog.questsOG.progression.HomesProgression +import net.trueog.utilitiesog.UtilitiesOG import org.bukkit.command.Command import org.bukkit.command.CommandExecutor import org.bukkit.command.CommandSender @@ -10,50 +11,45 @@ import org.bukkit.entity.Player class ClaimQuest : CommandExecutor { override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array?): Boolean { if (sender !is Player) { - sender.sendMessage("You can only execute this command as a player.") + sender.sendMessage("ERROR: You can only execute this command as a player.") return true } val nextQuest = HomesProgression.getNextQuest(sender) if (nextQuest == null) { - sender.sendMessage("You cannot progress any further") + UtilitiesOG.trueogMessage(sender, "You have completed all available quests.") return true } QuestsOG.scope.launch { val isEligible = nextQuest.isEligible(sender) if (isEligible == null) { - sender.sendMessage("Something wrong while trying to check if you are eligible") + UtilitiesOG.trueogMessage( + sender, + "Something went wrong while checking your quest eligibility. Contact an administrator.", + ) return@launch } if (isEligible) { val successful = nextQuest.consumeQuestItems(sender) - if (!successful) { - sender.sendMessage("Something wrong while trying to consume the quest items") + if (successful) { + nextQuest.reward(sender) + val homeCount = HomesProgression.getHomeCount(nextQuest) + val questName = nextQuest::class.simpleName + UtilitiesOG.logToConsole("[Quests-OG]", "${sender.name} claimed quest $questName") + UtilitiesOG.trueogMessage( + sender, + "Claimed quest! You now have $homeCount homes.", + ) return@launch } - nextQuest.reward(sender) - sender.sendMessage("Claimed quest!") + UtilitiesOG.trueogMessage( + sender, + "You don't have enough Diamonds to claim that quest.", + ) } else { - sender.sendMessage("You are not eligible to claim the quest") - val requirements = nextQuest.getRequirements(sender) - if (requirements == null) { - sender.sendMessage("Something wrong while trying to get the unmet requirements") - return@launch - } - var requirementsMessage = "" - for (requirement in requirements) { - if (requirement is BooleanRequirement) { - requirementsMessage += - "${if (requirement.met) "" else ""}${requirement.name}: ${requirement.met} |" - } - if (requirement is ProgressRequirement) { - requirementsMessage += - "${if (requirement.current >= requirement.target) "" else ""}${requirement.name}: ${requirement.current}/${requirement.target} | " - } - } - sender.sendMessage(QuestsOG.mm.deserialize(requirementsMessage)) + UtilitiesOG.trueogMessage(sender, "You must claim all the lower quests first.") } } return true diff --git a/src/main/kotlin/net/trueog/questsOG/progression/HomesProgression.kt b/src/main/kotlin/net/trueog/questsOG/progression/HomesProgression.kt index 8210c72..a3c0b99 100644 --- a/src/main/kotlin/net/trueog/questsOG/progression/HomesProgression.kt +++ b/src/main/kotlin/net/trueog/questsOG/progression/HomesProgression.kt @@ -19,4 +19,6 @@ object HomesProgression : Progression { return quests[nextQuestIndex] } + + fun getHomeCount(quest: Quest): Int = quests.indexOf(quest) + 2 } diff --git a/src/main/kotlin/net/trueog/questsOG/quests/HomesFive.kt b/src/main/kotlin/net/trueog/questsOG/quests/HomesFive.kt index c8bd588..3df4388 100644 --- a/src/main/kotlin/net/trueog/questsOG/quests/HomesFive.kt +++ b/src/main/kotlin/net/trueog/questsOG/quests/HomesFive.kt @@ -145,9 +145,7 @@ class HomesFive : Quest { "Home five quest claimed by ${player.name} (${player.uniqueId})", "Quests-OG /claimquest", ) - if (withdrawResult.isFailure) { - return false - } + if (withdrawResult.isFailure) return false runOnMainThread { player.level -= 200 } diff --git a/src/main/kotlin/net/trueog/questsOG/quests/HomesFour.kt b/src/main/kotlin/net/trueog/questsOG/quests/HomesFour.kt index 7a9908a..19ed5ff 100644 --- a/src/main/kotlin/net/trueog/questsOG/quests/HomesFour.kt +++ b/src/main/kotlin/net/trueog/questsOG/quests/HomesFour.kt @@ -114,9 +114,7 @@ class HomesFour : Quest { "Home four quest claimed by ${player.name} (${player.uniqueId})", "Quests-OG /claimquest", ) - if (withdrawResult.isFailure) { - return false - } + if (withdrawResult.isFailure) return false runOnMainThread { player.level -= 150 } diff --git a/src/main/kotlin/net/trueog/questsOG/quests/HomesSix.kt b/src/main/kotlin/net/trueog/questsOG/quests/HomesSix.kt index c2541f2..f1fa056 100644 --- a/src/main/kotlin/net/trueog/questsOG/quests/HomesSix.kt +++ b/src/main/kotlin/net/trueog/questsOG/quests/HomesSix.kt @@ -123,9 +123,7 @@ class HomesSix : Quest { "Home six quest claimed by ${player.name} (${player.uniqueId})", "Quests-OG /claimquest", ) - if (withdrawResult.isFailure) { - return false - } + if (withdrawResult.isFailure) return false return runOnMainThread { player.level -= 250 diff --git a/src/main/kotlin/net/trueog/questsOG/quests/HomesThree.kt b/src/main/kotlin/net/trueog/questsOG/quests/HomesThree.kt index 5439fc6..4bb1e2b 100644 --- a/src/main/kotlin/net/trueog/questsOG/quests/HomesThree.kt +++ b/src/main/kotlin/net/trueog/questsOG/quests/HomesThree.kt @@ -92,9 +92,7 @@ class HomesThree : Quest { "Home three quest claimed by ${player.name} (${player.uniqueId})", "Quests-OG /claimquest", ) - if (withdrawResult.isFailure) { - return false - } + if (withdrawResult.isFailure) return false runOnMainThread { player.level -= 100 } diff --git a/src/main/kotlin/net/trueog/questsOG/quests/HomesTwo.kt b/src/main/kotlin/net/trueog/questsOG/quests/HomesTwo.kt index 82eb2e0..39ab7c8 100644 --- a/src/main/kotlin/net/trueog/questsOG/quests/HomesTwo.kt +++ b/src/main/kotlin/net/trueog/questsOG/quests/HomesTwo.kt @@ -81,9 +81,7 @@ class HomesTwo : Quest { "Home two quest claimed by ${player.name} (${player.uniqueId})", "Quests-OG /claimquest", ) - if (withdrawResult.isFailure) { - return false - } + if (withdrawResult.isFailure) return false runOnMainThread { player.level -= 100 }