initial commit
This commit is contained in:
commit
903f8fe99a
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
/_obj
|
||||
*.o
|
||||
tsgo_export.h
|
18
Makefile
Normal file
18
Makefile
Normal file
@ -0,0 +1,18 @@
|
||||
CFLAGS = -c -O2 -Wall -fPIC
|
||||
|
||||
all: ts3_plugin.so
|
||||
|
||||
tsgo_export.h: src/go/tsgo_export.go
|
||||
C_INCLUDE_PATH="ts3client-pluginsdk/include:src/c" go tool cgo -exportheader $@ $^
|
||||
|
||||
tsgo_export.a: src/go/tsgo_export.go plugin.o
|
||||
CGO_CFLAGS="-Its3client-pluginsdk/include -Isrc/c" go build -buildmode=c-archive src/go/tsgo_export.go
|
||||
|
||||
plugin.o: src/c/plugin.c tsgo_export.h
|
||||
gcc src/c/plugin.c -o plugin.o -Its3client-pluginsdk/include -Isrc/c $(CFLAGS)
|
||||
|
||||
ts3_plugin.so: plugin.o tsgo_export.a
|
||||
gcc -o $@ -shared -lpthread $^
|
||||
|
||||
clean:
|
||||
rm -rf plugin.o tsgo_export.a tsgo_export.h _cgo_export.h ts3_plugin.so _obj
|
99
src/c/plugin.c
Normal file
99
src/c/plugin.c
Normal file
@ -0,0 +1,99 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "teamspeak/public_errors.h"
|
||||
#include "teamspeak/public_errors_rare.h"
|
||||
#include "teamspeak/public_definitions.h"
|
||||
#include "teamspeak/public_rare_definitions.h"
|
||||
#include "teamspeak/clientlib_publicdefinitions.h"
|
||||
#include "ts3_functions.h"
|
||||
|
||||
#include "plugin.h"
|
||||
#include "../../tsgo_export.h"
|
||||
#include "ts3FunctionsWrapper.h"
|
||||
|
||||
static struct TS3Functions ts3Functions;
|
||||
|
||||
#define _strcpy(dest, destSize, src) { strncpy(dest, src, destSize-1); (dest)[destSize-1] = '\0'; }
|
||||
|
||||
static char* pluginID = NULL;
|
||||
|
||||
/*********************************** Required functions ************************************/
|
||||
/*
|
||||
* If any of these required functions is not implemented, TS3 will refuse to load the plugin
|
||||
*/
|
||||
|
||||
/* Unique name identifying this plugin */
|
||||
const char* ts3plugin_name() {
|
||||
return GoTs3pluginName();
|
||||
}
|
||||
|
||||
/* Plugin version */
|
||||
const char* ts3plugin_version() {
|
||||
return GoTs3pluginVersion();
|
||||
}
|
||||
|
||||
/* Plugin API version. Must be the same as the clients API major version, else the plugin fails to load. */
|
||||
int ts3plugin_apiVersion() {
|
||||
return GoTs3pluginAPIVersion();
|
||||
}
|
||||
|
||||
/* Plugin author */
|
||||
const char* ts3plugin_author() {
|
||||
return GoTs3pluginAuthor();
|
||||
}
|
||||
|
||||
/* Plugin description */
|
||||
const char* ts3plugin_description() {
|
||||
return GoTs3pluginDescription();
|
||||
}
|
||||
|
||||
/* Set TeamSpeak 3 callback functions */
|
||||
void ts3plugin_setFunctionPointers(const struct TS3Functions funcs) {
|
||||
ts3Functions = funcs;
|
||||
}
|
||||
|
||||
/*
|
||||
* Custom code called right after loading the plugin. Returns 0 on success, 1 on failure.
|
||||
* If the function returns 1 on failure, the plugin will be unloaded again.
|
||||
*/
|
||||
int ts3plugin_init() {
|
||||
|
||||
return GoTs3pluginInit();
|
||||
/* 0 = success, 1 = failure, -2 = failure but client will not show a "failed to load" warning */
|
||||
/* -2 is a very special case and should only be used if a plugin displays a dialog (e.g. overlay) asking the user to disable
|
||||
* the plugin again, avoiding the show another dialog by the client telling the user the plugin failed to load.
|
||||
* For normal case, if a plugin really failed to load because of an error, the correct return value is 1. */
|
||||
}
|
||||
|
||||
/* Custom code called right before the plugin is unloaded */
|
||||
void ts3plugin_shutdown() {
|
||||
|
||||
GoTs3pluginShutdown();
|
||||
|
||||
/* Free pluginID if we registered it */
|
||||
if(pluginID) {
|
||||
free(pluginID);
|
||||
pluginID = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Not so required functions
|
||||
*/
|
||||
|
||||
int ts3plugin_onClientPokeEvent(uint64 serverConnectionHandlerID, anyID fromClientID, const char* pokerName, const char* pokerUniqueIdentity, const char* message, int ffIgnored) {
|
||||
return GoTs3onClientPokeEvent(serverConnectionHandlerID,fromClientID,pokerName,pokerUniqueIdentity,message,ffIgnored);
|
||||
}
|
||||
|
||||
/*
|
||||
Ts3 Functions
|
||||
|
||||
This wrapper is required beacuse calling function pointers is not supported in cgo.
|
||||
*/
|
||||
|
||||
void Ts3FncPrintMessage(uint64 serverConnectionHandlerID, const char* message, enum PluginMessageTarget messageTarget){
|
||||
ts3Functions.printMessage(serverConnectionHandlerID,message,messageTarget);
|
||||
}
|
144
src/c/plugin.h
Normal file
144
src/c/plugin.h
Normal file
@ -0,0 +1,144 @@
|
||||
#ifndef PLUGIN_H
|
||||
#define PLUGIN_H
|
||||
|
||||
#if defined(WIN32) || defined(__WIN32__) || defined(_WIN32)
|
||||
#define PLUGINS_EXPORTDLL __declspec(dllexport)
|
||||
#else
|
||||
#define PLUGINS_EXPORTDLL __attribute__ ((visibility("default")))
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Required functions */
|
||||
PLUGINS_EXPORTDLL const char* ts3plugin_name();
|
||||
PLUGINS_EXPORTDLL const char* ts3plugin_version();
|
||||
PLUGINS_EXPORTDLL int ts3plugin_apiVersion();
|
||||
PLUGINS_EXPORTDLL const char* ts3plugin_author();
|
||||
PLUGINS_EXPORTDLL const char* ts3plugin_description();
|
||||
PLUGINS_EXPORTDLL void ts3plugin_setFunctionPointers(const struct TS3Functions funcs);
|
||||
PLUGINS_EXPORTDLL int ts3plugin_init();
|
||||
PLUGINS_EXPORTDLL void ts3plugin_shutdown();
|
||||
|
||||
/* Optional functions */
|
||||
PLUGINS_EXPORTDLL int ts3plugin_offersConfigure();
|
||||
PLUGINS_EXPORTDLL void ts3plugin_configure(void* handle, void* qParentWidget);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_registerPluginID(const char* id);
|
||||
PLUGINS_EXPORTDLL const char* ts3plugin_commandKeyword();
|
||||
PLUGINS_EXPORTDLL int ts3plugin_processCommand(uint64 serverConnectionHandlerID, const char* command);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_currentServerConnectionChanged(uint64 serverConnectionHandlerID);
|
||||
PLUGINS_EXPORTDLL const char* ts3plugin_infoTitle();
|
||||
PLUGINS_EXPORTDLL void ts3plugin_infoData(uint64 serverConnectionHandlerID, uint64 id, enum PluginItemType type, char** data);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_freeMemory(void* data);
|
||||
PLUGINS_EXPORTDLL int ts3plugin_requestAutoload();
|
||||
PLUGINS_EXPORTDLL void ts3plugin_initMenus(struct PluginMenuItem*** menuItems, char** menuIcon);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_initHotkeys(struct PluginHotkey*** hotkeys);
|
||||
|
||||
/* Clientlib */
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onConnectStatusChangeEvent(uint64 serverConnectionHandlerID, int newStatus, unsigned int errorNumber);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onNewChannelEvent(uint64 serverConnectionHandlerID, uint64 channelID, uint64 channelParentID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onNewChannelCreatedEvent(uint64 serverConnectionHandlerID, uint64 channelID, uint64 channelParentID, anyID invokerID, const char* invokerName, const char* invokerUniqueIdentifier);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onDelChannelEvent(uint64 serverConnectionHandlerID, uint64 channelID, anyID invokerID, const char* invokerName, const char* invokerUniqueIdentifier);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onChannelMoveEvent(uint64 serverConnectionHandlerID, uint64 channelID, uint64 newChannelParentID, anyID invokerID, const char* invokerName, const char* invokerUniqueIdentifier);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onUpdateChannelEvent(uint64 serverConnectionHandlerID, uint64 channelID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onUpdateChannelEditedEvent(uint64 serverConnectionHandlerID, uint64 channelID, anyID invokerID, const char* invokerName, const char* invokerUniqueIdentifier);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onUpdateClientEvent(uint64 serverConnectionHandlerID, anyID clientID, anyID invokerID, const char* invokerName, const char* invokerUniqueIdentifier);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientMoveEvent(uint64 serverConnectionHandlerID, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility, const char* moveMessage);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientMoveSubscriptionEvent(uint64 serverConnectionHandlerID, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientMoveTimeoutEvent(uint64 serverConnectionHandlerID, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility, const char* timeoutMessage);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientMoveMovedEvent(uint64 serverConnectionHandlerID, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility, anyID moverID, const char* moverName, const char* moverUniqueIdentifier, const char* moveMessage);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientKickFromChannelEvent(uint64 serverConnectionHandlerID, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility, anyID kickerID, const char* kickerName, const char* kickerUniqueIdentifier, const char* kickMessage);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientKickFromServerEvent(uint64 serverConnectionHandlerID, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility, anyID kickerID, const char* kickerName, const char* kickerUniqueIdentifier, const char* kickMessage);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientIDsEvent(uint64 serverConnectionHandlerID, const char* uniqueClientIdentifier, anyID clientID, const char* clientName);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientIDsFinishedEvent(uint64 serverConnectionHandlerID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onServerEditedEvent(uint64 serverConnectionHandlerID, anyID editerID, const char* editerName, const char* editerUniqueIdentifier);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onServerUpdatedEvent(uint64 serverConnectionHandlerID);
|
||||
PLUGINS_EXPORTDLL int ts3plugin_onServerErrorEvent(uint64 serverConnectionHandlerID, const char* errorMessage, unsigned int error, const char* returnCode, const char* extraMessage);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onServerStopEvent(uint64 serverConnectionHandlerID, const char* shutdownMessage);
|
||||
PLUGINS_EXPORTDLL int ts3plugin_onTextMessageEvent(uint64 serverConnectionHandlerID, anyID targetMode, anyID toID, anyID fromID, const char* fromName, const char* fromUniqueIdentifier, const char* message, int ffIgnored);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onTalkStatusChangeEvent(uint64 serverConnectionHandlerID, int status, int isReceivedWhisper, anyID clientID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onConnectionInfoEvent(uint64 serverConnectionHandlerID, anyID clientID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onServerConnectionInfoEvent(uint64 serverConnectionHandlerID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onChannelSubscribeEvent(uint64 serverConnectionHandlerID, uint64 channelID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onChannelSubscribeFinishedEvent(uint64 serverConnectionHandlerID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onChannelUnsubscribeEvent(uint64 serverConnectionHandlerID, uint64 channelID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onChannelUnsubscribeFinishedEvent(uint64 serverConnectionHandlerID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onChannelDescriptionUpdateEvent(uint64 serverConnectionHandlerID, uint64 channelID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onChannelPasswordChangedEvent(uint64 serverConnectionHandlerID, uint64 channelID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onPlaybackShutdownCompleteEvent(uint64 serverConnectionHandlerID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onSoundDeviceListChangedEvent(const char* modeID, int playOrCap);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onEditPlaybackVoiceDataEvent(uint64 serverConnectionHandlerID, anyID clientID, short* samples, int sampleCount, int channels);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onEditPostProcessVoiceDataEvent(uint64 serverConnectionHandlerID, anyID clientID, short* samples, int sampleCount, int channels, const unsigned int* channelSpeakerArray, unsigned int* channelFillMask);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onEditMixedPlaybackVoiceDataEvent(uint64 serverConnectionHandlerID, short* samples, int sampleCount, int channels, const unsigned int* channelSpeakerArray, unsigned int* channelFillMask);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onEditCapturedVoiceDataEvent(uint64 serverConnectionHandlerID, short* samples, int sampleCount, int channels, int* edited);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onCustom3dRolloffCalculationClientEvent(uint64 serverConnectionHandlerID, anyID clientID, float distance, float* volume);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onCustom3dRolloffCalculationWaveEvent(uint64 serverConnectionHandlerID, uint64 waveHandle, float distance, float* volume);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onUserLoggingMessageEvent(const char* logMessage, int logLevel, const char* logChannel, uint64 logID, const char* logTime, const char* completeLogString);
|
||||
|
||||
/* Clientlib rare */
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientBanFromServerEvent(uint64 serverConnectionHandlerID, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility, anyID kickerID, const char* kickerName, const char* kickerUniqueIdentifier, uint64 time, const char* kickMessage);
|
||||
PLUGINS_EXPORTDLL int ts3plugin_onClientPokeEvent(uint64 serverConnectionHandlerID, anyID fromClientID, const char* pokerName, const char* pokerUniqueIdentity, const char* message, int ffIgnored);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientSelfVariableUpdateEvent(uint64 serverConnectionHandlerID, int flag, const char* oldValue, const char* newValue);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onFileListEvent(uint64 serverConnectionHandlerID, uint64 channelID, const char* path, const char* name, uint64 size, uint64 datetime, int type, uint64 incompletesize, const char* returnCode);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onFileListFinishedEvent(uint64 serverConnectionHandlerID, uint64 channelID, const char* path);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onFileInfoEvent(uint64 serverConnectionHandlerID, uint64 channelID, const char* name, uint64 size, uint64 datetime);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onServerGroupListEvent(uint64 serverConnectionHandlerID, uint64 serverGroupID, const char* name, int type, int iconID, int saveDB);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onServerGroupListFinishedEvent(uint64 serverConnectionHandlerID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onServerGroupByClientIDEvent(uint64 serverConnectionHandlerID, const char* name, uint64 serverGroupList, uint64 clientDatabaseID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onServerGroupPermListEvent(uint64 serverConnectionHandlerID, uint64 serverGroupID, unsigned int permissionID, int permissionValue, int permissionNegated, int permissionSkip);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onServerGroupPermListFinishedEvent(uint64 serverConnectionHandlerID, uint64 serverGroupID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onServerGroupClientListEvent(uint64 serverConnectionHandlerID, uint64 serverGroupID, uint64 clientDatabaseID, const char* clientNameIdentifier, const char* clientUniqueID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onChannelGroupListEvent(uint64 serverConnectionHandlerID, uint64 channelGroupID, const char* name, int type, int iconID, int saveDB);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onChannelGroupListFinishedEvent(uint64 serverConnectionHandlerID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onChannelGroupPermListEvent(uint64 serverConnectionHandlerID, uint64 channelGroupID, unsigned int permissionID, int permissionValue, int permissionNegated, int permissionSkip);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onChannelGroupPermListFinishedEvent(uint64 serverConnectionHandlerID, uint64 channelGroupID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onChannelPermListEvent(uint64 serverConnectionHandlerID, uint64 channelID, unsigned int permissionID, int permissionValue, int permissionNegated, int permissionSkip);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onChannelPermListFinishedEvent(uint64 serverConnectionHandlerID, uint64 channelID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientPermListEvent(uint64 serverConnectionHandlerID, uint64 clientDatabaseID, unsigned int permissionID, int permissionValue, int permissionNegated, int permissionSkip);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientPermListFinishedEvent(uint64 serverConnectionHandlerID, uint64 clientDatabaseID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onChannelClientPermListEvent(uint64 serverConnectionHandlerID, uint64 channelID, uint64 clientDatabaseID, unsigned int permissionID, int permissionValue, int permissionNegated, int permissionSkip);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onChannelClientPermListFinishedEvent(uint64 serverConnectionHandlerID, uint64 channelID, uint64 clientDatabaseID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientChannelGroupChangedEvent(uint64 serverConnectionHandlerID, uint64 channelGroupID, uint64 channelID, anyID clientID, anyID invokerClientID, const char* invokerName, const char* invokerUniqueIdentity);
|
||||
PLUGINS_EXPORTDLL int ts3plugin_onServerPermissionErrorEvent(uint64 serverConnectionHandlerID, const char* errorMessage, unsigned int error, const char* returnCode, unsigned int failedPermissionID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onPermissionListGroupEndIDEvent(uint64 serverConnectionHandlerID, unsigned int groupEndID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onPermissionListEvent(uint64 serverConnectionHandlerID, unsigned int permissionID, const char* permissionName, const char* permissionDescription);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onPermissionListFinishedEvent(uint64 serverConnectionHandlerID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onPermissionOverviewEvent(uint64 serverConnectionHandlerID, uint64 clientDatabaseID, uint64 channelID, int overviewType, uint64 overviewID1, uint64 overviewID2, unsigned int permissionID, int permissionValue, int permissionNegated, int permissionSkip);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onPermissionOverviewFinishedEvent(uint64 serverConnectionHandlerID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onServerGroupClientAddedEvent(uint64 serverConnectionHandlerID, anyID clientID, const char* clientName, const char* clientUniqueIdentity, uint64 serverGroupID, anyID invokerClientID, const char* invokerName, const char* invokerUniqueIdentity);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onServerGroupClientDeletedEvent(uint64 serverConnectionHandlerID, anyID clientID, const char* clientName, const char* clientUniqueIdentity, uint64 serverGroupID, anyID invokerClientID, const char* invokerName, const char* invokerUniqueIdentity);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientNeededPermissionsEvent(uint64 serverConnectionHandlerID, unsigned int permissionID, int permissionValue);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientNeededPermissionsFinishedEvent(uint64 serverConnectionHandlerID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onFileTransferStatusEvent(anyID transferID, unsigned int status, const char* statusMessage, uint64 remotefileSize, uint64 serverConnectionHandlerID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientChatClosedEvent(uint64 serverConnectionHandlerID, anyID clientID, const char* clientUniqueIdentity);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientChatComposingEvent(uint64 serverConnectionHandlerID, anyID clientID, const char* clientUniqueIdentity);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onServerLogEvent(uint64 serverConnectionHandlerID, const char* logMsg);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onServerLogFinishedEvent(uint64 serverConnectionHandlerID, uint64 lastPos, uint64 fileSize);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onMessageListEvent(uint64 serverConnectionHandlerID, uint64 messageID, const char* fromClientUniqueIdentity, const char* subject, uint64 timestamp, int flagRead);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onMessageGetEvent(uint64 serverConnectionHandlerID, uint64 messageID, const char* fromClientUniqueIdentity, const char* subject, const char* message, uint64 timestamp);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientDBIDfromUIDEvent(uint64 serverConnectionHandlerID, const char* uniqueClientIdentifier, uint64 clientDatabaseID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientNamefromUIDEvent(uint64 serverConnectionHandlerID, const char* uniqueClientIdentifier, uint64 clientDatabaseID, const char* clientNickName);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientNamefromDBIDEvent(uint64 serverConnectionHandlerID, const char* uniqueClientIdentifier, uint64 clientDatabaseID, const char* clientNickName);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onComplainListEvent(uint64 serverConnectionHandlerID, uint64 targetClientDatabaseID, const char* targetClientNickName, uint64 fromClientDatabaseID, const char* fromClientNickName, const char* complainReason, uint64 timestamp);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onBanListEvent(uint64 serverConnectionHandlerID, uint64 banid, const char* ip, const char* name, const char* uid, const char* mytsid, uint64 creationTime, uint64 durationTime, const char* invokerName, uint64 invokercldbid, const char* invokeruid, const char* reason, int numberOfEnforcements, const char* lastNickName);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientServerQueryLoginPasswordEvent(uint64 serverConnectionHandlerID, const char* loginPassword);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onPluginCommandEvent(uint64 serverConnectionHandlerID, const char* pluginName, const char* pluginCommand, anyID invokerClientID, const char* invokerName, const char* invokerUniqueIdentity);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onIncomingClientQueryEvent(uint64 serverConnectionHandlerID, const char* commandText);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onServerTemporaryPasswordListEvent(uint64 serverConnectionHandlerID, const char* clientNickname, const char* uniqueClientIdentifier, const char* description, const char* password, uint64 timestampStart, uint64 timestampEnd, uint64 targetChannelID, const char* targetChannelPW);
|
||||
|
||||
/* Client UI callbacks */
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onAvatarUpdated(uint64 serverConnectionHandlerID, anyID clientID, const char* avatarPath);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onMenuItemEvent(uint64 serverConnectionHandlerID, enum PluginMenuType type, int menuItemID, uint64 selectedItemID);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onHotkeyEvent(const char* keyword);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onHotkeyRecordedEvent(const char* keyword, const char* key);
|
||||
PLUGINS_EXPORTDLL void ts3plugin_onClientDisplayNameChanged(uint64 serverConnectionHandlerID, anyID clientID, const char* displayName, const char* uniqueClientIdentifier);
|
||||
PLUGINS_EXPORTDLL const char* ts3plugin_keyDeviceName(const char* keyIdentifier);
|
||||
PLUGINS_EXPORTDLL const char* ts3plugin_displayKeyText(const char* keyIdentifier);
|
||||
PLUGINS_EXPORTDLL const char* ts3plugin_keyPrefix();
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
6
src/c/ts3FunctionsWrapper.h
Normal file
6
src/c/ts3FunctionsWrapper.h
Normal file
@ -0,0 +1,6 @@
|
||||
#ifndef TS3FUNCTIONWRAPPER_H
|
||||
#define TS3FUNCTIONWRAPPER_H
|
||||
|
||||
void Ts3FncPrintMessage(uint64 serverConnectionHandlerID, const char* message, enum PluginMessageTarget messageTarget);
|
||||
|
||||
#endif
|
36
src/go/tsgo/tsgo.go
Normal file
36
src/go/tsgo/tsgo.go
Normal file
@ -0,0 +1,36 @@
|
||||
package tsgo
|
||||
|
||||
// Ts3pluginName Name of the plugin
|
||||
func Ts3pluginName() string {
|
||||
return "Go Plugin Yay"
|
||||
}
|
||||
|
||||
// Ts3pluginVersion Version of the plugin
|
||||
func Ts3pluginVersion() string {
|
||||
return "1.0"
|
||||
}
|
||||
|
||||
// Ts3pluginAPIVersion API version of the plugin
|
||||
func Ts3pluginAPIVersion() int {
|
||||
return 23
|
||||
}
|
||||
|
||||
// Ts3pluginAuthor Plugin author
|
||||
func Ts3pluginAuthor() string {
|
||||
return "Author"
|
||||
}
|
||||
|
||||
// Ts3pluginDescription Plugin description
|
||||
func Ts3pluginDescription() string {
|
||||
return "Description"
|
||||
}
|
||||
|
||||
//Ts3pluginInit init plugin function
|
||||
func Ts3pluginInit() int {
|
||||
return 0
|
||||
}
|
||||
|
||||
//Ts3pluginShutdown shutdown plugin function
|
||||
func Ts3pluginShutdown() {
|
||||
|
||||
}
|
66
src/go/tsgo_export.go
Normal file
66
src/go/tsgo_export.go
Normal file
@ -0,0 +1,66 @@
|
||||
package main
|
||||
|
||||
// #cgo CFLAGS: -I../../ts3client-pluginsdk/include -I../c
|
||||
// #include <stdlib.h>
|
||||
// #include "teamspeak/public_errors.h"
|
||||
// #include "teamspeak/public_errors_rare.h"
|
||||
// #include "teamspeak/public_definitions.h"
|
||||
// #include "teamspeak/public_rare_definitions.h"
|
||||
// #include "teamspeak/clientlib_publicdefinitions.h"
|
||||
// #include "plugin_definitions.h"
|
||||
// #include "ts3FunctionsWrapper.h"
|
||||
import "C"
|
||||
import (
|
||||
tsgo "./tsgo"
|
||||
)
|
||||
|
||||
func main() {} // Required if you want to export functions
|
||||
|
||||
/*
|
||||
Required functions.
|
||||
*/
|
||||
|
||||
//export GoTs3pluginName
|
||||
func GoTs3pluginName() *C.char {
|
||||
return C.CString(tsgo.Ts3pluginName())
|
||||
}
|
||||
|
||||
//export GoTs3pluginVersion
|
||||
func GoTs3pluginVersion() *C.char {
|
||||
return C.CString(tsgo.Ts3pluginVersion())
|
||||
}
|
||||
|
||||
//export GoTs3pluginAPIVersion
|
||||
func GoTs3pluginAPIVersion() C.int {
|
||||
return C.int(tsgo.Ts3pluginAPIVersion())
|
||||
}
|
||||
|
||||
//export GoTs3pluginAuthor
|
||||
func GoTs3pluginAuthor() *C.char {
|
||||
return C.CString(tsgo.Ts3pluginAuthor())
|
||||
}
|
||||
|
||||
//export GoTs3pluginDescription
|
||||
func GoTs3pluginDescription() *C.char {
|
||||
return C.CString(tsgo.Ts3pluginDescription())
|
||||
}
|
||||
|
||||
//export GoTs3pluginInit
|
||||
func GoTs3pluginInit() C.int {
|
||||
return C.int(tsgo.Ts3pluginInit())
|
||||
}
|
||||
|
||||
//export GoTs3pluginShutdown
|
||||
func GoTs3pluginShutdown() {
|
||||
tsgo.Ts3pluginShutdown()
|
||||
}
|
||||
|
||||
/*
|
||||
Not so required functions
|
||||
*/
|
||||
|
||||
//export GoTs3onClientPokeEvent
|
||||
func GoTs3onClientPokeEvent(serverConnectionHandlerID uint64, fromClientID C.anyID, pokerName *C.char, pokerUniqueIdentity *C.char, message *C.char, ffIgnored int) int {
|
||||
C.Ts3FncPrintMessage(serverConnectionHandlerID, C.CString(""), C.PLUGIN_SERVER)
|
||||
return 0
|
||||
}
|
Loading…
Reference in New Issue
Block a user