I had been thinking about the cause of the ridiculous lag (12 TPS and below) on skyblock for a while. For those who are interested to know what I found the exact cause to be, read below. For the rest of you, all you need to know is that I made a plugin which should make the server run much, much better. Along with this plugin, the server will be getting a massive upgrade to its hardware soon, which will eliminate the majority of lag on Skyblock to provide better and smoother gameplay.
Now here's the description of the exact cause and what the plugin does, for the nerds like myself:
The TPS was low, the RAM usage was fine. This means that there was a very high strain on the processor without an abnormally high amount of memory being taken up. I had noticed that the TPS was high when villagers got deleted (that happened a few times) and fell significantly when they were spawned back in. I realized that this problem only arose once we enabled entity collision, and figured that calculating thousands of collisions between villagers per tick probably puts a lot of strain on the CPU. My plugin disables all entity collisions except when players are nearby, via teams. There's a team option to disable entity collisions, and all entities besides players are in a team with that option turned to "never," meaning they will never collide. When a player is nearby (within 3 blocks), the entities will be removed from the team, allowing them to be pushed by the player. When the player moves away, the entities will be added back to the team, disabling collision again.