minosoft/doc/Modding2.md
Moritz Zwerger 57a8985a94
rename connection to session
MASSIVE refactor. But In future the PlayConnection might not be an actual connection. All connection logic will move into network.
2024-08-01 14:14:05 +02:00

28 lines
1.0 KiB
Markdown

# Modding (v2)
## Goals
- Not supported (i.e. no backwards compatibility)
- basic api, everything else is unsafe
- inject main class
- kotlin support
- mixins (with java)
- jar loading or folder loading with jcl
- build system (gradle?): easy debugging, executing and hot reloading
- soft dependency management
- depend on other mods by name
- no libraries (aka bundle that with your jar)
- basic api
- connect events (by regex, port, hostname, ip, …)
- load minosoft api for now from jitpack, then publish stable versions to maven central
- gui with list of mods
- loading procedure:
- priority
- load meta -> inject to classpath -> initialize main class
- main class template (with logging, assets, ...)
- Multiple `mods` folders
- pre boot (before loading anything)
- boot (while loading everything else)
- post boot (start loading after booting, but don't wait for them. Only wait before loading session)
- No classic event system, events are stateless. Everything that is stateful should use observables