Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
maestro-denery authored Apr 30, 2023
1 parent b9efee8 commit 03d1f0e
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,19 @@ Toki is a Paper fork which provides a Fabric-based modding platform for develope
### Join [discord](https://discord.gg/upTtNyvkNf) for discussion

## State
Highly WIP. The Fabric Loader on top of Paper is implemented, see `toki-test-mod`.
Everything is still WIP, but all Fabric loader functionality works. There is a [Gradle plugin](https://github.com/TetraTau/tokimak) for developers to develop mods for this platform. \
If you're a developer and interested in the mixin usage, see the [Toki example mod](https://github.com/TetraTau/toki-example-mod/tree/master).
See TODOs / Plans for more info about the state.

## Download
For now you can download builds only from our [Github releases](https://github.com/TetraTau/Toki/releases)

## Q & A
Q: Will my fabric mod `X` work on it? \
A: No, as far as mod developer didn't port their mod on this platform.

Q: Why it doesn't allow to launch already existing Fabric mods? \
A: It is so unlikely that already exisiting mods will work, Paper makes so many changes so they break mods. (Though, if you are a developer and you have knowledge of mapping generation, you can discuss adding remapping of mods from intermediary to spigot as an experimental feature in this project.)
A: It is so unlikely that already exisiting mods will work, Paper makes so many changes so they break mods. (Though, if you are a developer and you have knowledge of mapping generation, you can discuss adding remapping of mods from intermediary to spigot as an experimental feature for this project.)

## How to build
Generally, the build process the same as Paper's, except you also need to run `./gradlew applyFabricLoaderPatches` and `./gradlew applyPaperclipPatches`.
Expand All @@ -31,9 +35,9 @@ git clone https://github.com/TetraTau/Toki.git
```
## TODOs / Plans
- [x] Implement Fabric Loader on top of Paper.
- [ ] Create a Loom fork which supports patched Paper server source.
- [ ] Create a Toki API which has a compatibility with the Fabric API on a client side. (Registry sync)
- [ ] Make Bukkit API flexible enough to handle modded content. (Using Converters / EnumCreators from the Paper Registry PR)
- [x] Create a Gradle plugin for developers to be able to develop mods with this project.
- [ ] Create a Toki API which has a compatibility with the Fabric API on the client side. (Registry sync)
- [ ] Make Bukkit API flexible enough to handle modded content.

## How it works?
This project patches Paperclip to support Fabric Loader. Patched Paperclip contains patched Fabric Loader jar, then it extracts it and installs needed libraries, then it makes patched Paper server jar and launches patched Fabric Loader telling it to start the patched server Jar. Patched Fabric Loader has changes in Knot classpath libraries, because Paper ships additional libraries and we need to tell Fabric Loader to load them, and also it has changes in entrypoint, because CraftBukkit drastically changes `net.minecraft.server.Main`.
This project patches Paperclip to support Fabric Loader. Patched Paperclip contains patched Fabric Loader jar, then it extracts it and installs needed libraries, then it makes patched Paper server jar and launches patched Fabric Loader telling it to start the patched server Jar. Patched Fabric Loader has changes in Knot classpath libraries, because Paper ships additional libraries and we need to tell Fabric Loader to load them, and also it has changes in the entrypoint patch, because CraftBukkit drastically changes `net.minecraft.server.Main`.

0 comments on commit 03d1f0e

Please sign in to comment.