Skip to content
This repository has been archived by the owner on Feb 18, 2021. It is now read-only.

Internals

Mark Vainomaa edited this page May 18, 2017 · 8 revisions

Orion internals & startup

As Orion re-uses some ideas from other solutions (like Sponge, Forge and Glowstone), then some similiarities are noticeable. (Not yet, but at some point)

Step 1: Server bootstrap

As Orion Launcher tries to be as small as it can be, then it downloads all required dependencies from Maven using tiny client written by me.

Paper server must be set up manually right now, though workaround can be done now, because this got accepted.

Libraries are loaded to system classloader (as some libraries are required in step 2)

Bootstrap invokes LegacyLauncher to proceed to step 2

Step 2: OrionTweakClass

In this step, logger gets initialized (@mikroskeem yells at CraftBukkit authors) and mixins get set up.

Tweak class deals with mods (NOTE: Coremods can not touch game in any other way than bytecode modifying (transformers etc.), use plugins if you want to modify game)

After that CraftBukkit jar's main(String[] args) will be called.

Step 3: Server start

In this step, you see normal server startup. Except it utilizes modified classes now.

Clone this wiki locally