Ein neues Projekt erstellen
Pumpkin‑Plugins verwenden das Build‑System Cargo.
Den kompletten Code dieses Plugins findest du als Template auf GitHub.
Neue Crate initialisieren
Lege zuerst ein neues Projektverzeichnis an und führe darin aus:
bash
cargo new <project-name> --libDies erstellt einen Ordner mit Dateien. Die Struktur sieht so aus:
bash
├── Cargo.toml
└── src
└── lib.rsCrate konfigurieren
Da Pumpkin‑Plugins zur Laufzeit als dynamische Bibliotheken geladen werden, muss Cargo diese Crate entsprechend bauen.
toml
[package]
name = "hello-pumpkin"
version = "0.1.0"
edition = "2021"
[lib]
crate-type = ["cdylib"]
[dependencies]Als Nächstes fügen wir Basis‑Abhängigkeiten hinzu. Da Pumpkin noch früh in der Entwicklung ist, sind die internen Crates nicht auf crates.io veröffentlicht; wir beziehen sie direkt von GitHub.
toml
[package]
name = "hello-pumpkin"
version = "0.1.0"
edition = "2021"
[lib]
crate-type = ["cdylib"]
[dependencies]
# Dies ist die Basis-Crate mit den meisten High-Level-Typdefinitionen.
pumpkin = { git = "https://github.com/Pumpkin-MC/Pumpkin.git", branch = "master", package = "pumpkin" }
# Weitere von Pumpkin verwendete Hilfsprogramme (z. B. TextComponent, Vektoren...)
pumpkin-util = { git = "https://github.com/Pumpkin-MC/Pumpkin.git", branch = "master", package = "pumpkin-util" }
# Makros zur einfacheren Plugin-Entwicklung
pumpkin-api-macros = { git = "https://github.com/Pumpkin-MC/Pumpkin.git", branch = "master", package = "pumpkin-api-macros" }
# Ein Hilfsprogramm, das es Plugins ermöglicht, asynchron zu arbeiten
async-trait = "0.1"
# A rust asynchronous runtime
tokio = "1.42"
# Logging
log = "0.4"Für bessere Performance und kleinere Binaries empfehlen wir Link‑Time Optimization (LTO). Beachte, dass dies die Kompilierzeit erhöht.
toml
[profile.release]
lto = trueAktiviert LTO nur für Release‑Builds.