Quest GUI, clearer messages, debug logging #15

Merged
NotAlexNoyle merged 11 commits from main into main 2026-07-20 16:50:38 -04:00
NotAlexNoyle commented 2026-05-12 11:59:49 -04:00 (Migrated from github.com)
  • /questgui
  • Use Utilities-OG more
  • Clearer failures for when quests can't be claimed
  • Log successful claims to console
  • Tell user how many homes they earned
  • Leave economy error handling to diamondbank
- /questgui - Use Utilities-OG more - Clearer failures for when quests can't be claimed - Log successful claims to console - Tell user how many homes they earned - Leave economy error handling to diamondbank
SKBotNL (Migrated from github.com) approved these changes 2026-05-12 12:04:37 -04:00
@@ -7,4 +8,4 @@
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player
class ClaimQuest : CommandExecutor {
SKBotNL (Migrated from github.com) commented 2026-05-12 12:04:06 -04:00

This doesn't only fail with diamonds, it could also be items that failed to be removed.
No point in being specific here, nothing the player can do anyways

This doesn't only fail with diamonds, it could also be items that failed to be removed. No point in being specific here, nothing the player can do anyways
SKBotNL (Migrated from github.com) commented 2026-05-12 12:04:33 -04:00

Not being eligible means you don't meet all the requirements, not that you didn't claim a "lower quest"

Not being eligible means you don't meet all the requirements, not that you didn't claim a "lower quest"
SKBotNL (Migrated from github.com) requested changes 2026-05-12 12:05:20 -04:00
SKBotNL (Migrated from github.com) left a comment

See above comments

See above comments
NotAlexNoyle (Migrated from github.com) reviewed 2026-05-12 12:09:10 -04:00
@@ -7,4 +8,4 @@
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player
class ClaimQuest : CommandExecutor {
NotAlexNoyle (Migrated from github.com) commented 2026-05-12 12:09:09 -04:00

Will remove this entirely then

Will remove this entirely then
NotAlexNoyle (Migrated from github.com) reviewed 2026-05-12 12:10:05 -04:00
@@ -7,4 +8,4 @@
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player
class ClaimQuest : CommandExecutor {
NotAlexNoyle (Migrated from github.com) commented 2026-05-12 12:10:05 -04:00

Updated in latest commit

Updated in latest commit
SKBotNL (Migrated from github.com) requested changes 2026-05-12 12:11:40 -04:00
@@ -7,4 +8,4 @@
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player
class ClaimQuest : CommandExecutor {
SKBotNL (Migrated from github.com) commented 2026-05-12 12:11:22 -04:00

I'd say remove the if (successful) check here and put

if (!successful) {
                    sender.sendMessage("Something wrong while trying to consume the quest items")

back above it (with perhaps some MiniMessage formatting)

I'd say remove the `if (successful)` check here and put ```kotlin if (!successful) { sender.sendMessage("Something wrong while trying to consume the quest items") ``` back above it (with perhaps some MiniMessage formatting)
SKBotNL (Migrated from github.com) commented 2026-05-12 12:11:37 -04:00

How will the player know what the requirements are?

How will the player know what the requirements are?
NotAlexNoyle (Migrated from github.com) reviewed 2026-05-12 12:12:57 -04:00
@@ -7,4 +8,4 @@
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player
class ClaimQuest : CommandExecutor {
NotAlexNoyle (Migrated from github.com) commented 2026-05-12 12:12:57 -04:00

I was planning to have some kind of visual indicator at the home earning room in the bank. On holograms maybe. Or perhaps an NPC. Your thoughts?

I was planning to have some kind of visual indicator at the home earning room in the bank. On holograms maybe. Or perhaps an NPC. Your thoughts?
SKBotNL (Migrated from github.com) reviewed 2026-05-12 12:17:08 -04:00
@@ -7,4 +8,4 @@
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player
class ClaimQuest : CommandExecutor {
SKBotNL (Migrated from github.com) commented 2026-05-12 12:17:08 -04:00

Sounds good, although maybe it's better to only do this change after that's implemented? Because otherwise there's no way to test quests because it wouldn't be easy to see what requirements you don't meet

Sounds good, although maybe it's better to only do this change after that's implemented? Because otherwise there's no way to test quests because it wouldn't be easy to see what requirements you don't meet
NotAlexNoyle (Migrated from github.com) reviewed 2026-05-12 12:18:50 -04:00
@@ -7,4 +8,4 @@
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player
class ClaimQuest : CommandExecutor {
NotAlexNoyle (Migrated from github.com) commented 2026-05-12 12:18:50 -04:00

Done in 43b291f

Done in [43b291f](https://github.com/true-og/Quests-OG/pull/15/commits/43b291f6996a44704caffd56d8f305f4b788276b)
NotAlexNoyle (Migrated from github.com) reviewed 2026-05-12 12:23:27 -04:00
@@ -7,4 +8,4 @@
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player
class ClaimQuest : CommandExecutor {
NotAlexNoyle (Migrated from github.com) commented 2026-05-12 12:23:27 -04:00

sure I'll work on that part next and do it in this same PR

sure I'll work on that part next and do it in this same PR
NotAlexNoyle commented 2026-07-20 08:57:48 -04:00 (Migrated from github.com)

I redesigned /questgui with a new GxUI-OG progress API. There are now layers to it, the first one shows all available homes (with their completion state), and you can click on each home to see a new page with a detailed list of requirements, with hover to see progress for individual items instead of entire quests.

To finish off Quests-OG interaction, I intend to invoke the individual quest pages programmatically from SudoSigns-OG to create interactive NPCs in the mortgage section of the diamond bank under the player market.

We need to switch from Essentials homes to managing homes ourselves, at some point. But that is out of scope with this PR, which I now consider feature-complete. Screenshots of the new GUI are below.
image
image
image
image

I redesigned /questgui with a new GxUI-OG progress API. There are now layers to it, the first one shows all available homes (with their completion state), and you can click on each home to see a new page with a detailed list of requirements, with hover to see progress for individual items instead of entire quests. To finish off Quests-OG interaction, I intend to invoke the individual quest pages programmatically from SudoSigns-OG to create interactive NPCs in the mortgage section of the diamond bank under the player market. We need to switch from Essentials homes to managing homes ourselves, at some point. But that is out of scope with this PR, which I now consider feature-complete. Screenshots of the new GUI are below. <img width="397" height="285" alt="image" src="https://github.com/user-attachments/assets/5c2b9488-6b87-4c85-b1e3-30e694fe5dfc" /> <img width="385" height="263" alt="image" src="https://github.com/user-attachments/assets/bebfc47e-925a-4407-a8cb-035c2b08ae98" /> <img width="375" height="276" alt="image" src="https://github.com/user-attachments/assets/a04c8dcb-efeb-4ee5-813d-e030dfd8b569" /> <img width="627" height="295" alt="image" src="https://github.com/user-attachments/assets/60ecc70e-d469-425e-88bb-2ad4bd406988" />
SKBotNL (Migrated from github.com) reviewed 2026-07-20 10:22:11 -04:00
@@ -12,1 +12,4 @@
override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array<out String>): Boolean {
val debug = QuestsOG.config.debug
if (debug) QuestsOG.plugin.logger.info("/claimquest invoked by ${sender.name}")
if (sender !is Player) {
SKBotNL (Migrated from github.com) commented 2026-07-20 10:20:37 -04:00

Is the debug stuff still needed?

Is the debug stuff still needed?
SKBotNL (Migrated from github.com) commented 2026-07-20 10:20:18 -04:00

Catching a Throwable?

Catching a Throwable?
@@ -0,0 +47,4 @@
if (debug) QuestsOG.plugin.logger.info("/questgui dispatching builder.open on main thread")
MainThreadBlock.runOnMainThread { builder.open() }
if (debug) QuestsOG.plugin.logger.info("/questgui done")
} catch (t: Throwable) {
SKBotNL (Migrated from github.com) commented 2026-07-20 10:21:31 -04:00

Again catching a Throwable?

Again catching a Throwable?
SKBotNL (Migrated from github.com) commented 2026-07-20 10:21:55 -04:00

This can probably go back to how it was before can't it?

This can probably go back to how it was before can't it?
SKBotNL (Migrated from github.com) approved these changes 2026-07-20 16:48:48 -04:00
Sign in to join this conversation.