mirror of
https://github.com/openmoh/openmohaa.git
synced 2025-04-28 21:57:57 +03:00
442 lines
13 KiB
C
442 lines
13 KiB
C
![]() |
/*
|
||
|
GameSpy Chat SDK
|
||
|
Dan "Mr. Pants" Schoenblum
|
||
|
dan@gamespy.com
|
||
|
|
||
|
Copyright 1999-2007 GameSpy Industries, Inc
|
||
|
|
||
|
devsupport@gamespy.com
|
||
|
*/
|
||
|
|
||
|
#ifndef _CHATASCII_H_
|
||
|
#define _CHATASCII_H_
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
#include "chat.h"
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
|
||
|
// Connects you to a chat server and returns a CHAT object.
|
||
|
///////////////////////////////////////////////////////////
|
||
|
CHAT chatConnectA(const char * serverAddress,
|
||
|
int port,
|
||
|
const char * nick,
|
||
|
const char * user,
|
||
|
const char * name,
|
||
|
chatGlobalCallbacks * callbacks,
|
||
|
chatNickErrorCallback nickErrorCallback,
|
||
|
chatConnectCallback connectCallback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
CHAT chatConnectSpecialA(const char * serverAddress,
|
||
|
int port,
|
||
|
const char * nick,
|
||
|
const char * name,
|
||
|
chatGlobalCallbacks * callbacks,
|
||
|
chatNickErrorCallback nickErrorCallback,
|
||
|
chatFillInUserCallback fillInUserCallback,
|
||
|
chatConnectCallback connectCallback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
CHAT chatConnectSecureA(const char * serverAddress,
|
||
|
int port,
|
||
|
const char * nick,
|
||
|
const char * name,
|
||
|
const char * gamename,
|
||
|
const char * secretKey,
|
||
|
chatGlobalCallbacks * callbacks,
|
||
|
chatNickErrorCallback nickErrorCallback,
|
||
|
chatFillInUserCallback fillInUserCallback,
|
||
|
chatConnectCallback connectCallback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
CHAT chatConnectLoginA(const char * serverAddress,
|
||
|
int port,
|
||
|
int namespaceID,
|
||
|
const char * email,
|
||
|
const char * profilenick,
|
||
|
const char * uniquenick,
|
||
|
const char * password,
|
||
|
const char * name,
|
||
|
const char * gamename,
|
||
|
const char * secretKey,
|
||
|
chatGlobalCallbacks * callbacks,
|
||
|
chatNickErrorCallback nickErrorCallback,
|
||
|
chatFillInUserCallback fillInUserCallback,
|
||
|
chatConnectCallback connectCallback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
CHAT chatConnectPreAuthA(const char * serverAddress,
|
||
|
int port,
|
||
|
const char * authtoken,
|
||
|
const char * partnerchallenge,
|
||
|
const char * name,
|
||
|
const char * gamename,
|
||
|
const char * secretKey,
|
||
|
chatGlobalCallbacks * callbacks,
|
||
|
chatNickErrorCallback nickErrorCallback,
|
||
|
chatFillInUserCallback fillInUserCallback,
|
||
|
chatConnectCallback connectCallback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
|
||
|
// If the chatNickErrorCallback gets called, then this can be called
|
||
|
// with a new nick to retry. If this isn't called, the connection can be
|
||
|
// disconnected with chatDisconnect. If the new nick is successful, then
|
||
|
// the chatConnectCallback will get called. If there's another nick
|
||
|
// error, the chatNickErrorCallback will get called again.
|
||
|
/////////////////////////////////////////////////////////////////////////
|
||
|
void chatRetryWithNickA(CHAT chat,
|
||
|
const char * nick);
|
||
|
|
||
|
// Register a uniquenick.
|
||
|
// Should be called in response to the chatNickErrorCallback being called
|
||
|
// with a type of CHAT_UNIQUENICK_EXPIRED or CHAT_NO_UNIQUENICK.
|
||
|
// If the uniquenick cannot be registered, the chatNickErrorCallback will
|
||
|
// be called again with a type of CHAT_IN_USE or CHAT_INVALID.
|
||
|
/////////////////////////////////////////////////////////////////////////
|
||
|
void chatRegisterUniqueNickA(CHAT chat,
|
||
|
int namespaceID,
|
||
|
const char * uniquenick,
|
||
|
const char * cdkey);
|
||
|
|
||
|
// Sends raw data, without any interpretation.
|
||
|
//////////////////////////////////////////////
|
||
|
void chatSendRawA(CHAT chat,
|
||
|
const char * command);
|
||
|
|
||
|
// Change the local user's nick.
|
||
|
////////////////////////////////
|
||
|
void chatChangeNickA(CHAT chat,
|
||
|
const char * newNick,
|
||
|
chatChangeNickCallback callback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
|
||
|
// Get our local nickname.
|
||
|
//////////////////////////
|
||
|
const char * chatGetNickA(CHAT chat);
|
||
|
|
||
|
// Copies the oldNick to the newNick, replacing any invalid characters with legal ones.
|
||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||
|
void chatFixNickA(char * newNick,
|
||
|
const char * oldNick);
|
||
|
|
||
|
// Removes the namespace extension from a chat nick.
|
||
|
////////////////////////////////////////////////////
|
||
|
const char * chatTranslateNickA(char * nick,
|
||
|
const char * extension);
|
||
|
|
||
|
// Attempts to authenticates a CD key.
|
||
|
//////////////////////////////////////
|
||
|
void chatAuthenticateCDKeyA(CHAT chat,
|
||
|
const char * cdkey,
|
||
|
chatAuthenticateCDKeyCallback callback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
|
||
|
/*************
|
||
|
** CHANNELS **
|
||
|
*************/
|
||
|
// Enumerates the channels available on a chat server.
|
||
|
//////////////////////////////////////////////////////
|
||
|
void chatEnumChannelsA(CHAT chat,
|
||
|
const char * filter,
|
||
|
chatEnumChannelsCallbackEach callbackEach,
|
||
|
chatEnumChannelsCallbackAll callbackAll,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
|
||
|
// Enters a channel.
|
||
|
////////////////////
|
||
|
void chatEnterChannelA(CHAT chat,
|
||
|
const char * channel,
|
||
|
const char * password,
|
||
|
chatChannelCallbacks * callbacks,
|
||
|
chatEnterChannelCallback callback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
|
||
|
// Leaves a channel.
|
||
|
////////////////////
|
||
|
void chatLeaveChannelA(CHAT chat,
|
||
|
const char * channel,
|
||
|
const char * reason); // PANTS|03.13.01
|
||
|
|
||
|
// Sends a message to a channel.
|
||
|
////////////////////////////////
|
||
|
void chatSendChannelMessageA(CHAT chat,
|
||
|
const char * channel,
|
||
|
const char * message,
|
||
|
int type);
|
||
|
|
||
|
// Sets the topic in a channel.
|
||
|
///////////////////////////////
|
||
|
void chatSetChannelTopicA(CHAT chat,
|
||
|
const char * channel,
|
||
|
const char * topic);
|
||
|
|
||
|
// Gets a channel's topic.
|
||
|
//////////////////////////
|
||
|
void chatGetChannelTopicA(CHAT chat,
|
||
|
const char * channel,
|
||
|
chatGetChannelTopicCallback callback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
|
||
|
// Sets a channel's mode.
|
||
|
/////////////////////////
|
||
|
void chatSetChannelModeA(CHAT chat,
|
||
|
const char * channel,
|
||
|
CHATChannelMode * mode);
|
||
|
|
||
|
// Gets a channel's mode.
|
||
|
/////////////////////////
|
||
|
void chatGetChannelModeA(CHAT chat,
|
||
|
const char * channel,
|
||
|
chatGetChannelModeCallback callback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
|
||
|
// Sets the password in a channel.
|
||
|
//////////////////////////////////
|
||
|
void chatSetChannelPasswordA(CHAT chat,
|
||
|
const char * channel,
|
||
|
CHATBool enable,
|
||
|
const char * password);
|
||
|
|
||
|
// Gets the password in a channel.
|
||
|
//////////////////////////////////
|
||
|
void chatGetChannelPasswordA(CHAT chat,
|
||
|
const char * channel,
|
||
|
chatGetChannelPasswordCallback callback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
|
||
|
// Set the maximum number of users allowed in a channel.
|
||
|
////////////////////////////////////////////////////////
|
||
|
void chatSetChannelLimitA(CHAT chat,
|
||
|
const char * channel,
|
||
|
int limit);
|
||
|
|
||
|
// Enumerate through the bans in a channel.
|
||
|
///////////////////////////////////////////
|
||
|
void chatEnumChannelBansA(CHAT chat,
|
||
|
const char * channel,
|
||
|
chatEnumChannelBansCallback callback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
|
||
|
// Adds a channel ban.
|
||
|
//////////////////////
|
||
|
void chatAddChannelBanA(CHAT chat,
|
||
|
const char * channel,
|
||
|
const char * ban);
|
||
|
|
||
|
// Removes a ban string from a channel.
|
||
|
///////////////////////////////////////
|
||
|
void chatRemoveChannelBanA(CHAT chat,
|
||
|
const char * channel,
|
||
|
const char * ban);
|
||
|
|
||
|
// Set the group this channel is a part of.
|
||
|
///////////////////////////////////////////
|
||
|
void chatSetChannelGroupA(CHAT chat,
|
||
|
const char * channel,
|
||
|
const char * group);
|
||
|
|
||
|
// Get the number of users in the channel.
|
||
|
// Returns -1 if we are not in the channel.
|
||
|
///////////////////////////////////////////
|
||
|
int chatGetChannelNumUsersA(CHAT chat,
|
||
|
const char * channel);
|
||
|
|
||
|
|
||
|
// Returns CHATTrue if we are in the channel
|
||
|
///////////////////////////////////////////
|
||
|
CHATBool chatInChannelA(CHAT chat,
|
||
|
const char * channel);
|
||
|
|
||
|
|
||
|
/**********
|
||
|
** USERS **
|
||
|
**********/
|
||
|
// Enumerate through the users in a channel.
|
||
|
////////////////////////////////////////////
|
||
|
void chatEnumUsersA(CHAT chat,
|
||
|
const char * channel,
|
||
|
chatEnumUsersCallback callback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
|
||
|
// Send a private message to a user.
|
||
|
////////////////////////////////////
|
||
|
void chatSendUserMessageA(CHAT chat,
|
||
|
const char * user,
|
||
|
const char * message,
|
||
|
int type);
|
||
|
|
||
|
// Get a user's info.
|
||
|
/////////////////////
|
||
|
void chatGetUserInfoA(CHAT chat,
|
||
|
const char * user,
|
||
|
chatGetUserInfoCallback callback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
|
||
|
|
||
|
// Get some basic info on the user.
|
||
|
// PANTS|12.08.2000
|
||
|
///////////////////////////////////
|
||
|
void chatGetBasicUserInfoA(CHAT chat,
|
||
|
const char * user,
|
||
|
chatGetBasicUserInfoCallback callback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
|
||
|
// Get basic info without waiting.
|
||
|
// Returns CHATFalse if the info isn't available.
|
||
|
/////////////////////////////////////////////////
|
||
|
CHATBool chatGetBasicUserInfoNoWaitA(CHAT chat,
|
||
|
const char * nick,
|
||
|
const char ** user,
|
||
|
const char ** address);
|
||
|
|
||
|
|
||
|
// Get basic info on all the users in a channel.
|
||
|
// PANTS|12.19.00
|
||
|
////////////////////////////////////////////////
|
||
|
void chatGetChannelBasicUserInfoA(CHAT chat,
|
||
|
const char * channel,
|
||
|
chatGetChannelBasicUserInfoCallback callback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
|
||
|
// Invite a user into a channel.
|
||
|
////////////////////////////////
|
||
|
void chatInviteUserA(CHAT chat,
|
||
|
const char * channel,
|
||
|
const char * user);
|
||
|
|
||
|
// Kick a user from a channel.
|
||
|
//////////////////////////////
|
||
|
void chatKickUserA(CHAT chat,
|
||
|
const char * channel,
|
||
|
const char * user,
|
||
|
const char * reason);
|
||
|
|
||
|
// Ban a user from a channel.
|
||
|
/////////////////////////////
|
||
|
void chatBanUserA(CHAT chat,
|
||
|
const char * channel,
|
||
|
const char * user);
|
||
|
|
||
|
// Sets a user's mode in a channel.
|
||
|
///////////////////////////////////
|
||
|
void chatSetUserModeA(CHAT chat,
|
||
|
const char * channel,
|
||
|
const char * user,
|
||
|
int mode);
|
||
|
|
||
|
// Gets a user's mode in a channel.
|
||
|
///////////////////////////////////
|
||
|
void chatGetUserModeA(CHAT chat,
|
||
|
const char * channel,
|
||
|
const char * user,
|
||
|
chatGetUserModeCallback callback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
|
||
|
// Gets a user's mode in a channel.
|
||
|
///////////////////////////////////
|
||
|
CHATBool chatGetUserModeNoWaitA(CHAT chat,
|
||
|
const char * channel,
|
||
|
const char * user,
|
||
|
int * mode);
|
||
|
|
||
|
// Get the UDP relay address for a channel
|
||
|
///////////////////////////////////
|
||
|
void chatGetUdpRelayA(CHAT chat,
|
||
|
const char * channel,
|
||
|
chatGetUdpRelayCallback callback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
/*********
|
||
|
** KEYS **
|
||
|
*********/
|
||
|
// Sets global key/values for the local user.
|
||
|
// Set a value to NULL or "" to clear that key.
|
||
|
///////////////////////////////////////////////
|
||
|
void chatSetGlobalKeysA(CHAT chat,
|
||
|
int num,
|
||
|
const char ** keys,
|
||
|
const char ** values);
|
||
|
|
||
|
// Gets global key/values for a user or users.
|
||
|
// To get the global key/values for one user, pass in that
|
||
|
// user's nick as the target. To get the global key/values
|
||
|
// for every user in a channel, use the channel name as the target.
|
||
|
///////////////////////////////////////////////////////////////////
|
||
|
void chatGetGlobalKeysA(CHAT chat,
|
||
|
const char * target,
|
||
|
int num,
|
||
|
const char ** keys,
|
||
|
chatGetGlobalKeysCallback callback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
|
||
|
// Sets channel key/values.
|
||
|
// If user is NULL or "", the keys will be set on the channel.
|
||
|
// Otherwise, they will be set on the user,
|
||
|
// Only ops can set channel keys on other users.
|
||
|
// Set a value to NULL or "" to clear that key.
|
||
|
//////////////////////////////////////////////////////////////
|
||
|
void chatSetChannelKeysA(CHAT chat,
|
||
|
const char * channel,
|
||
|
const char * user,
|
||
|
int num,
|
||
|
const char ** keys,
|
||
|
const char ** values);
|
||
|
|
||
|
// Gets channel key/values for a user or users, or for a channel.
|
||
|
// To get the channel key/values for every user in
|
||
|
// a channel, pass in "*" as the user. To get the keys for a channel,
|
||
|
// pass in NULL or "".
|
||
|
//////////////////////////////////////////////////////////////////////
|
||
|
void chatGetChannelKeysA(CHAT chat,
|
||
|
const char * channel,
|
||
|
const char * user,
|
||
|
int num,
|
||
|
const char ** keys,
|
||
|
chatGetChannelKeysCallback callback,
|
||
|
void * param,
|
||
|
CHATBool blocking);
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
// This ASCII versions must be available even when GSI_UNICODE is defined
|
||
|
CHATBool chatGetBasicUserInfoNoWaitA(CHAT chat,
|
||
|
const char * nick,
|
||
|
const char ** user,
|
||
|
const char ** address);
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
#ifdef __cplusplus
|
||
|
} // extern "C"
|
||
|
#endif
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
#endif // _CHATASCII_H_
|