EngineMC/README.md
JeremyStarTM 51a51a6271
Some checks failed
push-build-apidoc / generate-javadoc (push) Failing after 1m21s
push-build-apidoc / build (push) Failing after 1m23s
Initial commit
2024-09-06 01:36:06 +02:00

42 lines
1.9 KiB
Markdown

# StarOpenSource EngineMC
EngineMC (or sos!enginemc for short) is a port of the [StarOpenSource Engine](https://git.staropensource.de/StarOpenSource/Engine) to Minecraft and it's various plugin and mod loaders.
## Index
- [Using EngineMC](#using-enginemc)
- [Bukkit](#bukkit)
- [Sponge, Fabric, Quilt, (Neo-)Forge & others](#sponge-fabric-quilt-neo-forge--others)
- [The `/enginemc` command](#the-enginemc-command)
- [Known issues](#known-issues)
- [Reflection is broken](#reflection-is-broken)
- [Contributing](#contributing)
## Using EngineMC
As a rule of thumb, don't do anything stupid in your plugin or modification.
This includes:
- initializing the engine manually
- accessing undocumented or internal methods, fields, etc.
- using `EngineInternals`
Everything should work out of the box.
### Bukkit
Simply declare the plugin `sosenginemc` as a hard dependency in your `plugin.yml` file.
### Sponge, Fabric, Quilt, (Neo-)Forge & others
EngineMC does not yet support these plugin/mod loaders yet, sorry.
## The `/enginemc` command
The `/enginemc` command allows access into the engine without the use of plugins.
It can do the following things:
- read and modify the engine configuration
- parse placeholders using the `PlaceholderEngine` class and return it back
- force garbage collection
- display JVM information
## Known issues
### Reflection is broken
Due to how the mod and plugin loaders load JAR files, scanning the classpath for annotations does not work.
This means that the entire event system and automatic subsystem detection is broken.
We're waiting for sos!engine developers to implement methods for manually registering subsystems and event listeners.
Until then, use other methods for initializing subsystems and sending events and data around.
## Contributing
Please see [sos!engine's contributing section](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/README.md#contributing)