- Kotlin 77.1%
- Java 22.9%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| branding | ||
| gradle/wrapper | ||
| gradle-plugin | ||
| src/main | ||
| .gitignore | ||
| build.gradle.kts | ||
| gradle.properties | ||
| LICENSE | ||
| README.md | ||
| settings.gradle.kts | ||
What is this?
Zohiu's personal Fabric library mod. It contains many shared functions but does not do anything by itself.
I do not remember where the name originally comes from, but I used to call my private Spigot plugin library for commissions I did "Crimson". I kept that name for this project when I mostly transitioned to making mods instead of plugins.
Goal
My goal is to make crimson handle all interactions with the game. That way I can make my mod codebases only consist of the mod's actual logic. I want to abstract Minecraft in a way that maximizes the readability of my mod's codebases.
I plan to keep backward-compatibility for as long as feasible, which means there are some version-specific implementations in here and there will be more over time.
Internal stuff
Gradle Plugin
I build all my mods using the gradle plugin in this repo. It handles all the common build logic and includes easy ways to shadow & relocate dependencies without the added boilerplate in my mod repos.
Another big feature of this plugin is running a Docker Minecraft server as a replacement for Fabric loom's runServer because I've had many issues with dependencies in the Docker server which most server hosts use.
Versioning
This project mostly follows semantic versioning, except I do not specify the public API as this is mostly a personal project not intended for external use (you're allowed to use it if you want to, of course. There's just no guarantee for anything.)
That means: MAJOR.MINOR.PATCH, e.g. 1.0.0
- Major: Anything that changes existing API or could break mods
- Minor: Anything that adds new features
- Patch: Anything that fixes bugs / minor refactoring
Testing
I made a small testing framework specifically for server-side mods. It uses a real server environment that I can actually join. That way I can see the tests taking place and identify issues more effectively than if I were to use Mojang's GameTest framework.
At the moment it uses fake players, but I plan to extend it to use real player connections in the future to test real scenarios.
License
All source code is licensed under The Unlicense
All artwork is licensed under CC BY-SA 4.0