Chroma plugins
I wrote and maintained 3 bigger Minecraft server plugins (Spigot/Bukkit) for a gaming group between 2015 and 2023. The first plugin added various chat features, eventually adding Markdown support in-game. The second one added various random things and became a bridge between the chat plugin and the third one: Discord integration (with the ability to log on the server through Discord, in addition to the simple chat channel). All three were custom-made for the server, although later on I tried to make them work with other plugins better to support other servers too.
Background
I joined Reddit at the end of 2014 and mostly participated in programming-related communities. Then on April 1st, 2015 The Button experiment began on the site. A simple button was on the site that reset a 60-second counter. The button could only be pressed once per account and gave a flair to the user with the seconds and a color based on that. It created various cult-like communities around the different colors and numbers. I waited it out, randomly decided on the color orange and waited until I could get it. I then embraced my own number I got (19s).
Being amazed at what the community can do from a simple button I stuck around the communities and found one called TheButtonMinecraft. Having played Minecraft frequently for years at that point I joined and took the task upon myself to represent the Reddit flairs in-game with the numbers and colors. I only knew C# at the time, so I only made a proof-of-concept console application that could download people's flairs from Reddit. Eventually I learned how to create a Bukkit plugin, also having to learn Java. It helped that it's similar to C#.
What it all became
Over time, I incorporated some plugins made by the rest of the dev team, Ali and iie, as well. That helped in the creation of the generic core plugin. It had a lot of various features, random teleporting (by iie, spreading players out), generic handling of chat-based events, handling errors, giving a member role to players automatically over time, restarting the server with a countdown etc. I extended Ali's component system and made each plugin use it to make them as configurable as possible, since they all had various abilities that not every server needed. I added a configuration and user management system that allowed plugins to store generic and user-specific data and configuration easily. It was able to generate plugin configuration files with detailed comments about what each config option does as well as storing not just Minecraft players but any kind of users. This was only really used for Discord users, but I made it as generic as I could.
The "flair-getter" plugin became an all-around chat plugin with a lot of random additions. I added a simple announcement feature where some predefined messages were sent at a specified interval. There's a component for running commands like /tableflip, inspired by Discord. It's fully configurable (can add any text to a message). There's Towny integration, as our server relied heavily on the plugin. I had some memes too, like sometimes showing "Press F to pay respects" when a player dies, actually tracking how many Fs they get per death. But the most important (and hardest to create) part of the plugin was the Markdown support, also added because of Discord. I first wrote a very hacky and messy implementation for it (full of bugs), eventually created test cases, finally writing a proper parser after a long time.
The Markdown support was important because I also created a Discord chat plugin, using fancy embeds grouping messages together and delivery confirmation (each message got a checkmark when delivered to Minecraft). I also added a very hacky way to join the server from Discord to be able to run commands. I wanted to allow running commands as a non-player but a lot of the other plugins assumed that anything that's not a player has full admin permissions, so I decided to act like an actual player joined. Only a small set of whitelisted commands could be run as a non-player, like listing the online players. These commands were also available on the chat channels.
In addition to the public Minecraft chat I added support for custom chat channels (implemented in all 3 plugins), allowing town-only and nation-only chats to be used from Discord. Instead of using TownyChat, the plugin designed for this, I reimplemented these channels and a few more (dev, mod, admin). I also added chat rooms, channels that only those who joined it could read, but it didn't work very well the way I did it.
The community around the Minecraft server became Chroma Gaming in the meantime, broadening our focus to other games too. The Minecraft server went through 6 versions (6 different maps), ultimately stopping due to inactivity.