Skip to content

Snelstart

Deze handleiding helpt je op weg bij het schrijven van Pumpkin server plugins met C.

Vereisten

Zorg ervoor dat je het volgende hebt geïnstalleerd voordat je begint:

  • wasi-sdk (voor het compileren van C naar WASI)
  • git (om de API te klonen)

Project opzetten

Kloon eerst de Pumpkin C API repository met submodules:

bash
git clone --recursive https://github.com/Pumpkin-MC/pumpkin-api-c.git
cd pumpkin-api-c

Je eerste plugin maken

Maak een bestand genaamd main.c aan in de hoofdmap van de repository en voeg de volgende inhoud toe:

c
#include "pumpkin_api.h"
#include <stdio.h>

pumpkin_metadata_t get_meta(void) {
    static const char* authors[] = {"you"};
    return (pumpkin_metadata_t) {
        .name = "my-c-plugin",
        .version = "0.1.0",
        .authors = authors,
        .authors_count = 1,
        .description = "Een eenvoudige C-plugin voor Pumpkin",
        .dependencies_count = 0
    };
}

void on_load(plugin_own_context_t ctx) {
    printf("C-plugin geladen!\n");
}

REGISTER_PUMPKIN_PLUGIN(((pumpkin_plugin_t){
    .get_metadata = get_meta,
    .on_load = on_load
}))

De plugin bouwen

Gebruik de clang-compiler van je wasi-sdk-installatie om je plugin naar een WebAssembly-component te bouwen.

Vervang /path/to/wasi-sdk door het daadwerkelijke pad naar je WASI SDK.

bash
/path/to/wasi-sdk/bin/clang -O3 \
    -Iinclude -Isrc/gen \
    src/gen/plugin.c src/pumpkin_api.c main.c \
    -o my_plugin.wasm \
    -mexec-model=reactor

Dit genereert een my_plugin.wasm-bestand dat je in de plugins-map van je Pumpkin-server kunt plaatsen.

Uitgebracht onder de MIT-licentie.