Add ARCHITECTURE to README.md

This commit is contained in:
Bjorn Beishline 2026-02-01 14:31:24 -07:00
parent 6494c908d2
commit ce80b01d09
2 changed files with 15 additions and 10 deletions

View File

@ -73,22 +73,22 @@ In `rust/src/java` we contain the majority of the code needed to interact direct
Specific areas of interest are Specific areas of interest are
1. `rust/src/java/native_callbacks` 1. `rust/src/java/native_callbacks`
- This directory contains all of the native FFM callbacks that are used to interact with the JVM. - This directory contains all of the native FFM callbacks that are used to interact with the JVM.
2. `rust/src/java/worker.rs` 2. `rust/src/java/worker.rs`
- This file contains the `JvmWorker` struct and its methods. - This file contains the `JvmWorker` struct and its methods.
3. `rust/src/plugin` 3. `rust/src/plugin`
- This folder contains all of the code needed to interact with plugins from Rust. - This folder contains all of the code needed to interact with plugins from Rust.
On the `java/patchbukkit/src/main/java/org/patchbukkit` side, we have some of the following classes: On the `java/patchbukkit/src/main/java/org/patchbukkit` side, we have some of the following classes:
1. `org.patchbukkit.bridge.NativePatchBukkit` 1. `org.patchbukkit.bridge.NativePatchBukkit`
- This class contains the native FFM callbacks that are used to interact with the JVM. - This class contains the native FFM callbacks that are used to interact with the JVM.
2. `org.patchbukkit.PatchBukkitServer` 2. `org.patchbukkit.PatchBukkitServer`
- This class creates and manages the PatchBukkit servers. - This class creates and manages the PatchBukkit servers.
3. `org.patchbukkit.PatchBukkitPluginLoader` 3. `org.patchbukkit.PatchBukkitPluginLoader`
- This class is the way we create plugins on the Java side. - This class is the way we create plugins on the Java side.
4. `org.patchbukkit.PatchBukkitPluginManager` 4. `org.patchbukkit.PatchBukkitPluginManager`
- This class is the way we help manage the PatchBukkit plugins. - This class is the way we help manage the PatchBukkit plugins.
## build.rs ## build.rs

View File

@ -15,13 +15,18 @@ A plugin for [PumpkinMC](https://pumpkinmc.org/) that adds support for [PaperMC]
- patchbukkit-linux-aarch64.so (Linux ARM64/ Raspberry Pi) - patchbukkit-linux-aarch64.so (Linux ARM64/ Raspberry Pi)
- patchbukkit-mac.dylib (macOS) - patchbukkit-mac.dylib (macOS)
3. **Deploy**: Place the downloaded file into your PumpkinMC plugins/ directory. (Run PumpkinMC once to generate this folder if it doesn't exist). 3. **Deploy**: Place the downloaded file into your PumpkinMC `plugins/` directory. (Run PumpkinMC once to generate this folder if it doesn't exist).
4. **Initialize**: Restart PumpkinMC. This creates a new /patchbukkit directory in your server root. 4. **Initialize**: Restart PumpkinMC. This creates a new `patchbukkit/` directory in your server root.
5. **Add Plugins**: Drop your .jar plugin files (Paper/Spigot/Bukkit) into the newly created patchbukkit/ folder and restart. 5. **Add Plugins**: Drop your .jar plugin files (Paper/Spigot/Bukkit) into the newly created `patchbukkit/patchbukkit-plugins/` folder and restart.
## Development ## Development
If you wish to contribute to PatchBukkit, follow the following steps: If you wish to contribute to PatchBukkit, follow the following steps:
> [!NOTE]
> Your PumpkinMC server must be built with the same nightly toolchain as PatchBukkit.
1. Run `./build.sh` 1. Run `./build.sh`
2. Copy the `target/debug/patchbukkit` binary to the `plugins` directory in your PumpkinMC server. 2. Copy the `target/debug/patchbukkit` binary to the `plugins` directory in your PumpkinMC server.
There is also an [architecture guide](https://github.com/Pumpkin-MC/PatchBukkit/blob/master/ARCHITECTURE.md) available.