164 lines
8.7 KiB
C
164 lines
8.7 KiB
C
#include "libsidecar.h"
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
void panicWithTC9Unavailable(const char* message) {
|
|
fprintf(stderr, "Tried to call '%s', but using stub for libsidecar. Use -DUSE_REAL_LIBSIDECAR=ON in cmake to use the real one.\n", message);
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
// Version APIs work without a real libsidecar so callers can always query
|
|
// the header version this tree was built against.
|
|
void TC9GetVersion(int* major, int* minor, int* patch)
|
|
{
|
|
if (major)
|
|
*major = TC9_VERSION_MAJOR;
|
|
if (minor)
|
|
*minor = TC9_VERSION_MINOR;
|
|
if (patch)
|
|
*patch = TC9_VERSION_PATCH;
|
|
}
|
|
|
|
const char* TC9GetVersionString(void)
|
|
{
|
|
return TC9_VERSION_STRING;
|
|
}
|
|
|
|
int TC9CheckAbiCompatible(int required_major, int required_minor)
|
|
{
|
|
if (TC9_VERSION_MAJOR != required_major)
|
|
return 1;
|
|
if (TC9_VERSION_MINOR < required_minor)
|
|
return 2;
|
|
return 0;
|
|
}
|
|
|
|
// TC9SetBattlegroundStartHandler sets handler for starting battleground.
|
|
//
|
|
extern void TC9SetBattlegroundStartHandler(BattlegroundStartHandler h) { panicWithTC9Unavailable("TC9SetBattlegroundStartHandler"); }
|
|
|
|
// TC9SetBattlegroundAddPlayersHandler sets handler for adding players to battleground.
|
|
//
|
|
extern void TC9SetBattlegroundAddPlayersHandler(BattlegroundAddPlayersHandler h) { panicWithTC9Unavailable("TC9SetBattlegroundAddPlayersHandler"); }
|
|
|
|
void TC9SetOnGroupCreatedHook(OnGroupCreatedHook h) { panicWithTC9Unavailable("TC9SetOnGroupCreatedHook"); }
|
|
|
|
// TC9SetOnGroupMemberAddedHook sets hook for member added event.
|
|
//
|
|
void TC9SetOnGroupMemberAddedHook(OnGroupMemberAddedHook h) { panicWithTC9Unavailable("TC9SetOnGroupMemberAddedHook"); }
|
|
|
|
// TC9SetOnGroupMemberRemovedHook sets hook for member left/kicked event.
|
|
//
|
|
void TC9SetOnGroupMemberRemovedHook(OnGroupMemberRemovedHook h) { panicWithTC9Unavailable("TC9SetOnGroupMemberRemovedHook"); }
|
|
|
|
// TC9SetOnGroupDisbandedHook sets hook for group disbanded event.
|
|
//
|
|
void TC9SetOnGroupDisbandedHook(OnGroupDisbandedHook h) { panicWithTC9Unavailable("TC9SetOnGroupDisbandedHook"); }
|
|
|
|
// TC9SetOnGroupLootTypeChangedHook sets hook for group loot type changed event.
|
|
//
|
|
void TC9SetOnGroupLootTypeChangedHook(OnGroupLootTypeChangedHook h) { panicWithTC9Unavailable("TC9SetOnGroupLootTypeChangedHook"); }
|
|
|
|
// TC9SetOnGroupDungeonDifficultyChangedHook sets hook for group dungeon difficulty changed event.
|
|
//
|
|
void TC9SetOnGroupDungeonDifficultyChangedHook(OnGroupDungeonDifficultyChangedHook h) { panicWithTC9Unavailable("TC9SetOnGroupDungeonDifficultyChangedHook"); }
|
|
|
|
// TC9SetOnGroupRaidDifficultyChangedHook sets hook for group raid difficulty changed event.
|
|
//
|
|
void TC9SetOnGroupRaidDifficultyChangedHook(OnGroupRaidDifficultyChangedHook h) { panicWithTC9Unavailable("TC9SetOnGroupRaidDifficultyChangedHook"); }
|
|
|
|
// TC9SetOnGroupConvertedToRaidHook sets hook for group converted to raid event.
|
|
//
|
|
void TC9SetOnGroupConvertedToRaidHook(OnGroupConvertedToRaidHook h) { panicWithTC9Unavailable("TC9SetOnGroupConvertedToRaidHook"); }
|
|
|
|
void TC9SetOnGuildMemberAddedHook(OnGuildMemberAddedHook h) { panicWithTC9Unavailable("TC9SetOnGuildMemberAddedHook"); }
|
|
|
|
// TC9SetOnGuildMemberRemovedHook sets hook for guild member removed (kicked) event.
|
|
void TC9SetOnGuildMemberRemovedHook(OnGuildMemberRemovedHook h) { panicWithTC9Unavailable("TC9SetOnGuildMemberRemovedHook"); }
|
|
|
|
// TC9SetOnGuildMemberLeftHook sets hook for guild member left event.
|
|
void TC9SetOnGuildMemberLeftHook(OnGuildMemberLeftHook h) { panicWithTC9Unavailable("TC9SetOnGuildMemberLeftHook"); }
|
|
|
|
// TC9ProcessEventsHooks calls all events hooks.
|
|
void TC9ProcessEventsHooks() { panicWithTC9Unavailable("TC9ProcessEventsHooks"); }
|
|
|
|
// TC9ProcessGRPCOrHTTPRequests calls all grpc or http handlers in queue.
|
|
//
|
|
void TC9ProcessGRPCOrHTTPRequests() { panicWithTC9Unavailable("TC9ProcessGRPCOrHTTPRequests"); }
|
|
|
|
// TC9GetNextAvailableCharacterGuid returns next available characters GUID. Thread unsafe.
|
|
uint64_t TC9GetNextAvailableCharacterGuid(int realmID) { panicWithTC9Unavailable("TC9GetNextAvailableCharacterGuid"); return 0; }
|
|
|
|
// TC9GetNextAvailableItemGuid returns next available item GUID. Thread unsafe.
|
|
uint64_t TC9GetNextAvailableItemGuid(int realmID) { panicWithTC9Unavailable("TC9GetNextAvailableItemGuid"); return 0; }
|
|
|
|
// TC9GetNextAvailableInstanceGuid returns next available dungeon/raid instance GUID. Thread unsafe.
|
|
uint64_t TC9GetNextAvailableInstanceGuid(int realmID) { panicWithTC9Unavailable("TC9GetNextAvailableInstanceGuid"); return 0; }
|
|
|
|
// TC9InitLib inits lib by starting services like grpc and healthcheck.
|
|
// Adds game server to the servers registry that will make this server visible for game load balancer.
|
|
//
|
|
void TC9InitLib(uint16_t port, uint32_t realmID, uint8_t isCrossRealm, char* availableMaps, uint32_t** assignedMaps, int* assignedMapsSize) { panicWithTC9Unavailable("TC9InitLib"); }
|
|
|
|
// TC9GracefulShutdown gracefully stops all running services.
|
|
//
|
|
void TC9GracefulShutdown() { panicWithTC9Unavailable("TC9GracefulShutdown"); }
|
|
|
|
// TC9ReadyToAcceptPlayersFromMaps notifies servers registry that this server
|
|
// loaded maps related data and ready to accept players from those maps.
|
|
//
|
|
void TC9ReadyToAcceptPlayersFromMaps(uint32_t* maps, int mapsLen) { panicWithTC9Unavailable("TC9ReadyToAcceptPlayersFromMaps"); }
|
|
|
|
// TC9SetCanPlayerInteractWithNPCAndFlagsHandler sets handler for can player interact with NPC and with given NPC flags request.
|
|
//
|
|
void TC9SetCanPlayerInteractWithNPCAndFlagsHandler(CanPlayerInteractWithNPCAndFlagsHandler h) { panicWithTC9Unavailable("TC9SetCanPlayerInteractWithNPCAndFlagsHandler"); }
|
|
|
|
// TC9SetCanPlayerInteractWithGOAndTypeHandler sets handler for can player interact with GameObject and with given object type request.
|
|
//
|
|
void TC9SetCanPlayerInteractWithGOAndTypeHandler(CanPlayerInteractWithGOAndTypeHandler h) { panicWithTC9Unavailable("TC9SetCanPlayerInteractWithGOAndTypeHandler"); }
|
|
|
|
// TC9SetGetPlayerItemsByGuidsHandler sets handler for getting players item by guids request.
|
|
void TC9SetGetPlayerItemsByGuidsHandler(GetPlayerItemsByGuidsHandler h) { panicWithTC9Unavailable("TC9SetGetPlayerItemsByGuidsHandler"); }
|
|
|
|
// TC9SetRemoveItemsWithGuidsFromPlayerHandler sets handler for removing items by guids from player request.
|
|
void TC9SetRemoveItemsWithGuidsFromPlayerHandler(RemoveItemsWithGuidsFromPlayerHandler h) { panicWithTC9Unavailable("TC9SetRemoveItemsWithGuidsFromPlayerHandler"); }
|
|
|
|
// TC9SetAddExistingItemToPlayerHandler sets handler for adding item to player request.
|
|
void TC9SetAddExistingItemToPlayerHandler(AddExistingItemToPlayerHandler h) { panicWithTC9Unavailable("TC9SetAddExistingItemToPlayerHandler"); }
|
|
|
|
// TC9SetGetMoneyForPlayerHandler sets handler for getting money for player request.
|
|
//
|
|
void TC9SetGetMoneyForPlayerHandler(GetMoneyForPlayerHandler h) { panicWithTC9Unavailable("TC9SetGetMoneyForPlayerHandler"); }
|
|
|
|
// TC9SetModifyMoneyForPlayerHandler sets handler for modify money for given player request.
|
|
//
|
|
void TC9SetModifyMoneyForPlayerHandler(ModifyMoneyForPlayerHandler h) { panicWithTC9Unavailable("TC9SetModifyMoneyForPlayerHandler"); }
|
|
|
|
|
|
// TC9SetOnMapsReassignedHook sets hook for maps reassigning by servers registry event.
|
|
//
|
|
void TC9SetOnMapsReassignedHook(OnMapsReassignedHook h) { panicWithTC9Unavailable("TC9SetOnMapsReassignedHook"); }
|
|
|
|
// TC9SetMonitoringDataCollectorHandler sets handler for getting data to handle monitoring request.
|
|
//
|
|
void TC9SetMonitoringDataCollectorHandler(MonitoringDataCollectorHandler h) { panicWithTC9Unavailable("TC9SetMonitoringDataCollectorHandler"); }
|
|
|
|
// TC9NatsPublish/Subscribe generic NATS pub/sub for in-process extensions
|
|
int TC9NatsPublish(const char* subject, const char* payload, int payloadLen) { panicWithTC9Unavailable("TC9NatsPublish"); return -1; }
|
|
int TC9NatsSubscribe(const char* subject, TC9NatsMessageHandler handler) { panicWithTC9Unavailable("TC9NatsSubscribe"); return -1; }
|
|
|
|
// TC9PlayerLeftBattleground notifies matchmaking server that player left battleground
|
|
//
|
|
void TC9PlayerLeftBattleground(uint64_t playerGUID, uint32_t realmID, uint32_t instanceID) { panicWithTC9Unavailable("TC9PlayerLeftBattleground"); }
|
|
|
|
// TC9BattlegroundStatusChanged notifies matchmaking server that battleground status changed
|
|
//
|
|
void TC9BattlegroundStatusChanged(uint32_t instanceID, uint8_t status) { panicWithTC9Unavailable("TC9BattlegroundStatusChanged"); }
|
|
|
|
// TC9SetCanPlayerJoinBattlegroundQueueHandler sets handler for checking if player can join to battleground queue.
|
|
//
|
|
void TC9SetCanPlayerJoinBattlegroundQueueHandler(CanPlayerJoinBattlegroundQueueHandler h) { panicWithTC9Unavailable("TC9SetCanPlayerJoinBattlegroundQueueHandler"); }
|
|
|
|
// TC9SetCanPlayerTeleportToBattlegroundHandler sets handler for checking if player can teleport to battleground.
|
|
//
|
|
void TC9SetCanPlayerTeleportToBattlegroundHandler(CanPlayerTeleportToBattlegroundHandler h) { panicWithTC9Unavailable("TC9SetCanPlayerTeleportToBattlegroundHandler"); }
|