Wynntils

Wynntils is a Minecraft mod using Architectury to support Fabric and NeoForge, currently supporting 1.21. It is a rewrite (originally codenamed Artemis) of the original Wynntils mod, now known as Wynntils Legacy. I started out porting a feature from the original mod that was yet to be added and eventually added more over time to the point where I was asked to join the official development team.

The mod was originally released in an alpha state with many features missing from the original but a lot of the framework existed for them to be added. Over time, many of these features were ported from different contributors and also some new features not present in the original were added.

Contents

Features

Waypoint Manager

This feature added a custom screen to allow users to easily view all of their custom waypoints and edit/delete them.

The pull request for the feature is available here.

Seaskipper Map

The Seaskipper Map screen replaces the default container screen with an overhead map view of the Wynncraft world with boxes around the available destinations the Seaskipper can take you to.

You can use the options at the bottom of the screen to purchase a boat, toggle the borders, show unavailable destinations and draw lines along routes.

The pull request for the feature is available here.

Seaskipper Departure Board

The Seaskipper Departure Board is an alternative version of the Seaskipper Map screen that instead uses a list of the available destinations on the left side of the screen and those are used to select the destination instead.

The alternative screen was still available as an option in the mod config until the screens were merged into one at a later date.

The pull request for the feature is available here.

Emerald Pouch Fill Arc

Emerald Pouches are in-game items that allow you to store emeralds in a single slot up to a certain amount, with the higher tiers increasing their capacity.

This feature draws an arc around the item to show how full it is, also going from green to red in the process.

The pull request for the feature is available here.

Guild Name and Rank in Content Book

This feature simply adds the rank for your current guild as well as the name of that guild to the book. It gets the information from reading the lore of an item in the compass menu which is read each time the player logs in to the server.

The pull request for the feature is available here.

Custom Bank Quick Jump Buttons

Personal Storage Containers such as banks contain quick jump buttons to quickly navigate through the pages. By default these are set to 1, 5, 9, 13, 17 and 21 but this feature allows you to set custom ones.

As we cannot directly modify which pages they jump to, the feature instead uses a combination of the vanilla jump buttons and the next/previous page buttons to get to the desired page.

The pull request for the feature is available here.

Scrolling Support for Bookshelf

A new update to the server added a new personal storage type so it was added to the scrollable list

The pull request for the feature is available here.

Feature Eight - Custom Bookshelf & Misc. Bucket Quick Jump Buttons

Two other personal storage containers that can have the quick jump buttons were the bookshelf and misc bucket. This feature does change the way you choose the destinations by making a list of 6 values, rather than 6 individual configs.

The pull request for the feature is available here.

Custom Block Bank Quick Jump Buttons

The final personal storage container is the block bank, it works slightly different to the others by having a personal and island storage mode which currently is not fully supported as we have no method to detect current island but hopefully in the future it can be improved.

The pull request for the feature is available here.

Gavellian and Wynnic Transcription

Ancient Wynnic and High Gavellian are two languages used throughout the game. This feature transcribes the languages back into plain English characters.

It also adds the ability for the user to send messages in these languages by surrounding their text in brackets or by using the buttons added to the chat screen to select language.

The pull request for the feature is available here.

Export Waypoints

Since you can import waypoints, it made sense for there to be an export option too. So this feature allows you to export all of your waypoints for them to be easily shared with others.

The pull request for the feature is available here.

Transcription Tooltips

This adds the ability to see transcriptions in a tooltip by hovering the text. If the option is disabled, a tooltip will still be shown but instead of showing the transcribed text it will show the original.

The pull request for the feature is available here.

Armour and Accessory durability functions

In the game, you can craft armour and accessories and these will have durability, unlike regular items. But, you have to hover over them in your inventory to be able to see what their durability values are so this adds functions to see them more easily.

The pull request for the feature is available here.

Custom Bank Page Names

This feature allows you to give custom names for the pages in your personal storage containers.

It also hooks into the quick jumps feature by displaying the name of the page on the quick jump button.

The pull request for the feature is available here.

Per Character Guild Contribution

You can contribute a certain percentage of your XP gained to your guild if you choose to do so, but the set value applies globally to all of your characters.

This feature allows you to set it per character, so when you run the contribution command once, every time you load that character the command will automatically run with the saved amount.

The pull request for the feature is available here.

After the feature was merged, a suggestion was made for a better way to implement the feature so I later followed up with that. The pull request for the change is available here.

Rarity and Quality Filters

This is a small part of a larger feature, allowing users to perform advanced search filters in the guides and other screens. This pr added filters for rarity and quality stats.

The pull request for the feature is available here.

A screenshot of the guide screen with quality and rarity filters active.

Feature Seventeen - Scrolling in Guild Member List

Another container that contains pages so scrolling it was worth adding.

The pull request for the feature is available here.

Highlight Duplicate Cosmetics

For my next addition I added the ability to see duplicate cosmetics in the scrap menu.

On Wynncraft you can get cosmetic items in crates, however they are not unique and you can get multiple of the same cosmetic. To account for this, you can scrap 5 of the same rarity cosmetics in exchange for 1 cosmetic of a higher rarity.

Since some people only like to scrap cosmetics they have more than 1 of, this feature allows you to see if you have any duplicates of a cosmetic by hovering it, or selecting it to be scrapped. Hovering it will show duplicates in a blue ring and selected cosmetic duplicates in an orange ring. However the user can change the logic in the config to only highlight hovered or selected duplicates but the default is both.

This feature was originally from the legacy version of the mod, however it only had support for hovering cosmetics, I believe this is an improvement as not all cosmetics are displayed at once so this allows you to see duplicates on all pages.

The pull request for the feature is available here.

Support 2.0.4 Banks

The server announced a new update, 2.0.4, and with it came some changes to the way banks worked, so as I had done some features relating to the banks I decided to add support for them.

The changes split the regular bank into two types, account and character. Previously, only account existed where all your items in the bank were accessible by all characters, but now there would be a bank for your account and a bank for each character.

To accomodate for the changes, it was mostly editing regex patterns to read the new bank labels and modifying previous bank features to support the new character banks. There is a seperate set of quick jump destinations for account and character and then account and each character can have a unique set of custom names.

The pull request for the feature is available here.

Waypoint Manager Redesign

As I had gotten a lot more familiar with working on the mod, I decided to revisit some of my previous additions starting with my very first one, the waypoint manager.

When I first ported it originally, I knew it wasn't matching the original perfectly, as I didn't have support for filtering by icons or importing and exporting waypoints. Since then, an import button was added by another contributor and I added an export button. But one of the things I wanted to include in this redesign was the icon filtering.

The redesign includes scrolling by 1 waypoint at a time instead of displaying a full page and scrolling past that page so it appears much smoother, the ability to select waypoints for better exporting and deleting, sorting waypoints by icon, name and coordinates as well as the ability to filter waypoints by name or icon. Name filtering is simply using a text input and looking for matching names.

The icon filtering takes a different approach from the legacy implementation, it instead uses a seperate screen displaying all used icons which can be toggled by clicking them. The reason for this more advanced system was due to a new system coming soon to the mod which would allow for custom icons and therefore a better system was needed for displaying many icons.

The pull request for the feature is available here.

Center Guild Map

Something simple I'd seen requested a lot was the ability to center the guild map when you are outside of the main area since unlike the main map, the guild map is only relevant for the main areas as that's where the territores are.

This was a rather simple feature to add, simply defining bounds for what classed as inside the area and simply checking the player position.

The border shown in the video is simply for display purposes and does not appear in the final feature.

The pull request for the feature is available here.

Set Markers from Waypoint Manager

Another simple feature that I saw requested was being able to set markers for custom waypoint from the waypoint manager.

It allows this via two methods, either middle clicking a poi to add and right clicking to remove, or selecting pois and then clicking the set/remove markers buttons to add or remove markers at all of the selected pois.

The pull request for the feature is available here.

Hide Minimap and Center Main Map in Unmapped Areas

After adding the ability to center the guild map when outside of the main map region, a similar feature was to center the main map when outside of a mapped area and also to hide the minimap when in an unmapped area.

A check is made to see if there are any map files in a certain radius around the player, and if there are not then it will count you as in an unmapped area.

Opening the map when in an unmapped area will center the map on the main area. And if the setting is enabled, the minimap will not render when in an unmapped area.

The pull request for the feature is available here.

Item Sharing GUI

As another developer was reworking the feature that allowed you to share items in chat, one thing they wanted to add but didn't have the time to work on was a new GUI for sharing items, instead of a prompt in chat.

The original chat prompt still exists as a config option, but this GUI is the default, allowing you to see a preview of the item, save to your item record and quick share options for party and guild. This is also where you can edit options to show crafted item names, or to use extended encoding.

The pull request for the feature is available here.

Item Storage GUI

Another part to the rework of sharing items was the ability to save certain items for quick access so you wouldn't have to return to your in-game bank to share the item.

The item record also allows players to sort their saved items into different categories, and allow items to be in various different categories.

The pull request for the feature is available here.

Prevent Trade/Duels whilst holding Gathering Tool

A feature has exited for a while, preventing you from requesting trades or duels with players after dealing damage to a mob within a duration, this is useful when doing activities together where you may accidently send a trade/duel request.

Another area where this can happen unintentionally is when gathering profession nodes near other players so this feature simply detects if you are holding one and will cancel the request if so.

The pull request for the feature is available here.

Custom Seaskipper Screen Redesign

Similarly to the Waypoint Manager Redesign, I wanted to revists the Seaskipper screen as I was more confident in my skills. So as there was not much point in having the map and departure board screens being separate, they should instead just be merged.

With this redesign, I also made the departure board scrollable as if any new destinations were to be added, the old screen would have not supported that.

The pull request for the feature is available here.

Favourite Filter

One filter that was present in the old version of the mod was a filter to only see items you had favourited, so I added it back with the ability to see items that are favourited and items that aren't.

The pull request for the feature is available here.

A screenshot of a bank with the favourite filter active.

Migrate to wiki.gg

The Wynncraft community decided to move the main wiki from Fandom to wiki.gg, so once they had fully migrated the content over, I changed all our references to the wiki to use the new wiki.gg instead.

The pull request for the feature is available here.

Bomb Bell Overlay

Another popular mod in the Wynncraft community known as fuy.gg had a lot of features that would fit with Wynntils, so we decided to implement a lot of them ourselves as since fuy.gg relies on Wynntils to work, if we were to change something it uses then that mod would break until an update was made.

One such feature was an overlay to display active bombs gathered from the bomb bell feature. The overlay allows you to choose which bombs you want to see, so if you do not want to see combat XP bombs, you can hide those from the overlay.

The pull request for the feature is available here.

onlinemembers and player command

Another fuy.gg feature was a command to see the online members of a guild, the onlinemembers command displays the current online players in a guild, sorted by their guild rank. The player command is either used to display the last login of that player, or to see what guild they are in, their rank and how long they have been in that guild for.

The pull request for the feature is available here.

The response for the /onlinemembers command. The response for the /player lastseen command. The response for the /player guild command.

Item Filter GUI

Since the item filter system was made, there have been complaints about it being too complicated for users to use so I decided to create a GUI that would hopefully make the system a lot more accessible to users.

Boolean filters have a true/false checkbox. And strings and numeric filters get a text box. Some filters only have a few valid inputs, so the GUI will only show those valid inputs with checkboxes to select the desired filters.

You can also save presets so if you want to search for a specific query multiple times, it's easier to do so.

The pull request for the feature is available here.

Raid Progress Overlay and Print Times feature

The final feature from fuy.gg that I worked on was a feature to track and display your time spent in a raid.

Raids are split up into 4 main sections, 3 challenges and a boss fight. There are also some intermissions in between.

The feature will start a timer once it detects you are in a raid, until you start the 1st challenge this goes towards the intermission timer. After completing the challenge, the time will then count towards intermission. This will repeat for challenge 2 and 3, then the boss timer starts when the boss fight begins and once defeated the timer will end and your times will be sent to chat.

The pull request for the feature is available here.

A screenshot of the raid times for a completed run of The Nameless Anomaly.

Click Territory pois to set markers

This feature allowed users to set markers on territory pois on the map.

This change was later reverted and replaced with Shift middle click to place multiple markers on guild map as there was an unintended side effect of not being able to pan the map without setting markers.

The pull request for the feature is available here.

Use Scrolling Text in various screens

This feature utilities the newly implemented feature of scrolling text left and right when it does not fit into the desired space so that it can still be fully read without overflowing the area.

The pull request for the feature is available here.

Shift middle click to place multiple markers on guild map

This feature allows users to place multiple markers on the guild map by pressing shift. This is useful for when planning attacks on territories so you know where to go.

The pull request for the feature is available here.

Settings Smooth Scrolling

I had begun working on redesigning the settings screen but was waiting on some textures to be finished, so I decided to add some of the features that did not rely on textures separately.

One feature the redesign of the settings screen had was better scrolling, however I decided to improve it further and make it smooth scrolling instead of 1. This was a major improvement to the scrolling of the settings screen, as prior to this the scroll bar was not synced to mouse movement correctly and wasn't actually scrolling, it was just displaying pages of 13 rows at a time. row at a time.

The pull request for the feature is available here.

Colour territory attack timer when inside

This feature is very simple, it just makes the territory you are in coloured in the attack timer overlay as well as being bold to help differentiate it from others.

The pull request for the feature is available here.

Custom Names for Info boxes and Custom bars

This feature allows users to set a custom name for info boxes or custom bars.

It allows users to more easily identify their info boxes and custom bars as by default they are simply given an ID for their type. Eg, Info Box 1 or Custom Experience Bar 1.

The pull request for the feature is available here.

A screenshot showing an info box with a custom name

Backwards container searching and continue current search

This feature restores functionality from the old version of the mod where you can continue a search by pressing enter again, or search backwards by hovering the previous page button and pressing enter.

The pull request for the feature is available here.

Overlay selection & management screen redesign

I completely redesigned the overlay selection screen, now featuring a search bar and category tags to show built in vs custom ones. It also persists your scroll position between edits so you don't have to keep scrolling back down after editing each overlay.

Another new addition is the ability to edit the configs for each overlay directly, without having to go to the settings screen to do it. You can also preview the overlay by itself or show other overlays too.

The management screen wasn't changed much, the position of the buttons was changed from the center of the screen to the bottom with a button to switch between displaying them at the bottom and the top. There is also a new option to show only the selected overlay or to show all.

The main change was being able to see the real overlay whilst moving and resizing it, instead of just seeing the green box with the overlay name and having to go into test mode to see how it actually looked.

The pull request for the feature is available here.

Improvements to profession highlight feature

I made some changes to the existing profession highlight feature for the way they interact with crafting stations. As crafting stations only use 1 type of profession each, I made the feature work as a toggle when using these stations rather than cycling through all profession types like in other containers.

The pull request for the feature is available here.

Add InStream function

I simply added a function that will return if you are currently in streamer mode or not.

The pull request for the feature is available here.

Add option to limit number of leaderboard badges shown

For this feature I made the leaderboard badges scroll through if a player has more than your set display amount (default 7).

As we are adding new leaderboard badges soon, increasing the amount from 13 to 33, I thought it would be smart to set a cap on how many are displayed at once, though unlikely that a player would have 33 it would not look good in-game.

The pull request for the feature is available here.

Settings Screen Redesign

As I got some improved textures for the settings screen I was able to finish the settings screen redesign.

It features the ability to filter visible settings by category to help narrow down what setting you want or to make it easier to go through each setting.

The search bar was also improved, now it displays the settings for current selected category first, followed by any settings matching the search query from other categories. It also adds a number in square brackets after the feature name to show how many configs match the current query. Upon selecting a feature, the configs on the right will automatically scroll down to make the first config matching the search query be visible.

The other improvements are a checkbox next to each feature to quickly enable/disable a feature without having to click it and then press the button on the right page. And also, the ability to import/export configs, you can either do this for currently selected feature or for all settings.

The pull request for the feature is available here.

Is territory queued function

This was a very basic function to return true if the current territory you are in is queued for an attack or not.

The pull request for the feature is available here.

Add option to disable Discord rich presence in streamer mode

As the Discord rich presence displays that you are online and what world you are on and where you are, if you haven't disabled those configs, it made sense to add an option to disable it entirely if you were in streamer mode.

The pull request for the feature is available here.

Item Filter Screen smooth scrolling

Since I had added smooth scrolling to the settings screen, I decided to go through existing screens and add it to those, starting with the item filter screen. It works the same as the settings screen.

The pull request for the feature is available here.

Allow opening delete potions menu when item locked in blocking mode

This feature restores functionality from the old version of the mod where you can continue a search by pressing enter again, or search backwards by hovering the previous page button and pressing enter.

The pull request for the feature is available here.

Rework custom bank page names and quick jumps for 2.1

Wynncraft released the beta for their new update 2.1 and we began fixing up the mod to support it so that it would be ready for when the full update dropped.

One feature that required a lot of changes were my custom bank page names and quick jumps features. As the banks no longer display the page number at the top and the quick jumps are now handled by pressing the 1-9 keys whilst hovering a next/previous button.

In order to support the new banks, I reworked the feature to add an extra panel to the left side of the banks, this would display the page name and also the quick jump buttons.

Custom names work the same as before for the most part, but quick jumps have been completely changed. They are no longer 6 set destinations that can be customised, now all destinations are available and you can jump to any page you desire.

The pull request for the feature is available here.

Add ability tree reset and aspect containers

Another very simple feature, this just adds the ability tree reset and aspects containers as known fullscreen containers to prevent features like item lock and item favourite from working on these containers.

The pull request for the feature is available here.

Annotate Aspects

A new feature of 2.1 was aspects, which are class specific items that give buffs to certain abilities.

What this feature does, is allow the mod to identify if an item is an aspect and if so, highlight it based on the rarity and add an annotation for what class it is used on. The annotation colour also changes based on the tier of the aspect.

The pull request for the feature is available here.

A screenshot showing an info box with a custom name

Aspect Container Scrolling

After earning more aspects I discovered the container was scrollable so I added it to the list of scrollable containers for use in the container scroll feature.

The pull request for the feature is available here.

Add ModMenu support for Fabric and Configuration screen for NeoForge

ModMenu is a mod for Fabric that allows you to edit configs for mods. Many mods use this as they do not have configs of their own but since we have our own, this simply adds support for ModMenu to open our settings screen from the list of installed mods. This also allows users to edit their settings whilst not logged in to Wynncraft which is something that is required by default.

As for NeoForge, it has a built in mod list where you can configure settings so I just had to set our settings screen in NeoForge to allow it to access it.

The pull request for the feature is available here.

Bug Fixes

Bank final page being reset

This fixed an issue where the final page of a bank was being reset, causing quick jumps to not fully work.

The pull request for the fix is available here.

Highest buy offer tooltip

This fixed an issue where a button was displaying the wrong tooltip.

The pull request for the fix is available here.

Wrap config button descriptions

This made config tooltips wrap onto multiple lines instead of one long line, causing most descriptions to be unreadable.

The pull request for the fix is available here.

Transcribed NPC dialogue repeating

This fixed an issue with transcribed NPC dialogue being repeated, due to the transcribed text containing the original Wynnic/Gavellian in the tooltip and triggering another transcription.

The pull request for the fix is available here.

Container search skipping final row

This fixed an issue where when searching in containers, the final row was being ignored.

The pull request for the fix is available here.

Custom Bank Pages Names crash

This fixed an issue where the custom bank page names feature would sometimes crash if the ScreenInitEvent was called in the feature before the bank model.

The pull request for the fix is available here.

Reset search query on container close

This fix causes the search query to be reset when you exit the current container so that it is not present when you open a new one.

The pull request for the fix is available here.

War message getting recruit prefix

This fixed an issue where war messages would be incorrectly labelled as recruits and given the recruit prefix.

The pull request for the fix is available here.

Guild contribution message appearing in housing

This fixed an issue where the guild contribution message would be sent each time you entered or exited a housing island. While not an ideal solution, I did eventually do a proper fix for the root cause some time later.

The pull request for the fix is available here.

Login redirect not redirecting renamed players

This fixed an issue where players who had a nickname were not correctly redirected upon logging in.

The pull request for the fix is available here.

Chat Coordinates improvements

This fixed an issue where the chat coordinates feature essentially didn't work.

The pull request for the fix is available here.

Update class item patterns

This fixed an issue that occured when Wynncraft released the 2.0.4 update, causing some regex patterns to fail.

The pull request for the fix is available here.

Waypoint manager & icon filter crash

This fixed an issue when performing a right or middle click on the waypoint manager and icon filter screen.

The pull request for the fix is available here.

Disable editing of provided pois

This fix stopped users from being able to perform the quick delete action on provided pois, causing a crash.

The pull request for the fix is available here.

Fix custom quick jumps not working

This fixed an issue where a hotfix for Wynncraft changed how content was set in banks, causing quick jumps to break.

The pull request for the fix is available here.

Fix grid screens not rendering all elements

This fixed an issue which was an oversight from another developer during a refactor, causing a render method to not be called on certain screens.

The pull request for the fix is available here.

Player name not rendering with Wynntils marker disabled

This fixed an issue where if the Wynntils marker config was disabled, then player names would not be rendered at all.

The pull request for the fix is available here.

Display attack timer and territory name on hover

The fixed two issues, one where the timer for an upcoming attack was not displayed on the guild map and another where the name from hovering a territory would display the owner instead of the territory name.

The pull request for the fix is available here.

Detect soul points in hunted

This fixed an issue where soul points would not be recognised whilst in hunted mode due to them being a diamond axe item rather than a nether star. I also noticed a fixme in the code that I was able to fix as it required the veteran tag on the server which I have.

The pull request for the fix is available here.

Use poi icon when setting markers from waypoint manager

This fixed an oversight from me where I called a method that would use a default icon/colour when setting a marker instead of one that would use the icon/colour from the waypoint.

The pull request for the fix is available here.

Fix item record category being deleted if renamed to same name

This fixed an issue where categories in the item record would be deleted if their name was not changed. This was due to the way renames were handled, by adding the new category and then deleting the old but since it was a set the new could not be added as it was the same.

The pull request for the fix is available here.

Fix adding new custom bars duplicating config options

This fixed an issue where when adding a new custom bar, the config options in the settings menu would be duplicated until closing and reopening the menu.

The pull request for the fix is available here.

Prevent right clicking helper button in guides clearing input

This fixed an issue where trying to go to the next help page of the guides filter help button would end up clearing the input.

The pull request for the fix is available here.

Don't render lootrun path chests on air or barriers

This wasn't necessarily an issue, but it was a request by the Wynncraft team to remove this functionality as it could be used for unintended purposes.

The pull request for the fix is available here.

Parse awakened bar & mask correctly

This fixed an issue where the shaman awakened bar and mask were not properly parsed. I did remove some functionality in this fix that I was unsure if it was still relevant but it was and I fixed it later.

The pull request for the fix is available here.

Fix crops resource name causing TerritoryAnnotator to crash

This fixed an issue where the annotator for territory items would fail due to it expecting Crop instead of Crops.

The pull request for the fix is available here.

Detect flying chests correctly

This fixed an issue where the pattern for flying chests was not correct, causing them to not be detected.

The pull request for the fix is available here.

Actually track raid succeeded stats

This fixed an issue where raids succeeded were not actually be tracked in statistics.

The pull request for the fix is available here.

Parse shaman mask correctly when only one mask available

This reverts the removed functionality in the previous shaman mask fix.

The pull request for the fix is available here.

Fix transcription tooltip option not working correctly

This fixed an issue where when the tooltips option for transcription was enabled it would not work and would always transcribe the text instead of displaying it in a tooltip.

The pull request for the fix is available here.

Don't overwrite current world name when entering housing

This fixed a long standing issue where the world state would be triggered again after entering/exiting housing due causing issues in various places.

The pull request for the fix is available here.

Fix DeathCoordinatesFeature

This fixed another long standing issue where the death coordinates feature would not work. I also made it so it will not send both the vanilla and the custom death message.

The pull request for the fix is available here.

Don't return null in profession last harvest functions

This fixed an issue where some functions were returning null which is unusable by the function system.

The pull request for the fix is available here.

Use scale in bomb bell overlay

This fixed an issue where I forgot to use the scale config in the bomb bell overlay.

The pull request for the fix is available here.

Detect insulators and simulators in mythic found feature

This fixed an issue where corkian insulators and simulators were not identified in the mythic found feature for lootruns.

The pull request for the fix is available here.

Handle streamer mode correctly in WorldStateModel

This fixed an issue where being in streamer mode would cause the world name to be set to - causing similar issues to the housing name issue I fixed earlier.

The pull request for the fix is available here.

Detect raid failure from chat message

This fixed an issue where The Nameless Anomaly raid would not send a title to signal raid failure and instead sent it as a chat message.

The pull request for the fix is available here.

Detect TCC failure correctly

This fixed an issue with The Canyon Colossus raid not sending any kind of fail indication message.

The pull request for the fix is available here.

Scroll text fully in config tiles

This fixed an issue where scrolling text was not scrolling all the way, causing it to be cut off near the end.

The pull request for the fix is available here.

Account for timezone in player commands

This fixed an issue with the player commands not accounting for timezone and displaying inaccurate times. I also ended up using and replacing all instances of java.util.Date in the mod with java.time.Instant.

The pull request for the fix is available here.

Fix tomes being counted as defective, if they had no identifications

This fixed an issue where tomes would show as defective (0% roles) when they did not have any rollable identifications.

The pull request for the fix is available here.

Fix charms being counted as defective, if they had no identifications

This fixed the same issue as above but for charms.

The pull request for the fix is available here.

Set inStream to false in WorldStateModel when changing world state

This fixed an issue where if you were in streamer mode, it would never set you as not in streamer mode unless you manually left as changing worlds takes you out of it automatically.

The pull request for the fix is available here.

Don't block emerald pouches inside reward containers

This fixed an oversight from another developer that prevented you from taking emerald pouches from reward containers.

The pull request for the fix is available here.

Correct war horn configs

This fixed an issue where the Minecraft method had labelled the parameters for a method incorrectly and we were parsing them in the wrong way.

The pull request for the fix is available here.

Fix discoveries not being queried when only showing undiscovered

This fixed an issue that made it so you could not view any discoveries in the content book if you only wanted to see undiscovered ones.

The pull request for the fix is available here.

Fix tracked bars not updating

This fixed an issue where boss bars that we were tracking did not get updated so our overlays and other features that relied on that information did not work.

The pull request for the fix is available here.

Update containers for 2.1

With the Wynncraft 2.1 beta beginning, we had to start fixing many features for it so I began with fixing our container detection system to check for the new titles and also moved some UI elements to better accomodate the new textures.

The pull request for the fix is available here.

Fix skill point annotator

This fixed the skill point annotator not working in 2.1.

The pull request for the fix is available here.

Fix custom seaskipper screen

This fixed the custom seaskipper screen not working in 2.1 as the contents of the container were now set once instead of each slot individually.

The pull request for the fix is available here.

Fix emerald pouch annotator

This fixed the emerald pouch annotator not working in 2.1.

The pull request for the fix is available here.

Fix crashing in character selection screen

This fixed an oversight by another developer causing the character selection screen to crash when hovering certain UI elements.

The pull request for the fix is available here.

Fix quick jump issues

This fixed an issue where I forgot to update some variables in an event.

The pull request for the fix is available here.

Fix raid tracking for 2.1

Raids were completely overhauled in 2.1 so the raid tracking needed to be reworked completely, now relying on the scoreboard instead of labels for tracking progress.

The pull request for the fix is available here.

Fix time spent in raid stats

This fixed an oversight from me where I forgot to update the time spent stat to use milliseconds as it was originally only seconds.

The pull request for the fix is available here.

Fix flow mod crashing banks

This fixed a mod interaction issue with the Flow mod.

The pull request for the fix is available here.

Fix bank name edit input alignment

This fixed an issue where the bank name edit input was not alligned correctly after I added the new textures.

The pull request for the fix is available here.

Fix scrolling in content book

This fixed an issue where the content book was no longer scrollable as the navigation button item names changed.

The pull request for the fix is available here.

Fix character ID parsing for 2.1

This fixed an issue where the character ID was not being parsed as the original item it was on was removed in the 2.1 update.

The pull request for the fix is available here.

Annotate mythic aspects

This fixed an issue where mythic aspects were not annotated as they had a different name pattern to non-mythic ones.

The pull request for the fix is available here.

Don't spam tracker update sound when tracking world events

This fixed an issue where the tracker updated sound would play repeatedly whilst the timer for a world event ticked down.

The pull request for the fix is available here.

Fix player nametags rendering incorrectly

This fixed an unnoticed issue in the 1.21 port that broke nametag rendering if the background was not hidden.

The pull request for the fix is available here.

Fix annotating tier 4 aspects

This fixed an issue where tier 4 aspects were not correctly annotated, this was due to me not having a tier 4 aspects to test a pattern on but I was able to see it from someone else.

The pull request for the fix is available here.

Ophanim bar overlay with mythic aspects and add tracking for 4th shaman totem

This fixed an issue where the ophanim bar overlay and shaman totem tracking features would not fully work when mythic aspects affected their counts.

The pull request for the fix is available here.

Code Refactoring/Chores

Organise textures directory

This refactor organised the textures directory into categories instead of one directory containing everything.

The pull request is available here.

Update item record textures

This updated the textures for the item record.

The pull request is available here.

Turn SearchableContainerType into InteractiveContainerType

This refactor turned the SearchableContainerType into InteractiveContainerType which gave more details on containers and allowed for cleaner code and less duplication.

The pull request is available here.

Remove InteractiveContainerType and replace with WynncraftContainers

This refactor made further improvements to the codebase by replacing InteractiveContainerType with abstract WynncraftContainer's that contained information on all containers we use in the mod allowing for a much cleaner approach to various features that used containers.

The pull request is available here.

Sort ItemAnnotators into Game and Gui annotators

This refactor sorted ItemAnnotators into two types, Game and Gui. This was so that the item filter GUI could get a list of all game items that didn't need to be manually updated.

The pull request is available here.

Move onlinemembers and player command json handling to models

This refactor moved the handling of the onlinemembers and player command to models, where they would now store all the information from the API call and the command would just display the relevant information.

The pull request is available here.

Update the failed to connect messages

This replaced the failed to connect messages with ones that were more relevant to the new version of the mod and gave clearer details.

The pull request is available here.

Update beta messages

This updated the messages for connecting to the beta server on a build not intended for it and vice versa. It also fixed an issue where failing to connect to the beta server then joining the normal server would still send the error.

The pull request is available here.

Update bank textures

This updated the texture for the bank panel.

The pull request is available here.



This is the first open source project I have contributed to so it has definitely helped me to have a better understanding on working on a bigger project and the process to go through getting a feature merged.

Since I have now become an official member of the development team, I also have more experience working on a larger project as a team member since I can easily communicate with the other developers and I am more accustomed to reviewing others code.