Repository navigation
2.0.0 Pre-Release 1
Pre-release
Pre-release
·
308 commits
to master
since this release
The project has been rewritten to allow me to build on a more solid foundation.
This release is largely stable on the latest version, but not all versions have been tested.
The most significant changes to the codebase following the rewrite are as follows:
- The project has been properly split into three layers:
- A common layer which is accessible by all modules. This contains functionality accessible in all contexts where this mod can run, including configuration and messaging.
- An environment layer, including
client,server, andproxymodules. These contain things specific to each environment - A target layer, including
fabric,spigot, andvelocitymodules. These contain platform specific implementations of the interfaces in the common and environment layers.
- Many interfaces and objects have been moved from the
commonmodule (previouslyapi) to the modules in the environment layer.- For example, the
Playerinterface (previouslyMPlayer) is now in theservermodule, because all the functionality was specific to server-side players anyway. - This will make it easier to organize environment-specific APIs.
- For example, the
- Most modules of the project is now compiled for multiple Java versions.
- This is because newer versions of Minecraft expect to be run on Java 17, while older versions expect to run on Java 8
- This means that the Spigot releases will come in a Java 8 variant and a Java 17 variant, so they can be run on the native Java version for each version of the game.
- The Fabric version now makes heavy use of interface injection. This has a positive performance impact due to less indirection and caching.
- The vanish, global join, and last joined modules have been removed.
- These may return in the future, or may be moved to another project.
- Packages and file names have been refactored.
- The overall package name has been changed from
org.wallentines.midnightcoretoorg.wallentines.mcore - There are no longer target-specific packages.
- Interfaces and classes are no longer prefixed with 'M' to differentiate them from their platform-specific counterparts.
- The overall package name has been changed from
- The maven coordinates of the project now follow the format
org.wallentines:midnightcore-[module]:version- For example, the
commonmodule for this version is located atorg.wallentines:midnightcore-common:2.0.0-SNAPSHOT
- For example, the