- int i, a, len, remove;
- char sentence[MAXBUF];
- strncpy(sentence,text.c_str(),MAXBUF);
-
- len = strlen(sentence);
-
- for (i = 0; i < len; i++)
- {
- remove = 0;
-
- switch (sentence[i])
- {
- case 2:
- case 15:
- case 22:
- case 21:
- case 31:
- remove++;
- break;
-
- case 3:
- remove = 1;
-
- if (isdigit(sentence[i + remove]))
- remove++;
-
- if (isdigit(sentence[i + remove]))
- remove++;
-
- if (sentence[i + remove] == ',')
- {
- remove += 2;
-
- if (isdigit(sentence[i + remove]))
- remove++;
- }
- break;
- }
-
- if (remove != 0)
- {
- len -= remove;
-
- for (a = i; a <= len; a++)
- sentence[a] = sentence[a + remove];
- i--;
- }
- }
-
- text = sentence;
- }
-
- virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text)
- {
- bool active = false;
- if (target_type == TYPE_USER)
- {
- userrec* t = (userrec*)dest;
- active = (strchr(t->modes,'S') > 0);
- }
- else if (target_type == TYPE_CHANNEL)
- {
- chanrec* t = (chanrec*)dest;
- active = (t->IsCustomModeSet('S'));
- }
- if (active)
- {
- this->ReplaceLine(text);
- }
- return 0;