openmohaa/code/gamespy/Chat/chatASCII.h
2023-02-04 21:00:01 +01:00

441 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_