Фильтрация команд

Сейчас я пишу бот IRC для развлечения, и у меня возникли проблемы с настройкой бота для прослушивания моих команд. (Работает для! Выйти, но не для! Присоединиться или! Уйти)

void onPrivMsg(IRCMessage message, IRCClient* client)
{
// received text
std::string text = message.parameters.at(message.parameters.size() - 1);

if (text[0] == '!')
{
if (text == "!Join #channel" || text == "!join #channel")
client->SendIRC("JOIN #channel");
if (text == "!Leave #channel" || text == "!leave #channel")
client->SendIRC("PART #channel");
if (text == "!Quit" || text == "!quit")
client->SendIRC("QUIT");
} else{
client->SendIRC("PRIVMSG #channel :Wrong command.");
}
}

Я называю это так:

client.HookIRCCommand("PRIVMSG", &onPrivMsg);

Как я могу получить имя канала (#ChannelISpecify) из строки текстового сообщения?

Пример: если бы я набрал «! Join #funnyposts» в IRC, он бы присоединился к каналу #funnyposts.
Цени любую помощь.

0

Решение

Догадаться. Теперь фильтры для разных команд и действует соответственно.

if (text[0] == '!')
{
std::string commandApi = text.substr(0, text.find(" "));
if (commandApi == "!Join" || commandApi == "!join"){
if (commandApi[0] = '!'){
commandApi[0] = '/';
}
std::string channel2 = text.substr(text.find("#"));
client->SendIRC("PRIVMSG " + channel2 + " :Joining channel");
client->SendIRC("JOIN " + channel2);
}
0

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector