| | @@ -278,12 +278,12 @@ |
| 278 | 278 | b.log.Info("steward warn", "nick", nick, "channel", channel, "reason", reason) |
| 279 | 279 | } |
| 280 | 280 | } |
| 281 | 281 | |
| 282 | 282 | func (b *Bot) mute(c *girc.Client, nick, channel string, d time.Duration) { |
| 283 | | - // +q (quiet) mode — supported by Ergo. |
| 284 | | - c.Cmd.Mode(channel, "+q", nick) |
| 283 | + // Extended ban m: to mute — agent stays in channel but cannot speak. |
| 284 | + c.Cmd.Mode(channel, "+b", "m:"+nick+"!*@*") |
| 285 | 285 | key := channel + ":" + nick |
| 286 | 286 | b.mu.Lock() |
| 287 | 287 | b.mutes[key] = time.Now().Add(d) |
| 288 | 288 | b.mu.Unlock() |
| 289 | 289 | b.announce(c, fmt.Sprintf("muted %s in %s for %s", nick, channel, d.Round(time.Second))) |
| | @@ -291,11 +291,11 @@ |
| 291 | 291 | b.log.Info("steward mute", "nick", nick, "channel", channel, "duration", d) |
| 292 | 292 | } |
| 293 | 293 | } |
| 294 | 294 | |
| 295 | 295 | func (b *Bot) unmute(c *girc.Client, nick, channel string) { |
| 296 | | - c.Cmd.Mode(channel, "-q", nick) |
| 296 | + c.Cmd.Mode(channel, "-b", "m:"+nick+"!*@*") |
| 297 | 297 | key := channel + ":" + nick |
| 298 | 298 | b.mu.Lock() |
| 299 | 299 | delete(b.mutes, key) |
| 300 | 300 | b.mu.Unlock() |
| 301 | 301 | b.announce(c, fmt.Sprintf("unmuted %s in %s", nick, channel)) |
| 302 | 302 | |