Porting the StarOpenSource Engine to Minecraft
Find a file
JeremyStarTM d6e56f8dd9
Some checks failed
push-build-apidoc / build (push) Has been cancelled
push-build-apidoc / generate-javadoc (push) Has been cancelled
Update "Reflection is broken" section
2024-10-03 21:33:24 +02:00
.forgejo Initial commit 2024-09-06 01:36:06 +02:00
.idea Initial commit 2024-09-06 01:36:06 +02:00
common Update dependencies in 'common' subproject 2024-10-03 21:24:45 +02:00
gradle/wrapper Initial commit 2024-09-06 01:36:06 +02:00
platform-bukkit Update to sos!engine v1-alpha5 2024-09-23 19:09:12 +02:00
.gitignore Initial commit 2024-09-06 01:36:06 +02:00
build.gradle Initial commit 2024-09-06 01:36:06 +02:00
gradle.properties Update group 2024-09-23 19:27:16 +02:00
gradlew Initial commit 2024-09-06 01:36:06 +02:00
gradlew.bat Initial commit 2024-09-06 01:36:06 +02:00
LICENSE Initial commit 2024-09-06 01:36:06 +02:00
README.md Update "Reflection is broken" section 2024-10-03 21:33:24 +02:00
settings.gradle Update project name 2024-10-03 21:22:06 +02:00

StarOpenSource EngineMC

EngineMC (or sos!enginemc for short) is a port of the StarOpenSource Engine to Minecraft and it's various plugin and mod loaders.

Index

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. 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