JeremyStarTM
c55cff04a8
This commit not only updates the engine, but also adds/changes the following things: - repository to download from - engine initialization failures are now properly caught and complained about - rename package to reflect v1-alpha6's package changes - update links in README.md
41 lines
2.3 KiB
Markdown
41 lines
2.3 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 events have to be registered manually. You can do that by calling [`EventHelper#registerEvent`](https://jd.engine.staropensource.de/v1-alpha6/base/de/staropensource/engine/base/implementable/helper/EventHelper.html#registerEvent(java.lang.Class,de.staropensource.engine.base.implementable.EventListenerCode,de.staropensource.engine.base.type.EventPriority))).
|
|
If you want to use a specific subsystem, either find or make a plugin/mod porting that subsystem to Minecraft (best option), or shade and include the subsystem in your final JAR and hope nothing breaks. Only do that if you have no other choice or the subsystem is specific to your plugin or modification.
|
|
|
|
## Contributing
|
|
Please see [sos!engine's contributing section](https://git.staropensource.de/StarOpenSource/Engine/src/branch/develop/README.md#contributing)
|