Move automatic mode syncing to hooks.py
This commit is contained in:
parent
28f26e181b
commit
7154a7d092
11
src/hooks.py
11
src/hooks.py
@ -320,7 +320,16 @@ def mode_change(cli, rawnick, chan, mode, *targets):
|
|||||||
users.Bot.modes.update(mode)
|
users.Bot.modes.update(mode)
|
||||||
return
|
return
|
||||||
|
|
||||||
actor = users._add(cli, nick=rawnick) # FIXME
|
if "!" not in rawnick:
|
||||||
|
# Only sync modes if a server changed modes because
|
||||||
|
# 1) human ops probably know better
|
||||||
|
# 2) other bots might start a fight over modes
|
||||||
|
# 3) recursion; we see our own mode changes.
|
||||||
|
evt = Event("sync_modes", {})
|
||||||
|
evt.dispatch(var)
|
||||||
|
return
|
||||||
|
|
||||||
|
actor = users._get(rawnick) # FIXME
|
||||||
target = channels.add(chan, cli)
|
target = channels.add(chan, cli)
|
||||||
target.queue("mode_change", {"mode": mode, "targets": targets}, (var, actor, target))
|
target.queue("mode_change", {"mode": mode, "targets": targets}, (var, actor, target))
|
||||||
|
|
||||||
|
@ -269,12 +269,6 @@ def check_for_modes(cli, rnick, chan, modeaction, *target):
|
|||||||
var.USERS[trgt]["moded"].remove(change)
|
var.USERS[trgt]["moded"].remove(change)
|
||||||
elif change in var.USERS[trgt]["modes"]:
|
elif change in var.USERS[trgt]["modes"]:
|
||||||
var.USERS[trgt]["modes"].remove(change)
|
var.USERS[trgt]["modes"].remove(change)
|
||||||
# Only sync modes if a server changed modes because
|
|
||||||
# 1) human ops probably know better
|
|
||||||
# 2) other bots might start a fight over modes
|
|
||||||
# 3) recursion; we see our own mode changes.
|
|
||||||
if "!" not in rnick:
|
|
||||||
sync_modes(var)
|
|
||||||
|
|
||||||
def reset_settings():
|
def reset_settings():
|
||||||
var.CURRENT_GAMEMODE.teardown()
|
var.CURRENT_GAMEMODE.teardown()
|
||||||
@ -348,6 +342,10 @@ def fsync(var, wrapper, message):
|
|||||||
"""Makes the bot apply the currently appropriate channel modes."""
|
"""Makes the bot apply the currently appropriate channel modes."""
|
||||||
sync_modes(var)
|
sync_modes(var)
|
||||||
|
|
||||||
|
@event_listener("sync_modes")
|
||||||
|
def on_sync_modes(evt, var):
|
||||||
|
sync_modes(var)
|
||||||
|
|
||||||
def sync_modes(var):
|
def sync_modes(var):
|
||||||
voices = [None]
|
voices = [None]
|
||||||
mode = hooks.Features["PREFIX"]["+"]
|
mode = hooks.Features["PREFIX"]["+"]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user