|
|
@@ -207,15 +207,23 @@ void set_devoice(struct chanset_t *chan, memberlist* m) {
|
|
|
}
|
|
|
|
|
|
const char* punish_flooder(struct chanset_t* chan, memberlist* m, const char *reason) {
|
|
|
- if (channel_voice(chan) && chan->voice_moderate && !chan_sentdevoice(m)) {
|
|
|
- add_mode(chan, '-', 'v', m->nick);
|
|
|
- m->flags |= SENTDEVOICE;
|
|
|
- set_devoice(chan, m);
|
|
|
- return "devoicing";
|
|
|
- } else if (!chan_sentkick(m)) {
|
|
|
- dprintf(DP_SERVER, "KICK %s %s :%s%s\n", chan->name, m->nick, kickprefix, reason ? reason : response(RES_FLOOD));
|
|
|
- m->flags |= SENTKICK;
|
|
|
- return "kicking";
|
|
|
+ if (channel_voice(chan) && chan->voice_moderate) {
|
|
|
+ if (!chan_sentdevoice(m)) {
|
|
|
+ add_mode(chan, '-', 'v', m->nick);
|
|
|
+ m->flags |= SENTDEVOICE;
|
|
|
+ set_devoice(chan, m);
|
|
|
+ return "devoicing";
|
|
|
+ } else {
|
|
|
+ return "devoiced";
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (!chan_sentkick(m)) {
|
|
|
+ dprintf(DP_SERVER, "KICK %s %s :%s%s\n", chan->name, m->nick, kickprefix, reason ? reason : response(RES_FLOOD));
|
|
|
+ m->flags |= SENTKICK;
|
|
|
+ return "kicking";
|
|
|
+ } else {
|
|
|
+ return "kicked";
|
|
|
+ }
|
|
|
}
|
|
|
return "ignoring";
|
|
|
}
|