Most of these repositories were created and maintained over a year ago, and my skills in Java have significantly developed since then.
CaveletCore is the largest project, with over 15 folders of code. Cavelet was a large project I developed solo, with the aim of creating a server that feels like a combination of competitive factions and Hypixel Skyblock. The plugin features its own factions system which also includes value calculation based on items in containers in the faction's core chunk, a full custom item system which allows custom enchantments to displayed in a custom way (horizontally), hundreds of custom items with different uses, a skills system offering rewards and bonuses for higher levels, a fully custom time based shop where items have limited stock, a event system with different events with different rarities able to spawn in at random locations, a chat channels system where you can toggle visibility for chats and select which one you are typing in, a reward collection system where rare items you obtain are kept so you can redeem them when neccesary (/claim) among many other smaller features built into the system.
Another part of CaveletCore I can't easily publish here but I will show screenshots of, is the CI/CD system I setup for it, which included automatically updating the docker container and restarting it when a new build was available on the production branch. Here are some screenshots of inside the CI/CD system used.
The plugin would be built on self hosted runners, then a docker image of the server would be built using the latest plugin, which would be uploaded to the self hosted private docker registry which would then trigger a re-deployment of the current server, which, using the watchtower system on docker would give a 60 second warning to players and then kick them before the server shuts down, saving player data, using a built-in script in the docker container.
CentralC is the backend I used to connect servers automatically when I was creating my parkour network. CentralC not only acts as a central source of truth for player data, but it also manages friend requests, leaderboard calculation, and connecting to random servers of a specific type. It allows you to easily connect 5 or 50 servers to the Minecraft network, which will then be managed and have players sent to them by CentralC. CentralC was written in Java and makes use of the Spring framework and a websockets library to facilitate connections. It uses MongoDB to store player data.
FactionsPlugin was an old plugin I wrote many years ago for a small 1.8.9 factions server. It contains a custom shop system, a custom settings system where it is easy for the developer to add new settings the player can change, a custom dynamic scoreboard with many different views, and a custom factions chunk system where players can assign the use of a chunk, e.g., a cactus chunk, a raid chunk, or a spawner chunk, which not only optimizes the way the server can work but allows for great custom features like the cactus autosell and the autokill of squids in any spawner chunk. It also contained a custom RNG system where the developer can easily add custom RNG prizes with varying rarities and where custom code can be run when won. It also contained a custom mask system where the developer can make custom masks and then the user gets special abilities when masks are worn, e.g., holding or wearing a horse mask will give you the speed effect. It had a basic kit system where users could claim a kit of their choice once per map. Additionally, a custom combat log system was made to avoid players logging out in order to not lose a PVP fight. There was also a chat gui similar to the CaveletCore chat gui but less dynamic, as my coding ability when I made this plugin was not as good as when I created the CaveletCore plugin.
Faction Chunk System 1
Faction Chunk System 2
The Shop
Auto Squid
Cactus System