mirror of
https://github.com/Tha14/toxic.git
synced 2025-12-06 22:56:35 +01:00
Implement new groupchats
This commit is contained in:
@@ -29,6 +29,7 @@
|
||||
#include "execute.h"
|
||||
#include "global_commands.h"
|
||||
#include "conference_commands.h"
|
||||
#include "groupchat_commands.h"
|
||||
#include "line_info.h"
|
||||
#include "misc_tools.h"
|
||||
#include "notify.h"
|
||||
@@ -53,6 +54,7 @@ static struct cmd_func global_commands[] = {
|
||||
{ "/game", cmd_game },
|
||||
#endif
|
||||
{ "/help", cmd_prompt_help },
|
||||
{ "/join", cmd_join },
|
||||
{ "/log", cmd_log },
|
||||
{ "/myid", cmd_myid },
|
||||
#ifdef QRCODE
|
||||
@@ -81,8 +83,10 @@ static struct cmd_func global_commands[] = {
|
||||
|
||||
static struct cmd_func chat_commands[] = {
|
||||
{ "/cancel", cmd_cancelfile },
|
||||
{ "/invite", cmd_conference_invite },
|
||||
{ "/join", cmd_conference_join },
|
||||
{ "/cinvite", cmd_conference_invite },
|
||||
{ "/cjoin", cmd_conference_join },
|
||||
{ "/gaccept", cmd_group_accept },
|
||||
{ "/invite", cmd_group_invite },
|
||||
#ifdef GAMES
|
||||
{ "/play", cmd_game_join },
|
||||
#endif
|
||||
@@ -117,12 +121,48 @@ static struct cmd_func conference_commands[] = {
|
||||
{ NULL, NULL },
|
||||
};
|
||||
|
||||
static struct cmd_func groupchat_commands[] = {
|
||||
{ "/chatid", cmd_chatid },
|
||||
{ "/disconnect", cmd_disconnect },
|
||||
{ "/ignore", cmd_ignore },
|
||||
{ "/kick", cmd_kick },
|
||||
{ "/mod", cmd_mod },
|
||||
{ "/mykey", cmd_mykey },
|
||||
{ "/passwd", cmd_set_passwd },
|
||||
{ "/peerlimit", cmd_set_peerlimit },
|
||||
{ "/privacy", cmd_set_privacy },
|
||||
{ "/rejoin", cmd_rejoin },
|
||||
{ "/silence", cmd_silence },
|
||||
{ "/topic", cmd_set_topic },
|
||||
{ "/unignore", cmd_unignore },
|
||||
{ "/unmod", cmd_unmod },
|
||||
{ "/unsilence", cmd_unsilence },
|
||||
{ "/whois", cmd_whois },
|
||||
#ifdef AUDIO
|
||||
{ "/mute", cmd_mute },
|
||||
{ "/sense", cmd_sense },
|
||||
#endif /* AUDIO */
|
||||
{ NULL, NULL },
|
||||
};
|
||||
|
||||
/* Special commands are commands that only take one argument even if it contains spaces */
|
||||
static const char special_commands[][MAX_CMDNAME_SIZE] = {
|
||||
"/add",
|
||||
"/avatar",
|
||||
"/gaccept",
|
||||
"/group",
|
||||
"/ignore",
|
||||
"/kick",
|
||||
"/mod",
|
||||
"/nick",
|
||||
"/note",
|
||||
"/passwd",
|
||||
"/silence",
|
||||
"/topic",
|
||||
"/unignore",
|
||||
"/unmod",
|
||||
"/unsilence",
|
||||
"/whois",
|
||||
#ifdef PYTHON
|
||||
"/run",
|
||||
#endif /* PYTHON */
|
||||
@@ -243,19 +283,29 @@ void execute(WINDOW *w, ToxWindow *self, Tox *m, const char *input, int mode)
|
||||
* Note: Global commands must come last in case of duplicate command names
|
||||
*/
|
||||
switch (mode) {
|
||||
case CHAT_COMMAND_MODE:
|
||||
case CHAT_COMMAND_MODE: {
|
||||
if (do_command(w, self, m, num_args, chat_commands, args) == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case CONFERENCE_COMMAND_MODE:
|
||||
case CONFERENCE_COMMAND_MODE: {
|
||||
if (do_command(w, self, m, num_args, conference_commands, args) == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case GROUPCHAT_COMMAND_MODE: {
|
||||
if (do_command(w, self, m, num_args, groupchat_commands, args) == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (do_command(w, self, m, num_args, global_commands, args) == 0) {
|
||||
|
||||
Reference in New Issue
Block a user