A simple back-end moderation tool for the server Monumenta utilizing Paper and CommandAPI.
-
Goal: I created this plugin as a way to introduce myself to the world of Java programming. The Minecraft server Monumenta has been one of my favorite pieces of content, and what better way to get started than to build something for a cause that I'm passionate about?
-
Challenges: Most of my time was spent with setup: debugging the editor, server, and dependencies. I first tried writing with the visual studio code java extention pack, but there were a number of issues. With the help of some CommandAPI and Monumenta-plugin developers (and ChatGBT :o), I was able to install the required dependencies & shading. After much trial and error, I was finally able to start writing code!
- Note: This is still a prototype with only 4 "quests", however it is easily scalable to encompass the entire content.
Quest scores in Monumenta are scoreboard objectives assigned to keep track of a player's progress in a custom content. Quests usually have a custom name (*eg: "A Crown of Topaz"*). In addition, their progress is tracked by a numerical value inside a scoreboard (*eg: a Quest01 score of 10*). When (us) moderators attempt to troubleshoot a player's Quest progress, one of the first things we do is check their Quest scoreboard value.
The only problem is that (unless you have photographic memory), it is impossible to know which scoreboard corresponds to which Quest, nor which scoreboard value corresponds to what progress. Finding this information involves logging into the moderator wiki and authenticating through discord (safety measure), often wasting precious minutes.
What if there was a way to do all of this in-game?
- Usage: /mmquest
/mmquest (or /mmq) allows you to view or set the progress of a Quest for a specific player.
-
You can hover and click on any Required Quests to also view their progress:
-
Hovering over any [number] value lists a short description of that value:
-
Click the [number] value to set the player's score to that value.
-
Several different quest completion values are supported. For example, "Bandit Troubles" has both a good and a bad ending, which both show a green Complete near the top:
-
If there is no scoreboard objective, there will be a message:
This plugin obtains Quest data from a config JSON file. It is intended to be used in conjunction with its companion, the wiki.js-parser, which automatically generates JSON files from the Monumenta Quest Wiki.