commit 56da082f55ed9fed96e3a1b4c545f264822b1c02 Author: Alexander Medvedev Date: Wed Apr 15 20:08:21 2026 +0200 first commit diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..8c10b5b --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "wit/repo"] + path = wit/repo + url = https://github.com/Pumpkin-MC/Pumpkin.git diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..820ae00 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required(VERSION 3.10) +project(pumpkin-api-c C) + +set(CMAKE_C_STANDARD 11) + +# Add the generated bindings +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/gen) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) + +add_library(pumpkin-api STATIC + src/gen/plugin.c + src/pumpkin_api.c +) diff --git a/README.md b/README.md new file mode 100644 index 0000000..31386da --- /dev/null +++ b/README.md @@ -0,0 +1,55 @@ +# Pumpkin Plugin API for C + +This package provides everything needed to write a Pumpkin server plugin compiled to WebAssembly using C or C++. + +## Quick start + +1. Clone this repository with submodules: + +```bash +git clone --recursive +# Or if you already cloned it: +git submodule update --init --recursive +``` + +2. Create your plugin (`main.c`): + +```c +#include "pumpkin_api.h" +#include + +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 = "A simple C plugin for Pumpkin", + .dependencies_count = 0 + }; +} + +void on_load(plugin_own_context_t ctx) { + printf("C plugin loaded!\n"); +} + +REGISTER_PUMPKIN_PLUGIN(((pumpkin_plugin_t){ + .get_metadata = get_meta, + .on_load = on_load +})) +``` + +3. Build your plugin into a WebAssembly component: + +To build for Pumpkin, you'll need the `wasi-sdk` and `wit-bindgen`. + +```bash +# Compile to Wasm using wasi-sdk +/path/to/wasi-sdk/bin/clang -O3 \ + -Iinclude -Isrc/gen \ + src/gen/plugin.c src/pumpkin_api.c example/main.c \ + -o my_plugin.wasm \ + -mexec-model=reactor +``` + diff --git a/example/main.c b/example/main.c new file mode 100644 index 0000000..16cc534 --- /dev/null +++ b/example/main.c @@ -0,0 +1,28 @@ +#include "pumpkin_api.h" +#include + +pumpkin_metadata_t get_meta(void) { + static const char* authors[] = {"alex"}; + return (pumpkin_metadata_t) { + .name = "my-c-plugin", + .version = "0.1.0", + .authors = authors, + .authors_count = 1, + .description = "A simple C plugin for Pumpkin", + .dependencies_count = 0 + }; +} + +void on_load(plugin_own_context_t ctx) { + printf("C plugin loaded!\n"); +} + +void on_unload(plugin_own_context_t ctx) { + printf("C plugin unloaded!\n"); +} + +REGISTER_PUMPKIN_PLUGIN(((pumpkin_plugin_t){ + .get_metadata = get_meta, + .on_load = on_load, + .on_unload = on_unload +})) diff --git a/include/pumpkin_api.h b/include/pumpkin_api.h new file mode 100644 index 0000000..bdd22e9 --- /dev/null +++ b/include/pumpkin_api.h @@ -0,0 +1,41 @@ +#ifndef PUMPKIN_API_H +#define PUMPKIN_API_H + +#include "plugin.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + const char* name; + const char* version; + const char** authors; + size_t authors_count; + const char* description; + const char** dependencies; + size_t dependencies_count; +} pumpkin_metadata_t; + +typedef void (*pumpkin_on_load_t)(plugin_own_context_t ctx); +typedef void (*pumpkin_on_unload_t)(plugin_own_context_t ctx); +typedef pumpkin_metadata_t (*pumpkin_get_metadata_t)(void); + +typedef struct { + pumpkin_get_metadata_t get_metadata; + pumpkin_on_load_t on_load; + pumpkin_on_unload_t on_unload; +} pumpkin_plugin_t; + +void pumpkin_register_plugin(pumpkin_plugin_t plugin); + +#define REGISTER_PUMPKIN_PLUGIN(plugin) \ + void exports_plugin_init_plugin(void) { \ + pumpkin_register_plugin(plugin); \ + } + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/gen/plugin.c b/src/gen/plugin.c new file mode 100644 index 0000000..7e8419e --- /dev/null +++ b/src/gen/plugin.c @@ -0,0 +1,4606 @@ +// Generated by `wit-bindgen` 0.56.0. DO NOT EDIT! +#include "plugin.h" +#include +#include + +union int32_float { int32_t a; float b; }; + +union float_int32 { float a; int32_t b; }; + +union int64_double { int64_t a; double b; }; + +union double_int64 { double a; int64_t b; }; + +// Imported Functions from `pumpkin:plugin/logging` + +__attribute__((__import_module__("pumpkin:plugin/logging"), __import_name__("log"))) +extern void __wasm_import_pumpkin_plugin_logging_log(int32_t, uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/logging"), __import_name__("log-tracing"))) +extern void __wasm_import_pumpkin_plugin_logging_log_tracing(uint8_t *, size_t); + +// Imported Functions from `pumpkin:plugin/text` + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[static]text-component.text"))) +extern int32_t __wasm_import_pumpkin_plugin_text_static_text_component_text(uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[static]text-component.translate"))) +extern int32_t __wasm_import_pumpkin_plugin_text_static_text_component_translate(uint8_t *, size_t, uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.add-child"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_add_child(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.add-text"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_add_text(int32_t, uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.get-text"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_get_text(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.encode"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_encode(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.color-named"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_color_named(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.color-rgb"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_color_rgb(int32_t, int32_t, int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.bold"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_bold(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.italic"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_italic(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.underlined"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_underlined(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.strikethrough"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_strikethrough(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.obfuscated"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_obfuscated(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.insertion"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_insertion(int32_t, uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.font"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_font(int32_t, uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.shadow-color"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_shadow_color(int32_t, int32_t, int32_t, int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.click-open-url"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_click_open_url(int32_t, uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.click-run-command"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_click_run_command(int32_t, uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.click-suggest-command"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_click_suggest_command(int32_t, uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.click-copy-to-clipboard"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_click_copy_to_clipboard(int32_t, uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.hover-show-text"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_hover_show_text(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.hover-show-item"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_hover_show_item(int32_t, uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[method]text-component.hover-show-entity"))) +extern void __wasm_import_pumpkin_plugin_text_method_text_component_hover_show_entity(int32_t, uint8_t *, size_t, uint8_t *, size_t, int32_t, int32_t); + +// Imported Functions from `pumpkin:plugin/gui` + +__attribute__((__import_module__("pumpkin:plugin/gui"), __import_name__("[constructor]gui"))) +extern int32_t __wasm_import_pumpkin_plugin_gui_constructor_gui(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/gui"), __import_name__("[method]gui.set-item"))) +extern void __wasm_import_pumpkin_plugin_gui_method_gui_set_item(int32_t, int32_t, uint8_t *, size_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/gui"), __import_name__("[method]gui.get-item"))) +extern void __wasm_import_pumpkin_plugin_gui_method_gui_get_item(int32_t, int32_t, uint8_t *); + +// Imported Functions from `pumpkin:plugin/scoreboard` + +__attribute__((__import_module__("pumpkin:plugin/scoreboard"), __import_name__("[method]scoreboard.add-objective"))) +extern void __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_add_objective(int32_t, uint8_t *, size_t, int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/scoreboard"), __import_name__("[method]scoreboard.remove-objective"))) +extern void __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_remove_objective(int32_t, uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/scoreboard"), __import_name__("[method]scoreboard.set-display-slot"))) +extern void __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_set_display_slot(int32_t, int32_t, uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/scoreboard"), __import_name__("[method]scoreboard.update-score"))) +extern void __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_update_score(int32_t, uint8_t *, size_t, uint8_t *, size_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/scoreboard"), __import_name__("[method]scoreboard.remove-score"))) +extern void __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_remove_score(int32_t, uint8_t *, size_t, uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/scoreboard"), __import_name__("[method]scoreboard.create-team"))) +extern void __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_create_team(int32_t, uint8_t *, size_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/scoreboard"), __import_name__("[method]scoreboard.remove-team"))) +extern void __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_remove_team(int32_t, uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/scoreboard"), __import_name__("[method]scoreboard.update-team"))) +extern void __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_update_team(int32_t, uint8_t *, size_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/scoreboard"), __import_name__("[method]scoreboard.add-player-to-team"))) +extern void __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_add_player_to_team(int32_t, uint8_t *, size_t, uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/scoreboard"), __import_name__("[method]scoreboard.remove-player-from-team"))) +extern void __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_remove_player_from_team(int32_t, uint8_t *, size_t, uint8_t *, size_t); + +// Imported Functions from `pumpkin:plugin/world` + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.get-id"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_entity_get_id(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.get-uuid"))) +extern void __wasm_import_pumpkin_plugin_world_method_entity_get_uuid(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.get-type"))) +extern void __wasm_import_pumpkin_plugin_world_method_entity_get_type(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.get-position"))) +extern void __wasm_import_pumpkin_plugin_world_method_entity_get_position(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.get-world"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_entity_get_world(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.get-yaw"))) +extern float __wasm_import_pumpkin_plugin_world_method_entity_get_yaw(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.get-pitch"))) +extern float __wasm_import_pumpkin_plugin_world_method_entity_get_pitch(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.get-head-yaw"))) +extern float __wasm_import_pumpkin_plugin_world_method_entity_get_head_yaw(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.is-on-ground"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_entity_is_on_ground(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.is-sneaking"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_entity_is_sneaking(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.is-sprinting"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_entity_is_sprinting(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.is-invisible"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_entity_is_invisible(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.is-glowing"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_entity_is_glowing(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.teleport"))) +extern void __wasm_import_pumpkin_plugin_world_method_entity_teleport(int32_t, double, double, double, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.set-velocity"))) +extern void __wasm_import_pumpkin_plugin_world_method_entity_set_velocity(int32_t, double, double, double); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.get-velocity"))) +extern void __wasm_import_pumpkin_plugin_world_method_entity_get_velocity(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.get-pose"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_entity_get_pose(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.get-name"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_entity_get_name(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.set-custom-name"))) +extern void __wasm_import_pumpkin_plugin_world_method_entity_set_custom_name(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.get-custom-name"))) +extern void __wasm_import_pumpkin_plugin_world_method_entity_get_custom_name(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.set-custom-name-visible"))) +extern void __wasm_import_pumpkin_plugin_world_method_entity_set_custom_name_visible(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.is-custom-name-visible"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_entity_is_custom_name_visible(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.is-invulnerable"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_entity_is_invulnerable(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.set-invulnerable"))) +extern void __wasm_import_pumpkin_plugin_world_method_entity_set_invulnerable(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.get-fire-ticks"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_entity_get_fire_ticks(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.set-fire-ticks"))) +extern void __wasm_import_pumpkin_plugin_world_method_entity_set_fire_ticks(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]entity.remove"))) +extern void __wasm_import_pumpkin_plugin_world_method_entity_remove(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.get-id"))) +extern void __wasm_import_pumpkin_plugin_world_method_world_get_id(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.get-block-state-id"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_world_get_block_state_id(int32_t, int32_t, int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.get-block-state"))) +extern void __wasm_import_pumpkin_plugin_world_method_world_get_block_state(int32_t, int32_t, int32_t, int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.set-block-state"))) +extern void __wasm_import_pumpkin_plugin_world_method_world_set_block_state(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.get-time-of-day"))) +extern int64_t __wasm_import_pumpkin_plugin_world_method_world_get_time_of_day(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.set-time-of-day"))) +extern void __wasm_import_pumpkin_plugin_world_method_world_set_time_of_day(int32_t, int64_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.get-world-age"))) +extern int64_t __wasm_import_pumpkin_plugin_world_method_world_get_world_age(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.get-dimension"))) +extern void __wasm_import_pumpkin_plugin_world_method_world_get_dimension(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.get-top-block-y"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_world_get_top_block_y(int32_t, int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.get-motion-blocking-height"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_world_get_motion_blocking_height(int32_t, int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.is-raining"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_world_is_raining(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.set-raining"))) +extern void __wasm_import_pumpkin_plugin_world_method_world_set_raining(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.is-thundering"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_world_is_thundering(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.set-thundering"))) +extern void __wasm_import_pumpkin_plugin_world_method_world_set_thundering(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.broadcast-system-message"))) +extern void __wasm_import_pumpkin_plugin_world_method_world_broadcast_system_message(int32_t, int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.get-scoreboard"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_world_get_scoreboard(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.play-sound"))) +extern void __wasm_import_pumpkin_plugin_world_method_world_play_sound(int32_t, uint8_t *, size_t, int32_t, double, double, double, float, float); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.spawn-particle"))) +extern void __wasm_import_pumpkin_plugin_world_method_world_spawn_particle(int32_t, uint8_t *, size_t, double, double, double, double, double, double, float, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.create-explosion"))) +extern void __wasm_import_pumpkin_plugin_world_method_world_create_explosion(int32_t, double, double, double, float, int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.get-sea-level"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_world_get_sea_level(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.get-min-y"))) +extern int32_t __wasm_import_pumpkin_plugin_world_method_world_get_min_y(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[method]world.get-entities"))) +extern void __wasm_import_pumpkin_plugin_world_method_world_get_entities(int32_t, uint8_t *); + +// Imported Functions from `pumpkin:plugin/player` + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.as-entity"))) +extern int32_t __wasm_import_pumpkin_plugin_player_method_player_as_entity(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-id"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_get_id(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-name"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_get_name(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-position"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_get_position(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-yaw"))) +extern float __wasm_import_pumpkin_plugin_player_method_player_get_yaw(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-pitch"))) +extern float __wasm_import_pumpkin_plugin_player_method_player_get_pitch(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-world"))) +extern int32_t __wasm_import_pumpkin_plugin_player_method_player_get_world(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-gamemode"))) +extern int32_t __wasm_import_pumpkin_plugin_player_method_player_get_gamemode(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.set-gamemode"))) +extern int32_t __wasm_import_pumpkin_plugin_player_method_player_set_gamemode(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-locale"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_get_locale(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-ping"))) +extern int32_t __wasm_import_pumpkin_plugin_player_method_player_get_ping(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-permission-level"))) +extern int32_t __wasm_import_pumpkin_plugin_player_method_player_get_permission_level(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.set-permission-level"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_set_permission_level(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.has-permission"))) +extern int32_t __wasm_import_pumpkin_plugin_player_method_player_has_permission(int32_t, uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-display-name"))) +extern int32_t __wasm_import_pumpkin_plugin_player_method_player_get_display_name(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.send-system-message"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_send_system_message(int32_t, int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.show-title"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_show_title(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.show-subtitle"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_show_subtitle(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.show-actionbar"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_show_actionbar(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.send-title-animation"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_send_title_animation(int32_t, int32_t, int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.teleport"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_teleport(int32_t, double, double, double, int32_t, float, int32_t, float, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.teleport-world"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_teleport_world(int32_t, int32_t, double, double, double, int32_t, float, int32_t, float); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.kick"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_kick(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.respawn"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_respawn(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.open-gui"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_open_gui(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.ban"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_ban(int32_t, int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.ban-ip"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_ban_ip(int32_t, int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-selected-slot"))) +extern int32_t __wasm_import_pumpkin_plugin_player_method_player_get_selected_slot(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-item-in-hand"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_get_item_in_hand(int32_t, int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-inventory-item"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_get_inventory_item(int32_t, int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-health"))) +extern float __wasm_import_pumpkin_plugin_player_method_player_get_health(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.set-health"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_set_health(int32_t, float); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-max-health"))) +extern float __wasm_import_pumpkin_plugin_player_method_player_get_max_health(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.set-max-health"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_set_max_health(int32_t, float); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-food-level"))) +extern int32_t __wasm_import_pumpkin_plugin_player_method_player_get_food_level(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.set-food-level"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_set_food_level(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-saturation"))) +extern float __wasm_import_pumpkin_plugin_player_method_player_get_saturation(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.set-saturation"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_set_saturation(int32_t, float); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-exhaustion"))) +extern float __wasm_import_pumpkin_plugin_player_method_player_get_exhaustion(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.set-exhaustion"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_set_exhaustion(int32_t, float); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-absorption"))) +extern float __wasm_import_pumpkin_plugin_player_method_player_get_absorption(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.set-absorption"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_set_absorption(int32_t, float); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-experience-level"))) +extern int32_t __wasm_import_pumpkin_plugin_player_method_player_get_experience_level(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-experience-progress"))) +extern float __wasm_import_pumpkin_plugin_player_method_player_get_experience_progress(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-experience-points"))) +extern int32_t __wasm_import_pumpkin_plugin_player_method_player_get_experience_points(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.set-experience-level"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_set_experience_level(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.set-experience-progress"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_set_experience_progress(int32_t, float); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.set-experience-points"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_set_experience_points(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.add-experience-levels"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_add_experience_levels(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.add-experience-points"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_add_experience_points(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.is-sneaking"))) +extern int32_t __wasm_import_pumpkin_plugin_player_method_player_is_sneaking(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.set-sneaking"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_set_sneaking(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.is-sprinting"))) +extern int32_t __wasm_import_pumpkin_plugin_player_method_player_is_sprinting(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.set-sprinting"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_set_sprinting(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.is-on-ground"))) +extern int32_t __wasm_import_pumpkin_plugin_player_method_player_is_on_ground(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.is-flying"))) +extern int32_t __wasm_import_pumpkin_plugin_player_method_player_is_flying(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.set-flying"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_set_flying(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-abilities"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_get_abilities(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.set-abilities"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_set_abilities(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, float, float); + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[method]player.get-ip"))) +extern void __wasm_import_pumpkin_plugin_player_method_player_get_ip(int32_t, uint8_t *); + +// Imported Functions from `pumpkin:plugin/server` + +__attribute__((__import_module__("pumpkin:plugin/server"), __import_name__("[method]server.get-difficulty"))) +extern int32_t __wasm_import_pumpkin_plugin_server_method_server_get_difficulty(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/server"), __import_name__("[method]server.get-player-count"))) +extern int32_t __wasm_import_pumpkin_plugin_server_method_server_get_player_count(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/server"), __import_name__("[method]server.get-mspt"))) +extern double __wasm_import_pumpkin_plugin_server_method_server_get_mspt(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/server"), __import_name__("[method]server.get-tps"))) +extern double __wasm_import_pumpkin_plugin_server_method_server_get_tps(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/server"), __import_name__("[method]server.get-all-players"))) +extern void __wasm_import_pumpkin_plugin_server_method_server_get_all_players(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/server"), __import_name__("[method]server.get-player-by-name"))) +extern void __wasm_import_pumpkin_plugin_server_method_server_get_player_by_name(int32_t, uint8_t *, size_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/server"), __import_name__("[method]server.get-player-by-uuid"))) +extern void __wasm_import_pumpkin_plugin_server_method_server_get_player_by_uuid(int32_t, uint8_t *, size_t, uint8_t *); + +// Imported Functions from `pumpkin:plugin/block-entity` + +__attribute__((__import_module__("pumpkin:plugin/block-entity"), __import_name__("[method]block-entity.resource-location"))) +extern void __wasm_import_pumpkin_plugin_block_entity_method_block_entity_resource_location(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/block-entity"), __import_name__("[method]block-entity.get-position"))) +extern void __wasm_import_pumpkin_plugin_block_entity_method_block_entity_get_position(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/block-entity"), __import_name__("[method]block-entity.get-id"))) +extern int32_t __wasm_import_pumpkin_plugin_block_entity_method_block_entity_get_id(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/block-entity"), __import_name__("[method]block-entity.is-dirty"))) +extern int32_t __wasm_import_pumpkin_plugin_block_entity_method_block_entity_is_dirty(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/block-entity"), __import_name__("[method]block-entity.clear-dirty"))) +extern void __wasm_import_pumpkin_plugin_block_entity_method_block_entity_clear_dirty(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/block-entity"), __import_name__("[method]command-block-entity.get-block-entity"))) +extern int32_t __wasm_import_pumpkin_plugin_block_entity_method_command_block_entity_get_block_entity(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/block-entity"), __import_name__("[method]command-block-entity.last-output"))) +extern void __wasm_import_pumpkin_plugin_block_entity_method_command_block_entity_last_output(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/block-entity"), __import_name__("[method]command-block-entity.track-output"))) +extern int32_t __wasm_import_pumpkin_plugin_block_entity_method_command_block_entity_track_output(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/block-entity"), __import_name__("[method]command-block-entity.success-count"))) +extern int32_t __wasm_import_pumpkin_plugin_block_entity_method_command_block_entity_success_count(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/block-entity"), __import_name__("[method]command-block-entity.command"))) +extern void __wasm_import_pumpkin_plugin_block_entity_method_command_block_entity_command(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/block-entity"), __import_name__("[method]command-block-entity.auto"))) +extern int32_t __wasm_import_pumpkin_plugin_block_entity_method_command_block_entity_auto(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/block-entity"), __import_name__("[method]command-block-entity.condition-met"))) +extern int32_t __wasm_import_pumpkin_plugin_block_entity_method_command_block_entity_condition_met(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/block-entity"), __import_name__("[method]command-block-entity.powered"))) +extern int32_t __wasm_import_pumpkin_plugin_block_entity_method_command_block_entity_powered(int32_t); + +// Imported Functions from `pumpkin:plugin/command` + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]consumed-args.get-value"))) +extern void __wasm_import_pumpkin_plugin_command_method_consumed_args_get_value(int32_t, uint8_t *, size_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command-sender.get-command-sender-type"))) +extern void __wasm_import_pumpkin_plugin_command_method_command_sender_get_command_sender_type(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command-sender.send-message"))) +extern void __wasm_import_pumpkin_plugin_command_method_command_sender_send_message(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command-sender.set-success-count"))) +extern void __wasm_import_pumpkin_plugin_command_method_command_sender_set_success_count(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command-sender.is-player"))) +extern int32_t __wasm_import_pumpkin_plugin_command_method_command_sender_is_player(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command-sender.is-console"))) +extern int32_t __wasm_import_pumpkin_plugin_command_method_command_sender_is_console(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command-sender.as-player"))) +extern void __wasm_import_pumpkin_plugin_command_method_command_sender_as_player(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command-sender.permission-level"))) +extern int32_t __wasm_import_pumpkin_plugin_command_method_command_sender_permission_level(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command-sender.has-permission-level"))) +extern int32_t __wasm_import_pumpkin_plugin_command_method_command_sender_has_permission_level(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command-sender.has-permission"))) +extern int32_t __wasm_import_pumpkin_plugin_command_method_command_sender_has_permission(int32_t, int32_t, uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command-sender.position"))) +extern void __wasm_import_pumpkin_plugin_command_method_command_sender_position(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command-sender.world"))) +extern void __wasm_import_pumpkin_plugin_command_method_command_sender_world(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command-sender.get-locale"))) +extern int32_t __wasm_import_pumpkin_plugin_command_method_command_sender_get_locale(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command-sender.should-receive-feedback"))) +extern int32_t __wasm_import_pumpkin_plugin_command_method_command_sender_should_receive_feedback(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command-sender.should-broadcast-console-to-ops"))) +extern int32_t __wasm_import_pumpkin_plugin_command_method_command_sender_should_broadcast_console_to_ops(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command-sender.should-track-output"))) +extern int32_t __wasm_import_pumpkin_plugin_command_method_command_sender_should_track_output(int32_t); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[static]command-node.literal"))) +extern int32_t __wasm_import_pumpkin_plugin_command_static_command_node_literal(uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[static]command-node.argument"))) +extern int32_t __wasm_import_pumpkin_plugin_command_static_command_node_argument(uint8_t *, size_t, int32_t, uint8_t *, int64_t, int32_t, int64_t); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command-node.then"))) +extern void __wasm_import_pumpkin_plugin_command_method_command_node_then(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command-node.execute-with-handler-id"))) +extern void __wasm_import_pumpkin_plugin_command_method_command_node_execute_with_handler_id(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command-node.require-with-handler-id"))) +extern void __wasm_import_pumpkin_plugin_command_method_command_node_require_with_handler_id(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[constructor]command"))) +extern int32_t __wasm_import_pumpkin_plugin_command_constructor_command(uint8_t *, size_t, uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command.then"))) +extern void __wasm_import_pumpkin_plugin_command_method_command_then(int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[method]command.execute-with-handler-id"))) +extern void __wasm_import_pumpkin_plugin_command_method_command_execute_with_handler_id(int32_t, int32_t); + +// Imported Functions from `pumpkin:plugin/context` + +__attribute__((__import_module__("pumpkin:plugin/context"), __import_name__("[method]context.register-event"))) +extern void __wasm_import_pumpkin_plugin_context_method_context_register_event(int32_t, int32_t, int32_t, int32_t, int32_t); + +__attribute__((__import_module__("pumpkin:plugin/context"), __import_name__("[method]context.register-command"))) +extern void __wasm_import_pumpkin_plugin_context_method_context_register_command(int32_t, int32_t, uint8_t *, size_t); + +__attribute__((__import_module__("pumpkin:plugin/context"), __import_name__("[method]context.register-permission"))) +extern void __wasm_import_pumpkin_plugin_context_method_context_register_permission(int32_t, uint8_t *, size_t, uint8_t *, size_t, int32_t, int32_t, uint8_t *, size_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/context"), __import_name__("[method]context.get-data-folder"))) +extern void __wasm_import_pumpkin_plugin_context_method_context_get_data_folder(int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/context"), __import_name__("[method]context.get-server"))) +extern int32_t __wasm_import_pumpkin_plugin_context_method_context_get_server(int32_t); + +// Imported Functions from `pumpkin:plugin/i18n` + +__attribute__((__import_module__("pumpkin:plugin/i18n"), __import_name__("translate"))) +extern void __wasm_import_pumpkin_plugin_i18n_translate(uint8_t *, size_t, int32_t, uint8_t *); + +__attribute__((__import_module__("pumpkin:plugin/i18n"), __import_name__("load-translations"))) +extern void __wasm_import_pumpkin_plugin_i18n_load_translations(uint8_t *, size_t, uint8_t *, size_t, int32_t); + +// Imported Functions from `pumpkin:plugin/scheduler` + +__attribute__((__import_module__("pumpkin:plugin/scheduler"), __import_name__("schedule-delayed-task"))) +extern int32_t __wasm_import_pumpkin_plugin_scheduler_schedule_delayed_task(int32_t, int64_t); + +__attribute__((__import_module__("pumpkin:plugin/scheduler"), __import_name__("schedule-repeating-task"))) +extern int32_t __wasm_import_pumpkin_plugin_scheduler_schedule_repeating_task(int32_t, int64_t, int64_t); + +__attribute__((__import_module__("pumpkin:plugin/scheduler"), __import_name__("cancel-task"))) +extern void __wasm_import_pumpkin_plugin_scheduler_cancel_task(int32_t); + +// Exported Functions from `plugin` + + +__attribute__((__weak__, __export_name__("cabi_post_on-load"))) +void __wasm_export_exports_plugin_on_load_post_return(uint8_t * arg0) { + switch ((int32_t) (int32_t) *((uint8_t*) (arg0 + 0))) { + case 0: { + break; + } + case 1: { + if ((*((size_t*) (arg0 + (2*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + sizeof(void*)))); + } + break; + } + } +} + +__attribute__((__weak__, __export_name__("cabi_post_on-unload"))) +void __wasm_export_exports_plugin_on_unload_post_return(uint8_t * arg0) { + switch ((int32_t) (int32_t) *((uint8_t*) (arg0 + 0))) { + case 0: { + break; + } + case 1: { + if ((*((size_t*) (arg0 + (2*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + sizeof(void*)))); + } + break; + } + } +} + +__attribute__((__weak__, __export_name__("cabi_post_handle-event"))) +void __wasm_export_exports_plugin_handle_event_post_return(uint8_t * arg0) { + switch ((int32_t) (int32_t) *((uint8_t*) (arg0 + 0))) { + case 0: { + break; + } + case 1: { + break; + } + case 2: { + break; + } + case 3: { + if ((*((size_t*) (arg0 + (8+2*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + (8+1*sizeof(void*))))); + } + size_t len = *((size_t*) (arg0 + (8+4*sizeof(void*)))); + if (len > 0) { + uint8_t *ptr = *((uint8_t **) (arg0 + (8+3*sizeof(void*)))); + for (size_t i = 0; i < len; i++) { + uint8_t *base = ptr + i * 4; + (void) base; + } + free(ptr); + } + break; + } + case 4: { + if ((*((size_t*) (arg0 + (8+2*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + (8+1*sizeof(void*))))); + } + break; + } + case 5: { + if ((*((size_t*) (arg0 + (8+2*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + (8+1*sizeof(void*))))); + } + break; + } + case 6: { + break; + } + case 7: { + break; + } + case 8: { + break; + } + case 9: { + break; + } + case 10: { + break; + } + case 11: { + break; + } + case 12: { + break; + } + case 13: { + if ((*((size_t*) (arg0 + (8+2*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + (8+1*sizeof(void*))))); + } + size_t len0 = *((size_t*) (arg0 + (8+4*sizeof(void*)))); + if (len0 > 0) { + uint8_t *ptr1 = *((uint8_t **) (arg0 + (8+3*sizeof(void*)))); + for (size_t i2 = 0; i2 < len0; i2++) { + uint8_t *base = ptr1 + i2 * 1; + (void) base; + } + free(ptr1); + } + break; + } + case 14: { + switch ((int32_t) (int32_t) *((uint8_t*) (arg0 + (8+1*sizeof(void*))))) { + case 0: { + break; + } + case 1: { + if ((*((size_t*) (arg0 + (8+3*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + (8+2*sizeof(void*))))); + } + break; + } + } + if ((*((size_t*) (arg0 + (8+5*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + (8+4*sizeof(void*))))); + } + if ((*((size_t*) (arg0 + (8+7*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + (8+6*sizeof(void*))))); + } + break; + } + case 15: { + if ((*((size_t*) (arg0 + (8+2*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + (8+1*sizeof(void*))))); + } + if ((*((size_t*) (arg0 + (8+5*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + (8+4*sizeof(void*))))); + } + break; + } + case 16: { + break; + } + case 17: { + if ((*((size_t*) (arg0 + (32+1*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + 32))); + } + if ((*((size_t*) (arg0 + (32+4*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + (32+3*sizeof(void*))))); + } + break; + } + case 18: { + break; + } + case 19: { + break; + } + case 20: { + break; + } + case 21: { + break; + } + case 22: { + if ((*((size_t*) (arg0 + (16+1*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + 16))); + } + break; + } + case 23: { + if ((*((size_t*) (arg0 + (8+1*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + 8))); + } + if ((*((size_t*) (arg0 + (8+3*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + (8+2*sizeof(void*))))); + } + break; + } + case 24: { + if ((*((size_t*) (arg0 + (8+1*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + 8))); + } + if ((*((size_t*) (arg0 + (16+3*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + (16+2*sizeof(void*))))); + } + break; + } + case 25: { + if ((*((size_t*) (arg0 + (8+2*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + (8+1*sizeof(void*))))); + } + if ((*((size_t*) (arg0 + (8+5*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + (8+4*sizeof(void*))))); + } + break; + } + case 26: { + if ((*((size_t*) (arg0 + (8+2*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + (8+1*sizeof(void*))))); + } + if ((*((size_t*) (arg0 + (8+4*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + (8+3*sizeof(void*))))); + } + break; + } + case 27: { + if ((*((size_t*) (arg0 + (8+1*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + 8))); + } + break; + } + case 28: { + break; + } + case 29: { + break; + } + } +} + +__attribute__((__weak__, __export_name__("cabi_post_handle-command"))) +void __wasm_export_exports_plugin_handle_command_post_return(uint8_t * arg0) { + switch ((int32_t) (int32_t) *((uint8_t*) (arg0 + 0))) { + case 0: { + break; + } + case 1: { + switch ((int32_t) (int32_t) *((uint8_t*) (arg0 + sizeof(void*)))) { + case 0: { + switch ((int32_t) (int32_t) *((uint8_t*) (arg0 + (2*sizeof(void*))))) { + case 0: { + break; + } + case 1: { + if ((*((size_t*) (arg0 + (4*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + (3*sizeof(void*))))); + } + break; + } + } + break; + } + case 1: { + break; + } + case 2: { + break; + } + case 3: { + break; + } + } + break; + } + } +} + + +// Exported Functions from `pumpkin:plugin/metadata` + +__attribute__((__weak__, __export_name__("cabi_post_pumpkin:plugin/metadata#get-metadata"))) +void __wasm_export_exports_pumpkin_plugin_metadata_get_metadata_post_return(uint8_t * arg0) { + if ((*((size_t*) (arg0 + sizeof(void*)))) > 0) { + free(*((uint8_t **) (arg0 + 0))); + } + if ((*((size_t*) (arg0 + (3*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + (2*sizeof(void*))))); + } + size_t len = *((size_t*) (arg0 + (5*sizeof(void*)))); + if (len > 0) { + uint8_t *ptr = *((uint8_t **) (arg0 + (4*sizeof(void*)))); + for (size_t i = 0; i < len; i++) { + uint8_t *base = ptr + i * (2*sizeof(void*)); + (void) base; + if ((*((size_t*) (base + sizeof(void*)))) > 0) { + free(*((uint8_t **) (base + 0))); + } + } + free(ptr); + } + if ((*((size_t*) (arg0 + (7*sizeof(void*))))) > 0) { + free(*((uint8_t **) (arg0 + (6*sizeof(void*))))); + } + size_t len0 = *((size_t*) (arg0 + (9*sizeof(void*)))); + if (len0 > 0) { + uint8_t *ptr1 = *((uint8_t **) (arg0 + (8*sizeof(void*)))); + for (size_t i2 = 0; i2 < len0; i2++) { + uint8_t *base = ptr1 + i2 * (2*sizeof(void*)); + (void) base; + if ((*((size_t*) (base + sizeof(void*)))) > 0) { + free(*((uint8_t **) (base + 0))); + } + } + free(ptr1); + } +} + +// Canonical ABI intrinsics + +__attribute__((__weak__, __export_name__("cabi_realloc"))) +void *cabi_realloc(void *ptr, size_t old_size, size_t align, size_t new_size) { + (void) old_size; + if (new_size == 0) return (void*) align; + void *ret = realloc(ptr, new_size); + if (!ret) abort(); + return ret; +} + +__attribute__((__aligned__(8))) +static uint8_t RET_AREA[(56+4*sizeof(void*))]; + +// Helper Functions + +void plugin_list_u8_free(plugin_list_u8_t *ptr) { + size_t list_len = ptr->len; + if (list_len > 0) { + uint8_t *list_ptr = ptr->ptr; + for (size_t i = 0; i < list_len; i++) { + } + free(list_ptr); + } +} + +void pumpkin_plugin_common_raw_text_component_free(pumpkin_plugin_common_raw_text_component_t *ptr) { + size_t list_len = ptr->len; + if (list_len > 0) { + uint8_t *list_ptr = ptr->ptr; + for (size_t i = 0; i < list_len; i++) { + } + free(list_ptr); + } +} + +void pumpkin_plugin_common_item_stack_free(pumpkin_plugin_common_item_stack_t *ptr) { + plugin_string_free(&ptr->registry_key); +} + +__attribute__((__import_module__("pumpkin:plugin/text"), __import_name__("[resource-drop]text-component"))) +extern void __wasm_import_pumpkin_plugin_text_text_component_drop(int32_t handle); + +void pumpkin_plugin_text_text_component_drop_own(pumpkin_plugin_text_own_text_component_t handle) { + __wasm_import_pumpkin_plugin_text_text_component_drop(handle.__handle); +} + +void pumpkin_plugin_text_text_component_drop_borrow(pumpkin_plugin_text_borrow_text_component_t handle) { + __wasm_import_pumpkin_plugin_text_text_component_drop(handle.__handle); +} + +pumpkin_plugin_text_borrow_text_component_t pumpkin_plugin_text_borrow_text_component(pumpkin_plugin_text_own_text_component_t arg) { + return (pumpkin_plugin_text_borrow_text_component_t) { arg.__handle }; +} + +void pumpkin_plugin_text_list_own_text_component_free(pumpkin_plugin_text_list_own_text_component_t *ptr) { + size_t list_len = ptr->len; + if (list_len > 0) { + pumpkin_plugin_text_own_text_component_t *list_ptr = ptr->ptr; + for (size_t i = 0; i < list_len; i++) { + } + free(list_ptr); + } +} + +void pumpkin_plugin_text_option_own_text_component_free(pumpkin_plugin_text_option_own_text_component_t *ptr) { + if (ptr->is_some) { + } +} + +void pumpkin_plugin_gui_item_stack_free(pumpkin_plugin_gui_item_stack_t *ptr) { + pumpkin_plugin_common_item_stack_free(ptr); +} + +__attribute__((__import_module__("pumpkin:plugin/gui"), __import_name__("[resource-drop]gui"))) +extern void __wasm_import_pumpkin_plugin_gui_gui_drop(int32_t handle); + +void pumpkin_plugin_gui_gui_drop_own(pumpkin_plugin_gui_own_gui_t handle) { + __wasm_import_pumpkin_plugin_gui_gui_drop(handle.__handle); +} + +void pumpkin_plugin_gui_gui_drop_borrow(pumpkin_plugin_gui_borrow_gui_t handle) { + __wasm_import_pumpkin_plugin_gui_gui_drop(handle.__handle); +} + +pumpkin_plugin_gui_borrow_gui_t pumpkin_plugin_gui_borrow_gui(pumpkin_plugin_gui_own_gui_t arg) { + return (pumpkin_plugin_gui_borrow_gui_t) { arg.__handle }; +} + +void pumpkin_plugin_gui_option_item_stack_free(pumpkin_plugin_gui_option_item_stack_t *ptr) { + if (ptr->is_some) { + pumpkin_plugin_gui_item_stack_free(&ptr->val); + } +} + +__attribute__((__import_module__("pumpkin:plugin/scoreboard"), __import_name__("[resource-drop]scoreboard"))) +extern void __wasm_import_pumpkin_plugin_scoreboard_scoreboard_drop(int32_t handle); + +void pumpkin_plugin_scoreboard_scoreboard_drop_own(pumpkin_plugin_scoreboard_own_scoreboard_t handle) { + __wasm_import_pumpkin_plugin_scoreboard_scoreboard_drop(handle.__handle); +} + +void pumpkin_plugin_scoreboard_scoreboard_drop_borrow(pumpkin_plugin_scoreboard_borrow_scoreboard_t handle) { + __wasm_import_pumpkin_plugin_scoreboard_scoreboard_drop(handle.__handle); +} + +pumpkin_plugin_scoreboard_borrow_scoreboard_t pumpkin_plugin_scoreboard_borrow_scoreboard(pumpkin_plugin_scoreboard_own_scoreboard_t arg) { + return (pumpkin_plugin_scoreboard_borrow_scoreboard_t) { arg.__handle }; +} + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[resource-drop]entity"))) +extern void __wasm_import_pumpkin_plugin_world_entity_drop(int32_t handle); + +void pumpkin_plugin_world_entity_drop_own(pumpkin_plugin_world_own_entity_t handle) { + __wasm_import_pumpkin_plugin_world_entity_drop(handle.__handle); +} + +void pumpkin_plugin_world_entity_drop_borrow(pumpkin_plugin_world_borrow_entity_t handle) { + __wasm_import_pumpkin_plugin_world_entity_drop(handle.__handle); +} + +pumpkin_plugin_world_borrow_entity_t pumpkin_plugin_world_borrow_entity(pumpkin_plugin_world_own_entity_t arg) { + return (pumpkin_plugin_world_borrow_entity_t) { arg.__handle }; +} + +__attribute__((__import_module__("pumpkin:plugin/world"), __import_name__("[resource-drop]world"))) +extern void __wasm_import_pumpkin_plugin_world_world_drop(int32_t handle); + +void pumpkin_plugin_world_world_drop_own(pumpkin_plugin_world_own_world_t handle) { + __wasm_import_pumpkin_plugin_world_world_drop(handle.__handle); +} + +void pumpkin_plugin_world_world_drop_borrow(pumpkin_plugin_world_borrow_world_t handle) { + __wasm_import_pumpkin_plugin_world_world_drop(handle.__handle); +} + +pumpkin_plugin_world_borrow_world_t pumpkin_plugin_world_borrow_world(pumpkin_plugin_world_own_world_t arg) { + return (pumpkin_plugin_world_borrow_world_t) { arg.__handle }; +} + +void pumpkin_plugin_world_option_own_text_component_free(pumpkin_plugin_world_option_own_text_component_t *ptr) { + if (ptr->is_some) { + } +} + +void pumpkin_plugin_world_list_own_entity_free(pumpkin_plugin_world_list_own_entity_t *ptr) { + size_t list_len = ptr->len; + if (list_len > 0) { + pumpkin_plugin_world_own_entity_t *list_ptr = ptr->ptr; + for (size_t i = 0; i < list_len; i++) { + } + free(list_ptr); + } +} + +void pumpkin_plugin_permission_permission_default_free(pumpkin_plugin_permission_permission_default_t *ptr) { + switch ((int32_t) ptr->tag) { + case 2: { + break; + } + } +} + +void pumpkin_plugin_permission_permission_child_free(pumpkin_plugin_permission_permission_child_t *ptr) { + plugin_string_free(&ptr->node); +} + +void pumpkin_plugin_permission_list_permission_child_free(pumpkin_plugin_permission_list_permission_child_t *ptr) { + size_t list_len = ptr->len; + if (list_len > 0) { + pumpkin_plugin_permission_permission_child_t *list_ptr = ptr->ptr; + for (size_t i = 0; i < list_len; i++) { + pumpkin_plugin_permission_permission_child_free(&list_ptr[i]); + } + free(list_ptr); + } +} + +void pumpkin_plugin_permission_permission_free(pumpkin_plugin_permission_permission_t *ptr) { + plugin_string_free(&ptr->node); + plugin_string_free(&ptr->description); + pumpkin_plugin_permission_permission_default_free(&ptr->default_); + pumpkin_plugin_permission_list_permission_child_free(&ptr->children); +} + +void pumpkin_plugin_player_item_stack_free(pumpkin_plugin_player_item_stack_t *ptr) { + pumpkin_plugin_common_item_stack_free(ptr); +} + +__attribute__((__import_module__("pumpkin:plugin/player"), __import_name__("[resource-drop]player"))) +extern void __wasm_import_pumpkin_plugin_player_player_drop(int32_t handle); + +void pumpkin_plugin_player_player_drop_own(pumpkin_plugin_player_own_player_t handle) { + __wasm_import_pumpkin_plugin_player_player_drop(handle.__handle); +} + +void pumpkin_plugin_player_player_drop_borrow(pumpkin_plugin_player_borrow_player_t handle) { + __wasm_import_pumpkin_plugin_player_player_drop(handle.__handle); +} + +pumpkin_plugin_player_borrow_player_t pumpkin_plugin_player_borrow_player(pumpkin_plugin_player_own_player_t arg) { + return (pumpkin_plugin_player_borrow_player_t) { arg.__handle }; +} + +void plugin_option_f32_free(plugin_option_f32_t *ptr) { + if (ptr->is_some) { + } +} + +void pumpkin_plugin_player_option_own_text_component_free(pumpkin_plugin_player_option_own_text_component_t *ptr) { + if (ptr->is_some) { + } +} + +void pumpkin_plugin_player_option_item_stack_free(pumpkin_plugin_player_option_item_stack_t *ptr) { + if (ptr->is_some) { + pumpkin_plugin_player_item_stack_free(&ptr->val); + } +} + +__attribute__((__import_module__("pumpkin:plugin/server"), __import_name__("[resource-drop]server"))) +extern void __wasm_import_pumpkin_plugin_server_server_drop(int32_t handle); + +void pumpkin_plugin_server_server_drop_own(pumpkin_plugin_server_own_server_t handle) { + __wasm_import_pumpkin_plugin_server_server_drop(handle.__handle); +} + +void pumpkin_plugin_server_server_drop_borrow(pumpkin_plugin_server_borrow_server_t handle) { + __wasm_import_pumpkin_plugin_server_server_drop(handle.__handle); +} + +pumpkin_plugin_server_borrow_server_t pumpkin_plugin_server_borrow_server(pumpkin_plugin_server_own_server_t arg) { + return (pumpkin_plugin_server_borrow_server_t) { arg.__handle }; +} + +void pumpkin_plugin_server_list_own_player_free(pumpkin_plugin_server_list_own_player_t *ptr) { + size_t list_len = ptr->len; + if (list_len > 0) { + pumpkin_plugin_server_own_player_t *list_ptr = ptr->ptr; + for (size_t i = 0; i < list_len; i++) { + } + free(list_ptr); + } +} + +void pumpkin_plugin_server_option_own_player_free(pumpkin_plugin_server_option_own_player_t *ptr) { + if (ptr->is_some) { + } +} + +__attribute__((__import_module__("pumpkin:plugin/block-entity"), __import_name__("[resource-drop]block-entity"))) +extern void __wasm_import_pumpkin_plugin_block_entity_block_entity_drop(int32_t handle); + +void pumpkin_plugin_block_entity_block_entity_drop_own(pumpkin_plugin_block_entity_own_block_entity_t handle) { + __wasm_import_pumpkin_plugin_block_entity_block_entity_drop(handle.__handle); +} + +void pumpkin_plugin_block_entity_block_entity_drop_borrow(pumpkin_plugin_block_entity_borrow_block_entity_t handle) { + __wasm_import_pumpkin_plugin_block_entity_block_entity_drop(handle.__handle); +} + +pumpkin_plugin_block_entity_borrow_block_entity_t pumpkin_plugin_block_entity_borrow_block_entity(pumpkin_plugin_block_entity_own_block_entity_t arg) { + return (pumpkin_plugin_block_entity_borrow_block_entity_t) { arg.__handle }; +} + +__attribute__((__import_module__("pumpkin:plugin/block-entity"), __import_name__("[resource-drop]command-block-entity"))) +extern void __wasm_import_pumpkin_plugin_block_entity_command_block_entity_drop(int32_t handle); + +void pumpkin_plugin_block_entity_command_block_entity_drop_own(pumpkin_plugin_block_entity_own_command_block_entity_t handle) { + __wasm_import_pumpkin_plugin_block_entity_command_block_entity_drop(handle.__handle); +} + +void pumpkin_plugin_block_entity_command_block_entity_drop_borrow(pumpkin_plugin_block_entity_borrow_command_block_entity_t handle) { + __wasm_import_pumpkin_plugin_block_entity_command_block_entity_drop(handle.__handle); +} + +pumpkin_plugin_block_entity_borrow_command_block_entity_t pumpkin_plugin_block_entity_borrow_command_block_entity(pumpkin_plugin_block_entity_own_command_block_entity_t arg) { + return (pumpkin_plugin_block_entity_borrow_command_block_entity_t) { arg.__handle }; +} + +void pumpkin_plugin_block_entity_block_entity_type_free(pumpkin_plugin_block_entity_block_entity_type_t *ptr) { + switch ((int32_t) ptr->tag) { + case 0: { + break; + } + } +} + +void pumpkin_plugin_command_number_free(pumpkin_plugin_command_number_t *ptr) { + switch ((int32_t) ptr->tag) { + case 0: { + break; + } + case 1: { + break; + } + case 2: { + break; + } + case 3: { + break; + } + } +} + +void pumpkin_plugin_command_tuple2_number_number_free(pumpkin_plugin_command_tuple2_number_number_t *ptr) { + pumpkin_plugin_command_number_free(&ptr->f0); + pumpkin_plugin_command_number_free(&ptr->f1); +} + +void pumpkin_plugin_command_not_in_bounds_free(pumpkin_plugin_command_not_in_bounds_t *ptr) { + switch ((int32_t) ptr->tag) { + case 0: { + pumpkin_plugin_command_tuple2_number_number_free(&ptr->val.lower_bound); + break; + } + case 1: { + pumpkin_plugin_command_tuple2_number_number_free(&ptr->val.upper_bound); + break; + } + } +} + +void pumpkin_plugin_command_list_own_entity_free(pumpkin_plugin_command_list_own_entity_t *ptr) { + size_t list_len = ptr->len; + if (list_len > 0) { + pumpkin_plugin_command_own_entity_t *list_ptr = ptr->ptr; + for (size_t i = 0; i < list_len; i++) { + } + free(list_ptr); + } +} + +void pumpkin_plugin_command_list_own_player_free(pumpkin_plugin_command_list_own_player_t *ptr) { + size_t list_len = ptr->len; + if (list_len > 0) { + pumpkin_plugin_command_own_player_t *list_ptr = ptr->ptr; + for (size_t i = 0; i < list_len; i++) { + } + free(list_ptr); + } +} + +void pumpkin_plugin_command_result_number_not_in_bounds_free(pumpkin_plugin_command_result_number_not_in_bounds_t *ptr) { + if (!ptr->is_err) { + pumpkin_plugin_command_number_free(&ptr->val.ok); + } else { + pumpkin_plugin_command_not_in_bounds_free(&ptr->val.err); + } +} + +void pumpkin_plugin_command_arg_free(pumpkin_plugin_command_arg_t *ptr) { + switch ((int32_t) ptr->tag) { + case 0: { + pumpkin_plugin_command_list_own_entity_free(&ptr->val.entities); + break; + } + case 1: { + break; + } + case 2: { + pumpkin_plugin_command_list_own_player_free(&ptr->val.players); + break; + } + case 3: { + break; + } + case 4: { + break; + } + case 5: { + break; + } + case 6: { + break; + } + case 7: { + break; + } + case 8: { + break; + } + case 9: { + plugin_string_free(&ptr->val.item); + break; + } + case 10: { + plugin_string_free(&ptr->val.item_predicate); + break; + } + case 11: { + plugin_string_free(&ptr->val.resource_location); + break; + } + case 12: { + plugin_string_free(&ptr->val.block); + break; + } + case 13: { + plugin_string_free(&ptr->val.block_predicate); + break; + } + case 14: { + break; + } + case 15: { + break; + } + case 16: { + plugin_string_free(&ptr->val.particle); + break; + } + case 17: { + plugin_string_free(&ptr->val.msg); + break; + } + case 18: { + break; + } + case 19: { + break; + } + case 20: { + pumpkin_plugin_command_result_number_not_in_bounds_free(&ptr->val.num); + break; + } + case 21: { + break; + } + case 22: { + plugin_string_free(&ptr->val.simple); + break; + } + case 23: { + break; + } + case 24: { + plugin_string_free(&ptr->val.damage_type); + break; + } + case 25: { + plugin_string_free(&ptr->val.effect); + break; + } + case 26: { + plugin_string_free(&ptr->val.enchantment); + break; + } + case 27: { + break; + } + } +} + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[resource-drop]consumed-args"))) +extern void __wasm_import_pumpkin_plugin_command_consumed_args_drop(int32_t handle); + +void pumpkin_plugin_command_consumed_args_drop_own(pumpkin_plugin_command_own_consumed_args_t handle) { + __wasm_import_pumpkin_plugin_command_consumed_args_drop(handle.__handle); +} + +void pumpkin_plugin_command_consumed_args_drop_borrow(pumpkin_plugin_command_borrow_consumed_args_t handle) { + __wasm_import_pumpkin_plugin_command_consumed_args_drop(handle.__handle); +} + +pumpkin_plugin_command_borrow_consumed_args_t pumpkin_plugin_command_borrow_consumed_args(pumpkin_plugin_command_own_consumed_args_t arg) { + return (pumpkin_plugin_command_borrow_consumed_args_t) { arg.__handle }; +} + +void pumpkin_plugin_command_command_sender_type_free(pumpkin_plugin_command_command_sender_type_t *ptr) { + switch ((int32_t) ptr->tag) { + case 2: { + break; + } + case 3: { + break; + } + } +} + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[resource-drop]command-sender"))) +extern void __wasm_import_pumpkin_plugin_command_command_sender_drop(int32_t handle); + +void pumpkin_plugin_command_command_sender_drop_own(pumpkin_plugin_command_own_command_sender_t handle) { + __wasm_import_pumpkin_plugin_command_command_sender_drop(handle.__handle); +} + +void pumpkin_plugin_command_command_sender_drop_borrow(pumpkin_plugin_command_borrow_command_sender_t handle) { + __wasm_import_pumpkin_plugin_command_command_sender_drop(handle.__handle); +} + +pumpkin_plugin_command_borrow_command_sender_t pumpkin_plugin_command_borrow_command_sender(pumpkin_plugin_command_own_command_sender_t arg) { + return (pumpkin_plugin_command_borrow_command_sender_t) { arg.__handle }; +} + +void plugin_tuple2_option_f32_option_f32_free(plugin_tuple2_option_f32_option_f32_t *ptr) { + plugin_option_f32_free(&ptr->f0); + plugin_option_f32_free(&ptr->f1); +} + +void plugin_option_f64_free(plugin_option_f64_t *ptr) { + if (ptr->is_some) { + } +} + +void plugin_tuple2_option_f64_option_f64_free(plugin_tuple2_option_f64_option_f64_t *ptr) { + plugin_option_f64_free(&ptr->f0); + plugin_option_f64_free(&ptr->f1); +} + +void plugin_option_s32_free(plugin_option_s32_t *ptr) { + if (ptr->is_some) { + } +} + +void plugin_tuple2_option_s32_option_s32_free(plugin_tuple2_option_s32_option_s32_t *ptr) { + plugin_option_s32_free(&ptr->f0); + plugin_option_s32_free(&ptr->f1); +} + +void plugin_option_s64_free(plugin_option_s64_t *ptr) { + if (ptr->is_some) { + } +} + +void plugin_tuple2_option_s64_option_s64_free(plugin_tuple2_option_s64_option_s64_t *ptr) { + plugin_option_s64_free(&ptr->f0); + plugin_option_s64_free(&ptr->f1); +} + +void pumpkin_plugin_command_argument_type_free(pumpkin_plugin_command_argument_type_t *ptr) { + switch ((int32_t) ptr->tag) { + case 1: { + plugin_tuple2_option_f32_option_f32_free(&ptr->val.float_); + break; + } + case 2: { + plugin_tuple2_option_f64_option_f64_free(&ptr->val.double_); + break; + } + case 3: { + plugin_tuple2_option_s32_option_s32_free(&ptr->val.integer); + break; + } + case 4: { + plugin_tuple2_option_s64_option_s64_free(&ptr->val.long_); + break; + } + case 5: { + break; + } + case 23: { + break; + } + case 24: { + plugin_string_free(&ptr->val.resource); + break; + } + } +} + +void plugin_option_string_free(plugin_option_string_t *ptr) { + if (ptr->is_some) { + plugin_string_free(&ptr->val); + } +} + +void pumpkin_plugin_command_command_error_free(pumpkin_plugin_command_command_error_t *ptr) { + switch ((int32_t) ptr->tag) { + case 0: { + plugin_option_string_free(&ptr->val.invalid_consumption); + break; + } + case 3: { + break; + } + } +} + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[resource-drop]command-node"))) +extern void __wasm_import_pumpkin_plugin_command_command_node_drop(int32_t handle); + +void pumpkin_plugin_command_command_node_drop_own(pumpkin_plugin_command_own_command_node_t handle) { + __wasm_import_pumpkin_plugin_command_command_node_drop(handle.__handle); +} + +void pumpkin_plugin_command_command_node_drop_borrow(pumpkin_plugin_command_borrow_command_node_t handle) { + __wasm_import_pumpkin_plugin_command_command_node_drop(handle.__handle); +} + +pumpkin_plugin_command_borrow_command_node_t pumpkin_plugin_command_borrow_command_node(pumpkin_plugin_command_own_command_node_t arg) { + return (pumpkin_plugin_command_borrow_command_node_t) { arg.__handle }; +} + +__attribute__((__import_module__("pumpkin:plugin/command"), __import_name__("[resource-drop]command"))) +extern void __wasm_import_pumpkin_plugin_command_command_drop(int32_t handle); + +void pumpkin_plugin_command_command_drop_own(pumpkin_plugin_command_own_command_t handle) { + __wasm_import_pumpkin_plugin_command_command_drop(handle.__handle); +} + +void pumpkin_plugin_command_command_drop_borrow(pumpkin_plugin_command_borrow_command_t handle) { + __wasm_import_pumpkin_plugin_command_command_drop(handle.__handle); +} + +pumpkin_plugin_command_borrow_command_t pumpkin_plugin_command_borrow_command(pumpkin_plugin_command_own_command_t arg) { + return (pumpkin_plugin_command_borrow_command_t) { arg.__handle }; +} + +void pumpkin_plugin_command_option_own_player_free(pumpkin_plugin_command_option_own_player_t *ptr) { + if (ptr->is_some) { + } +} + +void plugin_option_position_free(plugin_option_position_t *ptr) { + if (ptr->is_some) { + } +} + +void pumpkin_plugin_command_option_own_world_free(pumpkin_plugin_command_option_own_world_t *ptr) { + if (ptr->is_some) { + } +} + +void plugin_list_string_free(plugin_list_string_t *ptr) { + size_t list_len = ptr->len; + if (list_len > 0) { + plugin_string_t *list_ptr = ptr->ptr; + for (size_t i = 0; i < list_len; i++) { + plugin_string_free(&list_ptr[i]); + } + free(list_ptr); + } +} + +void pumpkin_plugin_event_item_stack_free(pumpkin_plugin_event_item_stack_t *ptr) { + pumpkin_plugin_common_item_stack_free(ptr); +} + +void pumpkin_plugin_event_list_own_player_free(pumpkin_plugin_event_list_own_player_t *ptr) { + size_t list_len = ptr->len; + if (list_len > 0) { + pumpkin_plugin_event_own_player_t *list_ptr = ptr->ptr; + for (size_t i = 0; i < list_len; i++) { + } + free(list_ptr); + } +} + +void pumpkin_plugin_event_player_chat_event_data_free(pumpkin_plugin_event_player_chat_event_data_t *ptr) { + plugin_string_free(&ptr->message); + pumpkin_plugin_event_list_own_player_free(&ptr->recipients); +} + +void pumpkin_plugin_event_player_command_send_event_data_free(pumpkin_plugin_event_player_command_send_event_data_t *ptr) { + plugin_string_free(&ptr->command); +} + +void pumpkin_plugin_event_player_permission_check_event_data_free(pumpkin_plugin_event_player_permission_check_event_data_t *ptr) { + plugin_string_free(&ptr->permission); +} + +void pumpkin_plugin_event_player_custom_payload_event_data_free(pumpkin_plugin_event_player_custom_payload_event_data_t *ptr) { + plugin_string_free(&ptr->channel); + plugin_list_u8_free(&ptr->data); +} + +void pumpkin_plugin_event_player_fish_event_data_free(pumpkin_plugin_event_player_fish_event_data_t *ptr) { + plugin_option_string_free(&ptr->caught_uuid); + plugin_string_free(&ptr->caught_type); + plugin_string_free(&ptr->hook_uuid); +} + +void pumpkin_plugin_event_player_egg_throw_event_data_free(pumpkin_plugin_event_player_egg_throw_event_data_t *ptr) { + plugin_string_free(&ptr->egg_uuid); + plugin_string_free(&ptr->hatching_type); +} + +void plugin_option_block_position_free(plugin_option_block_position_t *ptr) { + if (ptr->is_some) { + } +} + +void pumpkin_plugin_event_player_interact_event_data_free(pumpkin_plugin_event_player_interact_event_data_t *ptr) { + plugin_option_block_position_free(&ptr->clicked_pos); + pumpkin_plugin_event_item_stack_free(&ptr->item); + plugin_string_free(&ptr->block); +} + +void pumpkin_plugin_event_option_own_player_free(pumpkin_plugin_event_option_own_player_t *ptr) { + if (ptr->is_some) { + } +} + +void pumpkin_plugin_event_block_break_event_data_free(pumpkin_plugin_event_block_break_event_data_t *ptr) { + pumpkin_plugin_event_option_own_player_free(&ptr->player); + plugin_string_free(&ptr->block); +} + +void pumpkin_plugin_event_block_burn_event_data_free(pumpkin_plugin_event_block_burn_event_data_t *ptr) { + plugin_string_free(&ptr->igniting_block); + plugin_string_free(&ptr->block); +} + +void pumpkin_plugin_event_block_can_build_event_data_free(pumpkin_plugin_event_block_can_build_event_data_t *ptr) { + plugin_string_free(&ptr->block_to_build); + plugin_string_free(&ptr->block); +} + +void pumpkin_plugin_event_block_grow_event_data_free(pumpkin_plugin_event_block_grow_event_data_t *ptr) { + plugin_string_free(&ptr->old_block); + plugin_string_free(&ptr->new_block); +} + +void pumpkin_plugin_event_block_place_event_data_free(pumpkin_plugin_event_block_place_event_data_t *ptr) { + plugin_string_free(&ptr->block_placed); + plugin_string_free(&ptr->block_placed_against); +} + +void pumpkin_plugin_event_server_command_event_data_free(pumpkin_plugin_event_server_command_event_data_t *ptr) { + plugin_string_free(&ptr->command); +} + +void pumpkin_plugin_event_event_free(pumpkin_plugin_event_event_t *ptr) { + switch ((int32_t) ptr->tag) { + case 0: { + break; + } + case 1: { + break; + } + case 2: { + break; + } + case 3: { + pumpkin_plugin_event_player_chat_event_data_free(&ptr->val.player_chat_event); + break; + } + case 4: { + pumpkin_plugin_event_player_command_send_event_data_free(&ptr->val.player_command_send_event); + break; + } + case 5: { + pumpkin_plugin_event_player_permission_check_event_data_free(&ptr->val.player_permission_check_event); + break; + } + case 6: { + break; + } + case 7: { + break; + } + case 8: { + break; + } + case 9: { + break; + } + case 10: { + break; + } + case 11: { + break; + } + case 12: { + break; + } + case 13: { + pumpkin_plugin_event_player_custom_payload_event_data_free(&ptr->val.player_custom_payload_event); + break; + } + case 14: { + pumpkin_plugin_event_player_fish_event_data_free(&ptr->val.player_fish_event); + break; + } + case 15: { + pumpkin_plugin_event_player_egg_throw_event_data_free(&ptr->val.player_egg_throw_event); + break; + } + case 16: { + break; + } + case 17: { + pumpkin_plugin_event_player_interact_event_data_free(&ptr->val.player_interact_event); + break; + } + case 18: { + break; + } + case 19: { + break; + } + case 20: { + break; + } + case 21: { + break; + } + case 22: { + pumpkin_plugin_event_block_break_event_data_free(&ptr->val.block_break_event); + break; + } + case 23: { + pumpkin_plugin_event_block_burn_event_data_free(&ptr->val.block_burn_event); + break; + } + case 24: { + pumpkin_plugin_event_block_can_build_event_data_free(&ptr->val.block_can_build_event); + break; + } + case 25: { + pumpkin_plugin_event_block_grow_event_data_free(&ptr->val.block_grow_event); + break; + } + case 26: { + pumpkin_plugin_event_block_place_event_data_free(&ptr->val.block_place_event); + break; + } + case 27: { + pumpkin_plugin_event_server_command_event_data_free(&ptr->val.server_command_event); + break; + } + case 28: { + break; + } + case 29: { + break; + } + } +} + +void pumpkin_plugin_context_permission_free(pumpkin_plugin_context_permission_t *ptr) { + pumpkin_plugin_permission_permission_free(ptr); +} + +__attribute__((__import_module__("pumpkin:plugin/context"), __import_name__("[resource-drop]context"))) +extern void __wasm_import_pumpkin_plugin_context_context_drop(int32_t handle); + +void pumpkin_plugin_context_context_drop_own(pumpkin_plugin_context_own_context_t handle) { + __wasm_import_pumpkin_plugin_context_context_drop(handle.__handle); +} + +void pumpkin_plugin_context_context_drop_borrow(pumpkin_plugin_context_borrow_context_t handle) { + __wasm_import_pumpkin_plugin_context_context_drop(handle.__handle); +} + +pumpkin_plugin_context_borrow_context_t pumpkin_plugin_context_borrow_context(pumpkin_plugin_context_own_context_t arg) { + return (pumpkin_plugin_context_borrow_context_t) { arg.__handle }; +} + +void pumpkin_plugin_context_result_void_string_free(pumpkin_plugin_context_result_void_string_t *ptr) { + if (!ptr->is_err) { + } else { + plugin_string_free(&ptr->val.err); + } +} + +void plugin_event_free(plugin_event_t *ptr) { + pumpkin_plugin_event_event_free(ptr); +} + +void plugin_command_error_free(plugin_command_error_t *ptr) { + pumpkin_plugin_command_command_error_free(ptr); +} + +void plugin_result_s32_command_error_free(plugin_result_s32_command_error_t *ptr) { + if (!ptr->is_err) { + } else { + plugin_command_error_free(&ptr->val.err); + } +} + +void exports_pumpkin_plugin_metadata_plugin_metadata_free(exports_pumpkin_plugin_metadata_plugin_metadata_t *ptr) { + plugin_string_free(&ptr->name); + plugin_string_free(&ptr->version); + plugin_string_free(&ptr->description); +} + +void exports_pumpkin_plugin_common_raw_text_component_free(exports_pumpkin_plugin_common_raw_text_component_t *ptr) { + size_t list_len = ptr->len; + if (list_len > 0) { + uint8_t *list_ptr = ptr->ptr; + for (size_t i = 0; i < list_len; i++) { + } + free(list_ptr); + } +} + +void exports_pumpkin_plugin_common_item_stack_free(exports_pumpkin_plugin_common_item_stack_t *ptr) { + plugin_string_free(&ptr->registry_key); +} + +void plugin_string_set(plugin_string_t *ret, const char*s) { + ret->ptr = (uint8_t*) s; + ret->len = strlen(s); +} + +void plugin_string_dup(plugin_string_t *ret, const char*s) { + ret->len = strlen(s); + ret->ptr = (uint8_t*) cabi_realloc(NULL, 0, 1, ret->len * 1); + memcpy(ret->ptr, s, ret->len * 1); +} + +void plugin_string_dup_n(plugin_string_t *ret, const char*s, size_t len) { + ret->len = len; + ret->ptr = (uint8_t*) cabi_realloc(NULL, 0, 1, ret->len * 1); + memcpy(ret->ptr, s, ret->len * 1); +} + +void plugin_string_free(plugin_string_t *ret) { + if (ret->len > 0) { + free(ret->ptr); + } + ret->ptr = NULL; + ret->len = 0; +} + +// Component Adapters + +void pumpkin_plugin_logging_log(pumpkin_plugin_logging_level_t level, plugin_string_t *message) { + __wasm_import_pumpkin_plugin_logging_log((int32_t) level, (uint8_t *) (*message).ptr, (*message).len); +} + +void pumpkin_plugin_logging_log_tracing(plugin_list_u8_t *event) { + __wasm_import_pumpkin_plugin_logging_log_tracing((uint8_t *) (*event).ptr, (*event).len); +} + +pumpkin_plugin_text_own_text_component_t pumpkin_plugin_text_static_text_component_text(plugin_string_t *plain) { + int32_t ret = __wasm_import_pumpkin_plugin_text_static_text_component_text((uint8_t *) (*plain).ptr, (*plain).len); + return (pumpkin_plugin_text_own_text_component_t) { ret }; +} + +pumpkin_plugin_text_own_text_component_t pumpkin_plugin_text_static_text_component_translate(plugin_string_t *key, pumpkin_plugin_text_list_own_text_component_t *with) { + int32_t ret = __wasm_import_pumpkin_plugin_text_static_text_component_translate((uint8_t *) (*key).ptr, (*key).len, (uint8_t *) (*with).ptr, (*with).len); + return (pumpkin_plugin_text_own_text_component_t) { ret }; +} + +void pumpkin_plugin_text_method_text_component_add_child(pumpkin_plugin_text_borrow_text_component_t self, pumpkin_plugin_text_own_text_component_t child) { + __wasm_import_pumpkin_plugin_text_method_text_component_add_child((self).__handle, (child).__handle); +} + +void pumpkin_plugin_text_method_text_component_add_text(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *text) { + __wasm_import_pumpkin_plugin_text_method_text_component_add_text((self).__handle, (uint8_t *) (*text).ptr, (*text).len); +} + +void pumpkin_plugin_text_method_text_component_get_text(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(2*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_text_method_text_component_get_text((self).__handle, ptr); + *ret = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 0))), (*((size_t*) (ptr + sizeof(void*)))) }; +} + +void pumpkin_plugin_text_method_text_component_encode(pumpkin_plugin_text_borrow_text_component_t self, plugin_list_u8_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(2*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_text_method_text_component_encode((self).__handle, ptr); + *ret = (plugin_list_u8_t) { (uint8_t*)(*((uint8_t **) (ptr + 0))), (*((size_t*) (ptr + sizeof(void*)))) }; +} + +void pumpkin_plugin_text_method_text_component_color_named(pumpkin_plugin_text_borrow_text_component_t self, pumpkin_plugin_text_named_color_t color) { + __wasm_import_pumpkin_plugin_text_method_text_component_color_named((self).__handle, (int32_t) color); +} + +void pumpkin_plugin_text_method_text_component_color_rgb(pumpkin_plugin_text_borrow_text_component_t self, pumpkin_plugin_text_rgb_color_t *color) { + __wasm_import_pumpkin_plugin_text_method_text_component_color_rgb((self).__handle, (int32_t) ((*color).r), (int32_t) ((*color).g), (int32_t) ((*color).b)); +} + +void pumpkin_plugin_text_method_text_component_bold(pumpkin_plugin_text_borrow_text_component_t self, bool value) { + __wasm_import_pumpkin_plugin_text_method_text_component_bold((self).__handle, value); +} + +void pumpkin_plugin_text_method_text_component_italic(pumpkin_plugin_text_borrow_text_component_t self, bool value) { + __wasm_import_pumpkin_plugin_text_method_text_component_italic((self).__handle, value); +} + +void pumpkin_plugin_text_method_text_component_underlined(pumpkin_plugin_text_borrow_text_component_t self, bool value) { + __wasm_import_pumpkin_plugin_text_method_text_component_underlined((self).__handle, value); +} + +void pumpkin_plugin_text_method_text_component_strikethrough(pumpkin_plugin_text_borrow_text_component_t self, bool value) { + __wasm_import_pumpkin_plugin_text_method_text_component_strikethrough((self).__handle, value); +} + +void pumpkin_plugin_text_method_text_component_obfuscated(pumpkin_plugin_text_borrow_text_component_t self, bool value) { + __wasm_import_pumpkin_plugin_text_method_text_component_obfuscated((self).__handle, value); +} + +void pumpkin_plugin_text_method_text_component_insertion(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *text) { + __wasm_import_pumpkin_plugin_text_method_text_component_insertion((self).__handle, (uint8_t *) (*text).ptr, (*text).len); +} + +void pumpkin_plugin_text_method_text_component_font(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *font) { + __wasm_import_pumpkin_plugin_text_method_text_component_font((self).__handle, (uint8_t *) (*font).ptr, (*font).len); +} + +void pumpkin_plugin_text_method_text_component_shadow_color(pumpkin_plugin_text_borrow_text_component_t self, pumpkin_plugin_text_argb_color_t *color) { + __wasm_import_pumpkin_plugin_text_method_text_component_shadow_color((self).__handle, (int32_t) ((*color).a), (int32_t) ((*color).r), (int32_t) ((*color).g), (int32_t) ((*color).b)); +} + +void pumpkin_plugin_text_method_text_component_click_open_url(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *url) { + __wasm_import_pumpkin_plugin_text_method_text_component_click_open_url((self).__handle, (uint8_t *) (*url).ptr, (*url).len); +} + +void pumpkin_plugin_text_method_text_component_click_run_command(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *command) { + __wasm_import_pumpkin_plugin_text_method_text_component_click_run_command((self).__handle, (uint8_t *) (*command).ptr, (*command).len); +} + +void pumpkin_plugin_text_method_text_component_click_suggest_command(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *command) { + __wasm_import_pumpkin_plugin_text_method_text_component_click_suggest_command((self).__handle, (uint8_t *) (*command).ptr, (*command).len); +} + +void pumpkin_plugin_text_method_text_component_click_copy_to_clipboard(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *text) { + __wasm_import_pumpkin_plugin_text_method_text_component_click_copy_to_clipboard((self).__handle, (uint8_t *) (*text).ptr, (*text).len); +} + +void pumpkin_plugin_text_method_text_component_hover_show_text(pumpkin_plugin_text_borrow_text_component_t self, pumpkin_plugin_text_own_text_component_t text) { + __wasm_import_pumpkin_plugin_text_method_text_component_hover_show_text((self).__handle, (text).__handle); +} + +void pumpkin_plugin_text_method_text_component_hover_show_item(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *item) { + __wasm_import_pumpkin_plugin_text_method_text_component_hover_show_item((self).__handle, (uint8_t *) (*item).ptr, (*item).len); +} + +void pumpkin_plugin_text_method_text_component_hover_show_entity(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *entity_type, plugin_string_t *id, pumpkin_plugin_text_own_text_component_t *maybe_name) { + pumpkin_plugin_text_option_own_text_component_t name; + name.is_some = maybe_name != NULL;if (maybe_name) { + name.val = *maybe_name; + } + int32_t option; + int32_t option1; + if ((name).is_some) { + const pumpkin_plugin_text_own_text_component_t *payload0 = &(name).val; + option = 1; + option1 = (*payload0).__handle; + } else { + option = 0; + option1 = 0; + } + __wasm_import_pumpkin_plugin_text_method_text_component_hover_show_entity((self).__handle, (uint8_t *) (*entity_type).ptr, (*entity_type).len, (uint8_t *) (*id).ptr, (*id).len, option, option1); +} + +pumpkin_plugin_gui_own_gui_t pumpkin_plugin_gui_constructor_gui(pumpkin_plugin_gui_gui_type_t type, pumpkin_plugin_gui_own_text_component_t title) { + int32_t ret = __wasm_import_pumpkin_plugin_gui_constructor_gui((int32_t) type, (title).__handle); + return (pumpkin_plugin_gui_own_gui_t) { ret }; +} + +void pumpkin_plugin_gui_method_gui_set_item(pumpkin_plugin_gui_borrow_gui_t self, uint32_t slot, pumpkin_plugin_gui_item_stack_t *item) { + __wasm_import_pumpkin_plugin_gui_method_gui_set_item((self).__handle, (int32_t) (slot), (uint8_t *) ((*item).registry_key).ptr, ((*item).registry_key).len, (int32_t) ((*item).count)); +} + +bool pumpkin_plugin_gui_method_gui_get_item(pumpkin_plugin_gui_borrow_gui_t self, uint32_t slot, pumpkin_plugin_gui_item_stack_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(4*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_gui_method_gui_get_item((self).__handle, (int32_t) (slot), ptr); + pumpkin_plugin_gui_option_item_stack_t option; + switch ((int32_t) *((uint8_t*) (ptr + 0))) { + case 0: { + option.is_some = false; + break; + } + case 1: { + option.is_some = true; + option.val = (pumpkin_plugin_common_item_stack_t) { + (plugin_string_t) (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + sizeof(void*)))), (*((size_t*) (ptr + (2*sizeof(void*))))) }, + (uint8_t) (uint8_t) ((int32_t) *((uint8_t*) (ptr + (3*sizeof(void*))))), + }; + break; + } + } + *ret = option.val; + return option.is_some; +} + +void pumpkin_plugin_scoreboard_method_scoreboard_add_objective(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, plugin_string_t *name, pumpkin_plugin_scoreboard_own_text_component_t display_name, pumpkin_plugin_scoreboard_render_type_t render_type) { + __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_add_objective((self).__handle, (uint8_t *) (*name).ptr, (*name).len, (display_name).__handle, (int32_t) render_type); +} + +void pumpkin_plugin_scoreboard_method_scoreboard_remove_objective(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, plugin_string_t *name) { + __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_remove_objective((self).__handle, (uint8_t *) (*name).ptr, (*name).len); +} + +void pumpkin_plugin_scoreboard_method_scoreboard_set_display_slot(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, pumpkin_plugin_scoreboard_display_slot_t slot, plugin_string_t *objective_name) { + __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_set_display_slot((self).__handle, (int32_t) slot, (uint8_t *) (*objective_name).ptr, (*objective_name).len); +} + +void pumpkin_plugin_scoreboard_method_scoreboard_update_score(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, plugin_string_t *entity_name, plugin_string_t *objective_name, int32_t value) { + __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_update_score((self).__handle, (uint8_t *) (*entity_name).ptr, (*entity_name).len, (uint8_t *) (*objective_name).ptr, (*objective_name).len, value); +} + +void pumpkin_plugin_scoreboard_method_scoreboard_remove_score(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, plugin_string_t *entity_name, plugin_string_t *objective_name) { + __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_remove_score((self).__handle, (uint8_t *) (*entity_name).ptr, (*entity_name).len, (uint8_t *) (*objective_name).ptr, (*objective_name).len); +} + +void pumpkin_plugin_scoreboard_method_scoreboard_create_team(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, plugin_string_t *name, pumpkin_plugin_scoreboard_team_settings_t *settings) { + __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_create_team((self).__handle, (uint8_t *) (*name).ptr, (*name).len, ((*settings).display_name).__handle, (*settings).friendly_fire, (*settings).see_friendly_invisibles, (int32_t) (*settings).nametag_visibility, (int32_t) (*settings).collision_rule, (int32_t) (*settings).color, ((*settings).prefix).__handle, ((*settings).suffix).__handle); +} + +void pumpkin_plugin_scoreboard_method_scoreboard_remove_team(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, plugin_string_t *name) { + __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_remove_team((self).__handle, (uint8_t *) (*name).ptr, (*name).len); +} + +void pumpkin_plugin_scoreboard_method_scoreboard_update_team(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, plugin_string_t *name, pumpkin_plugin_scoreboard_team_settings_t *settings) { + __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_update_team((self).__handle, (uint8_t *) (*name).ptr, (*name).len, ((*settings).display_name).__handle, (*settings).friendly_fire, (*settings).see_friendly_invisibles, (int32_t) (*settings).nametag_visibility, (int32_t) (*settings).collision_rule, (int32_t) (*settings).color, ((*settings).prefix).__handle, ((*settings).suffix).__handle); +} + +void pumpkin_plugin_scoreboard_method_scoreboard_add_player_to_team(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, plugin_string_t *team_name, plugin_string_t *player_name) { + __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_add_player_to_team((self).__handle, (uint8_t *) (*team_name).ptr, (*team_name).len, (uint8_t *) (*player_name).ptr, (*player_name).len); +} + +void pumpkin_plugin_scoreboard_method_scoreboard_remove_player_from_team(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, plugin_string_t *team_name, plugin_string_t *player_name) { + __wasm_import_pumpkin_plugin_scoreboard_method_scoreboard_remove_player_from_team((self).__handle, (uint8_t *) (*team_name).ptr, (*team_name).len, (uint8_t *) (*player_name).ptr, (*player_name).len); +} + +uint32_t pumpkin_plugin_world_method_entity_get_id(pumpkin_plugin_world_borrow_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_entity_get_id((self).__handle); + return (uint32_t) (ret); +} + +void pumpkin_plugin_world_method_entity_get_uuid(pumpkin_plugin_world_borrow_entity_t self, plugin_string_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(2*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_world_method_entity_get_uuid((self).__handle, ptr); + *ret = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 0))), (*((size_t*) (ptr + sizeof(void*)))) }; +} + +void pumpkin_plugin_world_method_entity_get_type(pumpkin_plugin_world_borrow_entity_t self, plugin_string_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(2*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_world_method_entity_get_type((self).__handle, ptr); + *ret = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 0))), (*((size_t*) (ptr + sizeof(void*)))) }; +} + +void pumpkin_plugin_world_method_entity_get_position(pumpkin_plugin_world_borrow_entity_t self, pumpkin_plugin_world_position_t *ret) { + __attribute__((__aligned__(8))) + uint8_t ret_area[24]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_world_method_entity_get_position((self).__handle, ptr); + *ret = (pumpkin_plugin_common_position_t) { + (double) *((double*) (ptr + 0)), + (double) *((double*) (ptr + 8)), + (double) *((double*) (ptr + 16)), + }; +} + +pumpkin_plugin_world_own_world_t pumpkin_plugin_world_method_entity_get_world(pumpkin_plugin_world_borrow_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_entity_get_world((self).__handle); + return (pumpkin_plugin_world_own_world_t) { ret }; +} + +float pumpkin_plugin_world_method_entity_get_yaw(pumpkin_plugin_world_borrow_entity_t self) { + float ret = __wasm_import_pumpkin_plugin_world_method_entity_get_yaw((self).__handle); + return ret; +} + +float pumpkin_plugin_world_method_entity_get_pitch(pumpkin_plugin_world_borrow_entity_t self) { + float ret = __wasm_import_pumpkin_plugin_world_method_entity_get_pitch((self).__handle); + return ret; +} + +float pumpkin_plugin_world_method_entity_get_head_yaw(pumpkin_plugin_world_borrow_entity_t self) { + float ret = __wasm_import_pumpkin_plugin_world_method_entity_get_head_yaw((self).__handle); + return ret; +} + +bool pumpkin_plugin_world_method_entity_is_on_ground(pumpkin_plugin_world_borrow_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_entity_is_on_ground((self).__handle); + return ret; +} + +bool pumpkin_plugin_world_method_entity_is_sneaking(pumpkin_plugin_world_borrow_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_entity_is_sneaking((self).__handle); + return ret; +} + +bool pumpkin_plugin_world_method_entity_is_sprinting(pumpkin_plugin_world_borrow_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_entity_is_sprinting((self).__handle); + return ret; +} + +bool pumpkin_plugin_world_method_entity_is_invisible(pumpkin_plugin_world_borrow_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_entity_is_invisible((self).__handle); + return ret; +} + +bool pumpkin_plugin_world_method_entity_is_glowing(pumpkin_plugin_world_borrow_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_entity_is_glowing((self).__handle); + return ret; +} + +void pumpkin_plugin_world_method_entity_teleport(pumpkin_plugin_world_borrow_entity_t self, pumpkin_plugin_world_position_t *pos, pumpkin_plugin_world_own_world_t world_ref) { + __wasm_import_pumpkin_plugin_world_method_entity_teleport((self).__handle, (*pos).f0, (*pos).f1, (*pos).f2, (world_ref).__handle); +} + +void pumpkin_plugin_world_method_entity_set_velocity(pumpkin_plugin_world_borrow_entity_t self, pumpkin_plugin_world_position_t *velocity) { + __wasm_import_pumpkin_plugin_world_method_entity_set_velocity((self).__handle, (*velocity).f0, (*velocity).f1, (*velocity).f2); +} + +void pumpkin_plugin_world_method_entity_get_velocity(pumpkin_plugin_world_borrow_entity_t self, pumpkin_plugin_world_position_t *ret) { + __attribute__((__aligned__(8))) + uint8_t ret_area[24]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_world_method_entity_get_velocity((self).__handle, ptr); + *ret = (pumpkin_plugin_common_position_t) { + (double) *((double*) (ptr + 0)), + (double) *((double*) (ptr + 8)), + (double) *((double*) (ptr + 16)), + }; +} + +pumpkin_plugin_world_entity_pose_t pumpkin_plugin_world_method_entity_get_pose(pumpkin_plugin_world_borrow_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_entity_get_pose((self).__handle); + return ret; +} + +pumpkin_plugin_world_own_text_component_t pumpkin_plugin_world_method_entity_get_name(pumpkin_plugin_world_borrow_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_entity_get_name((self).__handle); + return (pumpkin_plugin_world_own_text_component_t) { ret }; +} + +void pumpkin_plugin_world_method_entity_set_custom_name(pumpkin_plugin_world_borrow_entity_t self, pumpkin_plugin_world_own_text_component_t name) { + __wasm_import_pumpkin_plugin_world_method_entity_set_custom_name((self).__handle, (name).__handle); +} + +bool pumpkin_plugin_world_method_entity_get_custom_name(pumpkin_plugin_world_borrow_entity_t self, pumpkin_plugin_world_own_text_component_t *ret) { + __attribute__((__aligned__(4))) + uint8_t ret_area[8]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_world_method_entity_get_custom_name((self).__handle, ptr); + pumpkin_plugin_world_option_own_text_component_t option; + switch ((int32_t) *((uint8_t*) (ptr + 0))) { + case 0: { + option.is_some = false; + break; + } + case 1: { + option.is_some = true; + option.val = (pumpkin_plugin_world_own_text_component_t) { *((int32_t*) (ptr + 4)) }; + break; + } + } + *ret = option.val; + return option.is_some; +} + +void pumpkin_plugin_world_method_entity_set_custom_name_visible(pumpkin_plugin_world_borrow_entity_t self, bool visible) { + __wasm_import_pumpkin_plugin_world_method_entity_set_custom_name_visible((self).__handle, visible); +} + +bool pumpkin_plugin_world_method_entity_is_custom_name_visible(pumpkin_plugin_world_borrow_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_entity_is_custom_name_visible((self).__handle); + return ret; +} + +bool pumpkin_plugin_world_method_entity_is_invulnerable(pumpkin_plugin_world_borrow_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_entity_is_invulnerable((self).__handle); + return ret; +} + +void pumpkin_plugin_world_method_entity_set_invulnerable(pumpkin_plugin_world_borrow_entity_t self, bool invulnerable) { + __wasm_import_pumpkin_plugin_world_method_entity_set_invulnerable((self).__handle, invulnerable); +} + +int32_t pumpkin_plugin_world_method_entity_get_fire_ticks(pumpkin_plugin_world_borrow_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_entity_get_fire_ticks((self).__handle); + return ret; +} + +void pumpkin_plugin_world_method_entity_set_fire_ticks(pumpkin_plugin_world_borrow_entity_t self, int32_t ticks) { + __wasm_import_pumpkin_plugin_world_method_entity_set_fire_ticks((self).__handle, ticks); +} + +void pumpkin_plugin_world_method_entity_remove(pumpkin_plugin_world_borrow_entity_t self) { + __wasm_import_pumpkin_plugin_world_method_entity_remove((self).__handle); +} + +void pumpkin_plugin_world_method_world_get_id(pumpkin_plugin_world_borrow_world_t self, plugin_string_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(2*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_world_method_world_get_id((self).__handle, ptr); + *ret = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 0))), (*((size_t*) (ptr + sizeof(void*)))) }; +} + +uint16_t pumpkin_plugin_world_method_world_get_block_state_id(pumpkin_plugin_world_borrow_world_t self, pumpkin_plugin_world_block_pos_t *pos) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_world_get_block_state_id((self).__handle, (*pos).x, (*pos).y, (*pos).z); + return (uint16_t) (ret); +} + +void pumpkin_plugin_world_method_world_get_block_state(pumpkin_plugin_world_borrow_world_t self, pumpkin_plugin_world_block_pos_t *pos, pumpkin_plugin_world_block_state_t *ret) { + __attribute__((__aligned__(4))) + uint8_t ret_area[16]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_world_method_world_get_block_state((self).__handle, (*pos).x, (*pos).y, (*pos).z, ptr); + *ret = (pumpkin_plugin_world_block_state_t) { + (uint16_t) (uint16_t) ((int32_t) *((uint16_t*) (ptr + 0))), + (uint8_t) (uint8_t) ((int32_t) *((uint8_t*) (ptr + 2))), + (uint8_t) (uint8_t) ((int32_t) *((uint8_t*) (ptr + 3))), + (float) *((float*) (ptr + 4)), + (bool) (int32_t) *((uint8_t*) (ptr + 8)), + (bool) (int32_t) *((uint8_t*) (ptr + 9)), + (bool) (int32_t) *((uint8_t*) (ptr + 10)), + (bool) (int32_t) *((uint8_t*) (ptr + 11)), + (pumpkin_plugin_world_piston_behavior_t) (int32_t) *((uint8_t*) (ptr + 12)), + (bool) (int32_t) *((uint8_t*) (ptr + 13)), + }; +} + +void pumpkin_plugin_world_method_world_set_block_state(pumpkin_plugin_world_borrow_world_t self, pumpkin_plugin_world_block_pos_t *pos, uint16_t state, pumpkin_plugin_world_block_flags_t update_flags) { + __wasm_import_pumpkin_plugin_world_method_world_set_block_state((self).__handle, (*pos).x, (*pos).y, (*pos).z, (int32_t) (state), update_flags); +} + +uint64_t pumpkin_plugin_world_method_world_get_time_of_day(pumpkin_plugin_world_borrow_world_t self) { + int64_t ret = __wasm_import_pumpkin_plugin_world_method_world_get_time_of_day((self).__handle); + return (uint64_t) (ret); +} + +void pumpkin_plugin_world_method_world_set_time_of_day(pumpkin_plugin_world_borrow_world_t self, uint64_t time) { + __wasm_import_pumpkin_plugin_world_method_world_set_time_of_day((self).__handle, (int64_t) (time)); +} + +uint64_t pumpkin_plugin_world_method_world_get_world_age(pumpkin_plugin_world_borrow_world_t self) { + int64_t ret = __wasm_import_pumpkin_plugin_world_method_world_get_world_age((self).__handle); + return (uint64_t) (ret); +} + +void pumpkin_plugin_world_method_world_get_dimension(pumpkin_plugin_world_borrow_world_t self, plugin_string_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(2*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_world_method_world_get_dimension((self).__handle, ptr); + *ret = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 0))), (*((size_t*) (ptr + sizeof(void*)))) }; +} + +int32_t pumpkin_plugin_world_method_world_get_top_block_y(pumpkin_plugin_world_borrow_world_t self, int32_t x, int32_t z) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_world_get_top_block_y((self).__handle, x, z); + return ret; +} + +int32_t pumpkin_plugin_world_method_world_get_motion_blocking_height(pumpkin_plugin_world_borrow_world_t self, int32_t x, int32_t z) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_world_get_motion_blocking_height((self).__handle, x, z); + return ret; +} + +bool pumpkin_plugin_world_method_world_is_raining(pumpkin_plugin_world_borrow_world_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_world_is_raining((self).__handle); + return ret; +} + +void pumpkin_plugin_world_method_world_set_raining(pumpkin_plugin_world_borrow_world_t self, bool raining) { + __wasm_import_pumpkin_plugin_world_method_world_set_raining((self).__handle, raining); +} + +bool pumpkin_plugin_world_method_world_is_thundering(pumpkin_plugin_world_borrow_world_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_world_is_thundering((self).__handle); + return ret; +} + +void pumpkin_plugin_world_method_world_set_thundering(pumpkin_plugin_world_borrow_world_t self, bool thundering) { + __wasm_import_pumpkin_plugin_world_method_world_set_thundering((self).__handle, thundering); +} + +void pumpkin_plugin_world_method_world_broadcast_system_message(pumpkin_plugin_world_borrow_world_t self, pumpkin_plugin_world_own_text_component_t message, bool overlay) { + __wasm_import_pumpkin_plugin_world_method_world_broadcast_system_message((self).__handle, (message).__handle, overlay); +} + +pumpkin_plugin_world_own_scoreboard_t pumpkin_plugin_world_method_world_get_scoreboard(pumpkin_plugin_world_borrow_world_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_world_get_scoreboard((self).__handle); + return (pumpkin_plugin_world_own_scoreboard_t) { ret }; +} + +void pumpkin_plugin_world_method_world_play_sound(pumpkin_plugin_world_borrow_world_t self, plugin_string_t *sound, pumpkin_plugin_world_sound_category_t category, pumpkin_plugin_world_position_t *pos, float volume, float pitch) { + __wasm_import_pumpkin_plugin_world_method_world_play_sound((self).__handle, (uint8_t *) (*sound).ptr, (*sound).len, (int32_t) category, (*pos).f0, (*pos).f1, (*pos).f2, volume, pitch); +} + +void pumpkin_plugin_world_method_world_spawn_particle(pumpkin_plugin_world_borrow_world_t self, plugin_string_t *particle, pumpkin_plugin_world_position_t *pos, pumpkin_plugin_world_position_t *offset, float max_speed, int32_t count) { + __wasm_import_pumpkin_plugin_world_method_world_spawn_particle((self).__handle, (uint8_t *) (*particle).ptr, (*particle).len, (*pos).f0, (*pos).f1, (*pos).f2, (*offset).f0, (*offset).f1, (*offset).f2, max_speed, count); +} + +void pumpkin_plugin_world_method_world_create_explosion(pumpkin_plugin_world_borrow_world_t self, pumpkin_plugin_world_position_t *pos, float power, bool create_fire, pumpkin_plugin_world_explosion_interaction_t interaction) { + __wasm_import_pumpkin_plugin_world_method_world_create_explosion((self).__handle, (*pos).f0, (*pos).f1, (*pos).f2, power, create_fire, (int32_t) interaction); +} + +int32_t pumpkin_plugin_world_method_world_get_sea_level(pumpkin_plugin_world_borrow_world_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_world_get_sea_level((self).__handle); + return ret; +} + +int32_t pumpkin_plugin_world_method_world_get_min_y(pumpkin_plugin_world_borrow_world_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_world_method_world_get_min_y((self).__handle); + return ret; +} + +void pumpkin_plugin_world_method_world_get_entities(pumpkin_plugin_world_borrow_world_t self, pumpkin_plugin_world_list_own_entity_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(2*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_world_method_world_get_entities((self).__handle, ptr); + *ret = (pumpkin_plugin_world_list_own_entity_t) { (pumpkin_plugin_world_own_entity_t*)(*((uint8_t **) (ptr + 0))), (*((size_t*) (ptr + sizeof(void*)))) }; +} + +pumpkin_plugin_player_own_entity_t pumpkin_plugin_player_method_player_as_entity(pumpkin_plugin_player_borrow_player_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_player_method_player_as_entity((self).__handle); + return (pumpkin_plugin_player_own_entity_t) { ret }; +} + +void pumpkin_plugin_player_method_player_get_id(pumpkin_plugin_player_borrow_player_t self, plugin_string_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(2*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_player_method_player_get_id((self).__handle, ptr); + *ret = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 0))), (*((size_t*) (ptr + sizeof(void*)))) }; +} + +void pumpkin_plugin_player_method_player_get_name(pumpkin_plugin_player_borrow_player_t self, plugin_string_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(2*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_player_method_player_get_name((self).__handle, ptr); + *ret = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 0))), (*((size_t*) (ptr + sizeof(void*)))) }; +} + +void pumpkin_plugin_player_method_player_get_position(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_position_t *ret) { + __attribute__((__aligned__(8))) + uint8_t ret_area[24]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_player_method_player_get_position((self).__handle, ptr); + *ret = (pumpkin_plugin_common_position_t) { + (double) *((double*) (ptr + 0)), + (double) *((double*) (ptr + 8)), + (double) *((double*) (ptr + 16)), + }; +} + +float pumpkin_plugin_player_method_player_get_yaw(pumpkin_plugin_player_borrow_player_t self) { + float ret = __wasm_import_pumpkin_plugin_player_method_player_get_yaw((self).__handle); + return ret; +} + +float pumpkin_plugin_player_method_player_get_pitch(pumpkin_plugin_player_borrow_player_t self) { + float ret = __wasm_import_pumpkin_plugin_player_method_player_get_pitch((self).__handle); + return ret; +} + +pumpkin_plugin_player_own_world_t pumpkin_plugin_player_method_player_get_world(pumpkin_plugin_player_borrow_player_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_player_method_player_get_world((self).__handle); + return (pumpkin_plugin_player_own_world_t) { ret }; +} + +pumpkin_plugin_player_game_mode_t pumpkin_plugin_player_method_player_get_gamemode(pumpkin_plugin_player_borrow_player_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_player_method_player_get_gamemode((self).__handle); + return ret; +} + +bool pumpkin_plugin_player_method_player_set_gamemode(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_game_mode_t mode) { + int32_t ret = __wasm_import_pumpkin_plugin_player_method_player_set_gamemode((self).__handle, (int32_t) mode); + return ret; +} + +void pumpkin_plugin_player_method_player_get_locale(pumpkin_plugin_player_borrow_player_t self, plugin_string_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(2*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_player_method_player_get_locale((self).__handle, ptr); + *ret = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 0))), (*((size_t*) (ptr + sizeof(void*)))) }; +} + +uint32_t pumpkin_plugin_player_method_player_get_ping(pumpkin_plugin_player_borrow_player_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_player_method_player_get_ping((self).__handle); + return (uint32_t) (ret); +} + +pumpkin_plugin_player_permission_level_t pumpkin_plugin_player_method_player_get_permission_level(pumpkin_plugin_player_borrow_player_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_player_method_player_get_permission_level((self).__handle); + return ret; +} + +void pumpkin_plugin_player_method_player_set_permission_level(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_permission_level_t level) { + __wasm_import_pumpkin_plugin_player_method_player_set_permission_level((self).__handle, (int32_t) level); +} + +bool pumpkin_plugin_player_method_player_has_permission(pumpkin_plugin_player_borrow_player_t self, plugin_string_t *node) { + int32_t ret = __wasm_import_pumpkin_plugin_player_method_player_has_permission((self).__handle, (uint8_t *) (*node).ptr, (*node).len); + return ret; +} + +pumpkin_plugin_player_own_text_component_t pumpkin_plugin_player_method_player_get_display_name(pumpkin_plugin_player_borrow_player_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_player_method_player_get_display_name((self).__handle); + return (pumpkin_plugin_player_own_text_component_t) { ret }; +} + +void pumpkin_plugin_player_method_player_send_system_message(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_own_text_component_t text, bool overlay) { + __wasm_import_pumpkin_plugin_player_method_player_send_system_message((self).__handle, (text).__handle, overlay); +} + +void pumpkin_plugin_player_method_player_show_title(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_own_text_component_t text) { + __wasm_import_pumpkin_plugin_player_method_player_show_title((self).__handle, (text).__handle); +} + +void pumpkin_plugin_player_method_player_show_subtitle(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_own_text_component_t text) { + __wasm_import_pumpkin_plugin_player_method_player_show_subtitle((self).__handle, (text).__handle); +} + +void pumpkin_plugin_player_method_player_show_actionbar(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_own_text_component_t text) { + __wasm_import_pumpkin_plugin_player_method_player_show_actionbar((self).__handle, (text).__handle); +} + +void pumpkin_plugin_player_method_player_send_title_animation(pumpkin_plugin_player_borrow_player_t self, int32_t fade_in, int32_t stay, int32_t fade_out) { + __wasm_import_pumpkin_plugin_player_method_player_send_title_animation((self).__handle, fade_in, stay, fade_out); +} + +void pumpkin_plugin_player_method_player_teleport(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_position_t *position, float *maybe_yaw, float *maybe_pitch, pumpkin_plugin_player_own_world_t world) { + plugin_option_f32_t yaw; + yaw.is_some = maybe_yaw != NULL;if (maybe_yaw) { + yaw.val = *maybe_yaw; + } + plugin_option_f32_t pitch; + pitch.is_some = maybe_pitch != NULL;if (maybe_pitch) { + pitch.val = *maybe_pitch; + } + int32_t option; + float option1; + if ((yaw).is_some) { + const float *payload0 = &(yaw).val; + option = 1; + option1 = *payload0; + } else { + option = 0; + option1 = 0; + } + int32_t option4; + float option5; + if ((pitch).is_some) { + const float *payload3 = &(pitch).val; + option4 = 1; + option5 = *payload3; + } else { + option4 = 0; + option5 = 0; + } + __wasm_import_pumpkin_plugin_player_method_player_teleport((self).__handle, (*position).f0, (*position).f1, (*position).f2, option, option1, option4, option5, (world).__handle); +} + +void pumpkin_plugin_player_method_player_teleport_world(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_own_world_t world_ref, pumpkin_plugin_player_position_t *position, float *maybe_yaw, float *maybe_pitch) { + plugin_option_f32_t yaw; + yaw.is_some = maybe_yaw != NULL;if (maybe_yaw) { + yaw.val = *maybe_yaw; + } + plugin_option_f32_t pitch; + pitch.is_some = maybe_pitch != NULL;if (maybe_pitch) { + pitch.val = *maybe_pitch; + } + int32_t option; + float option1; + if ((yaw).is_some) { + const float *payload0 = &(yaw).val; + option = 1; + option1 = *payload0; + } else { + option = 0; + option1 = 0; + } + int32_t option4; + float option5; + if ((pitch).is_some) { + const float *payload3 = &(pitch).val; + option4 = 1; + option5 = *payload3; + } else { + option4 = 0; + option5 = 0; + } + __wasm_import_pumpkin_plugin_player_method_player_teleport_world((self).__handle, (world_ref).__handle, (*position).f0, (*position).f1, (*position).f2, option, option1, option4, option5); +} + +void pumpkin_plugin_player_method_player_kick(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_own_text_component_t message) { + __wasm_import_pumpkin_plugin_player_method_player_kick((self).__handle, (message).__handle); +} + +void pumpkin_plugin_player_method_player_respawn(pumpkin_plugin_player_borrow_player_t self) { + __wasm_import_pumpkin_plugin_player_method_player_respawn((self).__handle); +} + +void pumpkin_plugin_player_method_player_open_gui(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_own_gui_t gui_ref) { + __wasm_import_pumpkin_plugin_player_method_player_open_gui((self).__handle, (gui_ref).__handle); +} + +void pumpkin_plugin_player_method_player_ban(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_own_text_component_t *maybe_reason) { + pumpkin_plugin_player_option_own_text_component_t reason; + reason.is_some = maybe_reason != NULL;if (maybe_reason) { + reason.val = *maybe_reason; + } + int32_t option; + int32_t option1; + if ((reason).is_some) { + const pumpkin_plugin_player_own_text_component_t *payload0 = &(reason).val; + option = 1; + option1 = (*payload0).__handle; + } else { + option = 0; + option1 = 0; + } + __wasm_import_pumpkin_plugin_player_method_player_ban((self).__handle, option, option1); +} + +void pumpkin_plugin_player_method_player_ban_ip(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_own_text_component_t *maybe_reason) { + pumpkin_plugin_player_option_own_text_component_t reason; + reason.is_some = maybe_reason != NULL;if (maybe_reason) { + reason.val = *maybe_reason; + } + int32_t option; + int32_t option1; + if ((reason).is_some) { + const pumpkin_plugin_player_own_text_component_t *payload0 = &(reason).val; + option = 1; + option1 = (*payload0).__handle; + } else { + option = 0; + option1 = 0; + } + __wasm_import_pumpkin_plugin_player_method_player_ban_ip((self).__handle, option, option1); +} + +uint8_t pumpkin_plugin_player_method_player_get_selected_slot(pumpkin_plugin_player_borrow_player_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_player_method_player_get_selected_slot((self).__handle); + return (uint8_t) (ret); +} + +bool pumpkin_plugin_player_method_player_get_item_in_hand(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_hand_t hand, pumpkin_plugin_player_item_stack_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(4*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_player_method_player_get_item_in_hand((self).__handle, (int32_t) hand, ptr); + pumpkin_plugin_player_option_item_stack_t option; + switch ((int32_t) *((uint8_t*) (ptr + 0))) { + case 0: { + option.is_some = false; + break; + } + case 1: { + option.is_some = true; + option.val = (pumpkin_plugin_common_item_stack_t) { + (plugin_string_t) (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + sizeof(void*)))), (*((size_t*) (ptr + (2*sizeof(void*))))) }, + (uint8_t) (uint8_t) ((int32_t) *((uint8_t*) (ptr + (3*sizeof(void*))))), + }; + break; + } + } + *ret = option.val; + return option.is_some; +} + +bool pumpkin_plugin_player_method_player_get_inventory_item(pumpkin_plugin_player_borrow_player_t self, uint8_t slot, pumpkin_plugin_player_item_stack_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(4*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_player_method_player_get_inventory_item((self).__handle, (int32_t) (slot), ptr); + pumpkin_plugin_player_option_item_stack_t option; + switch ((int32_t) *((uint8_t*) (ptr + 0))) { + case 0: { + option.is_some = false; + break; + } + case 1: { + option.is_some = true; + option.val = (pumpkin_plugin_common_item_stack_t) { + (plugin_string_t) (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + sizeof(void*)))), (*((size_t*) (ptr + (2*sizeof(void*))))) }, + (uint8_t) (uint8_t) ((int32_t) *((uint8_t*) (ptr + (3*sizeof(void*))))), + }; + break; + } + } + *ret = option.val; + return option.is_some; +} + +float pumpkin_plugin_player_method_player_get_health(pumpkin_plugin_player_borrow_player_t self) { + float ret = __wasm_import_pumpkin_plugin_player_method_player_get_health((self).__handle); + return ret; +} + +void pumpkin_plugin_player_method_player_set_health(pumpkin_plugin_player_borrow_player_t self, float health) { + __wasm_import_pumpkin_plugin_player_method_player_set_health((self).__handle, health); +} + +float pumpkin_plugin_player_method_player_get_max_health(pumpkin_plugin_player_borrow_player_t self) { + float ret = __wasm_import_pumpkin_plugin_player_method_player_get_max_health((self).__handle); + return ret; +} + +void pumpkin_plugin_player_method_player_set_max_health(pumpkin_plugin_player_borrow_player_t self, float max_health) { + __wasm_import_pumpkin_plugin_player_method_player_set_max_health((self).__handle, max_health); +} + +uint8_t pumpkin_plugin_player_method_player_get_food_level(pumpkin_plugin_player_borrow_player_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_player_method_player_get_food_level((self).__handle); + return (uint8_t) (ret); +} + +void pumpkin_plugin_player_method_player_set_food_level(pumpkin_plugin_player_borrow_player_t self, uint8_t food_level) { + __wasm_import_pumpkin_plugin_player_method_player_set_food_level((self).__handle, (int32_t) (food_level)); +} + +float pumpkin_plugin_player_method_player_get_saturation(pumpkin_plugin_player_borrow_player_t self) { + float ret = __wasm_import_pumpkin_plugin_player_method_player_get_saturation((self).__handle); + return ret; +} + +void pumpkin_plugin_player_method_player_set_saturation(pumpkin_plugin_player_borrow_player_t self, float saturation) { + __wasm_import_pumpkin_plugin_player_method_player_set_saturation((self).__handle, saturation); +} + +float pumpkin_plugin_player_method_player_get_exhaustion(pumpkin_plugin_player_borrow_player_t self) { + float ret = __wasm_import_pumpkin_plugin_player_method_player_get_exhaustion((self).__handle); + return ret; +} + +void pumpkin_plugin_player_method_player_set_exhaustion(pumpkin_plugin_player_borrow_player_t self, float exhaustion) { + __wasm_import_pumpkin_plugin_player_method_player_set_exhaustion((self).__handle, exhaustion); +} + +float pumpkin_plugin_player_method_player_get_absorption(pumpkin_plugin_player_borrow_player_t self) { + float ret = __wasm_import_pumpkin_plugin_player_method_player_get_absorption((self).__handle); + return ret; +} + +void pumpkin_plugin_player_method_player_set_absorption(pumpkin_plugin_player_borrow_player_t self, float absorption) { + __wasm_import_pumpkin_plugin_player_method_player_set_absorption((self).__handle, absorption); +} + +int32_t pumpkin_plugin_player_method_player_get_experience_level(pumpkin_plugin_player_borrow_player_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_player_method_player_get_experience_level((self).__handle); + return ret; +} + +float pumpkin_plugin_player_method_player_get_experience_progress(pumpkin_plugin_player_borrow_player_t self) { + float ret = __wasm_import_pumpkin_plugin_player_method_player_get_experience_progress((self).__handle); + return ret; +} + +int32_t pumpkin_plugin_player_method_player_get_experience_points(pumpkin_plugin_player_borrow_player_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_player_method_player_get_experience_points((self).__handle); + return ret; +} + +void pumpkin_plugin_player_method_player_set_experience_level(pumpkin_plugin_player_borrow_player_t self, int32_t level) { + __wasm_import_pumpkin_plugin_player_method_player_set_experience_level((self).__handle, level); +} + +void pumpkin_plugin_player_method_player_set_experience_progress(pumpkin_plugin_player_borrow_player_t self, float progress) { + __wasm_import_pumpkin_plugin_player_method_player_set_experience_progress((self).__handle, progress); +} + +void pumpkin_plugin_player_method_player_set_experience_points(pumpkin_plugin_player_borrow_player_t self, int32_t points) { + __wasm_import_pumpkin_plugin_player_method_player_set_experience_points((self).__handle, points); +} + +void pumpkin_plugin_player_method_player_add_experience_levels(pumpkin_plugin_player_borrow_player_t self, int32_t levels) { + __wasm_import_pumpkin_plugin_player_method_player_add_experience_levels((self).__handle, levels); +} + +void pumpkin_plugin_player_method_player_add_experience_points(pumpkin_plugin_player_borrow_player_t self, int32_t points) { + __wasm_import_pumpkin_plugin_player_method_player_add_experience_points((self).__handle, points); +} + +bool pumpkin_plugin_player_method_player_is_sneaking(pumpkin_plugin_player_borrow_player_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_player_method_player_is_sneaking((self).__handle); + return ret; +} + +void pumpkin_plugin_player_method_player_set_sneaking(pumpkin_plugin_player_borrow_player_t self, bool sneaking) { + __wasm_import_pumpkin_plugin_player_method_player_set_sneaking((self).__handle, sneaking); +} + +bool pumpkin_plugin_player_method_player_is_sprinting(pumpkin_plugin_player_borrow_player_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_player_method_player_is_sprinting((self).__handle); + return ret; +} + +void pumpkin_plugin_player_method_player_set_sprinting(pumpkin_plugin_player_borrow_player_t self, bool sprinting) { + __wasm_import_pumpkin_plugin_player_method_player_set_sprinting((self).__handle, sprinting); +} + +bool pumpkin_plugin_player_method_player_is_on_ground(pumpkin_plugin_player_borrow_player_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_player_method_player_is_on_ground((self).__handle); + return ret; +} + +bool pumpkin_plugin_player_method_player_is_flying(pumpkin_plugin_player_borrow_player_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_player_method_player_is_flying((self).__handle); + return ret; +} + +void pumpkin_plugin_player_method_player_set_flying(pumpkin_plugin_player_borrow_player_t self, bool flying) { + __wasm_import_pumpkin_plugin_player_method_player_set_flying((self).__handle, flying); +} + +void pumpkin_plugin_player_method_player_get_abilities(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_player_abilities_t *ret) { + __attribute__((__aligned__(4))) + uint8_t ret_area[16]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_player_method_player_get_abilities((self).__handle, ptr); + *ret = (pumpkin_plugin_player_player_abilities_t) { + (bool) (int32_t) *((uint8_t*) (ptr + 0)), + (bool) (int32_t) *((uint8_t*) (ptr + 1)), + (bool) (int32_t) *((uint8_t*) (ptr + 2)), + (bool) (int32_t) *((uint8_t*) (ptr + 3)), + (bool) (int32_t) *((uint8_t*) (ptr + 4)), + (float) *((float*) (ptr + 8)), + (float) *((float*) (ptr + 12)), + }; +} + +void pumpkin_plugin_player_method_player_set_abilities(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_player_abilities_t *abilities) { + __wasm_import_pumpkin_plugin_player_method_player_set_abilities((self).__handle, (*abilities).invulnerable, (*abilities).flying, (*abilities).allow_flying, (*abilities).creative, (*abilities).allow_modify_world, (*abilities).fly_speed, (*abilities).walk_speed); +} + +void pumpkin_plugin_player_method_player_get_ip(pumpkin_plugin_player_borrow_player_t self, plugin_string_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(2*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_player_method_player_get_ip((self).__handle, ptr); + *ret = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 0))), (*((size_t*) (ptr + sizeof(void*)))) }; +} + +pumpkin_plugin_server_difficulty_t pumpkin_plugin_server_method_server_get_difficulty(pumpkin_plugin_server_borrow_server_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_server_method_server_get_difficulty((self).__handle); + return ret; +} + +uint32_t pumpkin_plugin_server_method_server_get_player_count(pumpkin_plugin_server_borrow_server_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_server_method_server_get_player_count((self).__handle); + return (uint32_t) (ret); +} + +double pumpkin_plugin_server_method_server_get_mspt(pumpkin_plugin_server_borrow_server_t self) { + double ret = __wasm_import_pumpkin_plugin_server_method_server_get_mspt((self).__handle); + return ret; +} + +double pumpkin_plugin_server_method_server_get_tps(pumpkin_plugin_server_borrow_server_t self) { + double ret = __wasm_import_pumpkin_plugin_server_method_server_get_tps((self).__handle); + return ret; +} + +void pumpkin_plugin_server_method_server_get_all_players(pumpkin_plugin_server_borrow_server_t self, pumpkin_plugin_server_list_own_player_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(2*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_server_method_server_get_all_players((self).__handle, ptr); + *ret = (pumpkin_plugin_server_list_own_player_t) { (pumpkin_plugin_server_own_player_t*)(*((uint8_t **) (ptr + 0))), (*((size_t*) (ptr + sizeof(void*)))) }; +} + +bool pumpkin_plugin_server_method_server_get_player_by_name(pumpkin_plugin_server_borrow_server_t self, plugin_string_t *name, pumpkin_plugin_server_own_player_t *ret) { + __attribute__((__aligned__(4))) + uint8_t ret_area[8]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_server_method_server_get_player_by_name((self).__handle, (uint8_t *) (*name).ptr, (*name).len, ptr); + pumpkin_plugin_server_option_own_player_t option; + switch ((int32_t) *((uint8_t*) (ptr + 0))) { + case 0: { + option.is_some = false; + break; + } + case 1: { + option.is_some = true; + option.val = (pumpkin_plugin_server_own_player_t) { *((int32_t*) (ptr + 4)) }; + break; + } + } + *ret = option.val; + return option.is_some; +} + +bool pumpkin_plugin_server_method_server_get_player_by_uuid(pumpkin_plugin_server_borrow_server_t self, plugin_string_t *id, pumpkin_plugin_server_own_player_t *ret) { + __attribute__((__aligned__(4))) + uint8_t ret_area[8]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_server_method_server_get_player_by_uuid((self).__handle, (uint8_t *) (*id).ptr, (*id).len, ptr); + pumpkin_plugin_server_option_own_player_t option; + switch ((int32_t) *((uint8_t*) (ptr + 0))) { + case 0: { + option.is_some = false; + break; + } + case 1: { + option.is_some = true; + option.val = (pumpkin_plugin_server_own_player_t) { *((int32_t*) (ptr + 4)) }; + break; + } + } + *ret = option.val; + return option.is_some; +} + +void pumpkin_plugin_block_entity_method_block_entity_resource_location(pumpkin_plugin_block_entity_borrow_block_entity_t self, plugin_string_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(2*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_block_entity_method_block_entity_resource_location((self).__handle, ptr); + *ret = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 0))), (*((size_t*) (ptr + sizeof(void*)))) }; +} + +void pumpkin_plugin_block_entity_method_block_entity_get_position(pumpkin_plugin_block_entity_borrow_block_entity_t self, pumpkin_plugin_block_entity_block_position_t *ret) { + __attribute__((__aligned__(4))) + uint8_t ret_area[12]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_block_entity_method_block_entity_get_position((self).__handle, ptr); + *ret = (pumpkin_plugin_common_block_position_t) { + (int32_t) *((int32_t*) (ptr + 0)), + (int32_t) *((int32_t*) (ptr + 4)), + (int32_t) *((int32_t*) (ptr + 8)), + }; +} + +uint32_t pumpkin_plugin_block_entity_method_block_entity_get_id(pumpkin_plugin_block_entity_borrow_block_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_block_entity_method_block_entity_get_id((self).__handle); + return (uint32_t) (ret); +} + +bool pumpkin_plugin_block_entity_method_block_entity_is_dirty(pumpkin_plugin_block_entity_borrow_block_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_block_entity_method_block_entity_is_dirty((self).__handle); + return ret; +} + +void pumpkin_plugin_block_entity_method_block_entity_clear_dirty(pumpkin_plugin_block_entity_borrow_block_entity_t self) { + __wasm_import_pumpkin_plugin_block_entity_method_block_entity_clear_dirty((self).__handle); +} + +pumpkin_plugin_block_entity_own_block_entity_t pumpkin_plugin_block_entity_method_command_block_entity_get_block_entity(pumpkin_plugin_block_entity_borrow_command_block_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_block_entity_method_command_block_entity_get_block_entity((self).__handle); + return (pumpkin_plugin_block_entity_own_block_entity_t) { ret }; +} + +void pumpkin_plugin_block_entity_method_command_block_entity_last_output(pumpkin_plugin_block_entity_borrow_command_block_entity_t self, plugin_string_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(2*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_block_entity_method_command_block_entity_last_output((self).__handle, ptr); + *ret = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 0))), (*((size_t*) (ptr + sizeof(void*)))) }; +} + +bool pumpkin_plugin_block_entity_method_command_block_entity_track_output(pumpkin_plugin_block_entity_borrow_command_block_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_block_entity_method_command_block_entity_track_output((self).__handle); + return ret; +} + +uint32_t pumpkin_plugin_block_entity_method_command_block_entity_success_count(pumpkin_plugin_block_entity_borrow_command_block_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_block_entity_method_command_block_entity_success_count((self).__handle); + return (uint32_t) (ret); +} + +void pumpkin_plugin_block_entity_method_command_block_entity_command(pumpkin_plugin_block_entity_borrow_command_block_entity_t self, plugin_string_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(2*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_block_entity_method_command_block_entity_command((self).__handle, ptr); + *ret = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 0))), (*((size_t*) (ptr + sizeof(void*)))) }; +} + +bool pumpkin_plugin_block_entity_method_command_block_entity_auto(pumpkin_plugin_block_entity_borrow_command_block_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_block_entity_method_command_block_entity_auto((self).__handle); + return ret; +} + +bool pumpkin_plugin_block_entity_method_command_block_entity_condition_met(pumpkin_plugin_block_entity_borrow_command_block_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_block_entity_method_command_block_entity_condition_met((self).__handle); + return ret; +} + +bool pumpkin_plugin_block_entity_method_command_block_entity_powered(pumpkin_plugin_block_entity_borrow_command_block_entity_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_block_entity_method_command_block_entity_powered((self).__handle); + return ret; +} + +void pumpkin_plugin_command_method_consumed_args_get_value(pumpkin_plugin_command_borrow_consumed_args_t self, plugin_string_t *key, pumpkin_plugin_command_arg_t *ret) { + __attribute__((__aligned__(8))) + uint8_t ret_area[56]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_command_method_consumed_args_get_value((self).__handle, (uint8_t *) (*key).ptr, (*key).len, ptr); + pumpkin_plugin_command_arg_t variant5; + variant5.tag = (int32_t) *((uint8_t*) (ptr + 0)); + switch ((int32_t) variant5.tag) { + case 0: { + variant5.val.entities = (pumpkin_plugin_command_list_own_entity_t) { (pumpkin_plugin_command_own_entity_t*)(*((uint8_t **) (ptr + 8))), (*((size_t*) (ptr + (8+1*sizeof(void*))))) }; + break; + } + case 1: { + variant5.val.entity = (pumpkin_plugin_command_own_entity_t) { *((int32_t*) (ptr + 8)) }; + break; + } + case 2: { + variant5.val.players = (pumpkin_plugin_command_list_own_player_t) { (pumpkin_plugin_command_own_player_t*)(*((uint8_t **) (ptr + 8))), (*((size_t*) (ptr + (8+1*sizeof(void*))))) }; + break; + } + case 3: { + variant5.val.block_pos = (pumpkin_plugin_common_block_position_t) { + (int32_t) *((int32_t*) (ptr + 8)), + (int32_t) *((int32_t*) (ptr + 12)), + (int32_t) *((int32_t*) (ptr + 16)), + }; + break; + } + case 4: { + variant5.val.pos3d = (pumpkin_plugin_common_position_t) { + (double) *((double*) (ptr + 8)), + (double) *((double*) (ptr + 16)), + (double) *((double*) (ptr + 24)), + }; + break; + } + case 5: { + variant5.val.pos2d = (plugin_tuple2_f64_f64_t) { + (double) *((double*) (ptr + 8)), + (double) *((double*) (ptr + 16)), + }; + break; + } + case 6: { + variant5.val.rotation = (plugin_tuple4_f32_bool_f32_bool_t) { + (float) *((float*) (ptr + 8)), + (bool) (int32_t) *((uint8_t*) (ptr + 12)), + (float) *((float*) (ptr + 16)), + (bool) (int32_t) *((uint8_t*) (ptr + 20)), + }; + break; + } + case 7: { + variant5.val.game_mode = (int32_t) *((uint8_t*) (ptr + 8)); + break; + } + case 8: { + variant5.val.difficulty = (int32_t) *((uint8_t*) (ptr + 8)); + break; + } + case 9: { + variant5.val.item = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 8))), (*((size_t*) (ptr + (8+1*sizeof(void*))))) }; + break; + } + case 10: { + variant5.val.item_predicate = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 8))), (*((size_t*) (ptr + (8+1*sizeof(void*))))) }; + break; + } + case 11: { + variant5.val.resource_location = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 8))), (*((size_t*) (ptr + (8+1*sizeof(void*))))) }; + break; + } + case 12: { + variant5.val.block = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 8))), (*((size_t*) (ptr + (8+1*sizeof(void*))))) }; + break; + } + case 13: { + variant5.val.block_predicate = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 8))), (*((size_t*) (ptr + (8+1*sizeof(void*))))) }; + break; + } + case 14: { + variant5.val.bossbar_color = (int32_t) *((uint8_t*) (ptr + 8)); + break; + } + case 15: { + variant5.val.bossbar_style = (int32_t) *((uint8_t*) (ptr + 8)); + break; + } + case 16: { + variant5.val.particle = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 8))), (*((size_t*) (ptr + (8+1*sizeof(void*))))) }; + break; + } + case 17: { + variant5.val.msg = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 8))), (*((size_t*) (ptr + (8+1*sizeof(void*))))) }; + break; + } + case 18: { + variant5.val.text_component = (pumpkin_plugin_command_own_text_component_t) { *((int32_t*) (ptr + 8)) }; + break; + } + case 19: { + variant5.val.time = *((int32_t*) (ptr + 8)); + break; + } + case 20: { + pumpkin_plugin_command_result_number_not_in_bounds_t result; + switch ((int32_t) *((uint8_t*) (ptr + 8))) { + case 0: { + result.is_err = false; + pumpkin_plugin_command_number_t variant; + variant.tag = (int32_t) *((uint8_t*) (ptr + 16)); + switch ((int32_t) variant.tag) { + case 0: { + variant.val.float64 = *((double*) (ptr + 24)); + break; + } + case 1: { + variant.val.float32 = *((float*) (ptr + 24)); + break; + } + case 2: { + variant.val.int32 = *((int32_t*) (ptr + 24)); + break; + } + case 3: { + variant.val.int64 = *((int64_t*) (ptr + 24)); + break; + } + } + + result.val.ok = variant; + break; + } + case 1: { + result.is_err = true; + pumpkin_plugin_command_not_in_bounds_t variant4; + variant4.tag = (int32_t) *((uint8_t*) (ptr + 16)); + switch ((int32_t) variant4.tag) { + case 0: { + pumpkin_plugin_command_number_t variant0; + variant0.tag = (int32_t) *((uint8_t*) (ptr + 24)); + switch ((int32_t) variant0.tag) { + case 0: { + variant0.val.float64 = *((double*) (ptr + 32)); + break; + } + case 1: { + variant0.val.float32 = *((float*) (ptr + 32)); + break; + } + case 2: { + variant0.val.int32 = *((int32_t*) (ptr + 32)); + break; + } + case 3: { + variant0.val.int64 = *((int64_t*) (ptr + 32)); + break; + } + } + pumpkin_plugin_command_number_t variant1; + variant1.tag = (int32_t) *((uint8_t*) (ptr + 40)); + switch ((int32_t) variant1.tag) { + case 0: { + variant1.val.float64 = *((double*) (ptr + 48)); + break; + } + case 1: { + variant1.val.float32 = *((float*) (ptr + 48)); + break; + } + case 2: { + variant1.val.int32 = *((int32_t*) (ptr + 48)); + break; + } + case 3: { + variant1.val.int64 = *((int64_t*) (ptr + 48)); + break; + } + } + variant4.val.lower_bound = (pumpkin_plugin_command_tuple2_number_number_t) { + (pumpkin_plugin_command_number_t) variant0, + (pumpkin_plugin_command_number_t) variant1, + }; + break; + } + case 1: { + pumpkin_plugin_command_number_t variant2; + variant2.tag = (int32_t) *((uint8_t*) (ptr + 24)); + switch ((int32_t) variant2.tag) { + case 0: { + variant2.val.float64 = *((double*) (ptr + 32)); + break; + } + case 1: { + variant2.val.float32 = *((float*) (ptr + 32)); + break; + } + case 2: { + variant2.val.int32 = *((int32_t*) (ptr + 32)); + break; + } + case 3: { + variant2.val.int64 = *((int64_t*) (ptr + 32)); + break; + } + } + pumpkin_plugin_command_number_t variant3; + variant3.tag = (int32_t) *((uint8_t*) (ptr + 40)); + switch ((int32_t) variant3.tag) { + case 0: { + variant3.val.float64 = *((double*) (ptr + 48)); + break; + } + case 1: { + variant3.val.float32 = *((float*) (ptr + 48)); + break; + } + case 2: { + variant3.val.int32 = *((int32_t*) (ptr + 48)); + break; + } + case 3: { + variant3.val.int64 = *((int64_t*) (ptr + 48)); + break; + } + } + variant4.val.upper_bound = (pumpkin_plugin_command_tuple2_number_number_t) { + (pumpkin_plugin_command_number_t) variant2, + (pumpkin_plugin_command_number_t) variant3, + }; + break; + } + } + + result.val.err = variant4; + break; + } + } + variant5.val.num = result; + break; + } + case 21: { + variant5.val.bool_ = (int32_t) *((uint8_t*) (ptr + 8)); + break; + } + case 22: { + variant5.val.simple = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 8))), (*((size_t*) (ptr + (8+1*sizeof(void*))))) }; + break; + } + case 23: { + variant5.val.sound_category = (int32_t) *((uint8_t*) (ptr + 8)); + break; + } + case 24: { + variant5.val.damage_type = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 8))), (*((size_t*) (ptr + (8+1*sizeof(void*))))) }; + break; + } + case 25: { + variant5.val.effect = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 8))), (*((size_t*) (ptr + (8+1*sizeof(void*))))) }; + break; + } + case 26: { + variant5.val.enchantment = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 8))), (*((size_t*) (ptr + (8+1*sizeof(void*))))) }; + break; + } + case 27: { + variant5.val.entity_anchor = (int32_t) *((uint8_t*) (ptr + 8)); + break; + } + } + *ret = variant5; +} + +void pumpkin_plugin_command_method_command_sender_get_command_sender_type(pumpkin_plugin_command_borrow_command_sender_t self, pumpkin_plugin_command_command_sender_type_t *ret) { + __attribute__((__aligned__(4))) + uint8_t ret_area[12]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_command_method_command_sender_get_command_sender_type((self).__handle, ptr); + pumpkin_plugin_command_command_sender_type_t variant; + variant.tag = (int32_t) *((uint8_t*) (ptr + 0)); + switch ((int32_t) variant.tag) { + case 0: { + break; + } + case 1: { + break; + } + case 2: { + variant.val.player = (pumpkin_plugin_command_own_player_t) { *((int32_t*) (ptr + 4)) }; + break; + } + case 3: { + variant.val.command_block = (pumpkin_plugin_command_tuple2_own_command_block_entity_own_world_t) { + (pumpkin_plugin_command_own_command_block_entity_t) (pumpkin_plugin_command_own_command_block_entity_t) { *((int32_t*) (ptr + 4)) }, + (pumpkin_plugin_command_own_world_t) (pumpkin_plugin_command_own_world_t) { *((int32_t*) (ptr + 8)) }, + }; + break; + } + case 4: { + break; + } + } + *ret = variant; +} + +void pumpkin_plugin_command_method_command_sender_send_message(pumpkin_plugin_command_borrow_command_sender_t self, pumpkin_plugin_command_own_text_component_t text) { + __wasm_import_pumpkin_plugin_command_method_command_sender_send_message((self).__handle, (text).__handle); +} + +void pumpkin_plugin_command_method_command_sender_set_success_count(pumpkin_plugin_command_borrow_command_sender_t self, int32_t count) { + __wasm_import_pumpkin_plugin_command_method_command_sender_set_success_count((self).__handle, count); +} + +bool pumpkin_plugin_command_method_command_sender_is_player(pumpkin_plugin_command_borrow_command_sender_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_command_method_command_sender_is_player((self).__handle); + return ret; +} + +bool pumpkin_plugin_command_method_command_sender_is_console(pumpkin_plugin_command_borrow_command_sender_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_command_method_command_sender_is_console((self).__handle); + return ret; +} + +bool pumpkin_plugin_command_method_command_sender_as_player(pumpkin_plugin_command_borrow_command_sender_t self, pumpkin_plugin_command_own_player_t *ret) { + __attribute__((__aligned__(4))) + uint8_t ret_area[8]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_command_method_command_sender_as_player((self).__handle, ptr); + pumpkin_plugin_command_option_own_player_t option; + switch ((int32_t) *((uint8_t*) (ptr + 0))) { + case 0: { + option.is_some = false; + break; + } + case 1: { + option.is_some = true; + option.val = (pumpkin_plugin_command_own_player_t) { *((int32_t*) (ptr + 4)) }; + break; + } + } + *ret = option.val; + return option.is_some; +} + +pumpkin_plugin_command_permission_level_t pumpkin_plugin_command_method_command_sender_permission_level(pumpkin_plugin_command_borrow_command_sender_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_command_method_command_sender_permission_level((self).__handle); + return ret; +} + +bool pumpkin_plugin_command_method_command_sender_has_permission_level(pumpkin_plugin_command_borrow_command_sender_t self, pumpkin_plugin_command_permission_level_t level) { + int32_t ret = __wasm_import_pumpkin_plugin_command_method_command_sender_has_permission_level((self).__handle, (int32_t) level); + return ret; +} + +bool pumpkin_plugin_command_method_command_sender_has_permission(pumpkin_plugin_command_borrow_command_sender_t self, pumpkin_plugin_command_borrow_server_t server, plugin_string_t *node) { + int32_t ret = __wasm_import_pumpkin_plugin_command_method_command_sender_has_permission((self).__handle, (server).__handle, (uint8_t *) (*node).ptr, (*node).len); + return ret; +} + +bool pumpkin_plugin_command_method_command_sender_position(pumpkin_plugin_command_borrow_command_sender_t self, pumpkin_plugin_command_position_t *ret) { + __attribute__((__aligned__(8))) + uint8_t ret_area[32]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_command_method_command_sender_position((self).__handle, ptr); + plugin_option_position_t option; + switch ((int32_t) *((uint8_t*) (ptr + 0))) { + case 0: { + option.is_some = false; + break; + } + case 1: { + option.is_some = true; + option.val = (pumpkin_plugin_common_position_t) { + (double) *((double*) (ptr + 8)), + (double) *((double*) (ptr + 16)), + (double) *((double*) (ptr + 24)), + }; + break; + } + } + *ret = option.val; + return option.is_some; +} + +bool pumpkin_plugin_command_method_command_sender_world(pumpkin_plugin_command_borrow_command_sender_t self, pumpkin_plugin_command_own_world_t *ret) { + __attribute__((__aligned__(4))) + uint8_t ret_area[8]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_command_method_command_sender_world((self).__handle, ptr); + pumpkin_plugin_command_option_own_world_t option; + switch ((int32_t) *((uint8_t*) (ptr + 0))) { + case 0: { + option.is_some = false; + break; + } + case 1: { + option.is_some = true; + option.val = (pumpkin_plugin_command_own_world_t) { *((int32_t*) (ptr + 4)) }; + break; + } + } + *ret = option.val; + return option.is_some; +} + +pumpkin_plugin_command_locale_t pumpkin_plugin_command_method_command_sender_get_locale(pumpkin_plugin_command_borrow_command_sender_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_command_method_command_sender_get_locale((self).__handle); + return ret; +} + +bool pumpkin_plugin_command_method_command_sender_should_receive_feedback(pumpkin_plugin_command_borrow_command_sender_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_command_method_command_sender_should_receive_feedback((self).__handle); + return ret; +} + +bool pumpkin_plugin_command_method_command_sender_should_broadcast_console_to_ops(pumpkin_plugin_command_borrow_command_sender_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_command_method_command_sender_should_broadcast_console_to_ops((self).__handle); + return ret; +} + +bool pumpkin_plugin_command_method_command_sender_should_track_output(pumpkin_plugin_command_borrow_command_sender_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_command_method_command_sender_should_track_output((self).__handle); + return ret; +} + +pumpkin_plugin_command_own_command_node_t pumpkin_plugin_command_static_command_node_literal(plugin_string_t *name) { + int32_t ret = __wasm_import_pumpkin_plugin_command_static_command_node_literal((uint8_t *) (*name).ptr, (*name).len); + return (pumpkin_plugin_command_own_command_node_t) { ret }; +} + +pumpkin_plugin_command_own_command_node_t pumpkin_plugin_command_static_command_node_argument(plugin_string_t *name, pumpkin_plugin_command_argument_type_t *arg_type) { + int32_t variant; + uint8_t * variant55; + int64_t variant56; + int32_t variant57; + int64_t variant58; + switch ((int32_t) (*arg_type).tag) { + case 0: { + variant = 0; + variant55 = 0; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 1: { + const plugin_tuple2_option_f32_option_f32_t *payload0 = &(*arg_type).val.float_; + int32_t option; + float option3; + if (((*payload0).f0).is_some) { + const float *payload2 = &((*payload0).f0).val; + option = 1; + option3 = *payload2; + } else { + option = 0; + option3 = 0; + } + int32_t option6; + float option7; + if (((*payload0).f1).is_some) { + const float *payload5 = &((*payload0).f1).val; + option6 = 1; + option7 = *payload5; + } else { + option6 = 0; + option7 = 0; + } + variant = 1; + variant55 = (uint8_t *) option; + variant56 = ((union float_int32){ option3 }).b; + variant57 = option6; + variant58 = ((union float_int32){ option7 }).b; + break; + } + case 2: { + const plugin_tuple2_option_f64_option_f64_t *payload8 = &(*arg_type).val.double_; + int32_t option11; + double option12; + if (((*payload8).f0).is_some) { + const double *payload10 = &((*payload8).f0).val; + option11 = 1; + option12 = *payload10; + } else { + option11 = 0; + option12 = 0; + } + int32_t option15; + double option16; + if (((*payload8).f1).is_some) { + const double *payload14 = &((*payload8).f1).val; + option15 = 1; + option16 = *payload14; + } else { + option15 = 0; + option16 = 0; + } + variant = 2; + variant55 = (uint8_t *) option11; + variant56 = ((union double_int64){ option12 }).b; + variant57 = option15; + variant58 = ((union double_int64){ option16 }).b; + break; + } + case 3: { + const plugin_tuple2_option_s32_option_s32_t *payload17 = &(*arg_type).val.integer; + int32_t option20; + int32_t option21; + if (((*payload17).f0).is_some) { + const int32_t *payload19 = &((*payload17).f0).val; + option20 = 1; + option21 = *payload19; + } else { + option20 = 0; + option21 = 0; + } + int32_t option24; + int32_t option25; + if (((*payload17).f1).is_some) { + const int32_t *payload23 = &((*payload17).f1).val; + option24 = 1; + option25 = *payload23; + } else { + option24 = 0; + option25 = 0; + } + variant = 3; + variant55 = (uint8_t *) option20; + variant56 = (int64_t) option21; + variant57 = option24; + variant58 = (int64_t) option25; + break; + } + case 4: { + const plugin_tuple2_option_s64_option_s64_t *payload26 = &(*arg_type).val.long_; + int32_t option29; + int64_t option30; + if (((*payload26).f0).is_some) { + const int64_t *payload28 = &((*payload26).f0).val; + option29 = 1; + option30 = *payload28; + } else { + option29 = 0; + option30 = 0; + } + int32_t option33; + int64_t option34; + if (((*payload26).f1).is_some) { + const int64_t *payload32 = &((*payload26).f1).val; + option33 = 1; + option34 = *payload32; + } else { + option33 = 0; + option34 = 0; + } + variant = 4; + variant55 = (uint8_t *) option29; + variant56 = option30; + variant57 = option33; + variant58 = option34; + break; + } + case 5: { + const pumpkin_plugin_command_string_type_t *payload35 = &(*arg_type).val.string; + variant = 5; + variant55 = (uint8_t *) (int32_t) *payload35; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 6: { + variant = 6; + variant55 = 0; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 7: { + variant = 7; + variant55 = 0; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 8: { + variant = 8; + variant55 = 0; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 9: { + variant = 9; + variant55 = 0; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 10: { + variant = 10; + variant55 = 0; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 11: { + variant = 11; + variant55 = 0; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 12: { + variant = 12; + variant55 = 0; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 13: { + variant = 13; + variant55 = 0; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 14: { + variant = 14; + variant55 = 0; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 15: { + variant = 15; + variant55 = 0; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 16: { + variant = 16; + variant55 = 0; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 17: { + variant = 17; + variant55 = 0; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 18: { + variant = 18; + variant55 = 0; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 19: { + variant = 19; + variant55 = 0; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 20: { + variant = 20; + variant55 = 0; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 21: { + variant = 21; + variant55 = 0; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 22: { + variant = 22; + variant55 = 0; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 23: { + const int32_t *payload53 = &(*arg_type).val.time; + variant = 23; + variant55 = (uint8_t *) *payload53; + variant56 = 0; + variant57 = 0; + variant58 = 0; + break; + } + case 24: { + const plugin_string_t *payload54 = &(*arg_type).val.resource; + variant = 24; + variant55 = (uint8_t *) (*payload54).ptr; + variant56 = (int64_t) (*payload54).len; + variant57 = 0; + variant58 = 0; + break; + } + } + int32_t ret = __wasm_import_pumpkin_plugin_command_static_command_node_argument((uint8_t *) (*name).ptr, (*name).len, variant, variant55, variant56, variant57, variant58); + return (pumpkin_plugin_command_own_command_node_t) { ret }; +} + +void pumpkin_plugin_command_method_command_node_then(pumpkin_plugin_command_borrow_command_node_t self, pumpkin_plugin_command_own_command_node_t node) { + __wasm_import_pumpkin_plugin_command_method_command_node_then((self).__handle, (node).__handle); +} + +void pumpkin_plugin_command_method_command_node_execute_with_handler_id(pumpkin_plugin_command_borrow_command_node_t self, uint32_t handler_id) { + __wasm_import_pumpkin_plugin_command_method_command_node_execute_with_handler_id((self).__handle, (int32_t) (handler_id)); +} + +void pumpkin_plugin_command_method_command_node_require_with_handler_id(pumpkin_plugin_command_borrow_command_node_t self, uint32_t handler_id) { + __wasm_import_pumpkin_plugin_command_method_command_node_require_with_handler_id((self).__handle, (int32_t) (handler_id)); +} + +pumpkin_plugin_command_own_command_t pumpkin_plugin_command_constructor_command(plugin_list_string_t *names, plugin_string_t *description) { + int32_t ret = __wasm_import_pumpkin_plugin_command_constructor_command((uint8_t *) (*names).ptr, (*names).len, (uint8_t *) (*description).ptr, (*description).len); + return (pumpkin_plugin_command_own_command_t) { ret }; +} + +void pumpkin_plugin_command_method_command_then(pumpkin_plugin_command_borrow_command_t self, pumpkin_plugin_command_own_command_node_t node) { + __wasm_import_pumpkin_plugin_command_method_command_then((self).__handle, (node).__handle); +} + +void pumpkin_plugin_command_method_command_execute_with_handler_id(pumpkin_plugin_command_borrow_command_t self, uint32_t handler_id) { + __wasm_import_pumpkin_plugin_command_method_command_execute_with_handler_id((self).__handle, (int32_t) (handler_id)); +} + +void pumpkin_plugin_context_method_context_register_event(pumpkin_plugin_context_borrow_context_t self, uint32_t handler_id, pumpkin_plugin_context_event_type_t event_type, pumpkin_plugin_context_event_priority_t event_priority, bool blocking) { + __wasm_import_pumpkin_plugin_context_method_context_register_event((self).__handle, (int32_t) (handler_id), (int32_t) event_type, (int32_t) event_priority, blocking); +} + +void pumpkin_plugin_context_method_context_register_command(pumpkin_plugin_context_borrow_context_t self, pumpkin_plugin_context_own_command_t command, plugin_string_t *permission) { + __wasm_import_pumpkin_plugin_context_method_context_register_command((self).__handle, (command).__handle, (uint8_t *) (*permission).ptr, (*permission).len); +} + +bool pumpkin_plugin_context_method_context_register_permission(pumpkin_plugin_context_borrow_context_t self, pumpkin_plugin_context_permission_t *permission, plugin_string_t *err) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(3*sizeof(void*))]; + int32_t variant; + int32_t variant2; + switch ((int32_t) ((*permission).default_).tag) { + case 0: { + variant = 0; + variant2 = 0; + break; + } + case 1: { + variant = 1; + variant2 = 0; + break; + } + case 2: { + const pumpkin_plugin_permission_permission_level_t *payload1 = &((*permission).default_).val.op; + variant = 2; + variant2 = (int32_t) *payload1; + break; + } + } + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_context_method_context_register_permission((self).__handle, (uint8_t *) ((*permission).node).ptr, ((*permission).node).len, (uint8_t *) ((*permission).description).ptr, ((*permission).description).len, variant, variant2, (uint8_t *) ((*permission).children).ptr, ((*permission).children).len, ptr); + pumpkin_plugin_context_result_void_string_t result; + switch ((int32_t) *((uint8_t*) (ptr + 0))) { + case 0: { + result.is_err = false; + break; + } + case 1: { + result.is_err = true; + result.val.err = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + sizeof(void*)))), (*((size_t*) (ptr + (2*sizeof(void*))))) }; + break; + } + } + if (!result.is_err) { + return 1; + } else { + *err = result.val.err; + return 0; + } +} + +void pumpkin_plugin_context_method_context_get_data_folder(pumpkin_plugin_context_borrow_context_t self, plugin_string_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(2*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_context_method_context_get_data_folder((self).__handle, ptr); + *ret = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 0))), (*((size_t*) (ptr + sizeof(void*)))) }; +} + +pumpkin_plugin_context_own_server_t pumpkin_plugin_context_method_context_get_server(pumpkin_plugin_context_borrow_context_t self) { + int32_t ret = __wasm_import_pumpkin_plugin_context_method_context_get_server((self).__handle); + return (pumpkin_plugin_context_own_server_t) { ret }; +} + +void pumpkin_plugin_i18n_translate(plugin_string_t *key, pumpkin_plugin_i18n_locale_t locale, plugin_string_t *ret) { + __attribute__((__aligned__(sizeof(void*)))) + uint8_t ret_area[(2*sizeof(void*))]; + uint8_t *ptr = (uint8_t *) &ret_area; + __wasm_import_pumpkin_plugin_i18n_translate((uint8_t *) (*key).ptr, (*key).len, (int32_t) locale, ptr); + *ret = (plugin_string_t) { (uint8_t*)(*((uint8_t **) (ptr + 0))), (*((size_t*) (ptr + sizeof(void*)))) }; +} + +void pumpkin_plugin_i18n_load_translations(plugin_string_t *namespace_, plugin_string_t *json, pumpkin_plugin_i18n_locale_t locale) { + __wasm_import_pumpkin_plugin_i18n_load_translations((uint8_t *) (*namespace_).ptr, (*namespace_).len, (uint8_t *) (*json).ptr, (*json).len, (int32_t) locale); +} + +uint32_t pumpkin_plugin_scheduler_schedule_delayed_task(uint32_t handler_id, uint64_t delay_ticks) { + int32_t ret = __wasm_import_pumpkin_plugin_scheduler_schedule_delayed_task((int32_t) (handler_id), (int64_t) (delay_ticks)); + return (uint32_t) (ret); +} + +uint32_t pumpkin_plugin_scheduler_schedule_repeating_task(uint32_t handler_id, uint64_t delay_ticks, uint64_t period_ticks) { + int32_t ret = __wasm_import_pumpkin_plugin_scheduler_schedule_repeating_task((int32_t) (handler_id), (int64_t) (delay_ticks), (int64_t) (period_ticks)); + return (uint32_t) (ret); +} + +void pumpkin_plugin_scheduler_cancel_task(uint32_t task_id) { + __wasm_import_pumpkin_plugin_scheduler_cancel_task((int32_t) (task_id)); +} + +__attribute__((__export_name__("init-plugin"))) +void __wasm_export_exports_plugin_init_plugin(void) { + exports_plugin_init_plugin(); +} + +__attribute__((__export_name__("on-load"))) +uint8_t * __wasm_export_exports_plugin_on_load(int32_t arg) { + pumpkin_plugin_context_result_void_string_t ret; + plugin_string_t err; + ret.is_err = !exports_plugin_on_load((plugin_own_context_t) { arg }, &err); + if (ret.is_err) { + ret.val.err = err; + } + uint8_t *ptr = (uint8_t *) &RET_AREA; + if ((ret).is_err) { + const plugin_string_t *payload0 = &(ret).val.err;*((int8_t*)(ptr + 0)) = 1; + *((size_t*)(ptr + (2*sizeof(void*)))) = (*payload0).len; + *((uint8_t **)(ptr + sizeof(void*))) = (uint8_t *) (*payload0).ptr; + } else { + *((int8_t*)(ptr + 0)) = 0; + } + return ptr; +} + +__attribute__((__export_name__("on-unload"))) +uint8_t * __wasm_export_exports_plugin_on_unload(int32_t arg) { + pumpkin_plugin_context_result_void_string_t ret; + plugin_string_t err; + ret.is_err = !exports_plugin_on_unload((plugin_own_context_t) { arg }, &err); + if (ret.is_err) { + ret.val.err = err; + } + uint8_t *ptr = (uint8_t *) &RET_AREA; + if ((ret).is_err) { + const plugin_string_t *payload0 = &(ret).val.err;*((int8_t*)(ptr + 0)) = 1; + *((size_t*)(ptr + (2*sizeof(void*)))) = (*payload0).len; + *((uint8_t **)(ptr + sizeof(void*))) = (uint8_t *) (*payload0).ptr; + } else { + *((int8_t*)(ptr + 0)) = 0; + } + return ptr; +} + +__attribute__((__export_name__("handle-event"))) +uint8_t * __wasm_export_exports_plugin_handle_event(int32_t arg, int32_t arg0, int32_t arg1, uint8_t * arg2, int64_t arg3, int64_t arg4, int64_t arg5, int64_t arg6, int64_t arg7, int64_t arg8, size_t arg9, int32_t arg10, uint8_t * arg11, size_t arg12, int32_t arg13) { + pumpkin_plugin_event_event_t variant; + variant.tag = arg1; + switch ((int32_t) variant.tag) { + case 0: { + variant.val.player_join_event = (pumpkin_plugin_event_player_join_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (pumpkin_plugin_event_own_text_component_t) (pumpkin_plugin_event_own_text_component_t) { (int32_t) arg3 }, + (bool) (int32_t) arg4, + }; + break; + } + case 1: { + variant.val.player_leave_event = (pumpkin_plugin_event_player_leave_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (pumpkin_plugin_event_own_text_component_t) (pumpkin_plugin_event_own_text_component_t) { (int32_t) arg3 }, + (bool) (int32_t) arg4, + }; + break; + } + case 2: { + variant.val.player_login_event = (pumpkin_plugin_event_player_login_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (pumpkin_plugin_event_own_text_component_t) (pumpkin_plugin_event_own_text_component_t) { (int32_t) arg3 }, + (bool) (int32_t) arg4, + }; + break; + } + case 3: { + variant.val.player_chat_event = (pumpkin_plugin_event_player_chat_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (plugin_string_t) (plugin_string_t) { (uint8_t*)((uint8_t *) arg3), ((int32_t) arg4) }, + (pumpkin_plugin_event_list_own_player_t) (pumpkin_plugin_event_list_own_player_t) { (pumpkin_plugin_event_own_player_t*)((uint8_t *) arg5), ((int32_t) arg6) }, + (bool) (int32_t) arg7, + }; + break; + } + case 4: { + variant.val.player_command_send_event = (pumpkin_plugin_event_player_command_send_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (plugin_string_t) (plugin_string_t) { (uint8_t*)((uint8_t *) arg3), ((int32_t) arg4) }, + (bool) (int32_t) arg5, + }; + break; + } + case 5: { + variant.val.player_permission_check_event = (pumpkin_plugin_event_player_permission_check_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (plugin_string_t) (plugin_string_t) { (uint8_t*)((uint8_t *) arg3), ((int32_t) arg4) }, + (bool) (int32_t) arg5, + }; + break; + } + case 6: { + variant.val.player_move_event = (pumpkin_plugin_event_player_move_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (pumpkin_plugin_event_position_t) (pumpkin_plugin_common_position_t) { + (double) ((union int64_double){ (int64_t) arg3 }).b, + (double) ((union int64_double){ (int64_t) arg4 }).b, + (double) ((union int64_double){ (int64_t) arg5 }).b, + }, + (pumpkin_plugin_event_position_t) (pumpkin_plugin_common_position_t) { + (double) ((union int64_double){ (int64_t) arg6 }).b, + (double) ((union int64_double){ (int64_t) arg7 }).b, + (double) ((union int64_double){ (int64_t) arg8 }).b, + }, + (bool) arg9, + }; + break; + } + case 7: { + variant.val.player_teleport_event = (pumpkin_plugin_event_player_teleport_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (pumpkin_plugin_event_position_t) (pumpkin_plugin_common_position_t) { + (double) ((union int64_double){ (int64_t) arg3 }).b, + (double) ((union int64_double){ (int64_t) arg4 }).b, + (double) ((union int64_double){ (int64_t) arg5 }).b, + }, + (pumpkin_plugin_event_position_t) (pumpkin_plugin_common_position_t) { + (double) ((union int64_double){ (int64_t) arg6 }).b, + (double) ((union int64_double){ (int64_t) arg7 }).b, + (double) ((union int64_double){ (int64_t) arg8 }).b, + }, + (bool) arg9, + }; + break; + } + case 8: { + variant.val.player_change_world_event = (pumpkin_plugin_event_player_change_world_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (pumpkin_plugin_event_own_world_t) (pumpkin_plugin_event_own_world_t) { (int32_t) arg3 }, + (pumpkin_plugin_event_own_world_t) (pumpkin_plugin_event_own_world_t) { (int32_t) arg4 }, + (pumpkin_plugin_event_position_t) (pumpkin_plugin_common_position_t) { + (double) ((union int64_double){ (int64_t) arg5 }).b, + (double) ((union int64_double){ (int64_t) arg6 }).b, + (double) ((union int64_double){ (int64_t) arg7 }).b, + }, + (float) ((union int32_float){ (int32_t) arg8 }).b, + (float) ((union int32_float){ (int32_t) arg9 }).b, + (bool) arg10, + }; + break; + } + case 9: { + variant.val.player_exp_change_event = (pumpkin_plugin_event_player_exp_change_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (int32_t) (int32_t) arg3, + }; + break; + } + case 10: { + variant.val.player_item_held_event = (pumpkin_plugin_event_player_item_held_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (uint8_t) (uint8_t) ((int32_t) arg3), + (uint8_t) (uint8_t) ((int32_t) arg4), + (bool) (int32_t) arg5, + }; + break; + } + case 11: { + variant.val.player_changed_main_hand_event = (pumpkin_plugin_event_player_changed_main_hand_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (pumpkin_plugin_event_hand_t) (int32_t) arg3, + }; + break; + } + case 12: { + variant.val.player_gamemode_change_event = (pumpkin_plugin_event_player_gamemode_change_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (pumpkin_plugin_event_game_mode_t) (int32_t) arg3, + (pumpkin_plugin_event_game_mode_t) (int32_t) arg4, + (bool) (int32_t) arg5, + }; + break; + } + case 13: { + variant.val.player_custom_payload_event = (pumpkin_plugin_event_player_custom_payload_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (plugin_string_t) (plugin_string_t) { (uint8_t*)((uint8_t *) arg3), ((int32_t) arg4) }, + (plugin_list_u8_t) (plugin_list_u8_t) { (uint8_t*)((uint8_t *) arg5), ((int32_t) arg6) }, + }; + break; + } + case 14: { + plugin_option_string_t option; + switch ((int32_t) arg3) { + case 0: { + option.is_some = false; + break; + } + case 1: { + option.is_some = true; + option.val = (plugin_string_t) { (uint8_t*)((uint8_t *) arg4), ((int32_t) arg5) }; + break; + } + } + variant.val.player_fish_event = (pumpkin_plugin_event_player_fish_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (plugin_option_string_t) option, + (plugin_string_t) (plugin_string_t) { (uint8_t*)((uint8_t *) arg6), ((int32_t) arg7) }, + (plugin_string_t) (plugin_string_t) { (uint8_t*)((uint8_t *) arg8), (arg9) }, + (pumpkin_plugin_event_player_fish_state_t) arg10, + (pumpkin_plugin_event_hand_t) (uintptr_t) arg11, + (int32_t) arg12, + (bool) arg13, + }; + break; + } + case 15: { + variant.val.player_egg_throw_event = (pumpkin_plugin_event_player_egg_throw_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (plugin_string_t) (plugin_string_t) { (uint8_t*)((uint8_t *) arg3), ((int32_t) arg4) }, + (bool) (int32_t) arg5, + (uint8_t) (uint8_t) ((int32_t) arg6), + (plugin_string_t) (plugin_string_t) { (uint8_t*)((uint8_t *) arg7), ((int32_t) arg8) }, + (bool) arg9, + }; + break; + } + case 16: { + variant.val.player_interact_unknown_entity_event = (pumpkin_plugin_event_player_interact_unknown_entity_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (int32_t) (int32_t) arg3, + (pumpkin_plugin_event_entity_interaction_action_t) (int32_t) arg4, + (bool) (int32_t) arg5, + }; + break; + } + case 17: { + plugin_option_block_position_t option14; + switch ((int32_t) arg4) { + case 0: { + option14.is_some = false; + break; + } + case 1: { + option14.is_some = true; + option14.val = (pumpkin_plugin_common_block_position_t) { + (int32_t) (int32_t) arg5, + (int32_t) (int32_t) arg6, + (int32_t) (int32_t) arg7, + }; + break; + } + } + variant.val.player_interact_event = (pumpkin_plugin_event_player_interact_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (pumpkin_plugin_event_interact_action_t) (int32_t) arg3, + (plugin_option_block_position_t) option14, + (pumpkin_plugin_event_item_stack_t) (pumpkin_plugin_common_item_stack_t) { + (plugin_string_t) (plugin_string_t) { (uint8_t*)((uint8_t *) arg8), (arg9) }, + (uint8_t) (uint8_t) (arg10), + }, + (plugin_string_t) (plugin_string_t) { (uint8_t*)(arg11), (arg12) }, + (bool) arg13, + }; + break; + } + case 18: { + variant.val.player_toggle_sneak_event = (pumpkin_plugin_event_player_toggle_sneak_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (bool) (int32_t) arg3, + (bool) (int32_t) arg4, + }; + break; + } + case 19: { + variant.val.player_toggle_flight_event = (pumpkin_plugin_event_player_toggle_flight_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (bool) (int32_t) arg3, + (bool) (int32_t) arg4, + }; + break; + } + case 20: { + variant.val.player_toggle_sprint_event = (pumpkin_plugin_event_player_toggle_sprint_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (bool) (int32_t) arg3, + (bool) (int32_t) arg4, + }; + break; + } + case 21: { + variant.val.block_redstone_event = (pumpkin_plugin_event_block_redstone_event_data_t) { + (pumpkin_plugin_event_own_world_t) (pumpkin_plugin_event_own_world_t) { (uintptr_t) arg2 }, + (uint16_t) (uint16_t) ((int32_t) arg3), + (pumpkin_plugin_event_block_position_t) (pumpkin_plugin_common_block_position_t) { + (int32_t) (int32_t) arg4, + (int32_t) (int32_t) arg5, + (int32_t) (int32_t) arg6, + }, + (int32_t) (int32_t) arg7, + (int32_t) (int32_t) arg8, + (bool) arg9, + }; + break; + } + case 22: { + pumpkin_plugin_event_option_own_player_t option15; + switch ((uintptr_t) arg2) { + case 0: { + option15.is_some = false; + break; + } + case 1: { + option15.is_some = true; + option15.val = (pumpkin_plugin_event_own_player_t) { (int32_t) arg3 }; + break; + } + } + variant.val.block_break_event = (pumpkin_plugin_event_block_break_event_data_t) { + (pumpkin_plugin_event_option_own_player_t) option15, + (plugin_string_t) (plugin_string_t) { (uint8_t*)((uint8_t *) arg4), ((int32_t) arg5) }, + (pumpkin_plugin_event_block_position_t) (pumpkin_plugin_common_block_position_t) { + (int32_t) (int32_t) arg6, + (int32_t) (int32_t) arg7, + (int32_t) (int32_t) arg8, + }, + (uint32_t) (uint32_t) (arg9), + (bool) arg10, + (bool) (uintptr_t) arg11, + }; + break; + } + case 23: { + variant.val.block_burn_event = (pumpkin_plugin_event_block_burn_event_data_t) { + (plugin_string_t) (plugin_string_t) { (uint8_t*)(arg2), ((int32_t) arg3) }, + (plugin_string_t) (plugin_string_t) { (uint8_t*)((uint8_t *) arg4), ((int32_t) arg5) }, + (bool) (int32_t) arg6, + }; + break; + } + case 24: { + variant.val.block_can_build_event = (pumpkin_plugin_event_block_can_build_event_data_t) { + (plugin_string_t) (plugin_string_t) { (uint8_t*)(arg2), ((int32_t) arg3) }, + (bool) (int32_t) arg4, + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (int32_t) arg5 }, + (plugin_string_t) (plugin_string_t) { (uint8_t*)((uint8_t *) arg6), ((int32_t) arg7) }, + (bool) (int32_t) arg8, + }; + break; + } + case 25: { + variant.val.block_grow_event = (pumpkin_plugin_event_block_grow_event_data_t) { + (pumpkin_plugin_event_own_world_t) (pumpkin_plugin_event_own_world_t) { (uintptr_t) arg2 }, + (plugin_string_t) (plugin_string_t) { (uint8_t*)((uint8_t *) arg3), ((int32_t) arg4) }, + (uint16_t) (uint16_t) ((int32_t) arg5), + (plugin_string_t) (plugin_string_t) { (uint8_t*)((uint8_t *) arg6), ((int32_t) arg7) }, + (uint16_t) (uint16_t) ((int32_t) arg8), + (pumpkin_plugin_event_block_position_t) (pumpkin_plugin_common_block_position_t) { + (int32_t) arg9, + (int32_t) arg10, + (int32_t) (uintptr_t) arg11, + }, + (bool) arg12, + }; + break; + } + case 26: { + variant.val.block_place_event = (pumpkin_plugin_event_block_place_event_data_t) { + (pumpkin_plugin_event_own_player_t) (pumpkin_plugin_event_own_player_t) { (uintptr_t) arg2 }, + (plugin_string_t) (plugin_string_t) { (uint8_t*)((uint8_t *) arg3), ((int32_t) arg4) }, + (plugin_string_t) (plugin_string_t) { (uint8_t*)((uint8_t *) arg5), ((int32_t) arg6) }, + (pumpkin_plugin_event_block_position_t) (pumpkin_plugin_common_block_position_t) { + (int32_t) (int32_t) arg7, + (int32_t) (int32_t) arg8, + (int32_t) arg9, + }, + (bool) arg10, + (bool) (uintptr_t) arg11, + }; + break; + } + case 27: { + variant.val.server_command_event = (pumpkin_plugin_event_server_command_event_data_t) { + (plugin_string_t) (plugin_string_t) { (uint8_t*)(arg2), ((int32_t) arg3) }, + (bool) (int32_t) arg4, + }; + break; + } + case 28: { + variant.val.spawn_change_event = (pumpkin_plugin_event_spawn_change_event_data_t) { + (pumpkin_plugin_event_own_world_t) (pumpkin_plugin_event_own_world_t) { (uintptr_t) arg2 }, + (pumpkin_plugin_event_block_position_t) (pumpkin_plugin_common_block_position_t) { + (int32_t) (int32_t) arg3, + (int32_t) (int32_t) arg4, + (int32_t) (int32_t) arg5, + }, + (float) ((union int32_float){ (int32_t) arg6 }).b, + (float) ((union int32_float){ (int32_t) arg7 }).b, + (pumpkin_plugin_event_block_position_t) (pumpkin_plugin_common_block_position_t) { + (int32_t) (int32_t) arg8, + (int32_t) arg9, + (int32_t) arg10, + }, + (float) ((union int32_float){ (int32_t) (uintptr_t) arg11 }).b, + (float) ((union int32_float){ (int32_t) arg12 }).b, + }; + break; + } + case 29: { + variant.val.server_broadcast_event = (pumpkin_plugin_event_server_broadcast_event_data_t) { + (pumpkin_plugin_event_own_text_component_t) (pumpkin_plugin_event_own_text_component_t) { (uintptr_t) arg2 }, + (pumpkin_plugin_event_own_text_component_t) (pumpkin_plugin_event_own_text_component_t) { (int32_t) arg3 }, + (bool) (int32_t) arg4, + }; + break; + } + } + plugin_event_t arg16 = variant; + plugin_event_t ret; + exports_plugin_handle_event((uint32_t) (arg), (plugin_own_server_instance_t) { arg0 }, &arg16, &ret); + uint8_t *ptr = (uint8_t *) &RET_AREA; + switch ((int32_t) (ret).tag) { + case 0: { + const pumpkin_plugin_event_player_join_event_data_t *payload = &(ret).val.player_join_event; + *((int8_t*)(ptr + 0)) = 0; + *((int32_t*)(ptr + 8)) = ((*payload).player).__handle; + *((int32_t*)(ptr + 12)) = ((*payload).join_message).__handle; + *((int8_t*)(ptr + 16)) = (*payload).cancelled; + break; + } + case 1: { + const pumpkin_plugin_event_player_leave_event_data_t *payload17 = &(ret).val.player_leave_event; + *((int8_t*)(ptr + 0)) = 1; + *((int32_t*)(ptr + 8)) = ((*payload17).player).__handle; + *((int32_t*)(ptr + 12)) = ((*payload17).leave_message).__handle; + *((int8_t*)(ptr + 16)) = (*payload17).cancelled; + break; + } + case 2: { + const pumpkin_plugin_event_player_login_event_data_t *payload18 = &(ret).val.player_login_event; + *((int8_t*)(ptr + 0)) = 2; + *((int32_t*)(ptr + 8)) = ((*payload18).player).__handle; + *((int32_t*)(ptr + 12)) = ((*payload18).kick_message).__handle; + *((int8_t*)(ptr + 16)) = (*payload18).cancelled; + break; + } + case 3: { + const pumpkin_plugin_event_player_chat_event_data_t *payload19 = &(ret).val.player_chat_event; + *((int8_t*)(ptr + 0)) = 3; + *((int32_t*)(ptr + 8)) = ((*payload19).player).__handle; + *((size_t*)(ptr + (8+2*sizeof(void*)))) = ((*payload19).message).len; + *((uint8_t **)(ptr + (8+1*sizeof(void*)))) = (uint8_t *) ((*payload19).message).ptr; + *((size_t*)(ptr + (8+4*sizeof(void*)))) = ((*payload19).recipients).len; + *((uint8_t **)(ptr + (8+3*sizeof(void*)))) = (uint8_t *) ((*payload19).recipients).ptr; + *((int8_t*)(ptr + (8+5*sizeof(void*)))) = (*payload19).cancelled; + break; + } + case 4: { + const pumpkin_plugin_event_player_command_send_event_data_t *payload20 = &(ret).val.player_command_send_event; + *((int8_t*)(ptr + 0)) = 4; + *((int32_t*)(ptr + 8)) = ((*payload20).player).__handle; + *((size_t*)(ptr + (8+2*sizeof(void*)))) = ((*payload20).command).len; + *((uint8_t **)(ptr + (8+1*sizeof(void*)))) = (uint8_t *) ((*payload20).command).ptr; + *((int8_t*)(ptr + (8+3*sizeof(void*)))) = (*payload20).cancelled; + break; + } + case 5: { + const pumpkin_plugin_event_player_permission_check_event_data_t *payload21 = &(ret).val.player_permission_check_event; + *((int8_t*)(ptr + 0)) = 5; + *((int32_t*)(ptr + 8)) = ((*payload21).player).__handle; + *((size_t*)(ptr + (8+2*sizeof(void*)))) = ((*payload21).permission).len; + *((uint8_t **)(ptr + (8+1*sizeof(void*)))) = (uint8_t *) ((*payload21).permission).ptr; + *((int8_t*)(ptr + (8+3*sizeof(void*)))) = (*payload21).permission_result; + break; + } + case 6: { + const pumpkin_plugin_event_player_move_event_data_t *payload22 = &(ret).val.player_move_event; + *((int8_t*)(ptr + 0)) = 6; + *((int32_t*)(ptr + 8)) = ((*payload22).player).__handle; + *((double*)(ptr + 16)) = ((*payload22).from_position).f0; + *((double*)(ptr + 24)) = ((*payload22).from_position).f1; + *((double*)(ptr + 32)) = ((*payload22).from_position).f2; + *((double*)(ptr + 40)) = ((*payload22).to_position).f0; + *((double*)(ptr + 48)) = ((*payload22).to_position).f1; + *((double*)(ptr + 56)) = ((*payload22).to_position).f2; + *((int8_t*)(ptr + 64)) = (*payload22).cancelled; + break; + } + case 7: { + const pumpkin_plugin_event_player_teleport_event_data_t *payload23 = &(ret).val.player_teleport_event; + *((int8_t*)(ptr + 0)) = 7; + *((int32_t*)(ptr + 8)) = ((*payload23).player).__handle; + *((double*)(ptr + 16)) = ((*payload23).from_position).f0; + *((double*)(ptr + 24)) = ((*payload23).from_position).f1; + *((double*)(ptr + 32)) = ((*payload23).from_position).f2; + *((double*)(ptr + 40)) = ((*payload23).to_position).f0; + *((double*)(ptr + 48)) = ((*payload23).to_position).f1; + *((double*)(ptr + 56)) = ((*payload23).to_position).f2; + *((int8_t*)(ptr + 64)) = (*payload23).cancelled; + break; + } + case 8: { + const pumpkin_plugin_event_player_change_world_event_data_t *payload24 = &(ret).val.player_change_world_event; + *((int8_t*)(ptr + 0)) = 8; + *((int32_t*)(ptr + 8)) = ((*payload24).player).__handle; + *((int32_t*)(ptr + 12)) = ((*payload24).previous_world).__handle; + *((int32_t*)(ptr + 16)) = ((*payload24).new_world).__handle; + *((double*)(ptr + 24)) = ((*payload24).position).f0; + *((double*)(ptr + 32)) = ((*payload24).position).f1; + *((double*)(ptr + 40)) = ((*payload24).position).f2; + *((float*)(ptr + 48)) = (*payload24).yaw; + *((float*)(ptr + 52)) = (*payload24).pitch; + *((int8_t*)(ptr + 56)) = (*payload24).cancelled; + break; + } + case 9: { + const pumpkin_plugin_event_player_exp_change_event_data_t *payload25 = &(ret).val.player_exp_change_event; + *((int8_t*)(ptr + 0)) = 9; + *((int32_t*)(ptr + 8)) = ((*payload25).player).__handle; + *((int32_t*)(ptr + 12)) = (*payload25).amount; + break; + } + case 10: { + const pumpkin_plugin_event_player_item_held_event_data_t *payload26 = &(ret).val.player_item_held_event; + *((int8_t*)(ptr + 0)) = 10; + *((int32_t*)(ptr + 8)) = ((*payload26).player).__handle; + *((int8_t*)(ptr + 12)) = (int32_t) ((*payload26).previous_slot); + *((int8_t*)(ptr + 13)) = (int32_t) ((*payload26).new_slot); + *((int8_t*)(ptr + 14)) = (*payload26).cancelled; + break; + } + case 11: { + const pumpkin_plugin_event_player_changed_main_hand_event_data_t *payload27 = &(ret).val.player_changed_main_hand_event; + *((int8_t*)(ptr + 0)) = 11; + *((int32_t*)(ptr + 8)) = ((*payload27).player).__handle; + *((int8_t*)(ptr + 12)) = (int32_t) (*payload27).main_hand; + break; + } + case 12: { + const pumpkin_plugin_event_player_gamemode_change_event_data_t *payload28 = &(ret).val.player_gamemode_change_event; + *((int8_t*)(ptr + 0)) = 12; + *((int32_t*)(ptr + 8)) = ((*payload28).player).__handle; + *((int8_t*)(ptr + 12)) = (int32_t) (*payload28).previous_gamemode; + *((int8_t*)(ptr + 13)) = (int32_t) (*payload28).new_gamemode; + *((int8_t*)(ptr + 14)) = (*payload28).cancelled; + break; + } + case 13: { + const pumpkin_plugin_event_player_custom_payload_event_data_t *payload29 = &(ret).val.player_custom_payload_event; + *((int8_t*)(ptr + 0)) = 13; + *((int32_t*)(ptr + 8)) = ((*payload29).player).__handle; + *((size_t*)(ptr + (8+2*sizeof(void*)))) = ((*payload29).channel).len; + *((uint8_t **)(ptr + (8+1*sizeof(void*)))) = (uint8_t *) ((*payload29).channel).ptr; + *((size_t*)(ptr + (8+4*sizeof(void*)))) = ((*payload29).data).len; + *((uint8_t **)(ptr + (8+3*sizeof(void*)))) = (uint8_t *) ((*payload29).data).ptr; + break; + } + case 14: { + const pumpkin_plugin_event_player_fish_event_data_t *payload30 = &(ret).val.player_fish_event; + *((int8_t*)(ptr + 0)) = 14; + *((int32_t*)(ptr + 8)) = ((*payload30).player).__handle; + if (((*payload30).caught_uuid).is_some) { + const plugin_string_t *payload32 = &((*payload30).caught_uuid).val; + *((int8_t*)(ptr + (8+1*sizeof(void*)))) = 1; + *((size_t*)(ptr + (8+3*sizeof(void*)))) = (*payload32).len; + *((uint8_t **)(ptr + (8+2*sizeof(void*)))) = (uint8_t *) (*payload32).ptr; + } else { + *((int8_t*)(ptr + (8+1*sizeof(void*)))) = 0; + } + *((size_t*)(ptr + (8+5*sizeof(void*)))) = ((*payload30).caught_type).len; + *((uint8_t **)(ptr + (8+4*sizeof(void*)))) = (uint8_t *) ((*payload30).caught_type).ptr; + *((size_t*)(ptr + (8+7*sizeof(void*)))) = ((*payload30).hook_uuid).len; + *((uint8_t **)(ptr + (8+6*sizeof(void*)))) = (uint8_t *) ((*payload30).hook_uuid).ptr; + *((int8_t*)(ptr + (8+8*sizeof(void*)))) = (int32_t) (*payload30).state; + *((int8_t*)(ptr + (9+8*sizeof(void*)))) = (int32_t) (*payload30).hand; + *((int32_t*)(ptr + (12+8*sizeof(void*)))) = (*payload30).exp_to_drop; + *((int8_t*)(ptr + (16+8*sizeof(void*)))) = (*payload30).cancelled; + break; + } + case 15: { + const pumpkin_plugin_event_player_egg_throw_event_data_t *payload33 = &(ret).val.player_egg_throw_event; + *((int8_t*)(ptr + 0)) = 15; + *((int32_t*)(ptr + 8)) = ((*payload33).player).__handle; + *((size_t*)(ptr + (8+2*sizeof(void*)))) = ((*payload33).egg_uuid).len; + *((uint8_t **)(ptr + (8+1*sizeof(void*)))) = (uint8_t *) ((*payload33).egg_uuid).ptr; + *((int8_t*)(ptr + (8+3*sizeof(void*)))) = (*payload33).hatching; + *((int8_t*)(ptr + (9+3*sizeof(void*)))) = (int32_t) ((*payload33).num_hatches); + *((size_t*)(ptr + (8+5*sizeof(void*)))) = ((*payload33).hatching_type).len; + *((uint8_t **)(ptr + (8+4*sizeof(void*)))) = (uint8_t *) ((*payload33).hatching_type).ptr; + *((int8_t*)(ptr + (8+6*sizeof(void*)))) = (*payload33).cancelled; + break; + } + case 16: { + const pumpkin_plugin_event_player_interact_unknown_entity_event_data_t *payload34 = &(ret).val.player_interact_unknown_entity_event; + *((int8_t*)(ptr + 0)) = 16; + *((int32_t*)(ptr + 8)) = ((*payload34).player).__handle; + *((int32_t*)(ptr + 12)) = (*payload34).entity_id; + *((int8_t*)(ptr + 16)) = (int32_t) (*payload34).action; + *((int8_t*)(ptr + 17)) = (*payload34).cancelled; + break; + } + case 17: { + const pumpkin_plugin_event_player_interact_event_data_t *payload35 = &(ret).val.player_interact_event; + *((int8_t*)(ptr + 0)) = 17; + *((int32_t*)(ptr + 8)) = ((*payload35).player).__handle; + *((int8_t*)(ptr + 12)) = (int32_t) (*payload35).action; + if (((*payload35).clicked_pos).is_some) { + const pumpkin_plugin_event_block_position_t *payload37 = &((*payload35).clicked_pos).val; + *((int8_t*)(ptr + 16)) = 1; + *((int32_t*)(ptr + 20)) = (*payload37).f0; + *((int32_t*)(ptr + 24)) = (*payload37).f1; + *((int32_t*)(ptr + 28)) = (*payload37).f2; + } else { + *((int8_t*)(ptr + 16)) = 0; + } + *((size_t*)(ptr + (32+1*sizeof(void*)))) = (((*payload35).item).registry_key).len; + *((uint8_t **)(ptr + 32)) = (uint8_t *) (((*payload35).item).registry_key).ptr; + *((int8_t*)(ptr + (32+2*sizeof(void*)))) = (int32_t) (((*payload35).item).count); + *((size_t*)(ptr + (32+4*sizeof(void*)))) = ((*payload35).block).len; + *((uint8_t **)(ptr + (32+3*sizeof(void*)))) = (uint8_t *) ((*payload35).block).ptr; + *((int8_t*)(ptr + (32+5*sizeof(void*)))) = (*payload35).cancelled; + break; + } + case 18: { + const pumpkin_plugin_event_player_toggle_sneak_event_data_t *payload38 = &(ret).val.player_toggle_sneak_event; + *((int8_t*)(ptr + 0)) = 18; + *((int32_t*)(ptr + 8)) = ((*payload38).player).__handle; + *((int8_t*)(ptr + 12)) = (*payload38).is_sneaking; + *((int8_t*)(ptr + 13)) = (*payload38).cancelled; + break; + } + case 19: { + const pumpkin_plugin_event_player_toggle_flight_event_data_t *payload39 = &(ret).val.player_toggle_flight_event; + *((int8_t*)(ptr + 0)) = 19; + *((int32_t*)(ptr + 8)) = ((*payload39).player).__handle; + *((int8_t*)(ptr + 12)) = (*payload39).is_flying; + *((int8_t*)(ptr + 13)) = (*payload39).cancelled; + break; + } + case 20: { + const pumpkin_plugin_event_player_toggle_sprint_event_data_t *payload40 = &(ret).val.player_toggle_sprint_event; + *((int8_t*)(ptr + 0)) = 20; + *((int32_t*)(ptr + 8)) = ((*payload40).player).__handle; + *((int8_t*)(ptr + 12)) = (*payload40).is_sprinting; + *((int8_t*)(ptr + 13)) = (*payload40).cancelled; + break; + } + case 21: { + const pumpkin_plugin_event_block_redstone_event_data_t *payload41 = &(ret).val.block_redstone_event; + *((int8_t*)(ptr + 0)) = 21; + *((int32_t*)(ptr + 8)) = ((*payload41).target_world).__handle; + *((int16_t*)(ptr + 12)) = (int32_t) ((*payload41).state_id); + *((int32_t*)(ptr + 16)) = ((*payload41).block_position).f0; + *((int32_t*)(ptr + 20)) = ((*payload41).block_position).f1; + *((int32_t*)(ptr + 24)) = ((*payload41).block_position).f2; + *((int32_t*)(ptr + 28)) = (*payload41).old_current; + *((int32_t*)(ptr + 32)) = (*payload41).new_current; + *((int8_t*)(ptr + 36)) = (*payload41).cancelled; + break; + } + case 22: { + const pumpkin_plugin_event_block_break_event_data_t *payload42 = &(ret).val.block_break_event; + *((int8_t*)(ptr + 0)) = 22; + if (((*payload42).player).is_some) { + const pumpkin_plugin_event_own_player_t *payload44 = &((*payload42).player).val; + *((int8_t*)(ptr + 8)) = 1; + *((int32_t*)(ptr + 12)) = (*payload44).__handle; + } else { + *((int8_t*)(ptr + 8)) = 0; + } + *((size_t*)(ptr + (16+1*sizeof(void*)))) = ((*payload42).block).len; + *((uint8_t **)(ptr + 16)) = (uint8_t *) ((*payload42).block).ptr; + *((int32_t*)(ptr + (16+2*sizeof(void*)))) = ((*payload42).block_position).f0; + *((int32_t*)(ptr + (20+2*sizeof(void*)))) = ((*payload42).block_position).f1; + *((int32_t*)(ptr + (24+2*sizeof(void*)))) = ((*payload42).block_position).f2; + *((int32_t*)(ptr + (28+2*sizeof(void*)))) = (int32_t) ((*payload42).exp); + *((int8_t*)(ptr + (32+2*sizeof(void*)))) = (*payload42).should_drop; + *((int8_t*)(ptr + (33+2*sizeof(void*)))) = (*payload42).cancelled; + break; + } + case 23: { + const pumpkin_plugin_event_block_burn_event_data_t *payload45 = &(ret).val.block_burn_event; + *((int8_t*)(ptr + 0)) = 23; + *((size_t*)(ptr + (8+1*sizeof(void*)))) = ((*payload45).igniting_block).len; + *((uint8_t **)(ptr + 8)) = (uint8_t *) ((*payload45).igniting_block).ptr; + *((size_t*)(ptr + (8+3*sizeof(void*)))) = ((*payload45).block).len; + *((uint8_t **)(ptr + (8+2*sizeof(void*)))) = (uint8_t *) ((*payload45).block).ptr; + *((int8_t*)(ptr + (8+4*sizeof(void*)))) = (*payload45).cancelled; + break; + } + case 24: { + const pumpkin_plugin_event_block_can_build_event_data_t *payload46 = &(ret).val.block_can_build_event; + *((int8_t*)(ptr + 0)) = 24; + *((size_t*)(ptr + (8+1*sizeof(void*)))) = ((*payload46).block_to_build).len; + *((uint8_t **)(ptr + 8)) = (uint8_t *) ((*payload46).block_to_build).ptr; + *((int8_t*)(ptr + (8+2*sizeof(void*)))) = (*payload46).buildable; + *((int32_t*)(ptr + (12+2*sizeof(void*)))) = ((*payload46).player).__handle; + *((size_t*)(ptr + (16+3*sizeof(void*)))) = ((*payload46).block).len; + *((uint8_t **)(ptr + (16+2*sizeof(void*)))) = (uint8_t *) ((*payload46).block).ptr; + *((int8_t*)(ptr + (16+4*sizeof(void*)))) = (*payload46).cancelled; + break; + } + case 25: { + const pumpkin_plugin_event_block_grow_event_data_t *payload47 = &(ret).val.block_grow_event; + *((int8_t*)(ptr + 0)) = 25; + *((int32_t*)(ptr + 8)) = ((*payload47).target_world).__handle; + *((size_t*)(ptr + (8+2*sizeof(void*)))) = ((*payload47).old_block).len; + *((uint8_t **)(ptr + (8+1*sizeof(void*)))) = (uint8_t *) ((*payload47).old_block).ptr; + *((int16_t*)(ptr + (8+3*sizeof(void*)))) = (int32_t) ((*payload47).old_state_id); + *((size_t*)(ptr + (8+5*sizeof(void*)))) = ((*payload47).new_block).len; + *((uint8_t **)(ptr + (8+4*sizeof(void*)))) = (uint8_t *) ((*payload47).new_block).ptr; + *((int16_t*)(ptr + (8+6*sizeof(void*)))) = (int32_t) ((*payload47).new_state_id); + *((int32_t*)(ptr + (12+6*sizeof(void*)))) = ((*payload47).block_position).f0; + *((int32_t*)(ptr + (16+6*sizeof(void*)))) = ((*payload47).block_position).f1; + *((int32_t*)(ptr + (20+6*sizeof(void*)))) = ((*payload47).block_position).f2; + *((int8_t*)(ptr + (24+6*sizeof(void*)))) = (*payload47).cancelled; + break; + } + case 26: { + const pumpkin_plugin_event_block_place_event_data_t *payload48 = &(ret).val.block_place_event; + *((int8_t*)(ptr + 0)) = 26; + *((int32_t*)(ptr + 8)) = ((*payload48).player).__handle; + *((size_t*)(ptr + (8+2*sizeof(void*)))) = ((*payload48).block_placed).len; + *((uint8_t **)(ptr + (8+1*sizeof(void*)))) = (uint8_t *) ((*payload48).block_placed).ptr; + *((size_t*)(ptr + (8+4*sizeof(void*)))) = ((*payload48).block_placed_against).len; + *((uint8_t **)(ptr + (8+3*sizeof(void*)))) = (uint8_t *) ((*payload48).block_placed_against).ptr; + *((int32_t*)(ptr + (8+5*sizeof(void*)))) = ((*payload48).block_position).f0; + *((int32_t*)(ptr + (12+5*sizeof(void*)))) = ((*payload48).block_position).f1; + *((int32_t*)(ptr + (16+5*sizeof(void*)))) = ((*payload48).block_position).f2; + *((int8_t*)(ptr + (20+5*sizeof(void*)))) = (*payload48).can_build; + *((int8_t*)(ptr + (21+5*sizeof(void*)))) = (*payload48).cancelled; + break; + } + case 27: { + const pumpkin_plugin_event_server_command_event_data_t *payload49 = &(ret).val.server_command_event; + *((int8_t*)(ptr + 0)) = 27; + *((size_t*)(ptr + (8+1*sizeof(void*)))) = ((*payload49).command).len; + *((uint8_t **)(ptr + 8)) = (uint8_t *) ((*payload49).command).ptr; + *((int8_t*)(ptr + (8+2*sizeof(void*)))) = (*payload49).cancelled; + break; + } + case 28: { + const pumpkin_plugin_event_spawn_change_event_data_t *payload50 = &(ret).val.spawn_change_event; + *((int8_t*)(ptr + 0)) = 28; + *((int32_t*)(ptr + 8)) = ((*payload50).target_world).__handle; + *((int32_t*)(ptr + 12)) = ((*payload50).previous_position).f0; + *((int32_t*)(ptr + 16)) = ((*payload50).previous_position).f1; + *((int32_t*)(ptr + 20)) = ((*payload50).previous_position).f2; + *((float*)(ptr + 24)) = (*payload50).previous_yaw; + *((float*)(ptr + 28)) = (*payload50).previous_pitch; + *((int32_t*)(ptr + 32)) = ((*payload50).new_position).f0; + *((int32_t*)(ptr + 36)) = ((*payload50).new_position).f1; + *((int32_t*)(ptr + 40)) = ((*payload50).new_position).f2; + *((float*)(ptr + 44)) = (*payload50).new_yaw; + *((float*)(ptr + 48)) = (*payload50).new_pitch; + break; + } + case 29: { + const pumpkin_plugin_event_server_broadcast_event_data_t *payload51 = &(ret).val.server_broadcast_event; + *((int8_t*)(ptr + 0)) = 29; + *((int32_t*)(ptr + 8)) = ((*payload51).message).__handle; + *((int32_t*)(ptr + 12)) = ((*payload51).sender).__handle; + *((int8_t*)(ptr + 16)) = (*payload51).cancelled; + break; + } + } + return ptr; +} + +__attribute__((__export_name__("handle-command"))) +uint8_t * __wasm_export_exports_plugin_handle_command(int32_t arg, int32_t arg0, int32_t arg1, int32_t arg2) { + plugin_result_s32_command_error_t ret; + int32_t ok; + plugin_command_error_t err; + ret.is_err = !exports_plugin_handle_command((uint32_t) (arg), (plugin_own_command_sender_t) { arg0 }, (plugin_own_server_instance_t) { arg1 }, (plugin_own_consumed_args_t) { arg2 }, &ok, &err); + if (ret.is_err) { + ret.val.err = err; + } + if (!ret.is_err) { + ret.val.ok = ok; + } + uint8_t *ptr = (uint8_t *) &RET_AREA; + if ((ret).is_err) { + const plugin_command_error_t *payload3 = &(ret).val.err;*((int8_t*)(ptr + 0)) = 1; + switch ((int32_t) (*payload3).tag) { + case 0: { + const plugin_option_string_t *payload4 = &(*payload3).val.invalid_consumption; + *((int8_t*)(ptr + sizeof(void*))) = 0; + if ((*payload4).is_some) { + const plugin_string_t *payload6 = &(*payload4).val; + *((int8_t*)(ptr + (2*sizeof(void*)))) = 1; + *((size_t*)(ptr + (4*sizeof(void*)))) = (*payload6).len; + *((uint8_t **)(ptr + (3*sizeof(void*)))) = (uint8_t *) (*payload6).ptr; + } else { + *((int8_t*)(ptr + (2*sizeof(void*)))) = 0; + } + break; + } + case 1: { + *((int8_t*)(ptr + sizeof(void*))) = 1; + break; + } + case 2: { + *((int8_t*)(ptr + sizeof(void*))) = 2; + break; + } + case 3: { + const pumpkin_plugin_command_own_text_component_t *payload9 = &(*payload3).val.command_failed; + *((int8_t*)(ptr + sizeof(void*))) = 3; + *((int32_t*)(ptr + (2*sizeof(void*)))) = (*payload9).__handle; + break; + } + } + } else { + const int32_t *payload = &(ret).val.ok;*((int8_t*)(ptr + 0)) = 0; + *((int32_t*)(ptr + sizeof(void*))) = *payload; + } + return ptr; +} + +__attribute__((__export_name__("handle-task"))) +void __wasm_export_exports_plugin_handle_task(int32_t arg, int32_t arg0) { + exports_plugin_handle_task((uint32_t) (arg), (plugin_own_server_instance_t) { arg0 }); +} + +__attribute__((__export_name__("pumpkin:plugin/metadata#get-metadata"))) +uint8_t * __wasm_export_exports_pumpkin_plugin_metadata_get_metadata(void) { + exports_pumpkin_plugin_metadata_plugin_metadata_t ret; + exports_pumpkin_plugin_metadata_get_metadata(&ret); + uint8_t *ptr = (uint8_t *) &RET_AREA; + *((size_t*)(ptr + sizeof(void*))) = ((ret).name).len; + *((uint8_t **)(ptr + 0)) = (uint8_t *) ((ret).name).ptr; + *((size_t*)(ptr + (3*sizeof(void*)))) = ((ret).version).len; + *((uint8_t **)(ptr + (2*sizeof(void*)))) = (uint8_t *) ((ret).version).ptr; + *((size_t*)(ptr + (5*sizeof(void*)))) = ((ret).authors).len; + *((uint8_t **)(ptr + (4*sizeof(void*)))) = (uint8_t *) ((ret).authors).ptr; + *((size_t*)(ptr + (7*sizeof(void*)))) = ((ret).description).len; + *((uint8_t **)(ptr + (6*sizeof(void*)))) = (uint8_t *) ((ret).description).ptr; + *((size_t*)(ptr + (9*sizeof(void*)))) = ((ret).dependencies).len; + *((uint8_t **)(ptr + (8*sizeof(void*)))) = (uint8_t *) ((ret).dependencies).ptr; + return ptr; +} + +// Ensure that the *_component_type.o object is linked in + +extern void __component_type_object_force_link_plugin(void); +__attribute__((used)) +void __component_type_object_force_link_plugin_public_use_in_this_compilation_unit(void) { + __component_type_object_force_link_plugin(); +} diff --git a/src/gen/plugin.h b/src/gen/plugin.h new file mode 100644 index 0000000..f0ed255 --- /dev/null +++ b/src/gen/plugin.h @@ -0,0 +1,2369 @@ +// Generated by `wit-bindgen` 0.56.0. DO NOT EDIT! +#ifndef __BINDINGS_PLUGIN_H +#define __BINDINGS_PLUGIN_H +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +typedef struct plugin_string_t { + uint8_t*ptr; + size_t len; +} plugin_string_t; + +typedef uint8_t pumpkin_plugin_logging_level_t; + +#define PUMPKIN_PLUGIN_LOGGING_LEVEL_TRACE 0 +#define PUMPKIN_PLUGIN_LOGGING_LEVEL_DEBUG 1 +#define PUMPKIN_PLUGIN_LOGGING_LEVEL_INFO 2 +#define PUMPKIN_PLUGIN_LOGGING_LEVEL_WARN 3 +#define PUMPKIN_PLUGIN_LOGGING_LEVEL_ERROR 4 + +typedef struct { + uint8_t *ptr; + size_t len; +} plugin_list_u8_t; + +// Serialized text component as a postcard byte array. +// @deprecated Use the text-component resource from the text interface instead. +typedef struct pumpkin_plugin_common_raw_text_component_t { + uint8_t *ptr; + size_t len; +} pumpkin_plugin_common_raw_text_component_t; + +// A position in the world grid (integers). +typedef struct pumpkin_plugin_common_block_position_t { + int32_t f0; + int32_t f1; + int32_t f2; +} pumpkin_plugin_common_block_position_t; + +// A precise coordinate in the world (floats). +typedef struct pumpkin_plugin_common_position_t { + double f0; + double f1; + double f2; +} pumpkin_plugin_common_position_t; + +// Represents the hands of a player. +typedef uint8_t pumpkin_plugin_common_hand_t; + +#define PUMPKIN_PLUGIN_COMMON_HAND_LEFT 0 +#define PUMPKIN_PLUGIN_COMMON_HAND_RIGHT 1 + +// Represents the game modes available in Minecraft. +typedef uint8_t pumpkin_plugin_common_game_mode_t; + +#define PUMPKIN_PLUGIN_COMMON_GAME_MODE_SURVIVAL 0 +#define PUMPKIN_PLUGIN_COMMON_GAME_MODE_CREATIVE 1 +#define PUMPKIN_PLUGIN_COMMON_GAME_MODE_ADVENTURE 2 +#define PUMPKIN_PLUGIN_COMMON_GAME_MODE_SPECTATOR 3 + +// The 16 base Minecraft colors. +typedef uint8_t pumpkin_plugin_common_named_color_t; + +#define PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_BLACK 0 +#define PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_DARK_BLUE 1 +#define PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_DARK_GREEN 2 +#define PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_DARK_AQUA 3 +#define PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_DARK_RED 4 +#define PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_DARK_PURPLE 5 +#define PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_GOLD 6 +#define PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_GRAY 7 +#define PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_DARK_GRAY 8 +#define PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_BLUE 9 +#define PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_GREEN 10 +#define PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_AQUA 11 +#define PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_RED 12 +#define PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_LIGHT_PURPLE 13 +#define PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_YELLOW 14 +#define PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_WHITE 15 + +// An RGB color represented by its red, green, and blue components. +typedef struct pumpkin_plugin_common_rgb_color_t { + uint8_t r; + uint8_t g; + uint8_t b; +} pumpkin_plugin_common_rgb_color_t; + +// An ARGB color with alpha (transparency) channel. +typedef struct pumpkin_plugin_common_argb_color_t { + uint8_t a; + uint8_t r; + uint8_t g; + uint8_t b; +} pumpkin_plugin_common_argb_color_t; + +// Represents a stack of items with its type and count. +typedef struct pumpkin_plugin_common_item_stack_t { + // The unique registry key (e.g., "minecraft:diamond"). + plugin_string_t registry_key; + // The number of items in the stack. + uint8_t count; +} pumpkin_plugin_common_item_stack_t; + +// Represents the various poses an entity can be in. +typedef uint8_t pumpkin_plugin_common_entity_pose_t; + +#define PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_STANDING 0 +#define PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_FALL_FLYING 1 +#define PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_SLEEPING 2 +#define PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_SWIMMING 3 +#define PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_SPIN_ATTACK 4 +#define PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_CROUCHING 5 +#define PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_LONG_JUMPING 6 +#define PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_DYING 7 +#define PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_CROAKING 8 +#define PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_USING_TONGUE 9 +#define PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_SITTING 10 +#define PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_ROARING 11 +#define PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_SNIFFING 12 +#define PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_EMERGING 13 +#define PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_DIGGING 14 +#define PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_SLIDING 15 +#define PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_SHOOTING 16 +#define PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_INHALING 17 + +// All Minecraft-supported locales. +typedef uint8_t pumpkin_plugin_common_locale_t; + +#define PUMPKIN_PLUGIN_COMMON_LOCALE_AF_ZA 0 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_AR_SA 1 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_AST_ES 2 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_AZ_AZ 3 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_BA_RU 4 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_BAR 5 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_BE_BY 6 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_BG_BG 7 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_BR_FR 8 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_BRB 9 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_BS_BA 10 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_CA_ES 11 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_CS_CZ 12 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_CY_GB 13 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_DA_DK 14 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_DE_AT 15 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_DE_CH 16 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_DE_DE 17 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_EL_GR 18 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_EN_AU 19 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_EN_CA 20 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_EN_GB 21 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_EN_NZ 22 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_EN_PT 23 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_EN_UD 24 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_EN_US 25 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_ENP 26 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_ENWS 27 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_EO_UY 28 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_ES_AR 29 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_ES_CL 30 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_ES_EC 31 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_ES_ES 32 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_ES_MX 33 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_ES_UY 34 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_ES_VE 35 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_ESAN 36 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_ET_EE 37 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_EU_ES 38 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_FA_IR 39 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_FI_FI 40 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_FIL_PH 41 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_FO_FO 42 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_FR_CA 43 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_FR_FR 44 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_FRA_DE 45 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_FUR_IT 46 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_FY_NL 47 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_GA_IE 48 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_GD_GB 49 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_GL_ES 50 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_HAW_US 51 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_HE_IL 52 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_HI_IN 53 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_HR_HR 54 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_HU_HU 55 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_HY_AM 56 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_ID_ID 57 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_IG_NG 58 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_IO_EN 59 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_IS_IS 60 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_ISV 61 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_IT_IT 62 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_JA_JP 63 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_JBO_EN 64 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_KA_GE 65 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_KK_KZ 66 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_KN_IN 67 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_KO_KR 68 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_KSH 69 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_KW_GB 70 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_LA_LA 71 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_LB_LU 72 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_LI_LI 73 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_LMO 74 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_LO_LA 75 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_LOL_US 76 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_LT_LT 77 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_LV_LV 78 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_LZH 79 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_MK_MK 80 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_MN_MN 81 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_MS_MY 82 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_MT_MT 83 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_NAH 84 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_NDS_DE 85 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_NL_BE 86 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_NL_NL 87 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_NN_NO 88 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_NO_NO 89 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_OC_FR 90 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_OVD 91 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_PL_PL 92 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_PT_BR 93 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_PT_PT 94 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_QYA_AA 95 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_RO_RO 96 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_RPR 97 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_RU_RU 98 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_RY_UA 99 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_SAH_SAH 100 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_SE_NO 101 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_SK_SK 102 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_SL_SI 103 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_SO_SO 104 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_SQ_AL 105 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_SR_CS 106 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_SR_SP 107 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_SV_SE 108 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_SXU 109 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_SZL 110 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_TA_IN 111 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_TH_TH 112 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_TL_PH 113 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_TLH_AA 114 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_TOK 115 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_TR_TR 116 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_TT_RU 117 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_UK_UA 118 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_VAL_ES 119 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_VEC_IT 120 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_VI_VN 121 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_YI_DE 122 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_YO_NG 123 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_ZH_CN 124 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_ZH_HK 125 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_ZH_TW 126 +#define PUMPKIN_PLUGIN_COMMON_LOCALE_ZLM_ARAB 127 + +typedef pumpkin_plugin_common_named_color_t pumpkin_plugin_text_named_color_t; + +typedef pumpkin_plugin_common_rgb_color_t pumpkin_plugin_text_rgb_color_t; + +typedef pumpkin_plugin_common_argb_color_t pumpkin_plugin_text_argb_color_t; + +typedef struct pumpkin_plugin_text_own_text_component_t { + int32_t __handle; +} pumpkin_plugin_text_own_text_component_t; + +typedef struct pumpkin_plugin_text_borrow_text_component_t { + int32_t __handle; +} pumpkin_plugin_text_borrow_text_component_t; + +typedef struct { + pumpkin_plugin_text_own_text_component_t *ptr; + size_t len; +} pumpkin_plugin_text_list_own_text_component_t; + +typedef struct { + bool is_some; + pumpkin_plugin_text_own_text_component_t val; +} pumpkin_plugin_text_option_own_text_component_t; + +typedef pumpkin_plugin_common_item_stack_t pumpkin_plugin_gui_item_stack_t; + +typedef uint8_t pumpkin_plugin_gui_gui_type_t; + +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_GENERIC_9X1 0 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_GENERIC_9X2 1 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_GENERIC_9X3 2 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_GENERIC_9X4 3 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_GENERIC_9X5 4 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_GENERIC_9X6 5 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_GENERIC_3X3 6 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_CRAFTER_3X3 7 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_ANVIL 8 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_BEACON 9 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_BLAST_FURNACE 10 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_BREWING_STAND 11 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_CRAFTING 12 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_ENCHANTMENT 13 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_FURNACE 14 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_GRINDSTONE 15 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_HOPPER 16 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_LECTERN 17 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_LOOM 18 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_MERCHANT 19 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_SHULKER_BOX 20 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_SMITHING 21 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_SMOKER 22 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_CARTOGRAPHY_TABLE 23 +#define PUMPKIN_PLUGIN_GUI_GUI_TYPE_STONECUTTER 24 + +typedef struct pumpkin_plugin_gui_own_gui_t { + int32_t __handle; +} pumpkin_plugin_gui_own_gui_t; + +typedef struct pumpkin_plugin_gui_borrow_gui_t { + int32_t __handle; +} pumpkin_plugin_gui_borrow_gui_t; + +typedef pumpkin_plugin_text_own_text_component_t pumpkin_plugin_gui_own_text_component_t; + +typedef struct { + bool is_some; + pumpkin_plugin_gui_item_stack_t val; +} pumpkin_plugin_gui_option_item_stack_t; + +typedef pumpkin_plugin_common_named_color_t pumpkin_plugin_scoreboard_named_color_t; + +typedef uint8_t pumpkin_plugin_scoreboard_render_type_t; + +#define PUMPKIN_PLUGIN_SCOREBOARD_RENDER_TYPE_INTEGER 0 +#define PUMPKIN_PLUGIN_SCOREBOARD_RENDER_TYPE_HEARTS 1 + +typedef uint8_t pumpkin_plugin_scoreboard_display_slot_t; + +#define PUMPKIN_PLUGIN_SCOREBOARD_DISPLAY_SLOT_PLAYER_LIST 0 +#define PUMPKIN_PLUGIN_SCOREBOARD_DISPLAY_SLOT_SIDEBAR 1 +#define PUMPKIN_PLUGIN_SCOREBOARD_DISPLAY_SLOT_BELOW_NAME 2 +#define PUMPKIN_PLUGIN_SCOREBOARD_DISPLAY_SLOT_SIDEBAR_TEAM_BLACK 3 +#define PUMPKIN_PLUGIN_SCOREBOARD_DISPLAY_SLOT_SIDEBAR_TEAM_DARK_BLUE 4 +#define PUMPKIN_PLUGIN_SCOREBOARD_DISPLAY_SLOT_SIDEBAR_TEAM_DARK_GREEN 5 +#define PUMPKIN_PLUGIN_SCOREBOARD_DISPLAY_SLOT_SIDEBAR_TEAM_DARK_AQUA 6 +#define PUMPKIN_PLUGIN_SCOREBOARD_DISPLAY_SLOT_SIDEBAR_TEAM_DARK_RED 7 +#define PUMPKIN_PLUGIN_SCOREBOARD_DISPLAY_SLOT_SIDEBAR_TEAM_DARK_PURPLE 8 +#define PUMPKIN_PLUGIN_SCOREBOARD_DISPLAY_SLOT_SIDEBAR_TEAM_GOLD 9 +#define PUMPKIN_PLUGIN_SCOREBOARD_DISPLAY_SLOT_SIDEBAR_TEAM_GRAY 10 +#define PUMPKIN_PLUGIN_SCOREBOARD_DISPLAY_SLOT_SIDEBAR_TEAM_DARK_GRAY 11 +#define PUMPKIN_PLUGIN_SCOREBOARD_DISPLAY_SLOT_SIDEBAR_TEAM_BLUE 12 +#define PUMPKIN_PLUGIN_SCOREBOARD_DISPLAY_SLOT_SIDEBAR_TEAM_GREEN 13 +#define PUMPKIN_PLUGIN_SCOREBOARD_DISPLAY_SLOT_SIDEBAR_TEAM_AQUA 14 +#define PUMPKIN_PLUGIN_SCOREBOARD_DISPLAY_SLOT_SIDEBAR_TEAM_RED 15 +#define PUMPKIN_PLUGIN_SCOREBOARD_DISPLAY_SLOT_SIDEBAR_TEAM_LIGHT_PURPLE 16 +#define PUMPKIN_PLUGIN_SCOREBOARD_DISPLAY_SLOT_SIDEBAR_TEAM_YELLOW 17 +#define PUMPKIN_PLUGIN_SCOREBOARD_DISPLAY_SLOT_SIDEBAR_TEAM_WHITE 18 + +typedef uint8_t pumpkin_plugin_scoreboard_nametag_visibility_t; + +#define PUMPKIN_PLUGIN_SCOREBOARD_NAMETAG_VISIBILITY_ALWAYS 0 +#define PUMPKIN_PLUGIN_SCOREBOARD_NAMETAG_VISIBILITY_NEVER 1 +#define PUMPKIN_PLUGIN_SCOREBOARD_NAMETAG_VISIBILITY_HIDE_FOR_OTHER_TEAMS 2 +#define PUMPKIN_PLUGIN_SCOREBOARD_NAMETAG_VISIBILITY_HIDE_FOR_OWN_TEAM 3 + +typedef uint8_t pumpkin_plugin_scoreboard_collision_rule_t; + +#define PUMPKIN_PLUGIN_SCOREBOARD_COLLISION_RULE_ALWAYS 0 +#define PUMPKIN_PLUGIN_SCOREBOARD_COLLISION_RULE_NEVER 1 +#define PUMPKIN_PLUGIN_SCOREBOARD_COLLISION_RULE_PUSH_OTHER_TEAMS 2 +#define PUMPKIN_PLUGIN_SCOREBOARD_COLLISION_RULE_PUSH_OWN_TEAM 3 + +typedef pumpkin_plugin_text_own_text_component_t pumpkin_plugin_scoreboard_own_text_component_t; + +typedef struct pumpkin_plugin_scoreboard_team_settings_t { + pumpkin_plugin_scoreboard_own_text_component_t display_name; + bool friendly_fire; + bool see_friendly_invisibles; + pumpkin_plugin_scoreboard_nametag_visibility_t nametag_visibility; + pumpkin_plugin_scoreboard_collision_rule_t collision_rule; + pumpkin_plugin_scoreboard_named_color_t color; + pumpkin_plugin_scoreboard_own_text_component_t prefix; + pumpkin_plugin_scoreboard_own_text_component_t suffix; +} pumpkin_plugin_scoreboard_team_settings_t; + +typedef struct pumpkin_plugin_scoreboard_own_scoreboard_t { + int32_t __handle; +} pumpkin_plugin_scoreboard_own_scoreboard_t; + +typedef struct pumpkin_plugin_scoreboard_borrow_scoreboard_t { + int32_t __handle; +} pumpkin_plugin_scoreboard_borrow_scoreboard_t; + +typedef pumpkin_plugin_common_position_t pumpkin_plugin_world_position_t; + +typedef pumpkin_plugin_common_entity_pose_t pumpkin_plugin_world_entity_pose_t; + +// Defines how a block reacts when pushed by a piston. +typedef uint8_t pumpkin_plugin_world_piston_behavior_t; + +// Normal behavior; the block can be pushed and pulled. +#define PUMPKIN_PLUGIN_WORLD_PISTON_BEHAVIOR_NORMAL 0 +// The block is destroyed when pushed. +#define PUMPKIN_PLUGIN_WORLD_PISTON_BEHAVIOR_DESTROY 1 +// The block cannot be pushed or pulled. +#define PUMPKIN_PLUGIN_WORLD_PISTON_BEHAVIOR_BLOCK 2 +// The block is ignored by pistons. +#define PUMPKIN_PLUGIN_WORLD_PISTON_BEHAVIOR_IGNORE 3 +// The block can only be pushed, not pulled. +#define PUMPKIN_PLUGIN_WORLD_PISTON_BEHAVIOR_PUSH_ONLY 4 + +// Categories for sounds to control their volume independently. +typedef uint8_t pumpkin_plugin_world_sound_category_t; + +#define PUMPKIN_PLUGIN_WORLD_SOUND_CATEGORY_MASTER 0 +#define PUMPKIN_PLUGIN_WORLD_SOUND_CATEGORY_MUSIC 1 +#define PUMPKIN_PLUGIN_WORLD_SOUND_CATEGORY_RECORDS 2 +#define PUMPKIN_PLUGIN_WORLD_SOUND_CATEGORY_WEATHER 3 +#define PUMPKIN_PLUGIN_WORLD_SOUND_CATEGORY_BLOCKS 4 +#define PUMPKIN_PLUGIN_WORLD_SOUND_CATEGORY_HOSTILE 5 +#define PUMPKIN_PLUGIN_WORLD_SOUND_CATEGORY_NEUTRAL 6 +#define PUMPKIN_PLUGIN_WORLD_SOUND_CATEGORY_PLAYERS 7 +#define PUMPKIN_PLUGIN_WORLD_SOUND_CATEGORY_AMBIENT 8 +#define PUMPKIN_PLUGIN_WORLD_SOUND_CATEGORY_VOICE 9 + +// Defines how an explosion interacts with blocks in the world. +typedef uint8_t pumpkin_plugin_world_explosion_interaction_t; + +// No interaction with blocks. +#define PUMPKIN_PLUGIN_WORLD_EXPLOSION_INTERACTION_NONE 0 +// Blocks are destroyed and may drop loot. +#define PUMPKIN_PLUGIN_WORLD_EXPLOSION_INTERACTION_BLOCK 1 +// Interaction typical for mob-caused explosions. +#define PUMPKIN_PLUGIN_WORLD_EXPLOSION_INTERACTION_MOB 2 +// Interaction typical for TNT explosions. +#define PUMPKIN_PLUGIN_WORLD_EXPLOSION_INTERACTION_TNT 3 +// Triggers specific block behaviors. +#define PUMPKIN_PLUGIN_WORLD_EXPLOSION_INTERACTION_TRIGGER 4 + +// Flags used to control block updates and notifications. +typedef uint8_t pumpkin_plugin_world_block_flags_t; + +// Notifies neighbor blocks of the change. +#define PUMPKIN_PLUGIN_WORLD_BLOCK_FLAGS_NOTIFY_NEIGHBORS (1 << 0) +// Notifies client listeners of the change. +#define PUMPKIN_PLUGIN_WORLD_BLOCK_FLAGS_NOTIFY_LISTENERS (1 << 1) +// Forces the block state even if it's the same. +#define PUMPKIN_PLUGIN_WORLD_BLOCK_FLAGS_FORCE_STATE (1 << 2) +// Skips dropping items when the block is removed. +#define PUMPKIN_PLUGIN_WORLD_BLOCK_FLAGS_SKIP_DROPS (1 << 3) +// Indicates the block was moved (e.g., by a piston). +#define PUMPKIN_PLUGIN_WORLD_BLOCK_FLAGS_MOVED (1 << 4) +// Skips state replacement for redstone wires. +#define PUMPKIN_PLUGIN_WORLD_BLOCK_FLAGS_SKIP_REDSTONE_WIRE_STATE_REPLACEMENT (1 << 5) +// Skips the callback when a block entity is replaced. +#define PUMPKIN_PLUGIN_WORLD_BLOCK_FLAGS_SKIP_BLOCK_ENTITY_REPLACED_CALLBACK (1 << 6) +// Skips the callback when a block is added. +#define PUMPKIN_PLUGIN_WORLD_BLOCK_FLAGS_SKIP_BLOCK_ADDED_CALLBACK (1 << 7) + +// Detailed information about a block's state. +typedef struct pumpkin_plugin_world_block_state_t { + // The internal numerical ID of the block state. + uint16_t id; + // The light level emitted by this block (0-15). + uint8_t luminance; + // How much light this block blocks. + uint8_t opacity; + // The hardness of the block, determining mining speed. + float hardness; + // Whether this block is considered air. + bool is_air; + // Whether this block is a liquid. + bool is_liquid; + // Whether this block is a solid. + bool is_solid; + // Whether this block occupies a full cube. + bool is_full_cube; + // How this block behaves when pushed by a piston. + pumpkin_plugin_world_piston_behavior_t piston_behavior; + // Whether this block receives random ticks. + bool has_random_ticks; +} pumpkin_plugin_world_block_state_t; + +// A simple wrapper for a block state ID. +typedef struct pumpkin_plugin_world_block_state_id_t { + uint16_t id; +} pumpkin_plugin_world_block_state_id_t; + +// A position in the world grid. +typedef struct pumpkin_plugin_world_block_pos_t { + int32_t x; + int32_t y; + int32_t z; +} pumpkin_plugin_world_block_pos_t; + +typedef struct pumpkin_plugin_world_own_entity_t { + int32_t __handle; +} pumpkin_plugin_world_own_entity_t; + +typedef struct pumpkin_plugin_world_borrow_entity_t { + int32_t __handle; +} pumpkin_plugin_world_borrow_entity_t; + +typedef struct pumpkin_plugin_world_own_world_t { + int32_t __handle; +} pumpkin_plugin_world_own_world_t; + +typedef struct pumpkin_plugin_world_borrow_world_t { + int32_t __handle; +} pumpkin_plugin_world_borrow_world_t; + +typedef pumpkin_plugin_text_own_text_component_t pumpkin_plugin_world_own_text_component_t; + +typedef struct { + bool is_some; + pumpkin_plugin_world_own_text_component_t val; +} pumpkin_plugin_world_option_own_text_component_t; + +typedef pumpkin_plugin_scoreboard_own_scoreboard_t pumpkin_plugin_world_own_scoreboard_t; + +typedef struct { + pumpkin_plugin_world_own_entity_t *ptr; + size_t len; +} pumpkin_plugin_world_list_own_entity_t; + +// Represents the player's permission level +// +// Permission levels determine the player's access to commands and server operations. +// Each numeric level corresponds to a specific role: +// - `Zero`: `normal`: Player can use basic commands. +// - `One`: `moderator`: Player can bypass spawn protection. +// - `Two`: `gamemaster`: Player or executor can use more commands and player can use command blocks. +// - `Three`: `admin`: Player or executor can use commands related to multiplayer management. +// - `Four`: `owner`: Player or executor can use all of the commands, including commands related to server management. +typedef uint8_t pumpkin_plugin_permission_permission_level_t; + +#define PUMPKIN_PLUGIN_PERMISSION_PERMISSION_LEVEL_ZERO 0 +#define PUMPKIN_PLUGIN_PERMISSION_PERMISSION_LEVEL_ONE 1 +#define PUMPKIN_PLUGIN_PERMISSION_PERMISSION_LEVEL_TWO 2 +#define PUMPKIN_PLUGIN_PERMISSION_PERMISSION_LEVEL_THREE 3 +#define PUMPKIN_PLUGIN_PERMISSION_PERMISSION_LEVEL_FOUR 4 + +// Describes the default behavior for permissions +typedef struct pumpkin_plugin_permission_permission_default_t { + uint8_t tag; + union { + pumpkin_plugin_permission_permission_level_t op; + } val; +} pumpkin_plugin_permission_permission_default_t; + +// Permission is not granted by default +#define PUMPKIN_PLUGIN_PERMISSION_PERMISSION_DEFAULT_DENY 0 +// Permission is granted by default +#define PUMPKIN_PLUGIN_PERMISSION_PERMISSION_DEFAULT_ALLOW 1 +// Permission is granted by default to operators +#define PUMPKIN_PLUGIN_PERMISSION_PERMISSION_DEFAULT_OP 2 + +// A child permission entry +typedef struct pumpkin_plugin_permission_permission_child_t { + plugin_string_t node; + bool value; +} pumpkin_plugin_permission_permission_child_t; + +typedef struct { + pumpkin_plugin_permission_permission_child_t *ptr; + size_t len; +} pumpkin_plugin_permission_list_permission_child_t; + +// Defines a permission node in the system +typedef struct pumpkin_plugin_permission_permission_t { + // The full node name (e.g., "minecraft:command.gamemode") + plugin_string_t node; + // Description of what this permission does + plugin_string_t description; + // The default value of this permission + pumpkin_plugin_permission_permission_default_t default_; + // Children nodes that are affected by this permission + pumpkin_plugin_permission_list_permission_child_t children; +} pumpkin_plugin_permission_permission_t; + +typedef pumpkin_plugin_common_hand_t pumpkin_plugin_player_hand_t; + +typedef pumpkin_plugin_common_item_stack_t pumpkin_plugin_player_item_stack_t; + +typedef pumpkin_plugin_common_position_t pumpkin_plugin_player_position_t; + +typedef pumpkin_plugin_common_game_mode_t pumpkin_plugin_player_game_mode_t; + +typedef pumpkin_plugin_permission_permission_level_t pumpkin_plugin_player_permission_level_t; + +// Various abilities a player can have. +typedef struct pumpkin_plugin_player_player_abilities_t { + // Whether the player is invulnerable to damage. + bool invulnerable; + // Whether the player is currently flying. + bool flying; + // Whether the player is allowed to fly. + bool allow_flying; + // Whether the player is in creative mode. + bool creative; + // Whether the player can modify the world. + bool allow_modify_world; + // The speed at which the player flies. + float fly_speed; + // The speed at which the player walks. + float walk_speed; +} pumpkin_plugin_player_player_abilities_t; + +typedef struct pumpkin_plugin_player_own_player_t { + int32_t __handle; +} pumpkin_plugin_player_own_player_t; + +typedef struct pumpkin_plugin_player_borrow_player_t { + int32_t __handle; +} pumpkin_plugin_player_borrow_player_t; + +typedef pumpkin_plugin_world_own_entity_t pumpkin_plugin_player_own_entity_t; + +typedef pumpkin_plugin_world_own_world_t pumpkin_plugin_player_own_world_t; + +typedef pumpkin_plugin_text_own_text_component_t pumpkin_plugin_player_own_text_component_t; + +typedef struct { + bool is_some; + float val; +} plugin_option_f32_t; + +typedef pumpkin_plugin_gui_own_gui_t pumpkin_plugin_player_own_gui_t; + +typedef struct { + bool is_some; + pumpkin_plugin_player_own_text_component_t val; +} pumpkin_plugin_player_option_own_text_component_t; + +typedef struct { + bool is_some; + pumpkin_plugin_player_item_stack_t val; +} pumpkin_plugin_player_option_item_stack_t; + +// Represents the difficulty setting of a Minecraft server. +typedef uint8_t pumpkin_plugin_server_difficulty_t; + +// Hostile mobs do not spawn. Players regain health automatically. +#define PUMPKIN_PLUGIN_SERVER_DIFFICULTY_PEACEFUL 0 +// Hostile mobs deal less damage. +#define PUMPKIN_PLUGIN_SERVER_DIFFICULTY_EASY 1 +// Standard Minecraft difficulty. +#define PUMPKIN_PLUGIN_SERVER_DIFFICULTY_NORMAL 2 +// Hostile mobs deal more damage. +#define PUMPKIN_PLUGIN_SERVER_DIFFICULTY_HARD 3 + +typedef struct pumpkin_plugin_server_own_server_t { + int32_t __handle; +} pumpkin_plugin_server_own_server_t; + +typedef struct pumpkin_plugin_server_borrow_server_t { + int32_t __handle; +} pumpkin_plugin_server_borrow_server_t; + +typedef pumpkin_plugin_player_own_player_t pumpkin_plugin_server_own_player_t; + +typedef struct { + pumpkin_plugin_server_own_player_t *ptr; + size_t len; +} pumpkin_plugin_server_list_own_player_t; + +typedef struct { + bool is_some; + pumpkin_plugin_server_own_player_t val; +} pumpkin_plugin_server_option_own_player_t; + +typedef pumpkin_plugin_common_block_position_t pumpkin_plugin_block_entity_block_position_t; + +typedef struct pumpkin_plugin_block_entity_own_block_entity_t { + int32_t __handle; +} pumpkin_plugin_block_entity_own_block_entity_t; + +typedef struct pumpkin_plugin_block_entity_borrow_block_entity_t { + int32_t __handle; +} pumpkin_plugin_block_entity_borrow_block_entity_t; + +typedef struct pumpkin_plugin_block_entity_own_command_block_entity_t { + int32_t __handle; +} pumpkin_plugin_block_entity_own_command_block_entity_t; + +typedef struct pumpkin_plugin_block_entity_borrow_command_block_entity_t { + int32_t __handle; +} pumpkin_plugin_block_entity_borrow_command_block_entity_t; + +typedef struct pumpkin_plugin_block_entity_block_entity_type_t { + uint8_t tag; + union { + pumpkin_plugin_block_entity_own_command_block_entity_t command_block_entity; + } val; +} pumpkin_plugin_block_entity_block_entity_type_t; + +#define PUMPKIN_PLUGIN_BLOCK_ENTITY_BLOCK_ENTITY_TYPE_COMMAND_BLOCK_ENTITY 0 + +typedef pumpkin_plugin_common_position_t pumpkin_plugin_command_position_t; + +typedef pumpkin_plugin_common_block_position_t pumpkin_plugin_command_block_position_t; + +typedef pumpkin_plugin_common_locale_t pumpkin_plugin_command_locale_t; + +typedef pumpkin_plugin_server_difficulty_t pumpkin_plugin_command_difficulty_t; + +typedef uint8_t pumpkin_plugin_command_gamemode_t; + +#define PUMPKIN_PLUGIN_COMMAND_GAMEMODE_SURVIVAL 0 +#define PUMPKIN_PLUGIN_COMMAND_GAMEMODE_CREATIVE 1 +#define PUMPKIN_PLUGIN_COMMAND_GAMEMODE_ADVENTURE 2 +#define PUMPKIN_PLUGIN_COMMAND_GAMEMODE_SPECTATOR 3 + +typedef uint8_t pumpkin_plugin_command_bossbar_color_t; + +#define PUMPKIN_PLUGIN_COMMAND_BOSSBAR_COLOR_PINK 0 +#define PUMPKIN_PLUGIN_COMMAND_BOSSBAR_COLOR_BLUE 1 +#define PUMPKIN_PLUGIN_COMMAND_BOSSBAR_COLOR_RED 2 +#define PUMPKIN_PLUGIN_COMMAND_BOSSBAR_COLOR_GREEN 3 +#define PUMPKIN_PLUGIN_COMMAND_BOSSBAR_COLOR_YELLOW 4 +#define PUMPKIN_PLUGIN_COMMAND_BOSSBAR_COLOR_PURPLE 5 +#define PUMPKIN_PLUGIN_COMMAND_BOSSBAR_COLOR_WHITE 6 + +typedef uint8_t pumpkin_plugin_command_bossbar_style_t; + +#define PUMPKIN_PLUGIN_COMMAND_BOSSBAR_STYLE_NO_DIVISION 0 +#define PUMPKIN_PLUGIN_COMMAND_BOSSBAR_STYLE_NOTCHES6 1 +#define PUMPKIN_PLUGIN_COMMAND_BOSSBAR_STYLE_NOTCHES10 2 +#define PUMPKIN_PLUGIN_COMMAND_BOSSBAR_STYLE_NOTCHES12 3 +#define PUMPKIN_PLUGIN_COMMAND_BOSSBAR_STYLE_NOTCHES20 4 + +typedef uint8_t pumpkin_plugin_command_sound_category_t; + +#define PUMPKIN_PLUGIN_COMMAND_SOUND_CATEGORY_MASTER 0 +#define PUMPKIN_PLUGIN_COMMAND_SOUND_CATEGORY_MUSIC 1 +#define PUMPKIN_PLUGIN_COMMAND_SOUND_CATEGORY_RECORDS 2 +#define PUMPKIN_PLUGIN_COMMAND_SOUND_CATEGORY_WEATHER 3 +#define PUMPKIN_PLUGIN_COMMAND_SOUND_CATEGORY_BLOCKS 4 +#define PUMPKIN_PLUGIN_COMMAND_SOUND_CATEGORY_HOSTILE 5 +#define PUMPKIN_PLUGIN_COMMAND_SOUND_CATEGORY_NEUTRAL 6 +#define PUMPKIN_PLUGIN_COMMAND_SOUND_CATEGORY_PLAYERS 7 +#define PUMPKIN_PLUGIN_COMMAND_SOUND_CATEGORY_AMBIENT 8 +#define PUMPKIN_PLUGIN_COMMAND_SOUND_CATEGORY_VOICE 9 +#define PUMPKIN_PLUGIN_COMMAND_SOUND_CATEGORY_UI 10 + +typedef uint8_t pumpkin_plugin_command_entity_anchor_t; + +#define PUMPKIN_PLUGIN_COMMAND_ENTITY_ANCHOR_FEET 0 +#define PUMPKIN_PLUGIN_COMMAND_ENTITY_ANCHOR_EYES 1 + +typedef struct pumpkin_plugin_command_number_t { + uint8_t tag; + union { + double float64; + float float32; + int32_t int32; + int64_t int64; + } val; +} pumpkin_plugin_command_number_t; + +#define PUMPKIN_PLUGIN_COMMAND_NUMBER_FLOAT64 0 +#define PUMPKIN_PLUGIN_COMMAND_NUMBER_FLOAT32 1 +#define PUMPKIN_PLUGIN_COMMAND_NUMBER_INT32 2 +#define PUMPKIN_PLUGIN_COMMAND_NUMBER_INT64 3 + +typedef struct { + pumpkin_plugin_command_number_t f0; + pumpkin_plugin_command_number_t f1; +} pumpkin_plugin_command_tuple2_number_number_t; + +typedef struct pumpkin_plugin_command_not_in_bounds_t { + uint8_t tag; + union { + pumpkin_plugin_command_tuple2_number_number_t lower_bound; + pumpkin_plugin_command_tuple2_number_number_t upper_bound; + } val; +} pumpkin_plugin_command_not_in_bounds_t; + +#define PUMPKIN_PLUGIN_COMMAND_NOT_IN_BOUNDS_LOWER_BOUND 0 +#define PUMPKIN_PLUGIN_COMMAND_NOT_IN_BOUNDS_UPPER_BOUND 1 + +typedef pumpkin_plugin_world_own_entity_t pumpkin_plugin_command_own_entity_t; + +typedef struct { + pumpkin_plugin_command_own_entity_t *ptr; + size_t len; +} pumpkin_plugin_command_list_own_entity_t; + +typedef pumpkin_plugin_player_own_player_t pumpkin_plugin_command_own_player_t; + +typedef struct { + pumpkin_plugin_command_own_player_t *ptr; + size_t len; +} pumpkin_plugin_command_list_own_player_t; + +typedef struct { + double f0; + double f1; +} plugin_tuple2_f64_f64_t; + +typedef struct { + float f0; + bool f1; + float f2; + bool f3; +} plugin_tuple4_f32_bool_f32_bool_t; + +typedef pumpkin_plugin_text_own_text_component_t pumpkin_plugin_command_own_text_component_t; + +typedef struct { + bool is_err; + union { + pumpkin_plugin_command_number_t ok; + pumpkin_plugin_command_not_in_bounds_t err; + } val; +} pumpkin_plugin_command_result_number_not_in_bounds_t; + +typedef struct pumpkin_plugin_command_arg_t { + uint8_t tag; + union { + pumpkin_plugin_command_list_own_entity_t entities; + pumpkin_plugin_command_own_entity_t entity; + pumpkin_plugin_command_list_own_player_t players; + pumpkin_plugin_command_block_position_t block_pos; + pumpkin_plugin_command_position_t pos3d; + plugin_tuple2_f64_f64_t pos2d; + plugin_tuple4_f32_bool_f32_bool_t rotation; + pumpkin_plugin_command_gamemode_t game_mode; + pumpkin_plugin_command_difficulty_t difficulty; + plugin_string_t item; + plugin_string_t item_predicate; + plugin_string_t resource_location; + plugin_string_t block; + plugin_string_t block_predicate; + pumpkin_plugin_command_bossbar_color_t bossbar_color; + pumpkin_plugin_command_bossbar_style_t bossbar_style; + plugin_string_t particle; + plugin_string_t msg; + pumpkin_plugin_command_own_text_component_t text_component; + int32_t time; + pumpkin_plugin_command_result_number_not_in_bounds_t num; + bool bool_; + plugin_string_t simple; + pumpkin_plugin_command_sound_category_t sound_category; + plugin_string_t damage_type; + plugin_string_t effect; + plugin_string_t enchantment; + pumpkin_plugin_command_entity_anchor_t entity_anchor; + } val; +} pumpkin_plugin_command_arg_t; + +#define PUMPKIN_PLUGIN_COMMAND_ARG_ENTITIES 0 +#define PUMPKIN_PLUGIN_COMMAND_ARG_ENTITY 1 +#define PUMPKIN_PLUGIN_COMMAND_ARG_PLAYERS 2 +#define PUMPKIN_PLUGIN_COMMAND_ARG_BLOCK_POS 3 +#define PUMPKIN_PLUGIN_COMMAND_ARG_POS3D 4 +#define PUMPKIN_PLUGIN_COMMAND_ARG_POS2D 5 +#define PUMPKIN_PLUGIN_COMMAND_ARG_ROTATION 6 +#define PUMPKIN_PLUGIN_COMMAND_ARG_GAME_MODE 7 +#define PUMPKIN_PLUGIN_COMMAND_ARG_DIFFICULTY 8 +#define PUMPKIN_PLUGIN_COMMAND_ARG_ITEM 9 +#define PUMPKIN_PLUGIN_COMMAND_ARG_ITEM_PREDICATE 10 +#define PUMPKIN_PLUGIN_COMMAND_ARG_RESOURCE_LOCATION 11 +#define PUMPKIN_PLUGIN_COMMAND_ARG_BLOCK 12 +#define PUMPKIN_PLUGIN_COMMAND_ARG_BLOCK_PREDICATE 13 +#define PUMPKIN_PLUGIN_COMMAND_ARG_BOSSBAR_COLOR 14 +#define PUMPKIN_PLUGIN_COMMAND_ARG_BOSSBAR_STYLE 15 +#define PUMPKIN_PLUGIN_COMMAND_ARG_PARTICLE 16 +#define PUMPKIN_PLUGIN_COMMAND_ARG_MSG 17 +#define PUMPKIN_PLUGIN_COMMAND_ARG_TEXT_COMPONENT 18 +#define PUMPKIN_PLUGIN_COMMAND_ARG_TIME 19 +#define PUMPKIN_PLUGIN_COMMAND_ARG_NUM 20 +#define PUMPKIN_PLUGIN_COMMAND_ARG_BOOL 21 +#define PUMPKIN_PLUGIN_COMMAND_ARG_SIMPLE 22 +#define PUMPKIN_PLUGIN_COMMAND_ARG_SOUND_CATEGORY 23 +#define PUMPKIN_PLUGIN_COMMAND_ARG_DAMAGE_TYPE 24 +#define PUMPKIN_PLUGIN_COMMAND_ARG_EFFECT 25 +#define PUMPKIN_PLUGIN_COMMAND_ARG_ENCHANTMENT 26 +#define PUMPKIN_PLUGIN_COMMAND_ARG_ENTITY_ANCHOR 27 + +typedef struct pumpkin_plugin_command_own_consumed_args_t { + int32_t __handle; +} pumpkin_plugin_command_own_consumed_args_t; + +typedef struct pumpkin_plugin_command_borrow_consumed_args_t { + int32_t __handle; +} pumpkin_plugin_command_borrow_consumed_args_t; + +typedef pumpkin_plugin_block_entity_own_command_block_entity_t pumpkin_plugin_command_own_command_block_entity_t; + +typedef pumpkin_plugin_world_own_world_t pumpkin_plugin_command_own_world_t; + +typedef struct { + pumpkin_plugin_command_own_command_block_entity_t f0; + pumpkin_plugin_command_own_world_t f1; +} pumpkin_plugin_command_tuple2_own_command_block_entity_own_world_t; + +typedef struct pumpkin_plugin_command_command_sender_type_t { + uint8_t tag; + union { + pumpkin_plugin_command_own_player_t player; + pumpkin_plugin_command_tuple2_own_command_block_entity_own_world_t command_block; + } val; +} pumpkin_plugin_command_command_sender_type_t; + +#define PUMPKIN_PLUGIN_COMMAND_COMMAND_SENDER_TYPE_RCON 0 +#define PUMPKIN_PLUGIN_COMMAND_COMMAND_SENDER_TYPE_CONSOLE 1 +#define PUMPKIN_PLUGIN_COMMAND_COMMAND_SENDER_TYPE_PLAYER 2 +#define PUMPKIN_PLUGIN_COMMAND_COMMAND_SENDER_TYPE_COMMAND_BLOCK 3 +#define PUMPKIN_PLUGIN_COMMAND_COMMAND_SENDER_TYPE_DUMMY 4 + +typedef uint8_t pumpkin_plugin_command_permission_level_t; + +#define PUMPKIN_PLUGIN_COMMAND_PERMISSION_LEVEL_ZERO 0 +#define PUMPKIN_PLUGIN_COMMAND_PERMISSION_LEVEL_ONE 1 +#define PUMPKIN_PLUGIN_COMMAND_PERMISSION_LEVEL_TWO 2 +#define PUMPKIN_PLUGIN_COMMAND_PERMISSION_LEVEL_THREE 3 +#define PUMPKIN_PLUGIN_COMMAND_PERMISSION_LEVEL_FOUR 4 + +typedef struct pumpkin_plugin_command_own_command_sender_t { + int32_t __handle; +} pumpkin_plugin_command_own_command_sender_t; + +typedef struct pumpkin_plugin_command_borrow_command_sender_t { + int32_t __handle; +} pumpkin_plugin_command_borrow_command_sender_t; + +typedef uint8_t pumpkin_plugin_command_string_type_t; + +#define PUMPKIN_PLUGIN_COMMAND_STRING_TYPE_SINGLE_WORD 0 +#define PUMPKIN_PLUGIN_COMMAND_STRING_TYPE_QUOTABLE 1 +#define PUMPKIN_PLUGIN_COMMAND_STRING_TYPE_GREEDY 2 + +typedef struct { + plugin_option_f32_t f0; + plugin_option_f32_t f1; +} plugin_tuple2_option_f32_option_f32_t; + +typedef struct { + bool is_some; + double val; +} plugin_option_f64_t; + +typedef struct { + plugin_option_f64_t f0; + plugin_option_f64_t f1; +} plugin_tuple2_option_f64_option_f64_t; + +typedef struct { + bool is_some; + int32_t val; +} plugin_option_s32_t; + +typedef struct { + plugin_option_s32_t f0; + plugin_option_s32_t f1; +} plugin_tuple2_option_s32_option_s32_t; + +typedef struct { + bool is_some; + int64_t val; +} plugin_option_s64_t; + +typedef struct { + plugin_option_s64_t f0; + plugin_option_s64_t f1; +} plugin_tuple2_option_s64_option_s64_t; + +typedef struct pumpkin_plugin_command_argument_type_t { + uint8_t tag; + union { + plugin_tuple2_option_f32_option_f32_t float_; + plugin_tuple2_option_f64_option_f64_t double_; + plugin_tuple2_option_s32_option_s32_t integer; + plugin_tuple2_option_s64_option_s64_t long_; + pumpkin_plugin_command_string_type_t string; + int32_t time; + plugin_string_t resource; + } val; +} pumpkin_plugin_command_argument_type_t; + +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_BOOL 0 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_FLOAT 1 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_DOUBLE 2 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_INTEGER 3 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_LONG 4 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_STRING 5 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_ENTITIES 6 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_ENTITY 7 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_PLAYERS 8 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_GAME_PROFILE 9 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_BLOCK_POS 10 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_POSITION3D 11 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_POSITION2D 12 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_BLOCK_STATE 13 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_BLOCK_PREDICATE 14 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_ITEM 15 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_ITEM_PREDICATE 16 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_COMPONENT 17 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_ROTATION 18 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_RESOURCE_LOCATION 19 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_ENTITY_ANCHOR 20 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_GAMEMODE 21 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_DIFFICULTY 22 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_TIME 23 +#define PUMPKIN_PLUGIN_COMMAND_ARGUMENT_TYPE_RESOURCE 24 + +typedef struct { + bool is_some; + plugin_string_t val; +} plugin_option_string_t; + +typedef struct pumpkin_plugin_command_command_error_t { + uint8_t tag; + union { + plugin_option_string_t invalid_consumption; + pumpkin_plugin_command_own_text_component_t command_failed; + } val; +} pumpkin_plugin_command_command_error_t; + +#define PUMPKIN_PLUGIN_COMMAND_COMMAND_ERROR_INVALID_CONSUMPTION 0 +#define PUMPKIN_PLUGIN_COMMAND_COMMAND_ERROR_INVALID_REQUIREMENT 1 +#define PUMPKIN_PLUGIN_COMMAND_COMMAND_ERROR_PERMISSION_DENIED 2 +#define PUMPKIN_PLUGIN_COMMAND_COMMAND_ERROR_COMMAND_FAILED 3 + +typedef struct pumpkin_plugin_command_own_command_node_t { + int32_t __handle; +} pumpkin_plugin_command_own_command_node_t; + +typedef struct pumpkin_plugin_command_borrow_command_node_t { + int32_t __handle; +} pumpkin_plugin_command_borrow_command_node_t; + +typedef struct pumpkin_plugin_command_own_command_t { + int32_t __handle; +} pumpkin_plugin_command_own_command_t; + +typedef struct pumpkin_plugin_command_borrow_command_t { + int32_t __handle; +} pumpkin_plugin_command_borrow_command_t; + +typedef struct { + bool is_some; + pumpkin_plugin_command_own_player_t val; +} pumpkin_plugin_command_option_own_player_t; + +typedef pumpkin_plugin_server_borrow_server_t pumpkin_plugin_command_borrow_server_t; + +typedef struct { + bool is_some; + pumpkin_plugin_command_position_t val; +} plugin_option_position_t; + +typedef struct { + bool is_some; + pumpkin_plugin_command_own_world_t val; +} pumpkin_plugin_command_option_own_world_t; + +typedef struct { + plugin_string_t *ptr; + size_t len; +} plugin_list_string_t; + +typedef pumpkin_plugin_common_block_position_t pumpkin_plugin_event_block_position_t; + +typedef pumpkin_plugin_common_game_mode_t pumpkin_plugin_event_game_mode_t; + +typedef pumpkin_plugin_common_hand_t pumpkin_plugin_event_hand_t; + +typedef pumpkin_plugin_common_item_stack_t pumpkin_plugin_event_item_stack_t; + +typedef pumpkin_plugin_common_position_t pumpkin_plugin_event_position_t; + +typedef uint8_t pumpkin_plugin_event_event_priority_t; + +#define PUMPKIN_PLUGIN_EVENT_EVENT_PRIORITY_HIGHEST 0 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PRIORITY_HIGH 1 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PRIORITY_NORMAL 2 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PRIORITY_LOW 3 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PRIORITY_LOWEST 4 + +typedef pumpkin_plugin_player_own_player_t pumpkin_plugin_event_own_player_t; + +typedef pumpkin_plugin_text_own_text_component_t pumpkin_plugin_event_own_text_component_t; + +typedef struct pumpkin_plugin_event_player_join_event_data_t { + pumpkin_plugin_event_own_player_t player; + pumpkin_plugin_event_own_text_component_t join_message; + bool cancelled; +} pumpkin_plugin_event_player_join_event_data_t; + +typedef struct pumpkin_plugin_event_player_leave_event_data_t { + pumpkin_plugin_event_own_player_t player; + pumpkin_plugin_event_own_text_component_t leave_message; + bool cancelled; +} pumpkin_plugin_event_player_leave_event_data_t; + +typedef struct pumpkin_plugin_event_player_login_event_data_t { + pumpkin_plugin_event_own_player_t player; + pumpkin_plugin_event_own_text_component_t kick_message; + bool cancelled; +} pumpkin_plugin_event_player_login_event_data_t; + +typedef struct { + pumpkin_plugin_event_own_player_t *ptr; + size_t len; +} pumpkin_plugin_event_list_own_player_t; + +typedef struct pumpkin_plugin_event_player_chat_event_data_t { + pumpkin_plugin_event_own_player_t player; + plugin_string_t message; + pumpkin_plugin_event_list_own_player_t recipients; + bool cancelled; +} pumpkin_plugin_event_player_chat_event_data_t; + +typedef struct pumpkin_plugin_event_player_command_send_event_data_t { + pumpkin_plugin_event_own_player_t player; + plugin_string_t command; + bool cancelled; +} pumpkin_plugin_event_player_command_send_event_data_t; + +typedef struct pumpkin_plugin_event_player_permission_check_event_data_t { + pumpkin_plugin_event_own_player_t player; + plugin_string_t permission; + bool permission_result; +} pumpkin_plugin_event_player_permission_check_event_data_t; + +typedef struct pumpkin_plugin_event_player_move_event_data_t { + pumpkin_plugin_event_own_player_t player; + pumpkin_plugin_event_position_t from_position; + pumpkin_plugin_event_position_t to_position; + bool cancelled; +} pumpkin_plugin_event_player_move_event_data_t; + +typedef struct pumpkin_plugin_event_player_teleport_event_data_t { + pumpkin_plugin_event_own_player_t player; + pumpkin_plugin_event_position_t from_position; + pumpkin_plugin_event_position_t to_position; + bool cancelled; +} pumpkin_plugin_event_player_teleport_event_data_t; + +typedef pumpkin_plugin_world_own_world_t pumpkin_plugin_event_own_world_t; + +typedef struct pumpkin_plugin_event_player_change_world_event_data_t { + pumpkin_plugin_event_own_player_t player; + pumpkin_plugin_event_own_world_t previous_world; + pumpkin_plugin_event_own_world_t new_world; + pumpkin_plugin_event_position_t position; + float yaw; + float pitch; + bool cancelled; +} pumpkin_plugin_event_player_change_world_event_data_t; + +typedef struct pumpkin_plugin_event_player_exp_change_event_data_t { + pumpkin_plugin_event_own_player_t player; + int32_t amount; +} pumpkin_plugin_event_player_exp_change_event_data_t; + +typedef struct pumpkin_plugin_event_player_item_held_event_data_t { + pumpkin_plugin_event_own_player_t player; + uint8_t previous_slot; + uint8_t new_slot; + bool cancelled; +} pumpkin_plugin_event_player_item_held_event_data_t; + +typedef struct pumpkin_plugin_event_player_changed_main_hand_event_data_t { + pumpkin_plugin_event_own_player_t player; + pumpkin_plugin_event_hand_t main_hand; +} pumpkin_plugin_event_player_changed_main_hand_event_data_t; + +typedef struct pumpkin_plugin_event_player_gamemode_change_event_data_t { + pumpkin_plugin_event_own_player_t player; + pumpkin_plugin_event_game_mode_t previous_gamemode; + pumpkin_plugin_event_game_mode_t new_gamemode; + bool cancelled; +} pumpkin_plugin_event_player_gamemode_change_event_data_t; + +typedef struct pumpkin_plugin_event_player_custom_payload_event_data_t { + pumpkin_plugin_event_own_player_t player; + plugin_string_t channel; + plugin_list_u8_t data; +} pumpkin_plugin_event_player_custom_payload_event_data_t; + +typedef uint8_t pumpkin_plugin_event_player_fish_state_t; + +#define PUMPKIN_PLUGIN_EVENT_PLAYER_FISH_STATE_FISHING 0 +#define PUMPKIN_PLUGIN_EVENT_PLAYER_FISH_STATE_CAUGHT_FISH 1 +#define PUMPKIN_PLUGIN_EVENT_PLAYER_FISH_STATE_CAUGHT_ENTITY 2 +#define PUMPKIN_PLUGIN_EVENT_PLAYER_FISH_STATE_IN_GROUND 3 +#define PUMPKIN_PLUGIN_EVENT_PLAYER_FISH_STATE_FAILED_ATTEMPT 4 +#define PUMPKIN_PLUGIN_EVENT_PLAYER_FISH_STATE_REEL_IN 5 +#define PUMPKIN_PLUGIN_EVENT_PLAYER_FISH_STATE_BITE 6 + +typedef struct pumpkin_plugin_event_player_fish_event_data_t { + pumpkin_plugin_event_own_player_t player; + plugin_option_string_t caught_uuid; + plugin_string_t caught_type; + plugin_string_t hook_uuid; + pumpkin_plugin_event_player_fish_state_t state; + pumpkin_plugin_event_hand_t hand; + int32_t exp_to_drop; + bool cancelled; +} pumpkin_plugin_event_player_fish_event_data_t; + +typedef struct pumpkin_plugin_event_player_egg_throw_event_data_t { + pumpkin_plugin_event_own_player_t player; + plugin_string_t egg_uuid; + bool hatching; + uint8_t num_hatches; + plugin_string_t hatching_type; + bool cancelled; +} pumpkin_plugin_event_player_egg_throw_event_data_t; + +typedef uint8_t pumpkin_plugin_event_entity_interaction_action_t; + +#define PUMPKIN_PLUGIN_EVENT_ENTITY_INTERACTION_ACTION_INTERACT 0 +#define PUMPKIN_PLUGIN_EVENT_ENTITY_INTERACTION_ACTION_ATTACK 1 +#define PUMPKIN_PLUGIN_EVENT_ENTITY_INTERACTION_ACTION_INTERACT_AT 2 + +typedef uint8_t pumpkin_plugin_event_interact_action_t; + +#define PUMPKIN_PLUGIN_EVENT_INTERACT_ACTION_LEFT_CLICK_BLOCK 0 +#define PUMPKIN_PLUGIN_EVENT_INTERACT_ACTION_LEFT_CLICK_AIR 1 +#define PUMPKIN_PLUGIN_EVENT_INTERACT_ACTION_RIGHT_CLICK_AIR 2 +#define PUMPKIN_PLUGIN_EVENT_INTERACT_ACTION_RIGHT_CLICK_BLOCK 3 + +typedef struct { + bool is_some; + pumpkin_plugin_event_block_position_t val; +} plugin_option_block_position_t; + +typedef struct pumpkin_plugin_event_player_interact_event_data_t { + pumpkin_plugin_event_own_player_t player; + pumpkin_plugin_event_interact_action_t action; + plugin_option_block_position_t clicked_pos; + pumpkin_plugin_event_item_stack_t item; + plugin_string_t block; + bool cancelled; +} pumpkin_plugin_event_player_interact_event_data_t; + +typedef struct pumpkin_plugin_event_player_toggle_sneak_event_data_t { + pumpkin_plugin_event_own_player_t player; + bool is_sneaking; + bool cancelled; +} pumpkin_plugin_event_player_toggle_sneak_event_data_t; + +typedef struct pumpkin_plugin_event_player_toggle_flight_event_data_t { + pumpkin_plugin_event_own_player_t player; + bool is_flying; + bool cancelled; +} pumpkin_plugin_event_player_toggle_flight_event_data_t; + +typedef struct pumpkin_plugin_event_player_toggle_sprint_event_data_t { + pumpkin_plugin_event_own_player_t player; + bool is_sprinting; + bool cancelled; +} pumpkin_plugin_event_player_toggle_sprint_event_data_t; + +typedef struct pumpkin_plugin_event_player_interact_unknown_entity_event_data_t { + pumpkin_plugin_event_own_player_t player; + int32_t entity_id; + pumpkin_plugin_event_entity_interaction_action_t action; + bool cancelled; +} pumpkin_plugin_event_player_interact_unknown_entity_event_data_t; + +typedef struct pumpkin_plugin_event_block_redstone_event_data_t { + pumpkin_plugin_event_own_world_t target_world; + uint16_t state_id; + pumpkin_plugin_event_block_position_t block_position; + int32_t old_current; + int32_t new_current; + bool cancelled; +} pumpkin_plugin_event_block_redstone_event_data_t; + +typedef struct { + bool is_some; + pumpkin_plugin_event_own_player_t val; +} pumpkin_plugin_event_option_own_player_t; + +typedef struct pumpkin_plugin_event_block_break_event_data_t { + pumpkin_plugin_event_option_own_player_t player; + plugin_string_t block; + pumpkin_plugin_event_block_position_t block_position; + uint32_t exp; + bool should_drop; + bool cancelled; +} pumpkin_plugin_event_block_break_event_data_t; + +typedef struct pumpkin_plugin_event_block_burn_event_data_t { + plugin_string_t igniting_block; + plugin_string_t block; + bool cancelled; +} pumpkin_plugin_event_block_burn_event_data_t; + +typedef struct pumpkin_plugin_event_block_can_build_event_data_t { + plugin_string_t block_to_build; + bool buildable; + pumpkin_plugin_event_own_player_t player; + plugin_string_t block; + bool cancelled; +} pumpkin_plugin_event_block_can_build_event_data_t; + +typedef struct pumpkin_plugin_event_block_grow_event_data_t { + pumpkin_plugin_event_own_world_t target_world; + plugin_string_t old_block; + uint16_t old_state_id; + plugin_string_t new_block; + uint16_t new_state_id; + pumpkin_plugin_event_block_position_t block_position; + bool cancelled; +} pumpkin_plugin_event_block_grow_event_data_t; + +typedef struct pumpkin_plugin_event_block_place_event_data_t { + pumpkin_plugin_event_own_player_t player; + plugin_string_t block_placed; + plugin_string_t block_placed_against; + pumpkin_plugin_event_block_position_t block_position; + bool can_build; + bool cancelled; +} pumpkin_plugin_event_block_place_event_data_t; + +typedef struct pumpkin_plugin_event_server_command_event_data_t { + plugin_string_t command; + bool cancelled; +} pumpkin_plugin_event_server_command_event_data_t; + +typedef struct pumpkin_plugin_event_spawn_change_event_data_t { + pumpkin_plugin_event_own_world_t target_world; + pumpkin_plugin_event_block_position_t previous_position; + float previous_yaw; + float previous_pitch; + pumpkin_plugin_event_block_position_t new_position; + float new_yaw; + float new_pitch; +} pumpkin_plugin_event_spawn_change_event_data_t; + +typedef struct pumpkin_plugin_event_server_broadcast_event_data_t { + pumpkin_plugin_event_own_text_component_t message; + pumpkin_plugin_event_own_text_component_t sender; + bool cancelled; +} pumpkin_plugin_event_server_broadcast_event_data_t; + +typedef uint8_t pumpkin_plugin_event_event_type_t; + +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_JOIN_EVENT 0 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_LEAVE_EVENT 1 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_LOGIN_EVENT 2 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_CHAT_EVENT 3 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_COMMAND_SEND_EVENT 4 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_PERMISSION_CHECK_EVENT 5 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_MOVE_EVENT 6 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_TELEPORT_EVENT 7 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_CHANGE_WORLD_EVENT 8 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_EXP_CHANGE_EVENT 9 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_ITEM_HELD_EVENT 10 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_CHANGED_MAIN_HAND_EVENT 11 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_GAMEMODE_CHANGE_EVENT 12 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_CUSTOM_PAYLOAD_EVENT 13 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_FISH_EVENT 14 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_EGG_THROW_EVENT 15 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_INTERACT_UNKNOWN_ENTITY_EVENT 16 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_INTERACT_EVENT 17 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_TOGGLE_SNEAK_EVENT 18 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_TOGGLE_FLIGHT_EVENT 19 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_PLAYER_TOGGLE_SPRINT_EVENT 20 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_BLOCK_REDSTONE_EVENT 21 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_BLOCK_BREAK_EVENT 22 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_BLOCK_BURN_EVENT 23 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_BLOCK_CAN_BUILD_EVENT 24 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_BLOCK_GROW_EVENT 25 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_BLOCK_PLACE_EVENT 26 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_SERVER_COMMAND_EVENT 27 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_SPAWN_CHANGE_EVENT 28 +#define PUMPKIN_PLUGIN_EVENT_EVENT_TYPE_SERVER_BROADCAST_EVENT 29 + +typedef struct pumpkin_plugin_event_event_t { + uint8_t tag; + union { + pumpkin_plugin_event_player_join_event_data_t player_join_event; + pumpkin_plugin_event_player_leave_event_data_t player_leave_event; + pumpkin_plugin_event_player_login_event_data_t player_login_event; + pumpkin_plugin_event_player_chat_event_data_t player_chat_event; + pumpkin_plugin_event_player_command_send_event_data_t player_command_send_event; + pumpkin_plugin_event_player_permission_check_event_data_t player_permission_check_event; + pumpkin_plugin_event_player_move_event_data_t player_move_event; + pumpkin_plugin_event_player_teleport_event_data_t player_teleport_event; + pumpkin_plugin_event_player_change_world_event_data_t player_change_world_event; + pumpkin_plugin_event_player_exp_change_event_data_t player_exp_change_event; + pumpkin_plugin_event_player_item_held_event_data_t player_item_held_event; + pumpkin_plugin_event_player_changed_main_hand_event_data_t player_changed_main_hand_event; + pumpkin_plugin_event_player_gamemode_change_event_data_t player_gamemode_change_event; + pumpkin_plugin_event_player_custom_payload_event_data_t player_custom_payload_event; + pumpkin_plugin_event_player_fish_event_data_t player_fish_event; + pumpkin_plugin_event_player_egg_throw_event_data_t player_egg_throw_event; + pumpkin_plugin_event_player_interact_unknown_entity_event_data_t player_interact_unknown_entity_event; + pumpkin_plugin_event_player_interact_event_data_t player_interact_event; + pumpkin_plugin_event_player_toggle_sneak_event_data_t player_toggle_sneak_event; + pumpkin_plugin_event_player_toggle_flight_event_data_t player_toggle_flight_event; + pumpkin_plugin_event_player_toggle_sprint_event_data_t player_toggle_sprint_event; + pumpkin_plugin_event_block_redstone_event_data_t block_redstone_event; + pumpkin_plugin_event_block_break_event_data_t block_break_event; + pumpkin_plugin_event_block_burn_event_data_t block_burn_event; + pumpkin_plugin_event_block_can_build_event_data_t block_can_build_event; + pumpkin_plugin_event_block_grow_event_data_t block_grow_event; + pumpkin_plugin_event_block_place_event_data_t block_place_event; + pumpkin_plugin_event_server_command_event_data_t server_command_event; + pumpkin_plugin_event_spawn_change_event_data_t spawn_change_event; + pumpkin_plugin_event_server_broadcast_event_data_t server_broadcast_event; + } val; +} pumpkin_plugin_event_event_t; + +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_JOIN_EVENT 0 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_LEAVE_EVENT 1 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_LOGIN_EVENT 2 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_CHAT_EVENT 3 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_COMMAND_SEND_EVENT 4 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_PERMISSION_CHECK_EVENT 5 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_MOVE_EVENT 6 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_TELEPORT_EVENT 7 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_CHANGE_WORLD_EVENT 8 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_EXP_CHANGE_EVENT 9 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_ITEM_HELD_EVENT 10 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_CHANGED_MAIN_HAND_EVENT 11 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_GAMEMODE_CHANGE_EVENT 12 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_CUSTOM_PAYLOAD_EVENT 13 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_FISH_EVENT 14 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_EGG_THROW_EVENT 15 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_INTERACT_UNKNOWN_ENTITY_EVENT 16 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_INTERACT_EVENT 17 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_TOGGLE_SNEAK_EVENT 18 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_TOGGLE_FLIGHT_EVENT 19 +#define PUMPKIN_PLUGIN_EVENT_EVENT_PLAYER_TOGGLE_SPRINT_EVENT 20 +#define PUMPKIN_PLUGIN_EVENT_EVENT_BLOCK_REDSTONE_EVENT 21 +#define PUMPKIN_PLUGIN_EVENT_EVENT_BLOCK_BREAK_EVENT 22 +#define PUMPKIN_PLUGIN_EVENT_EVENT_BLOCK_BURN_EVENT 23 +#define PUMPKIN_PLUGIN_EVENT_EVENT_BLOCK_CAN_BUILD_EVENT 24 +#define PUMPKIN_PLUGIN_EVENT_EVENT_BLOCK_GROW_EVENT 25 +#define PUMPKIN_PLUGIN_EVENT_EVENT_BLOCK_PLACE_EVENT 26 +#define PUMPKIN_PLUGIN_EVENT_EVENT_SERVER_COMMAND_EVENT 27 +#define PUMPKIN_PLUGIN_EVENT_EVENT_SPAWN_CHANGE_EVENT 28 +#define PUMPKIN_PLUGIN_EVENT_EVENT_SERVER_BROADCAST_EVENT 29 + +typedef pumpkin_plugin_event_event_type_t pumpkin_plugin_context_event_type_t; + +typedef pumpkin_plugin_event_event_priority_t pumpkin_plugin_context_event_priority_t; + +typedef pumpkin_plugin_permission_permission_t pumpkin_plugin_context_permission_t; + +typedef struct pumpkin_plugin_context_own_context_t { + int32_t __handle; +} pumpkin_plugin_context_own_context_t; + +typedef struct pumpkin_plugin_context_borrow_context_t { + int32_t __handle; +} pumpkin_plugin_context_borrow_context_t; + +typedef pumpkin_plugin_command_own_command_t pumpkin_plugin_context_own_command_t; + +typedef struct { + bool is_err; + union { + plugin_string_t err; + } val; +} pumpkin_plugin_context_result_void_string_t; + +typedef pumpkin_plugin_server_own_server_t pumpkin_plugin_context_own_server_t; + +typedef pumpkin_plugin_common_locale_t pumpkin_plugin_i18n_locale_t; + +typedef pumpkin_plugin_event_event_t plugin_event_t; + +typedef pumpkin_plugin_command_command_error_t plugin_command_error_t; + +typedef pumpkin_plugin_context_own_context_t plugin_own_context_t; + +typedef pumpkin_plugin_server_own_server_t plugin_own_server_instance_t; + +typedef pumpkin_plugin_command_own_command_sender_t plugin_own_command_sender_t; + +typedef pumpkin_plugin_command_own_consumed_args_t plugin_own_consumed_args_t; + +typedef struct { + bool is_err; + union { + int32_t ok; + plugin_command_error_t err; + } val; +} plugin_result_s32_command_error_t; + +typedef struct exports_pumpkin_plugin_metadata_plugin_metadata_t { + // Name of the plugin. + plugin_string_t name; + // Plugin version (semver). + plugin_string_t version; + // Plugin authors. + plugin_list_string_t authors; + // Short description of the plugin. + plugin_string_t description; + // Plugin dependencies. + plugin_list_string_t dependencies; +} exports_pumpkin_plugin_metadata_plugin_metadata_t; + +// Serialized text component as a postcard byte array. +// @deprecated Use the text-component resource from the text interface instead. +typedef struct exports_pumpkin_plugin_common_raw_text_component_t { + uint8_t *ptr; + size_t len; +} exports_pumpkin_plugin_common_raw_text_component_t; + +// A position in the world grid (integers). +typedef struct exports_pumpkin_plugin_common_block_position_t { + int32_t f0; + int32_t f1; + int32_t f2; +} exports_pumpkin_plugin_common_block_position_t; + +// A precise coordinate in the world (floats). +typedef struct exports_pumpkin_plugin_common_position_t { + double f0; + double f1; + double f2; +} exports_pumpkin_plugin_common_position_t; + +// Represents the hands of a player. +typedef uint8_t exports_pumpkin_plugin_common_hand_t; + +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_HAND_LEFT 0 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_HAND_RIGHT 1 + +// Represents the game modes available in Minecraft. +typedef uint8_t exports_pumpkin_plugin_common_game_mode_t; + +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_GAME_MODE_SURVIVAL 0 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_GAME_MODE_CREATIVE 1 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_GAME_MODE_ADVENTURE 2 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_GAME_MODE_SPECTATOR 3 + +// The 16 base Minecraft colors. +typedef uint8_t exports_pumpkin_plugin_common_named_color_t; + +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_BLACK 0 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_DARK_BLUE 1 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_DARK_GREEN 2 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_DARK_AQUA 3 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_DARK_RED 4 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_DARK_PURPLE 5 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_GOLD 6 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_GRAY 7 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_DARK_GRAY 8 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_BLUE 9 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_GREEN 10 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_AQUA 11 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_RED 12 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_LIGHT_PURPLE 13 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_YELLOW 14 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_NAMED_COLOR_WHITE 15 + +// An RGB color represented by its red, green, and blue components. +typedef struct exports_pumpkin_plugin_common_rgb_color_t { + uint8_t r; + uint8_t g; + uint8_t b; +} exports_pumpkin_plugin_common_rgb_color_t; + +// An ARGB color with alpha (transparency) channel. +typedef struct exports_pumpkin_plugin_common_argb_color_t { + uint8_t a; + uint8_t r; + uint8_t g; + uint8_t b; +} exports_pumpkin_plugin_common_argb_color_t; + +// Represents a stack of items with its type and count. +typedef struct exports_pumpkin_plugin_common_item_stack_t { + // The unique registry key (e.g., "minecraft:diamond"). + plugin_string_t registry_key; + // The number of items in the stack. + uint8_t count; +} exports_pumpkin_plugin_common_item_stack_t; + +// Represents the various poses an entity can be in. +typedef uint8_t exports_pumpkin_plugin_common_entity_pose_t; + +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_STANDING 0 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_FALL_FLYING 1 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_SLEEPING 2 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_SWIMMING 3 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_SPIN_ATTACK 4 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_CROUCHING 5 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_LONG_JUMPING 6 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_DYING 7 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_CROAKING 8 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_USING_TONGUE 9 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_SITTING 10 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_ROARING 11 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_SNIFFING 12 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_EMERGING 13 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_DIGGING 14 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_SLIDING 15 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_SHOOTING 16 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_ENTITY_POSE_INHALING 17 + +// All Minecraft-supported locales. +typedef uint8_t exports_pumpkin_plugin_common_locale_t; + +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_AF_ZA 0 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_AR_SA 1 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_AST_ES 2 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_AZ_AZ 3 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_BA_RU 4 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_BAR 5 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_BE_BY 6 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_BG_BG 7 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_BR_FR 8 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_BRB 9 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_BS_BA 10 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_CA_ES 11 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_CS_CZ 12 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_CY_GB 13 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_DA_DK 14 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_DE_AT 15 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_DE_CH 16 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_DE_DE 17 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_EL_GR 18 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_EN_AU 19 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_EN_CA 20 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_EN_GB 21 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_EN_NZ 22 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_EN_PT 23 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_EN_UD 24 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_EN_US 25 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_ENP 26 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_ENWS 27 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_EO_UY 28 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_ES_AR 29 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_ES_CL 30 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_ES_EC 31 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_ES_ES 32 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_ES_MX 33 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_ES_UY 34 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_ES_VE 35 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_ESAN 36 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_ET_EE 37 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_EU_ES 38 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_FA_IR 39 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_FI_FI 40 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_FIL_PH 41 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_FO_FO 42 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_FR_CA 43 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_FR_FR 44 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_FRA_DE 45 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_FUR_IT 46 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_FY_NL 47 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_GA_IE 48 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_GD_GB 49 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_GL_ES 50 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_HAW_US 51 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_HE_IL 52 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_HI_IN 53 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_HR_HR 54 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_HU_HU 55 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_HY_AM 56 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_ID_ID 57 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_IG_NG 58 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_IO_EN 59 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_IS_IS 60 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_ISV 61 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_IT_IT 62 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_JA_JP 63 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_JBO_EN 64 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_KA_GE 65 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_KK_KZ 66 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_KN_IN 67 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_KO_KR 68 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_KSH 69 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_KW_GB 70 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_LA_LA 71 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_LB_LU 72 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_LI_LI 73 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_LMO 74 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_LO_LA 75 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_LOL_US 76 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_LT_LT 77 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_LV_LV 78 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_LZH 79 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_MK_MK 80 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_MN_MN 81 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_MS_MY 82 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_MT_MT 83 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_NAH 84 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_NDS_DE 85 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_NL_BE 86 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_NL_NL 87 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_NN_NO 88 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_NO_NO 89 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_OC_FR 90 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_OVD 91 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_PL_PL 92 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_PT_BR 93 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_PT_PT 94 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_QYA_AA 95 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_RO_RO 96 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_RPR 97 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_RU_RU 98 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_RY_UA 99 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_SAH_SAH 100 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_SE_NO 101 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_SK_SK 102 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_SL_SI 103 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_SO_SO 104 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_SQ_AL 105 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_SR_CS 106 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_SR_SP 107 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_SV_SE 108 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_SXU 109 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_SZL 110 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_TA_IN 111 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_TH_TH 112 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_TL_PH 113 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_TLH_AA 114 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_TOK 115 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_TR_TR 116 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_TT_RU 117 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_UK_UA 118 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_VAL_ES 119 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_VEC_IT 120 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_VI_VN 121 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_YI_DE 122 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_YO_NG 123 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_ZH_CN 124 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_ZH_HK 125 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_ZH_TW 126 +#define EXPORTS_PUMPKIN_PLUGIN_COMMON_LOCALE_ZLM_ARAB 127 + +// Imported Functions from `pumpkin:plugin/logging` +// log any general purpose message +extern void pumpkin_plugin_logging_log(pumpkin_plugin_logging_level_t level, plugin_string_t *message); +// This function is meant to be used by the tracing crate. +extern void pumpkin_plugin_logging_log_tracing(plugin_list_u8_t *event); + +// Imported Functions from `pumpkin:plugin/text` +extern pumpkin_plugin_text_own_text_component_t pumpkin_plugin_text_static_text_component_text(plugin_string_t *plain); +extern pumpkin_plugin_text_own_text_component_t pumpkin_plugin_text_static_text_component_translate(plugin_string_t *key, pumpkin_plugin_text_list_own_text_component_t *with); +extern void pumpkin_plugin_text_method_text_component_add_child(pumpkin_plugin_text_borrow_text_component_t self, pumpkin_plugin_text_own_text_component_t child); +extern void pumpkin_plugin_text_method_text_component_add_text(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *text); +extern void pumpkin_plugin_text_method_text_component_get_text(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *ret); +extern void pumpkin_plugin_text_method_text_component_encode(pumpkin_plugin_text_borrow_text_component_t self, plugin_list_u8_t *ret); +// Style +extern void pumpkin_plugin_text_method_text_component_color_named(pumpkin_plugin_text_borrow_text_component_t self, pumpkin_plugin_text_named_color_t color); +extern void pumpkin_plugin_text_method_text_component_color_rgb(pumpkin_plugin_text_borrow_text_component_t self, pumpkin_plugin_text_rgb_color_t *color); +extern void pumpkin_plugin_text_method_text_component_bold(pumpkin_plugin_text_borrow_text_component_t self, bool value); +extern void pumpkin_plugin_text_method_text_component_italic(pumpkin_plugin_text_borrow_text_component_t self, bool value); +extern void pumpkin_plugin_text_method_text_component_underlined(pumpkin_plugin_text_borrow_text_component_t self, bool value); +extern void pumpkin_plugin_text_method_text_component_strikethrough(pumpkin_plugin_text_borrow_text_component_t self, bool value); +extern void pumpkin_plugin_text_method_text_component_obfuscated(pumpkin_plugin_text_borrow_text_component_t self, bool value); +// Text inserted into chat when shift-clicked +extern void pumpkin_plugin_text_method_text_component_insertion(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *text); +extern void pumpkin_plugin_text_method_text_component_font(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *font); +extern void pumpkin_plugin_text_method_text_component_shadow_color(pumpkin_plugin_text_borrow_text_component_t self, pumpkin_plugin_text_argb_color_t *color); +// Click events +extern void pumpkin_plugin_text_method_text_component_click_open_url(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *url); +extern void pumpkin_plugin_text_method_text_component_click_run_command(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *command); +extern void pumpkin_plugin_text_method_text_component_click_suggest_command(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *command); +extern void pumpkin_plugin_text_method_text_component_click_copy_to_clipboard(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *text); +// Hover events +extern void pumpkin_plugin_text_method_text_component_hover_show_text(pumpkin_plugin_text_borrow_text_component_t self, pumpkin_plugin_text_own_text_component_t text); +// Item data as SNBT string +extern void pumpkin_plugin_text_method_text_component_hover_show_item(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *item); +extern void pumpkin_plugin_text_method_text_component_hover_show_entity(pumpkin_plugin_text_borrow_text_component_t self, plugin_string_t *entity_type, plugin_string_t *id, pumpkin_plugin_text_own_text_component_t *maybe_name); + +// Imported Functions from `pumpkin:plugin/gui` +extern pumpkin_plugin_gui_own_gui_t pumpkin_plugin_gui_constructor_gui(pumpkin_plugin_gui_gui_type_t type, pumpkin_plugin_gui_own_text_component_t title); +extern void pumpkin_plugin_gui_method_gui_set_item(pumpkin_plugin_gui_borrow_gui_t self, uint32_t slot, pumpkin_plugin_gui_item_stack_t *item); +extern bool pumpkin_plugin_gui_method_gui_get_item(pumpkin_plugin_gui_borrow_gui_t self, uint32_t slot, pumpkin_plugin_gui_item_stack_t *ret); + +// Imported Functions from `pumpkin:plugin/scoreboard` +extern void pumpkin_plugin_scoreboard_method_scoreboard_add_objective(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, plugin_string_t *name, pumpkin_plugin_scoreboard_own_text_component_t display_name, pumpkin_plugin_scoreboard_render_type_t render_type); +extern void pumpkin_plugin_scoreboard_method_scoreboard_remove_objective(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, plugin_string_t *name); +extern void pumpkin_plugin_scoreboard_method_scoreboard_set_display_slot(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, pumpkin_plugin_scoreboard_display_slot_t slot, plugin_string_t *objective_name); +extern void pumpkin_plugin_scoreboard_method_scoreboard_update_score(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, plugin_string_t *entity_name, plugin_string_t *objective_name, int32_t value); +extern void pumpkin_plugin_scoreboard_method_scoreboard_remove_score(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, plugin_string_t *entity_name, plugin_string_t *objective_name); +extern void pumpkin_plugin_scoreboard_method_scoreboard_create_team(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, plugin_string_t *name, pumpkin_plugin_scoreboard_team_settings_t *settings); +extern void pumpkin_plugin_scoreboard_method_scoreboard_remove_team(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, plugin_string_t *name); +extern void pumpkin_plugin_scoreboard_method_scoreboard_update_team(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, plugin_string_t *name, pumpkin_plugin_scoreboard_team_settings_t *settings); +extern void pumpkin_plugin_scoreboard_method_scoreboard_add_player_to_team(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, plugin_string_t *team_name, plugin_string_t *player_name); +extern void pumpkin_plugin_scoreboard_method_scoreboard_remove_player_from_team(pumpkin_plugin_scoreboard_borrow_scoreboard_t self, plugin_string_t *team_name, plugin_string_t *player_name); + +// Imported Functions from `pumpkin:plugin/world` +extern uint32_t pumpkin_plugin_world_method_entity_get_id(pumpkin_plugin_world_borrow_entity_t self); +extern void pumpkin_plugin_world_method_entity_get_uuid(pumpkin_plugin_world_borrow_entity_t self, plugin_string_t *ret); +extern void pumpkin_plugin_world_method_entity_get_type(pumpkin_plugin_world_borrow_entity_t self, plugin_string_t *ret); +extern void pumpkin_plugin_world_method_entity_get_position(pumpkin_plugin_world_borrow_entity_t self, pumpkin_plugin_world_position_t *ret); +extern pumpkin_plugin_world_own_world_t pumpkin_plugin_world_method_entity_get_world(pumpkin_plugin_world_borrow_entity_t self); +extern float pumpkin_plugin_world_method_entity_get_yaw(pumpkin_plugin_world_borrow_entity_t self); +extern float pumpkin_plugin_world_method_entity_get_pitch(pumpkin_plugin_world_borrow_entity_t self); +extern float pumpkin_plugin_world_method_entity_get_head_yaw(pumpkin_plugin_world_borrow_entity_t self); +extern bool pumpkin_plugin_world_method_entity_is_on_ground(pumpkin_plugin_world_borrow_entity_t self); +extern bool pumpkin_plugin_world_method_entity_is_sneaking(pumpkin_plugin_world_borrow_entity_t self); +extern bool pumpkin_plugin_world_method_entity_is_sprinting(pumpkin_plugin_world_borrow_entity_t self); +extern bool pumpkin_plugin_world_method_entity_is_invisible(pumpkin_plugin_world_borrow_entity_t self); +extern bool pumpkin_plugin_world_method_entity_is_glowing(pumpkin_plugin_world_borrow_entity_t self); +extern void pumpkin_plugin_world_method_entity_teleport(pumpkin_plugin_world_borrow_entity_t self, pumpkin_plugin_world_position_t *pos, pumpkin_plugin_world_own_world_t world_ref); +extern void pumpkin_plugin_world_method_entity_set_velocity(pumpkin_plugin_world_borrow_entity_t self, pumpkin_plugin_world_position_t *velocity); +extern void pumpkin_plugin_world_method_entity_get_velocity(pumpkin_plugin_world_borrow_entity_t self, pumpkin_plugin_world_position_t *ret); +extern pumpkin_plugin_world_entity_pose_t pumpkin_plugin_world_method_entity_get_pose(pumpkin_plugin_world_borrow_entity_t self); +extern pumpkin_plugin_world_own_text_component_t pumpkin_plugin_world_method_entity_get_name(pumpkin_plugin_world_borrow_entity_t self); +extern void pumpkin_plugin_world_method_entity_set_custom_name(pumpkin_plugin_world_borrow_entity_t self, pumpkin_plugin_world_own_text_component_t name); +extern bool pumpkin_plugin_world_method_entity_get_custom_name(pumpkin_plugin_world_borrow_entity_t self, pumpkin_plugin_world_own_text_component_t *ret); +extern void pumpkin_plugin_world_method_entity_set_custom_name_visible(pumpkin_plugin_world_borrow_entity_t self, bool visible); +extern bool pumpkin_plugin_world_method_entity_is_custom_name_visible(pumpkin_plugin_world_borrow_entity_t self); +extern bool pumpkin_plugin_world_method_entity_is_invulnerable(pumpkin_plugin_world_borrow_entity_t self); +extern void pumpkin_plugin_world_method_entity_set_invulnerable(pumpkin_plugin_world_borrow_entity_t self, bool invulnerable); +extern int32_t pumpkin_plugin_world_method_entity_get_fire_ticks(pumpkin_plugin_world_borrow_entity_t self); +extern void pumpkin_plugin_world_method_entity_set_fire_ticks(pumpkin_plugin_world_borrow_entity_t self, int32_t ticks); +extern void pumpkin_plugin_world_method_entity_remove(pumpkin_plugin_world_borrow_entity_t self); +// Returns the unique identifier of this world. +extern void pumpkin_plugin_world_method_world_get_id(pumpkin_plugin_world_borrow_world_t self, plugin_string_t *ret); +// Gets the block state ID at the specified position. +extern uint16_t pumpkin_plugin_world_method_world_get_block_state_id(pumpkin_plugin_world_borrow_world_t self, pumpkin_plugin_world_block_pos_t *pos); +// Gets detailed block state information at the specified position. +extern void pumpkin_plugin_world_method_world_get_block_state(pumpkin_plugin_world_borrow_world_t self, pumpkin_plugin_world_block_pos_t *pos, pumpkin_plugin_world_block_state_t *ret); +// Sets the block state at the specified position. +extern void pumpkin_plugin_world_method_world_set_block_state(pumpkin_plugin_world_borrow_world_t self, pumpkin_plugin_world_block_pos_t *pos, uint16_t state, pumpkin_plugin_world_block_flags_t update_flags); +// Returns the current time of day in ticks. +extern uint64_t pumpkin_plugin_world_method_world_get_time_of_day(pumpkin_plugin_world_borrow_world_t self); +// Sets the current time of day in ticks. +extern void pumpkin_plugin_world_method_world_set_time_of_day(pumpkin_plugin_world_borrow_world_t self, uint64_t time); +// Returns the total age of the world in ticks. +extern uint64_t pumpkin_plugin_world_method_world_get_world_age(pumpkin_plugin_world_borrow_world_t self); +// Returns the dimension type (e.g., "minecraft:overworld"). +extern void pumpkin_plugin_world_method_world_get_dimension(pumpkin_plugin_world_borrow_world_t self, plugin_string_t *ret); +// Gets the highest non-air block Y coordinate at the specified X and Z. +extern int32_t pumpkin_plugin_world_method_world_get_top_block_y(pumpkin_plugin_world_borrow_world_t self, int32_t x, int32_t z); +// Gets the highest motion-blocking block Y coordinate. +extern int32_t pumpkin_plugin_world_method_world_get_motion_blocking_height(pumpkin_plugin_world_borrow_world_t self, int32_t x, int32_t z); +// Returns whether it is currently raining or snowing. +extern bool pumpkin_plugin_world_method_world_is_raining(pumpkin_plugin_world_borrow_world_t self); +// Sets whether it should be raining or snowing. +extern void pumpkin_plugin_world_method_world_set_raining(pumpkin_plugin_world_borrow_world_t self, bool raining); +// Returns whether there is currently a thunderstorm. +extern bool pumpkin_plugin_world_method_world_is_thundering(pumpkin_plugin_world_borrow_world_t self); +// Sets whether there should be a thunderstorm. +extern void pumpkin_plugin_world_method_world_set_thundering(pumpkin_plugin_world_borrow_world_t self, bool thundering); +// Broadcasts a system message to all players in this world. +extern void pumpkin_plugin_world_method_world_broadcast_system_message(pumpkin_plugin_world_borrow_world_t self, pumpkin_plugin_world_own_text_component_t message, bool overlay); +// Returns the scoreboard associated with this world. +extern pumpkin_plugin_world_own_scoreboard_t pumpkin_plugin_world_method_world_get_scoreboard(pumpkin_plugin_world_borrow_world_t self); +// Plays a sound at the specified position for all players in the world. +extern void pumpkin_plugin_world_method_world_play_sound(pumpkin_plugin_world_borrow_world_t self, plugin_string_t *sound, pumpkin_plugin_world_sound_category_t category, pumpkin_plugin_world_position_t *pos, float volume, float pitch); +// Spawns particles at the specified position. +extern void pumpkin_plugin_world_method_world_spawn_particle(pumpkin_plugin_world_borrow_world_t self, plugin_string_t *particle, pumpkin_plugin_world_position_t *pos, pumpkin_plugin_world_position_t *offset, float max_speed, int32_t count); +// Creates an explosion at the specified position. +extern void pumpkin_plugin_world_method_world_create_explosion(pumpkin_plugin_world_borrow_world_t self, pumpkin_plugin_world_position_t *pos, float power, bool create_fire, pumpkin_plugin_world_explosion_interaction_t interaction); +// Returns the sea level of this world. +extern int32_t pumpkin_plugin_world_method_world_get_sea_level(pumpkin_plugin_world_borrow_world_t self); +// Returns the minimum Y coordinate (bottom of the world). +extern int32_t pumpkin_plugin_world_method_world_get_min_y(pumpkin_plugin_world_borrow_world_t self); +// Returns a list of all entities in this world. +extern void pumpkin_plugin_world_method_world_get_entities(pumpkin_plugin_world_borrow_world_t self, pumpkin_plugin_world_list_own_entity_t *ret); + +// Imported Functions from `pumpkin:plugin/player` +// Returns the player as an entity. +extern pumpkin_plugin_player_own_entity_t pumpkin_plugin_player_method_player_as_entity(pumpkin_plugin_player_borrow_player_t self); +// Returns the player's unique UUID as a string. +extern void pumpkin_plugin_player_method_player_get_id(pumpkin_plugin_player_borrow_player_t self, plugin_string_t *ret); +// Returns the player's username. +extern void pumpkin_plugin_player_method_player_get_name(pumpkin_plugin_player_borrow_player_t self, plugin_string_t *ret); +// Basic state +// Returns the player's current position in the world. +extern void pumpkin_plugin_player_method_player_get_position(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_position_t *ret); +// Returns the player's current yaw (horizontal rotation). +extern float pumpkin_plugin_player_method_player_get_yaw(pumpkin_plugin_player_borrow_player_t self); +// Returns the player's current pitch (vertical rotation). +extern float pumpkin_plugin_player_method_player_get_pitch(pumpkin_plugin_player_borrow_player_t self); +// Returns the world the player is currently in. +extern pumpkin_plugin_player_own_world_t pumpkin_plugin_player_method_player_get_world(pumpkin_plugin_player_borrow_player_t self); +// Returns the player's current game mode. +extern pumpkin_plugin_player_game_mode_t pumpkin_plugin_player_method_player_get_gamemode(pumpkin_plugin_player_borrow_player_t self); +// Changes the player's game mode. Returns true if successful. +extern bool pumpkin_plugin_player_method_player_set_gamemode(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_game_mode_t mode); +// Returns the player's locale (e.g., "en_us"). +extern void pumpkin_plugin_player_method_player_get_locale(pumpkin_plugin_player_borrow_player_t self, plugin_string_t *ret); +// Returns the player's current ping in milliseconds. +extern uint32_t pumpkin_plugin_player_method_player_get_ping(pumpkin_plugin_player_borrow_player_t self); +// Permissions & metadata +// Returns the player's permission level (0-4). +extern pumpkin_plugin_player_permission_level_t pumpkin_plugin_player_method_player_get_permission_level(pumpkin_plugin_player_borrow_player_t self); +// Sets the player's permission level. +extern void pumpkin_plugin_player_method_player_set_permission_level(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_permission_level_t level); +// Checks if the player has a specific permission node. +extern bool pumpkin_plugin_player_method_player_has_permission(pumpkin_plugin_player_borrow_player_t self, plugin_string_t *node); +// Returns the player's display name, which may include formatting. +extern pumpkin_plugin_player_own_text_component_t pumpkin_plugin_player_method_player_get_display_name(pumpkin_plugin_player_borrow_player_t self); +// Messaging & titles +// Sends a system message to the player's chat. +extern void pumpkin_plugin_player_method_player_send_system_message(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_own_text_component_t text, bool overlay); +// Shows a large title on the player's screen. +extern void pumpkin_plugin_player_method_player_show_title(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_own_text_component_t text); +// Shows a smaller subtitle on the player's screen. +extern void pumpkin_plugin_player_method_player_show_subtitle(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_own_text_component_t text); +// Shows a message in the action bar area. +extern void pumpkin_plugin_player_method_player_show_actionbar(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_own_text_component_t text); +// Sets the fade-in, stay, and fade-out times for titles. +extern void pumpkin_plugin_player_method_player_send_title_animation(pumpkin_plugin_player_borrow_player_t self, int32_t fade_in, int32_t stay, int32_t fade_out); +// Teleport & kick +// Teleports the player to a position in a world. +extern void pumpkin_plugin_player_method_player_teleport(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_position_t *position, float *maybe_yaw, float *maybe_pitch, pumpkin_plugin_player_own_world_t world); +// Teleports the player to another world at a specific position. +extern void pumpkin_plugin_player_method_player_teleport_world(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_own_world_t world_ref, pumpkin_plugin_player_position_t *position, float *maybe_yaw, float *maybe_pitch); +// Kicks the player from the server with the specified reason. +extern void pumpkin_plugin_player_method_player_kick(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_own_text_component_t message); +// Forces the player to respawn. +extern void pumpkin_plugin_player_method_player_respawn(pumpkin_plugin_player_borrow_player_t self); +// Opens a GUI for the player. +extern void pumpkin_plugin_player_method_player_open_gui(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_own_gui_t gui_ref); +// Bans the player with an optional reason. +extern void pumpkin_plugin_player_method_player_ban(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_own_text_component_t *maybe_reason); +// Bans the player's IP address with an optional reason. +extern void pumpkin_plugin_player_method_player_ban_ip(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_own_text_component_t *maybe_reason); +// Inventory +// Returns the index of the currently selected hotbar slot (0-8). +extern uint8_t pumpkin_plugin_player_method_player_get_selected_slot(pumpkin_plugin_player_borrow_player_t self); +// Returns the item currently in the specified hand. +extern bool pumpkin_plugin_player_method_player_get_item_in_hand(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_hand_t hand, pumpkin_plugin_player_item_stack_t *ret); +// Returns the item in the specified inventory slot. +extern bool pumpkin_plugin_player_method_player_get_inventory_item(pumpkin_plugin_player_borrow_player_t self, uint8_t slot, pumpkin_plugin_player_item_stack_t *ret); +// Status +// Returns the player's current health. +extern float pumpkin_plugin_player_method_player_get_health(pumpkin_plugin_player_borrow_player_t self); +// Sets the player's current health. +extern void pumpkin_plugin_player_method_player_set_health(pumpkin_plugin_player_borrow_player_t self, float health); +// Returns the player's maximum health. +extern float pumpkin_plugin_player_method_player_get_max_health(pumpkin_plugin_player_borrow_player_t self); +// Sets the player's maximum health. +extern void pumpkin_plugin_player_method_player_set_max_health(pumpkin_plugin_player_borrow_player_t self, float max_health); +// Returns the player's food level (0-20). +extern uint8_t pumpkin_plugin_player_method_player_get_food_level(pumpkin_plugin_player_borrow_player_t self); +// Sets the player's food level. +extern void pumpkin_plugin_player_method_player_set_food_level(pumpkin_plugin_player_borrow_player_t self, uint8_t food_level); +// Returns the player's food saturation level. +extern float pumpkin_plugin_player_method_player_get_saturation(pumpkin_plugin_player_borrow_player_t self); +// Sets the player's food saturation level. +extern void pumpkin_plugin_player_method_player_set_saturation(pumpkin_plugin_player_borrow_player_t self, float saturation); +// Returns the player's food exhaustion level. +extern float pumpkin_plugin_player_method_player_get_exhaustion(pumpkin_plugin_player_borrow_player_t self); +// Sets the player's food exhaustion level. +extern void pumpkin_plugin_player_method_player_set_exhaustion(pumpkin_plugin_player_borrow_player_t self, float exhaustion); +// Returns the player's current absorption amount. +extern float pumpkin_plugin_player_method_player_get_absorption(pumpkin_plugin_player_borrow_player_t self); +// Sets the player's current absorption amount. +extern void pumpkin_plugin_player_method_player_set_absorption(pumpkin_plugin_player_borrow_player_t self, float absorption); +// Returns the player's total experience level. +extern int32_t pumpkin_plugin_player_method_player_get_experience_level(pumpkin_plugin_player_borrow_player_t self); +// Returns the player's progress toward the next level (0.0 to 1.0). +extern float pumpkin_plugin_player_method_player_get_experience_progress(pumpkin_plugin_player_borrow_player_t self); +// Returns the total experience points the player has. +extern int32_t pumpkin_plugin_player_method_player_get_experience_points(pumpkin_plugin_player_borrow_player_t self); +// Sets the player's total experience level. +extern void pumpkin_plugin_player_method_player_set_experience_level(pumpkin_plugin_player_borrow_player_t self, int32_t level); +// Sets the player's progress toward the next level. +extern void pumpkin_plugin_player_method_player_set_experience_progress(pumpkin_plugin_player_borrow_player_t self, float progress); +// Sets the player's total experience points. +extern void pumpkin_plugin_player_method_player_set_experience_points(pumpkin_plugin_player_borrow_player_t self, int32_t points); +// Adds experience levels to the player. +extern void pumpkin_plugin_player_method_player_add_experience_levels(pumpkin_plugin_player_borrow_player_t self, int32_t levels); +// Adds experience points to the player. +extern void pumpkin_plugin_player_method_player_add_experience_points(pumpkin_plugin_player_borrow_player_t self, int32_t points); +// Returns whether the player is currently sneaking. +extern bool pumpkin_plugin_player_method_player_is_sneaking(pumpkin_plugin_player_borrow_player_t self); +// Sets whether the player is currently sneaking. +extern void pumpkin_plugin_player_method_player_set_sneaking(pumpkin_plugin_player_borrow_player_t self, bool sneaking); +// Returns whether the player is currently sprinting. +extern bool pumpkin_plugin_player_method_player_is_sprinting(pumpkin_plugin_player_borrow_player_t self); +// Sets whether the player is currently sprinting. +extern void pumpkin_plugin_player_method_player_set_sprinting(pumpkin_plugin_player_borrow_player_t self, bool sprinting); +// Returns whether the player is currently on the ground. +extern bool pumpkin_plugin_player_method_player_is_on_ground(pumpkin_plugin_player_borrow_player_t self); +// Returns whether the player is currently flying. +extern bool pumpkin_plugin_player_method_player_is_flying(pumpkin_plugin_player_borrow_player_t self); +// Sets whether the player should be flying. +extern void pumpkin_plugin_player_method_player_set_flying(pumpkin_plugin_player_borrow_player_t self, bool flying); +// Returns the player's current abilities. +extern void pumpkin_plugin_player_method_player_get_abilities(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_player_abilities_t *ret); +// Updates the player's abilities. +extern void pumpkin_plugin_player_method_player_set_abilities(pumpkin_plugin_player_borrow_player_t self, pumpkin_plugin_player_player_abilities_t *abilities); +// Returns the player's IP address. +extern void pumpkin_plugin_player_method_player_get_ip(pumpkin_plugin_player_borrow_player_t self, plugin_string_t *ret); + +// Imported Functions from `pumpkin:plugin/server` +// Returns the current difficulty level of the server. +extern pumpkin_plugin_server_difficulty_t pumpkin_plugin_server_method_server_get_difficulty(pumpkin_plugin_server_borrow_server_t self); +// Returns the total number of players currently connected to the server. +extern uint32_t pumpkin_plugin_server_method_server_get_player_count(pumpkin_plugin_server_borrow_server_t self); +// Returns the rolling average Milliseconds Per Tick (MSPT). +// A value below 50.0 is required for a stable 20 TPS. +extern double pumpkin_plugin_server_method_server_get_mspt(pumpkin_plugin_server_borrow_server_t self); +// Returns the effective Ticks Per Second (TPS). +// Ideal value is 20.0. +extern double pumpkin_plugin_server_method_server_get_tps(pumpkin_plugin_server_borrow_server_t self); +// Returns a list of all online players across all worlds. +extern void pumpkin_plugin_server_method_server_get_all_players(pumpkin_plugin_server_borrow_server_t self, pumpkin_plugin_server_list_own_player_t *ret); +// Searches for a player by their exact name. +extern bool pumpkin_plugin_server_method_server_get_player_by_name(pumpkin_plugin_server_borrow_server_t self, plugin_string_t *name, pumpkin_plugin_server_own_player_t *ret); +// Searches for a player by their UUID string. +extern bool pumpkin_plugin_server_method_server_get_player_by_uuid(pumpkin_plugin_server_borrow_server_t self, plugin_string_t *id, pumpkin_plugin_server_own_player_t *ret); + +// Imported Functions from `pumpkin:plugin/block-entity` +extern void pumpkin_plugin_block_entity_method_block_entity_resource_location(pumpkin_plugin_block_entity_borrow_block_entity_t self, plugin_string_t *ret); +extern void pumpkin_plugin_block_entity_method_block_entity_get_position(pumpkin_plugin_block_entity_borrow_block_entity_t self, pumpkin_plugin_block_entity_block_position_t *ret); +extern uint32_t pumpkin_plugin_block_entity_method_block_entity_get_id(pumpkin_plugin_block_entity_borrow_block_entity_t self); +// write-nbt: func(nbt: nbt-compound); +// from-nbt: func(nbt: nbt-compound, position: block-position) -> entity; +// tick: func(world: simple-world); +// write-internal: func(nbt: nbt-compound); +// chunk-data-nbt: func() -> option option; +// set-block-state: func(block-state: block-state-id); +// on-block-replaced: func(world: simple-world, position: block-position); +extern bool pumpkin_plugin_block_entity_method_block_entity_is_dirty(pumpkin_plugin_block_entity_borrow_block_entity_t self); +extern void pumpkin_plugin_block_entity_method_block_entity_clear_dirty(pumpkin_plugin_block_entity_borrow_block_entity_t self); +extern pumpkin_plugin_block_entity_own_block_entity_t pumpkin_plugin_block_entity_method_command_block_entity_get_block_entity(pumpkin_plugin_block_entity_borrow_command_block_entity_t self); +extern void pumpkin_plugin_block_entity_method_command_block_entity_last_output(pumpkin_plugin_block_entity_borrow_command_block_entity_t self, plugin_string_t *ret); +extern bool pumpkin_plugin_block_entity_method_command_block_entity_track_output(pumpkin_plugin_block_entity_borrow_command_block_entity_t self); +extern uint32_t pumpkin_plugin_block_entity_method_command_block_entity_success_count(pumpkin_plugin_block_entity_borrow_command_block_entity_t self); +extern void pumpkin_plugin_block_entity_method_command_block_entity_command(pumpkin_plugin_block_entity_borrow_command_block_entity_t self, plugin_string_t *ret); +extern bool pumpkin_plugin_block_entity_method_command_block_entity_auto(pumpkin_plugin_block_entity_borrow_command_block_entity_t self); +extern bool pumpkin_plugin_block_entity_method_command_block_entity_condition_met(pumpkin_plugin_block_entity_borrow_command_block_entity_t self); +extern bool pumpkin_plugin_block_entity_method_command_block_entity_powered(pumpkin_plugin_block_entity_borrow_command_block_entity_t self); + +// Imported Functions from `pumpkin:plugin/command` +extern void pumpkin_plugin_command_method_consumed_args_get_value(pumpkin_plugin_command_borrow_consumed_args_t self, plugin_string_t *key, pumpkin_plugin_command_arg_t *ret); +extern void pumpkin_plugin_command_method_command_sender_get_command_sender_type(pumpkin_plugin_command_borrow_command_sender_t self, pumpkin_plugin_command_command_sender_type_t *ret); +extern void pumpkin_plugin_command_method_command_sender_send_message(pumpkin_plugin_command_borrow_command_sender_t self, pumpkin_plugin_command_own_text_component_t text); +extern void pumpkin_plugin_command_method_command_sender_set_success_count(pumpkin_plugin_command_borrow_command_sender_t self, int32_t count); +extern bool pumpkin_plugin_command_method_command_sender_is_player(pumpkin_plugin_command_borrow_command_sender_t self); +extern bool pumpkin_plugin_command_method_command_sender_is_console(pumpkin_plugin_command_borrow_command_sender_t self); +extern bool pumpkin_plugin_command_method_command_sender_as_player(pumpkin_plugin_command_borrow_command_sender_t self, pumpkin_plugin_command_own_player_t *ret); +extern pumpkin_plugin_command_permission_level_t pumpkin_plugin_command_method_command_sender_permission_level(pumpkin_plugin_command_borrow_command_sender_t self); +extern bool pumpkin_plugin_command_method_command_sender_has_permission_level(pumpkin_plugin_command_borrow_command_sender_t self, pumpkin_plugin_command_permission_level_t level); +extern bool pumpkin_plugin_command_method_command_sender_has_permission(pumpkin_plugin_command_borrow_command_sender_t self, pumpkin_plugin_command_borrow_server_t server, plugin_string_t *node); +extern bool pumpkin_plugin_command_method_command_sender_position(pumpkin_plugin_command_borrow_command_sender_t self, pumpkin_plugin_command_position_t *ret); +extern bool pumpkin_plugin_command_method_command_sender_world(pumpkin_plugin_command_borrow_command_sender_t self, pumpkin_plugin_command_own_world_t *ret); +extern pumpkin_plugin_command_locale_t pumpkin_plugin_command_method_command_sender_get_locale(pumpkin_plugin_command_borrow_command_sender_t self); +extern bool pumpkin_plugin_command_method_command_sender_should_receive_feedback(pumpkin_plugin_command_borrow_command_sender_t self); +extern bool pumpkin_plugin_command_method_command_sender_should_broadcast_console_to_ops(pumpkin_plugin_command_borrow_command_sender_t self); +extern bool pumpkin_plugin_command_method_command_sender_should_track_output(pumpkin_plugin_command_borrow_command_sender_t self); +extern pumpkin_plugin_command_own_command_node_t pumpkin_plugin_command_static_command_node_literal(plugin_string_t *name); +extern pumpkin_plugin_command_own_command_node_t pumpkin_plugin_command_static_command_node_argument(plugin_string_t *name, pumpkin_plugin_command_argument_type_t *arg_type); +extern void pumpkin_plugin_command_method_command_node_then(pumpkin_plugin_command_borrow_command_node_t self, pumpkin_plugin_command_own_command_node_t node); +extern void pumpkin_plugin_command_method_command_node_execute_with_handler_id(pumpkin_plugin_command_borrow_command_node_t self, uint32_t handler_id); +extern void pumpkin_plugin_command_method_command_node_require_with_handler_id(pumpkin_plugin_command_borrow_command_node_t self, uint32_t handler_id); +// First name is primary, rest are aliases +extern pumpkin_plugin_command_own_command_t pumpkin_plugin_command_constructor_command(plugin_list_string_t *names, plugin_string_t *description); +extern void pumpkin_plugin_command_method_command_then(pumpkin_plugin_command_borrow_command_t self, pumpkin_plugin_command_own_command_node_t node); +extern void pumpkin_plugin_command_method_command_execute_with_handler_id(pumpkin_plugin_command_borrow_command_t self, uint32_t handler_id); + +// Imported Functions from `pumpkin:plugin/context` +// Registers a handler for a specific event. +// +// * `handler-id`: Unique ID for the event handler. +// * `event-type`: The type of event to listen for. +// * `event-priority`: When this handler should be called relative to others. +// * `blocking`: Whether the event should wait for this handler to finish. +extern void pumpkin_plugin_context_method_context_register_event(pumpkin_plugin_context_borrow_context_t self, uint32_t handler_id, pumpkin_plugin_context_event_type_t event_type, pumpkin_plugin_context_event_priority_t event_priority, bool blocking); +// Registers a new command. +// +// * `command`: The command definition. +// * `permission`: The required permission node to execute this command. +extern void pumpkin_plugin_context_method_context_register_command(pumpkin_plugin_context_borrow_context_t self, pumpkin_plugin_context_own_command_t command, plugin_string_t *permission); +// Registers a permission node with the server. +extern bool pumpkin_plugin_context_method_context_register_permission(pumpkin_plugin_context_borrow_context_t self, pumpkin_plugin_context_permission_t *permission, plugin_string_t *err); +// Returns the path to the plugin's private data folder. +extern void pumpkin_plugin_context_method_context_get_data_folder(pumpkin_plugin_context_borrow_context_t self, plugin_string_t *ret); +// Returns the global server instance. +extern pumpkin_plugin_context_own_server_t pumpkin_plugin_context_method_context_get_server(pumpkin_plugin_context_borrow_context_t self); + +// Imported Functions from `pumpkin:plugin/i18n` +// Retrieves a translated string from the host. +// +// # Arguments +// * `key`: The namespaced translation key (e.g. `pumpkin:my_key`). +// * `locale`: The target locale. +// +// # Returns +// The localized string, falling back to English or the key itself. +extern void pumpkin_plugin_i18n_translate(plugin_string_t *key, pumpkin_plugin_i18n_locale_t locale, plugin_string_t *ret); +// Loads custom translations from a JSON string. +// +// # Arguments +// * `namespace`: The namespace to associate these keys with. +// * `json`: A JSON string containing a flat map of translations. +// * `locale`: The target locale for these translations. +extern void pumpkin_plugin_i18n_load_translations(plugin_string_t *namespace_, plugin_string_t *json, pumpkin_plugin_i18n_locale_t locale); + +// Imported Functions from `pumpkin:plugin/scheduler` +// Schedules a task to be executed once after the specified number of ticks. +// +// * `handler-id`: The unique ID of the handler to call when the task executes. +// * `delay-ticks`: The number of game ticks to wait before execution (20 ticks = 1 second). +// +// Returns a unique task ID that can be used to cancel the task. +extern uint32_t pumpkin_plugin_scheduler_schedule_delayed_task(uint32_t handler_id, uint64_t delay_ticks); +// Schedules a task to be executed repeatedly. +// +// * `handler-id`: The unique ID of the handler to call when the task executes. +// * `delay-ticks`: The number of game ticks to wait before the first execution. +// * `period-ticks`: The number of game ticks between subsequent executions. +// +// Returns a unique task ID that can be used to cancel the task. +extern uint32_t pumpkin_plugin_scheduler_schedule_repeating_task(uint32_t handler_id, uint64_t delay_ticks, uint64_t period_ticks); +// Cancels a scheduled task if it hasn't finished yet. +// +// * `task-id`: The ID of the task to cancel. +extern void pumpkin_plugin_scheduler_cancel_task(uint32_t task_id); + +// Exported Functions from `plugin` +void exports_plugin_init_plugin(void); +bool exports_plugin_on_load(plugin_own_context_t context, plugin_string_t *err); +bool exports_plugin_on_unload(plugin_own_context_t context, plugin_string_t *err); +void exports_plugin_handle_event(uint32_t event_id, plugin_own_server_instance_t server, plugin_event_t *event, plugin_event_t *ret); +bool exports_plugin_handle_command(uint32_t command_id, plugin_own_command_sender_t sender, plugin_own_server_instance_t server, plugin_own_consumed_args_t args, int32_t *ret, plugin_command_error_t *err); +void exports_plugin_handle_task(uint32_t handler_id, plugin_own_server_instance_t server); + +// Exported Functions from `pumpkin:plugin/metadata` +void exports_pumpkin_plugin_metadata_get_metadata(exports_pumpkin_plugin_metadata_plugin_metadata_t *ret); + +// Helper Functions + +void plugin_list_u8_free(plugin_list_u8_t *ptr); + +void pumpkin_plugin_common_raw_text_component_free(pumpkin_plugin_common_raw_text_component_t *ptr); + +void pumpkin_plugin_common_item_stack_free(pumpkin_plugin_common_item_stack_t *ptr); + +extern void pumpkin_plugin_text_text_component_drop_own(pumpkin_plugin_text_own_text_component_t handle); + +extern void pumpkin_plugin_text_text_component_drop_borrow(pumpkin_plugin_text_borrow_text_component_t handle); + +extern pumpkin_plugin_text_borrow_text_component_t pumpkin_plugin_text_borrow_text_component(pumpkin_plugin_text_own_text_component_t handle); + +void pumpkin_plugin_text_list_own_text_component_free(pumpkin_plugin_text_list_own_text_component_t *ptr); + +void pumpkin_plugin_text_option_own_text_component_free(pumpkin_plugin_text_option_own_text_component_t *ptr); + +void pumpkin_plugin_gui_item_stack_free(pumpkin_plugin_gui_item_stack_t *ptr); + +extern void pumpkin_plugin_gui_gui_drop_own(pumpkin_plugin_gui_own_gui_t handle); + +extern void pumpkin_plugin_gui_gui_drop_borrow(pumpkin_plugin_gui_borrow_gui_t handle); + +extern pumpkin_plugin_gui_borrow_gui_t pumpkin_plugin_gui_borrow_gui(pumpkin_plugin_gui_own_gui_t handle); + +void pumpkin_plugin_gui_option_item_stack_free(pumpkin_plugin_gui_option_item_stack_t *ptr); + +extern void pumpkin_plugin_scoreboard_scoreboard_drop_own(pumpkin_plugin_scoreboard_own_scoreboard_t handle); + +extern void pumpkin_plugin_scoreboard_scoreboard_drop_borrow(pumpkin_plugin_scoreboard_borrow_scoreboard_t handle); + +extern pumpkin_plugin_scoreboard_borrow_scoreboard_t pumpkin_plugin_scoreboard_borrow_scoreboard(pumpkin_plugin_scoreboard_own_scoreboard_t handle); + +extern void pumpkin_plugin_world_entity_drop_own(pumpkin_plugin_world_own_entity_t handle); + +extern void pumpkin_plugin_world_entity_drop_borrow(pumpkin_plugin_world_borrow_entity_t handle); + +extern pumpkin_plugin_world_borrow_entity_t pumpkin_plugin_world_borrow_entity(pumpkin_plugin_world_own_entity_t handle); + +extern void pumpkin_plugin_world_world_drop_own(pumpkin_plugin_world_own_world_t handle); + +extern void pumpkin_plugin_world_world_drop_borrow(pumpkin_plugin_world_borrow_world_t handle); + +extern pumpkin_plugin_world_borrow_world_t pumpkin_plugin_world_borrow_world(pumpkin_plugin_world_own_world_t handle); + +void pumpkin_plugin_world_option_own_text_component_free(pumpkin_plugin_world_option_own_text_component_t *ptr); + +void pumpkin_plugin_world_list_own_entity_free(pumpkin_plugin_world_list_own_entity_t *ptr); + +void pumpkin_plugin_permission_permission_default_free(pumpkin_plugin_permission_permission_default_t *ptr); + +void pumpkin_plugin_permission_permission_child_free(pumpkin_plugin_permission_permission_child_t *ptr); + +void pumpkin_plugin_permission_list_permission_child_free(pumpkin_plugin_permission_list_permission_child_t *ptr); + +void pumpkin_plugin_permission_permission_free(pumpkin_plugin_permission_permission_t *ptr); + +void pumpkin_plugin_player_item_stack_free(pumpkin_plugin_player_item_stack_t *ptr); + +extern void pumpkin_plugin_player_player_drop_own(pumpkin_plugin_player_own_player_t handle); + +extern void pumpkin_plugin_player_player_drop_borrow(pumpkin_plugin_player_borrow_player_t handle); + +extern pumpkin_plugin_player_borrow_player_t pumpkin_plugin_player_borrow_player(pumpkin_plugin_player_own_player_t handle); + +void plugin_option_f32_free(plugin_option_f32_t *ptr); + +void pumpkin_plugin_player_option_own_text_component_free(pumpkin_plugin_player_option_own_text_component_t *ptr); + +void pumpkin_plugin_player_option_item_stack_free(pumpkin_plugin_player_option_item_stack_t *ptr); + +extern void pumpkin_plugin_server_server_drop_own(pumpkin_plugin_server_own_server_t handle); + +extern void pumpkin_plugin_server_server_drop_borrow(pumpkin_plugin_server_borrow_server_t handle); + +extern pumpkin_plugin_server_borrow_server_t pumpkin_plugin_server_borrow_server(pumpkin_plugin_server_own_server_t handle); + +void pumpkin_plugin_server_list_own_player_free(pumpkin_plugin_server_list_own_player_t *ptr); + +void pumpkin_plugin_server_option_own_player_free(pumpkin_plugin_server_option_own_player_t *ptr); + +extern void pumpkin_plugin_block_entity_block_entity_drop_own(pumpkin_plugin_block_entity_own_block_entity_t handle); + +extern void pumpkin_plugin_block_entity_block_entity_drop_borrow(pumpkin_plugin_block_entity_borrow_block_entity_t handle); + +extern pumpkin_plugin_block_entity_borrow_block_entity_t pumpkin_plugin_block_entity_borrow_block_entity(pumpkin_plugin_block_entity_own_block_entity_t handle); + +extern void pumpkin_plugin_block_entity_command_block_entity_drop_own(pumpkin_plugin_block_entity_own_command_block_entity_t handle); + +extern void pumpkin_plugin_block_entity_command_block_entity_drop_borrow(pumpkin_plugin_block_entity_borrow_command_block_entity_t handle); + +extern pumpkin_plugin_block_entity_borrow_command_block_entity_t pumpkin_plugin_block_entity_borrow_command_block_entity(pumpkin_plugin_block_entity_own_command_block_entity_t handle); + +void pumpkin_plugin_block_entity_block_entity_type_free(pumpkin_plugin_block_entity_block_entity_type_t *ptr); + +void pumpkin_plugin_command_number_free(pumpkin_plugin_command_number_t *ptr); + +void pumpkin_plugin_command_tuple2_number_number_free(pumpkin_plugin_command_tuple2_number_number_t *ptr); + +void pumpkin_plugin_command_not_in_bounds_free(pumpkin_plugin_command_not_in_bounds_t *ptr); + +void pumpkin_plugin_command_list_own_entity_free(pumpkin_plugin_command_list_own_entity_t *ptr); + +void pumpkin_plugin_command_list_own_player_free(pumpkin_plugin_command_list_own_player_t *ptr); + +void pumpkin_plugin_command_result_number_not_in_bounds_free(pumpkin_plugin_command_result_number_not_in_bounds_t *ptr); + +void pumpkin_plugin_command_arg_free(pumpkin_plugin_command_arg_t *ptr); + +extern void pumpkin_plugin_command_consumed_args_drop_own(pumpkin_plugin_command_own_consumed_args_t handle); + +extern void pumpkin_plugin_command_consumed_args_drop_borrow(pumpkin_plugin_command_borrow_consumed_args_t handle); + +extern pumpkin_plugin_command_borrow_consumed_args_t pumpkin_plugin_command_borrow_consumed_args(pumpkin_plugin_command_own_consumed_args_t handle); + +void pumpkin_plugin_command_command_sender_type_free(pumpkin_plugin_command_command_sender_type_t *ptr); + +extern void pumpkin_plugin_command_command_sender_drop_own(pumpkin_plugin_command_own_command_sender_t handle); + +extern void pumpkin_plugin_command_command_sender_drop_borrow(pumpkin_plugin_command_borrow_command_sender_t handle); + +extern pumpkin_plugin_command_borrow_command_sender_t pumpkin_plugin_command_borrow_command_sender(pumpkin_plugin_command_own_command_sender_t handle); + +void plugin_tuple2_option_f32_option_f32_free(plugin_tuple2_option_f32_option_f32_t *ptr); + +void plugin_option_f64_free(plugin_option_f64_t *ptr); + +void plugin_tuple2_option_f64_option_f64_free(plugin_tuple2_option_f64_option_f64_t *ptr); + +void plugin_option_s32_free(plugin_option_s32_t *ptr); + +void plugin_tuple2_option_s32_option_s32_free(plugin_tuple2_option_s32_option_s32_t *ptr); + +void plugin_option_s64_free(plugin_option_s64_t *ptr); + +void plugin_tuple2_option_s64_option_s64_free(plugin_tuple2_option_s64_option_s64_t *ptr); + +void pumpkin_plugin_command_argument_type_free(pumpkin_plugin_command_argument_type_t *ptr); + +void plugin_option_string_free(plugin_option_string_t *ptr); + +void pumpkin_plugin_command_command_error_free(pumpkin_plugin_command_command_error_t *ptr); + +extern void pumpkin_plugin_command_command_node_drop_own(pumpkin_plugin_command_own_command_node_t handle); + +extern void pumpkin_plugin_command_command_node_drop_borrow(pumpkin_plugin_command_borrow_command_node_t handle); + +extern pumpkin_plugin_command_borrow_command_node_t pumpkin_plugin_command_borrow_command_node(pumpkin_plugin_command_own_command_node_t handle); + +extern void pumpkin_plugin_command_command_drop_own(pumpkin_plugin_command_own_command_t handle); + +extern void pumpkin_plugin_command_command_drop_borrow(pumpkin_plugin_command_borrow_command_t handle); + +extern pumpkin_plugin_command_borrow_command_t pumpkin_plugin_command_borrow_command(pumpkin_plugin_command_own_command_t handle); + +void pumpkin_plugin_command_option_own_player_free(pumpkin_plugin_command_option_own_player_t *ptr); + +void plugin_option_position_free(plugin_option_position_t *ptr); + +void pumpkin_plugin_command_option_own_world_free(pumpkin_plugin_command_option_own_world_t *ptr); + +void plugin_list_string_free(plugin_list_string_t *ptr); + +void pumpkin_plugin_event_item_stack_free(pumpkin_plugin_event_item_stack_t *ptr); + +void pumpkin_plugin_event_list_own_player_free(pumpkin_plugin_event_list_own_player_t *ptr); + +void pumpkin_plugin_event_player_chat_event_data_free(pumpkin_plugin_event_player_chat_event_data_t *ptr); + +void pumpkin_plugin_event_player_command_send_event_data_free(pumpkin_plugin_event_player_command_send_event_data_t *ptr); + +void pumpkin_plugin_event_player_permission_check_event_data_free(pumpkin_plugin_event_player_permission_check_event_data_t *ptr); + +void pumpkin_plugin_event_player_custom_payload_event_data_free(pumpkin_plugin_event_player_custom_payload_event_data_t *ptr); + +void pumpkin_plugin_event_player_fish_event_data_free(pumpkin_plugin_event_player_fish_event_data_t *ptr); + +void pumpkin_plugin_event_player_egg_throw_event_data_free(pumpkin_plugin_event_player_egg_throw_event_data_t *ptr); + +void plugin_option_block_position_free(plugin_option_block_position_t *ptr); + +void pumpkin_plugin_event_player_interact_event_data_free(pumpkin_plugin_event_player_interact_event_data_t *ptr); + +void pumpkin_plugin_event_option_own_player_free(pumpkin_plugin_event_option_own_player_t *ptr); + +void pumpkin_plugin_event_block_break_event_data_free(pumpkin_plugin_event_block_break_event_data_t *ptr); + +void pumpkin_plugin_event_block_burn_event_data_free(pumpkin_plugin_event_block_burn_event_data_t *ptr); + +void pumpkin_plugin_event_block_can_build_event_data_free(pumpkin_plugin_event_block_can_build_event_data_t *ptr); + +void pumpkin_plugin_event_block_grow_event_data_free(pumpkin_plugin_event_block_grow_event_data_t *ptr); + +void pumpkin_plugin_event_block_place_event_data_free(pumpkin_plugin_event_block_place_event_data_t *ptr); + +void pumpkin_plugin_event_server_command_event_data_free(pumpkin_plugin_event_server_command_event_data_t *ptr); + +void pumpkin_plugin_event_event_free(pumpkin_plugin_event_event_t *ptr); + +void pumpkin_plugin_context_permission_free(pumpkin_plugin_context_permission_t *ptr); + +extern void pumpkin_plugin_context_context_drop_own(pumpkin_plugin_context_own_context_t handle); + +extern void pumpkin_plugin_context_context_drop_borrow(pumpkin_plugin_context_borrow_context_t handle); + +extern pumpkin_plugin_context_borrow_context_t pumpkin_plugin_context_borrow_context(pumpkin_plugin_context_own_context_t handle); + +void pumpkin_plugin_context_result_void_string_free(pumpkin_plugin_context_result_void_string_t *ptr); + +void plugin_event_free(plugin_event_t *ptr); + +void plugin_command_error_free(plugin_command_error_t *ptr); + +void plugin_result_s32_command_error_free(plugin_result_s32_command_error_t *ptr); + +void exports_pumpkin_plugin_metadata_plugin_metadata_free(exports_pumpkin_plugin_metadata_plugin_metadata_t *ptr); + +void exports_pumpkin_plugin_common_raw_text_component_free(exports_pumpkin_plugin_common_raw_text_component_t *ptr); + +void exports_pumpkin_plugin_common_item_stack_free(exports_pumpkin_plugin_common_item_stack_t *ptr); + +// Sets the string `ret` to reference the input string `s` without copying it +void plugin_string_set(plugin_string_t *ret, const char*s); + +// Creates a copy of the input nul-terminated string `s` and +// stores it into the component model string `ret`. +void plugin_string_dup(plugin_string_t *ret, const char*s); + +// Creates a copy of the input string `s` with length `len` and +// stores it into the component model string `ret`. +// The length is specified in code units (bytes for UTF-8, 16-bit values for UTF-16). +void plugin_string_dup_n(plugin_string_t *ret, const char*s, size_t len); + +// Deallocates the string pointed to by `ret`, deallocating +// the memory behind the string. +void plugin_string_free(plugin_string_t *ret); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/src/gen/plugin_component_type.o b/src/gen/plugin_component_type.o new file mode 100644 index 0000000..e9ad7fb Binary files /dev/null and b/src/gen/plugin_component_type.o differ diff --git a/src/pumpkin_api.c b/src/pumpkin_api.c new file mode 100644 index 0000000..ec7b712 --- /dev/null +++ b/src/pumpkin_api.c @@ -0,0 +1,63 @@ +#include "pumpkin_api.h" +#include +#include + +static pumpkin_plugin_t g_plugin = {0}; + +void pumpkin_register_plugin(pumpkin_plugin_t plugin) { + g_plugin = plugin; +} + +// WIT exports + +void exports_pumpkin_plugin_metadata_get_metadata(exports_pumpkin_plugin_metadata_plugin_metadata_t *ret) { + if (g_plugin.get_metadata) { + pumpkin_metadata_t meta = g_plugin.get_metadata(); + plugin_string_dup(&(ret->name), meta.name); + plugin_string_dup(&(ret->version), meta.version); + + ret->authors.len = meta.authors_count; + ret->authors.ptr = (plugin_string_t*)malloc(ret->authors.len * sizeof(plugin_string_t)); + for (size_t i = 0; i < ret->authors.len; ++i) { + plugin_string_dup(&(ret->authors.ptr[i]), meta.authors[i]); + } + + plugin_string_dup(&(ret->description), meta.description); + + ret->dependencies.len = meta.dependencies_count; + ret->dependencies.ptr = (plugin_string_t*)malloc(ret->dependencies.len * sizeof(plugin_string_t)); + for (size_t i = 0; i < ret->dependencies.len; ++i) { + plugin_string_dup(&(ret->dependencies.ptr[i]), meta.dependencies[i]); + } + } +} + +bool exports_plugin_on_load(plugin_own_context_t context_handle, plugin_string_t *err) { + if (g_plugin.on_load) { + g_plugin.on_load(context_handle); + return true; + } + return true; // No on_load is not an error +} + +bool exports_plugin_on_unload(plugin_own_context_t context_handle, plugin_string_t *err) { + if (g_plugin.on_unload) { + g_plugin.on_unload(context_handle); + return true; + } + return true; +} + +void exports_plugin_handle_event(uint32_t event_id, plugin_own_server_instance_t server, plugin_event_t *event, plugin_event_t *ret) { + // Basic event pass-through + *ret = *event; +} + +bool exports_plugin_handle_command(uint32_t command_id, plugin_own_command_sender_t sender, plugin_own_server_instance_t server, plugin_own_consumed_args_t args, int32_t *ret, plugin_command_error_t *err) { + err->is_err = true; + plugin_string_dup(&(err->val.err.val.command_failed.val.text), "Command not implemented"); + return false; +} + +void exports_plugin_handle_task(uint32_t handler_id, plugin_own_server_instance_t server) { +} diff --git a/wit/repo b/wit/repo new file mode 160000 index 0000000..7cc4854 --- /dev/null +++ b/wit/repo @@ -0,0 +1 @@ +Subproject commit 7cc4854078e8a4008253b2e3bc7dc89db0ef37d3