Skip to content

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> --lib

Dies erstellt einen Ordner mit Dateien. Die Struktur sieht so aus:

bash
├── Cargo.toml
└── src
    └── lib.rs

Crate 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 = true

Aktiviert LTO nur für Release‑Builds.

Veröffentlicht unter der MIT-Lizenz.