MinecraftConsoles/Minecraft.Server/FourKitBridge.h
DrPerkyLegit ebc1d4c640
Events, minor apis, stubs for future pr (#9)
* StructureGrowEvent, expose internal dimension id

* Update StructureGrowEvent.cs

* PlayerLoginEvent, ability to change xuids, get xuids, stub for experimental player connection api

* add docs, fix up to use cmake

---------

Co-authored-by: sylvessa <225480449+sylvessa@users.noreply.github.com>
2026-04-02 17:22:07 -05:00

87 lines
5.2 KiB
C++

#pragma once
#include <string>
namespace FourKitBridge
{
void Initialize();
void Shutdown();
bool FirePlayerPreLogin(const std::wstring& name, const std::string& ip, int port);
bool FirePlayerLogin(const std::wstring& name, const std::string& ip, int port, int type, unsigned long long* onlineXUID, unsigned long long* offlineXUID);
void FirePlayerJoin(int entityId, const std::wstring& name, const std::wstring& uuid, unsigned long long onlineXUID, unsigned long long offlineXUID);
bool FirePlayerQuit(int entityId);
bool FirePlayerKick(int entityId, int disconnectReason,
std::wstring &outLeaveMessage);
bool FirePlayerMove(int entityId,
double fromX, double fromY, double fromZ,
double toX, double toY, double toZ,
double *outToX, double *outToY, double *outToZ);
bool FireStructureGrow(int dimId, int x, int y, int z, int treeType, bool wasBonemeal = false, int entityId = -1);
bool FirePlayerChat(int entityId,
const std::wstring &message,
std::wstring &outFormatted);
void UpdatePlayerEntityId(int oldEntityId, int newEntityId);
int GetTileId(int dimId, int x, int y, int z);
int GetTileData(int dimId, int x, int y, int z);
void SetTile(int dimId, int x, int y, int z, int tileId, int data);
void SetTileData(int dimId, int x, int y, int z, int data);
int BreakBlock(int dimId, int x, int y, int z);
int GetHighestBlockY(int dimId, int x, int z);
bool FireBlockPlace(int entityId, int dimId,
int placedX, int placedY, int placedZ,
int againstX, int againstY, int againstZ,
int itemId, int itemCount, bool canBuild);
int FireBlockBreak(int entityId, int dimId,
int x, int y, int z, int tileId, int data, int exp);
bool FireEntityDamage(int entityId, int entityTypeId, int dimId,
double x, double y, double z, int causeId, double damage,
double *outDamage,
int damagerEntityId, int damagerEntityTypeId,
double damagerX, double damagerY, double damagerZ);
bool FireSignChange(int entityId, int dimId,
int x, int y, int z,
const std::wstring &line0, const std::wstring &line1,
const std::wstring &line2, const std::wstring &line3,
std::wstring outLines[4]);
int FireEntityDeath(int entityId, int entityTypeId, int dimId,
double x, double y, double z, int exp);
int FirePlayerDeath(int entityId, const std::wstring &deathMessage, int exp,
std::wstring &outDeathMessage, int *outKeepInventory,
int *outNewExp, int *outNewLevel, int *outKeepLevel);
int MapEntityType(int nativeType);
int MapDamageCause(void *source);
bool FirePlayerDropItem(int entityId, int itemId, int itemCount, int itemAux,
int *outItemId, int *outItemCount, int *outItemAux);
bool FirePlayerInteract(int entityId, int action,
int itemId, int itemCount, int itemAux,
int clickedX, int clickedY, int clickedZ,
int blockFace, int dimId,
int *outUseItemInHand);
bool FirePlayerInteractEntity(int playerEntityId,
int targetEntityId, int targetEntityTypeId,
int dimId, double targetX, double targetY, double targetZ,
float targetHealth, float targetMaxHealth, float targetEyeHeight);
bool FirePlayerPickupItem(int playerEntityId,
int itemEntityId, int dimId, double itemX, double itemY, double itemZ,
int itemId, int itemCount, int itemAux, int remaining,
int *outItemId, int *outItemCount, int *outItemAux);
bool FireInventoryOpen(int entityId, int nativeContainerType,
const std::wstring &title, int containerSize);
bool HandlePlayerCommand(int entityId, const std::wstring &commandLine);
bool HandleConsoleCommand(const std::string &commandLine);
int GetPluginCommandHelp(char *outBuf, int outBufSize, int *outLen);
bool FirePlayerTeleport(int entityId,
double fromX, double fromY, double fromZ, int fromDimId,
double toX, double toY, double toZ, int toDimId,
int cause,
double *outToX, double *outToY, double *outToZ);
bool FirePlayerPortal(int entityId,
double fromX, double fromY, double fromZ, int fromDimId,
double toX, double toY, double toZ, int toDimId,
int cause,
double *outToX, double *outToY, double *outToZ);
int FireInventoryClick(int entityId, int slot, int button, int clickType);
bool FireBedEnter(int entityId, int dimId, int bedX, int bedY, int bedZ);
void FireBedLeave(int entityId, int dimId, int bedX, int bedY, int bedZ);
}