IPC Messages
From IRCBotWiki
For the purposes of IRCBot, IPC stands for IRCBot Plugin Communication.
Listed below are the standard and other registered IPC message codes.
Contents |
Message Ranges
0x00 - 0xFF: Reserved for official IRCBot implementation 0x00 - 0x0F: System Messages 0x10 - 0x1F: IRC 0x20 - 0x2F: User Info/Control 0x30 - 0x3F: Source Control (AutoDJ, SimpleDJ, SAM, mp3_source, etc.) 0x40 - 0xFF: Reserved
0x0100 - 0x7FFFFFFF: Contact me and I will add it here
System Messages
IB_INIT 0x01 sent after IRCBot is done reading the config, loading plugins, and is about to connect to IRC and begin dragging sound servers IB_SHUTDOWN 0x02 sent when IRCBot is shutting down IB_SS_DRAGCOMPLETE 0x03 sent each time at the end of a stats drag. Data sent is a bool which is set to true if the title has changed since the last drag IB_REHASH 0x04 IRCBot has rehashed, reload your config if you need to. This is for future use, IRCBot does not currently support rehashing IB_LOG 0x05 A line that will be printed to the console/log window. Data is a pointer to a null-terminated string that will be printed. You MUST NOT call ib_printf from within this callback or there will be a thread deadlock on non-Win32 systems. IB_GETMEMINFO 0x06 This is sent to each plugin individually, and you should return 1 if you provided the information, or 0 if you did not. Data is a pointer to an IBM_MEMINFO structure. IB_PROCTEXT 0x07 This is sent to all plugins, and you should return 0 whether you processed the text or not. Data is a pointer to an IBM_PROCTEXT structure.
IRC Messages
IB_ONJOIN 0x10 sent when a user joins a channel, data is a ptr to a IBM_USER structure IB_ONPART 0x11 sent when a user leaves a channel, data is a ptr to a IBM_USERTEXT structure IB_ONQUIT 0x12 sent when a user disconnects, data is a ptr to a IBM_USERTEXT structure (with channel set to NULL in the userinfo member) IB_ONTEXT 0x13 sent when a user speaks. data is a ptr to a IBM_USERTEXT structure (channel is set to the ircbot's nick in case of type == IBM_UTT_PRIVMSG) IB_ONNICK 0x14 sent when a user changes nicks. data is a ptr to a IBM_NICKCHANGE structure IB_ONNOTICE 0x15 sent when a user notices. data is a ptr to a IBM_USERTEXT structure (channel is set to the ircbot's nick in case of type == IBM_UTT_PRIVMSG) IB_ONTOPIC 0x16 sent when a channel topic changes. data is a ptr to a IBM_USERTEXT structure IB_ONKICK 0x17 sent when a person is kicked from a channel. data is a ptr to a IBM_ON_KICK structure
User Info/Control Messages
IB_GETUSERINFO 0x20 sent when a user's level/info is needed, sent as a IBM_GETUSERINFO structure (the nick/hostmask for you to find will be in the IBM_USERFULL/ui member, remember the hostmask may be an empty string in case of GetUserByNick()) IB_ADD_USER 0x21 sent when a user needs to be added, sent as a IBM_USERFULL structure, return values are: 0 = I don't support this, 1 = Addition failed, 2 = Addition success IB_DEL_USER 0x22 sent when a user needs to be added, sent as a IBM_USERFULL structure. You should always return 0 for this, in case other plugins need this notification
Source Control Messages
_C_ == Command message source control should respond to _I_ == Information message source control should send out SOURCE_C_STOP 0x30 commands any source plugins to stop feeding the stream SOURCE_C_PLAY 0x31 commands any source plugins to start feeding the stream SOURCE_C_NEXT 0x32 commands any source plugins to skip the current song SOURCE_I_STOPPING 0x33 sent by source plugin when it gets the order to stop SOURCE_I_STOPPED 0x34 sent by source plugin when it stops SOURCE_I_PLAYING 0x35 sent by source plugin when it starts playing SOURCE_IS_PLAYING 0x36 the source plugin will return 1 if it is currently playing
TTS Messages
TTS_IS_LOADED 0x40 send to see if TTS is loaded, anything but 0 means TTS is loaded TTS_GET_INTERFACE 0x41 data is a pointer to a TTS_INTERFACE structure to be filled in by the TTS plugin. Returns 1 for success
AutoDJ-specific Messages
AUTODJ_IS_LOADED 0x50 AutoDJ will return 1 if it is loaded AUTODJ_GET_FILE_PATH 0x51 AutoDJ will copy the full path and filename to the song it is currently playing into the user-supplied buffer and return 1 on success.
Message Structures
struct IBM_USER {
char * nick;
char * hostmask;
char * channel;
int32 ulevel;
int32 netno;
};
struct IBM_NICKCHANGE {
char * old_nick;
char * new_nick;
int32 netno;
};
struct IBM_ON_KICK {
IBM_USER * userinfo;
char * kicked;
char * text;
};
enum IBM_USERTEXT_TYPE {
IBM_UTT_CHANNEL=0,
IBM_UTT_PRIVMSG=1
};
struct IBM_USERTEXT {
IBM_USER * userinfo;
IBM_USERTEXT_TYPE type;
char * text;
};
struct IBM_USERFULL {
char nick[128];
char pass[128];
char hostmask[128];
int32 ulevel;
};
struct IBM_USEREXTENDED {
char nick[128];
char pass[128];
int32 ulevel;
uint32 flags;
int32 numhostmasks;
char hostmasks[MAX_HOSTMASKS][128];
};
enum IBM_GETUSERINFO_TYPES {
IBM_UT_FULL = 0,
IBM_UT_EXTENDED = 1
};
struct IBM_GETUSERINFO {
IBM_GETUSERINFO_TYPES type;
int32 type;
union {
IBM_USERFULL ui;
IBM_USEREXTENDED ue;
};
};
struct IBM_MEMINFO {
int64 num_pointers;
int64 bytes_allocated;
};
struct IBM_PROCTEXT {
char * buf;
int32 bufSize;
};
| IRCBot v • d • e
|
|---|
| IRCBot main pages |
| Main Page • Installation • Changelog • Commands • Plugins • FAQ • Configuration• Credits • Remote Client • Buffered Send • Built-In Variables • Multi Sound Server Mode • Username Character Restrictions |
| Auto DJ Pages |
| Auto DJ Main Page • WebRequest System • Scheduler • MP3 Encoder • Voice Support • MySQL Plugin |
| IRCBot Programming v • d • e
|
| IRCBot Programming |
| IPC Messages • Remote Commands • Plugin Initialization • IRCBot DB • ShoutIRC Music Database |
| Tcl Functions |
| Tcl Scripting • Tcl Events |
