X-Git-Url: https://jfr.im/git/irc/evilnet/x3.git/blobdiff_plain/30874d6682a37bc1d8f3d76fd90afde6a0f3fce7..75ddd32792fd2d0bf86c6e85d360c661134a0681:/src/mod-track.c diff --git a/src/mod-track.c b/src/mod-track.c index 92bcbe7..a14d8ec 100644 --- a/src/mod-track.c +++ b/src/mod-track.c @@ -236,8 +236,14 @@ track_part(struct modeNode *mn, const char *reason, UNUSED_ARG(void *extra)) { static void track_kick(struct userNode *kicker, struct userNode *victim, struct chanNode *chan, UNUSED_ARG(void *extra)) { if (!track_cfg.enabled) return; - if (check_track_kick(track_cfg) && ((check_track_user(kicker->nick) || check_track_user(victim->nick)))) + if (check_track_kick(track_cfg) && check_track_user(victim->nick)) { + if (kicker) /* net rider kicks dont have a kicker set */ + { + if (!check_track_user(kicker->nick)) + return; + } + UPDATE_TIMESTAMP(); TRACK("$bKICK$b %s from %s by %s", victim->nick, chan->name, (kicker ? kicker->nick : "some server")); } @@ -618,7 +624,7 @@ MODCMD_FUNC(cmd_listtrack) static void track_conf_read(void) { dict_t node; - char *str; + char *str, *modes; node = conf_get_data("modules/track", RECDB_OBJECT); if (!node) @@ -629,11 +635,12 @@ track_conf_read(void) { else parse_track_conf(str); str = database_get_data(node, "channel", RECDB_QSTRING); + modes = database_get_data(node, "channel_modes", RECDB_QSTRING); if (!str) return; // XXX - dont do addchannel if the channel is being shared with // another module: - track_cfg.channel = AddChannel(str, now, "+sntOm", NULL, NULL); + track_cfg.channel = AddChannel(str, now, (modes ? modes : "+sntOm"), NULL, NULL); if (!track_cfg.channel) return; str = database_get_data(node, "show_bursts", RECDB_QSTRING);