Tech Admin blog

Modification of the Month #21 - November 2024

Welcome back to Modification of the Month to my 2 active readers, and welcome to all of our new readers who want to know how things previously worked and work now! This is where I endlessly ramble about Nerd's latest tech happenings. Come back every once in a while! I don't bite :)

There will be a TL;DR at the end for people not wanting to read through the last 4 months of confusion and pain I endured.


IT'S HAPPENING!!!!!!!!

I'd like to begin by thanking Pez252 and Deaygo for the help they provided for this major update. I literally would have still been flopping around like a fish trying to figure out how to make the websites work >_>. I'd also like to thank the mod team and some players I kidnapped off of the street for helping me test everything.

The biggest question right now is probably: What changed? Which is followed by a close second place: WHAT DID YOU DO TO MY MCBOUNCER YOU MONSTER???

3 major systems were redone to modernize the very base of Nerd's functionality. This post will navigate each one in the order I discovered things were breaking, meaning we'll start with the very base of it all: The proxy.

The Proxy

BungeeCord has been replaced by Velocity. Bungee worked pretty well for a long while as we've used it for over a decade at this point. The biggest problem we had with it is that one of our plugins needed for version updates, ViaVersion, dropped support for Bungee entirely. The reason why that's so significant is because if we update the dev servers to 1.21.3, we also need to update BungeeCord to 1.21.3. But if PvE is on 1.20.4 and Bungee is on 1.21.3, nobody can join because of the version difference! ViaVersion would let us bridge those versions together so I could crash the dev servers repeatedly while you all played on P.

The update to Velocity has nearly 0 effect on you. It's a significant shift on the tech-end of things as our old Bungee plugins no longer work on Velocity. See where I may have problems? Disregarding the foreshadowing, the one thing you may see while playing is that the proxy no longer restarts. At all. It will be a continuously running network unless I need to perform maintenance on it. Now that doesn't mean the servers don't restart... ʸᵉᵗ

LuckPerms

But Gome, we already run LuckPerms! I saw it when I sneakily ran /plugins!

We do currently run LuckPerms, that's correct. However, it was a weird system. We had LuckPerms on each server and those each hooked up to their own H2 databases. Each server had an independent permission suite tailored to that specific server... except for moderator permissions?

Moderator permissions were handled by a different plugin, BungeePerms. This plugin ran at the proxy-level and gave staff the same permissions for certain commands regardless of what server they were on. I knew this plugin had to go as soon as I became a TAdmin when I ran the command to list the groups and it crashed my client multiple times, but this was the nail in the coffin. Why are our permissions so spaghetti-like? This was our chance to get rid of BungeePerms once and for all, so I did it! I ran rm bungeeperms.jar like it was nobody's business.

Nerd is now overseen by LuckPerms entirely. But in a different way! Each server still has LuckPerms running on it, but there's also a LuckPerms instance on the proxy. The proxy-level one communicates with all of the server LuckPerms to make sure things are in check and working, while we now have one central database for all of the permissions! We no longer have upwards of 4 different databases keeping track of targeted permissions. It's all under the one database using the beautiful context system. If I want players to be able to run /sit on P and C but not the lobby, I can have a single permission node for that and specify that it's true in all cases except on the lobby. This makes figuring out permissions insanely easier and also reduces the chances of broken permissions or, as some may have seen recently, stray past moderators!

MCBouncer, My Beloved (And Also LolNo)

Now is the big part. This is realistically the only part of this update that affects you, the player.

MCBouncer has supported Nerd's punishments for a long, long time. Longer than most of you have been playing here. 13 years is an insanely long time, but we need to send it off into retirement. Thank you to Deaygo for maintaining the servers that hosted MCBouncer for all of these years.

Nerd has never needed anything too fancy. We issue notes, occasional warnings, kicks, and sometimes bans, too. MCBouncer provided us with all of that, and we needed nothing more.

MCBouncer started showing signs of decay some time ago. Bit by bit, very small things started breaking. Near the end of its time on Nerd, it had stopped sending mods a message when a player joined with notes. Not a huge downside, but it still was a bit of a loss. That note mechanic was mostly useful for when MCBouncer was widely used and we had players joining from other servers that we could be alerted for. Nerd was the only remaining user of MCBouncer at the time of its removal.

We had no reason to keep using a shared punishment system. We were the only ones using it and weren't reaping any of the benefits it used to provide. Additionally, it was being used at the proxy level on BungeeCord, which we now just killed. Whoopdeedoo, I need to update this sucke- nevermind that code is old and scary and I don't want to. Because it was on the Bungee level and due to how basic its commands were, CommandHelper actually completely carried it. All commands mods used to interact with MCBouncer were sent through Bungee messaging channels that started at CommandHelper to ensure that you stayed banned. This broke a lot of things, so it was no good.

A discussion was started a few years ago to see what the best options were for replacing it. The conversation mostly fell flat as no alternatives at the time provided what we needed. A few years later, we found one!!

Welcome the new intern: BanManager

BanManager has a classy, modern new website at https://bans.nerd.nu. We were able to import every single bit of information we had from MCBouncer, so all bans and notes remain in place. You thought you could wait those notes out? Not anymore! Active bans are still visible, as are all previous notes, but under a new name: warnings.

We've also had a weird setup for all of our punishments: This is a list of the plugins that handled punishments and what they handled:

  • MCBouncer - Bans, Notes.
  • LolNo - Mutes.
  • CommandHelper - Warnings, MCBouncer crutch.

BanManager handles all of them under one roof, and more! The new system allows for better handling of punishments, easier management of them, and an infinitely friendlier UI.

As a result of this, LolNo will no longer be around. Its other core functions will be merged into NerdMessage at some point.

You, the players, still have access to all the same information you had before like active bans and notes (which are now warnings), but you now have a few extra things to see: past bans, current mutes, and past mutes. MCBouncer stopped displaying bans once removed, but this will keep them around for longer.

THE RULE ABOUT NOT DISCUSSING BANS STILL APPLIES FOR BOTH PRESENT AND PAST BANS.

You will also notice a big button that says "Appeal". This will be used at some point in the near future, but, at the time of writing, we will still be using nerd.nu/appeal.

We salute you, MCBouncer. You served us well.

MCBouncer, chilling on the beach

The TL;DR

As promised, here's a breakdown of what's changed:

  • The proxy has changed from BungeeCord to Velocity
    • The proxy will no longer restart. Not much else that will impact players.
    • Some plugins have been replaced
      • BungeePerms -> LuckPerms
      • BungeeResourcePacks -> VelocityResourcePacks
    • Some plugins have been updated
      • ViaVersion
      • ViaBackwards
    • New plugins
      • CommandWhitelist - Replacing "CommandBlock" on the main servers
      • MiniMOTD - Gives us a cooler multiplayer menu look B)
      • Maintenance - Allows for individual server shutdowns when work needs to be done. Has a separate whitelist and timer functionality
  • LuckPerms was set up in a more efficient way
    • Hooks up to one central database now instead of 3 smaller ones
    • Relies on LuckPerms' context module for specific permission scenarios
    • Solves the issue of past staff randomly getting their permissions back
  • MCBouncer has been replaced with BanManager
    • Accessible at https://bans.nerd.nu
    • All data was able to be imported from MCBouncer
    • Players can now see active bans, warnings, and mutes as well as past bans and mutes. DO NOT DISCUSS BANS, PAST OR PRESENT, AT ANY TIME.
    • Appeal button is present on home page. Not to be used, see https://nerd.nu/appeal.
  • PvE, Creative, and Lobby had LolNo and CommandBlock removed.
    • Functionality of both have been migrated into new plugins:
      • LolNo -> BanManager and NerdMessage
      • CommandBlock -> CommandWhitelist

Ping PPGOME in discord if a server, or multiple, go offline, permissions break, or https://bans.nerd.nu goes down. Do not ping in any other scenario. Make a modreq so we can triage the problem properly.

The path has been paved for great things.

Thanks for reading, PPGOME

Modification of the Month #20 - October 2024

Welcome back to Modification of the Month where if you placed bets on how late I'd be this time around, you all owe me money! I'm now 1 moneys richer (Thank you one person who knows these blogs exist)!!!

We're entering the final phases of the first phase of the overhaul project. This project will be modernizing critical backend infrastructure and mod tools, while also removing the cage that the modern server software landscape has placed around me. Please help me.

This is a major change to the servers and there will be a decent bit of downtime involved to get everything in place, reconnect all the thangs, and make sure it all works properly. We're hoping it will be sometime during November, but in any case we'll provide you with plenty of heads up.

And since this is the tech blog, this is where I'll repeat what the HAdmins have shared in discord. Please do not contact any of the TAdmins directly for each bug you find. Please make a modreq and we'll load it into a new system we have to keep my pebble of a brain from forgetting it exists.

Additionally, until this big overhaul is released, bug fixes will no longer be put out for any of the servers unless they're genuinely critical. That doesn't mean you shouldn't report them to us, though! Phase 2 will be a lot of bug fixing and I'll need whatever you come across. Just make sure to provide as much information in these modreqs as you can.


General Change Log

  • October 23rd - Pez252 - Set up HelpHelp to be way easier for server admins to update server info whenever they need to.
  • October 27th - PPGOME & Pez252 - Introduced new system to streamline the bug/feature/documentation process.

Web Site Change Log

  • October 27th - PPGOME & Pez252 - Introduced new tools for admins to keep better track of tasks across their respective domains. Gome's ADHD approves.

Creative Change Log

  • Nothing much. Your time is coming C, I promise

PvE Change Log

  • [pretend there's crickets here, the website doesn't like emojis] Cricket noises intensify

Yours truly, the guy down there ↓↓↓

Modification of the Month #19 - September 2024

Welcome back to Modification of the Month where we predicted my inability to catch the date correctly from the get-go! We're only a week late, though. Taking bets on how late we'll be next time.

Not much this month, either, as we continue to work through infrastructure improvements and cool new things.


General Change Log

  • September 2nd - PPGOME & Pez252 - Moved the development servers to their own network under a new proxy that's being tested.

Web Site Change Log

  • Nothing much.

Creative Change Log

  • Nothing much.

PvE Change Log

  • September 1st - PPGOME - Updated MobLimiter to now house the mechanics of KeepBabyMobs and LimitSpawnEggs under one roof.
  • September 1st - PPGOME - Removed KeepBabyMobs.
  • September 1st - PPGOME - Removed LimitSpawnEggs.
  • September 20th - PPGOME - Managed to carry dragon fight over without crashing the server in horrendously terrible ways!

Modification of the Month #18 - August 2024

Welcome back to Modification of the Month, where we're only a day late! Not too much happened this month as a lot of the tech work right now is bigger plugins.


General Change Log

  • August 8th - PPGOME - Added /tableflip, /unflip, and /cheer

Web Site Change Log

  • Nothing much.

Creative Change Log

  • August 29th - PPGOME & Pez252 - Bluemap is added, replacing Dynmap.

PvE Change Log

  • August 8th - PPGOME - Updated MobLimiter to avoid culling allays holding items

Modification of the Month #17 - July 2024

Welcome to Modification of the Month! We're changing up the formula a bit from Totemo's Tweak of the Week blogs, as not many updates happen between weeks and so PPGOME has an excuse when he forgets to publish these!


General Change Log

  • July 12th - PPGOME - VehicleControl is fixed for 1.20.
  • July 13th - PPGOME - Updated NerdMessage to only stop alerting players of new mail once they run /mail inbox, instead of their first join after receiving it.
  • July 14th - PPGOME - Fix, clean up, and add a few CommandHelper commands.
  • July 19th - Pez252 - System patches.
  • July 20th - PPGOME - Removed Rifle's Chairs due to how broken it was. Replaced with GSit. Same functions, but now with /sit and /lay!
  • July 20th - PPGOME - Added some new moderator commands and made links clickable again in a variety of message formats.
  • July 28th - PPGOME - Added /pants.
  • July 28th - PPGOME - Modified some moderator commands.

Web Site Change Log

  • July 19th - Pez252 - Forums are updated.

Creative Change Log

  • Nothing much.

PvE Change Log

  • July 12th - PPGOME - Moblimiter is fixed for 1.20.
  • July 12th - PPGOME - /maps is updated to remove the unused carto map link.
  • July 14th - PPGOME - Attempted to fix Rifle's Chairs as sitting was broken and players were clipping through chairs into the ground below.
  • July 14th - PPGOME - Fixed perfect farmers to now include cookies.
  • July 14th - PPGOME - Fixed various bugs, including the notorious fall bug that caused players to die mid-air.
  • July 16th - PPGOME - Changed /dynmap hide and /dynmap show to now be /bmap hide and /bmap show. Can also use /bmap to toggle between the two modes automatically!
  • July 16th - PPGOME - Updated some moderator commands.
  • July 16th - PPGOME - Increased the shulker cull limit in Moblimiter to avoid breaking shulker farms.
  • July 17th - PPGOME - Fixed bugged states in Moblimiter where some mobs had cull values but the plugin never acted. Includes foxes, axolotls, and frogs.
  • July 18th - PPGOME - Tested and discovered that the new death pile item radius is a new in vanilla and is meant to explode that far out. Nothing will be changed.
  • July 20th - PPGOME - Added a Xaero's minimap waypoint message to /place, so players with that mod can now click to add the /place to their maps.
  • July 20th - PPGOME - Updated KeepBabyMobs to make tadpoles stay tadpoles when named.

Tweak of the Week #16 - December 15, 2019

Tweak of the Week is our weekly roundup of server configuration changes where we list everything we changed during a specific calendar week.

There were no technical changes to report for the weeks ending December 1 and 8, 2019.


General Change Log

  • Nothing much.

Web Site Change Log

  • Nothing much.

Creative Change Log

  • Nothing much.

PvE Change Log

  • 2019-12-12: totemo updated the server to PaperSpigot #236, which is the final update in the 1.14.4 series.
  • 2019-12-12: totemo updated BungeeCord and in the lobby ProtocolLib and ViaVersion to support 1.15 client connections to the lobby.
  • 2019-12-14: totemo set up a Trello board and began planning the 1.15 plugin updates. PaperSpigot has started producing 1.15 builds.
  • 2019-12-15: totemo began work on 1.15 updates. pve-dev is currently running 71 plugins on 1.15 and it seems reasonably happy. ModMode has problems with the new LuckPerms API and it has unresolved issues from the 1.14 era, so I'll resolve that with a rewrite. CommandHelper has changed a lot, again, as it does often and many scripts will need some fixes to keep it happy.

Tweak of the Week #15 - November 24, 2019

Tweak of the Week is our weekly roundup of server configuration changes where we list everything we changed during a specific calendar week.

There were no technical changes to report for the week ending November 17, 2019.


General Change Log

  • Nothing much.

Web Site Change Log

  • Nothing much.

Creative Change Log

  • Nothing much.

PvE Change Log


Tweak of the Week #14 - November 10, 2019

Tweak of the Week is our weekly roundup of server configuration changes where we list everything we changed during a specific calendar week.


General Change Log

  • Nothing much.

Web Site Change Log

  • Nothing much.

Creative Change Log

  • Nothing much.

PvE Change Log

  • 2019-11-09: totemo fixed bugs and added new features in BeastMaster v2.11.0 and improved the BeastMaster documentation for mobs.

Tweak of the Week #13 - November 3, 2019

Tweak of the Week is our weekly roundup of server configuration changes where we list everything we changed during a specific calendar week.


General Change Log

  • Nothing much.

Web Site Change Log

  • Nothing much.

Creative Change Log

  • Nothing much.

PvE Change Log

  • Nothing much.

Tweak of the Week #12 - October 27, 2019

Tweak of the Week is our weekly roundup of server configuration changes where we list everything we changed during a specific calendar week.


General Change Log

  • Nothing much.

Web Site Change Log

  • Nothing much.

Creative Change Log

  • 2019-10-25: challenger2 and Deaygo debugged some problems with the BungeeCord proxy, apparently triggered by issues with Mojang's servers.

PvE Change Log

  • Nothing much.