mirror of
https://github.com/jlu5/PyLink.git
synced 2025-04-19 22:37:53 +02:00
relay: propagate SAVE as NICK changes for non-relay users!
This commit is contained in:
parent
a4da9b5324
commit
e4da670ae0
@ -865,18 +865,24 @@ def handle_disconnect(irc, numeric, command, args):
|
|||||||
utils.add_hook(handle_disconnect, "PYLINK_DISCONNECT")
|
utils.add_hook(handle_disconnect, "PYLINK_DISCONNECT")
|
||||||
|
|
||||||
def handle_save(irc, numeric, command, args):
|
def handle_save(irc, numeric, command, args):
|
||||||
# Nick collision! Try to change our nick to the next available normalized
|
|
||||||
# nick.
|
|
||||||
target = args['target']
|
target = args['target']
|
||||||
if utils.isInternalClient(irc, target):
|
realuser = getLocalUser(irc, target)
|
||||||
realuser = getLocalUser(irc, target)
|
log.debug('(%s) relay handle_save: %r got in a nick collision! Real user: %r',
|
||||||
if realuser is None:
|
irc.name, target, realuser)
|
||||||
return
|
if utils.isInternalClient(irc, target) and realuser:
|
||||||
|
# Nick collision!
|
||||||
|
# It's one of our relay clients; try to fix our nick to the next
|
||||||
|
# available normalized nick.
|
||||||
remotenet, remoteuser = realuser
|
remotenet, remoteuser = realuser
|
||||||
remoteirc = utils.networkobjects[remotenet]
|
remoteirc = utils.networkobjects[remotenet]
|
||||||
nick = remoteirc.users[remoteuser].nick
|
nick = remoteirc.users[remoteuser].nick
|
||||||
newnick = normalizeNick(irc, remotenet, nick)
|
newnick = normalizeNick(irc, remotenet, nick)
|
||||||
irc.proto.nickClient(irc, target, newnick)
|
irc.proto.nickClient(irc, target, newnick)
|
||||||
|
else:
|
||||||
|
# Somebody else on the network (not a PyLink client) had a nick collision;
|
||||||
|
# relay this as a nick change appropriately.
|
||||||
|
handle_nick(irc, target, 'SAVE', {'oldnick': None, 'newnick': target})
|
||||||
|
|
||||||
utils.add_hook(handle_save, "SAVE")
|
utils.add_hook(handle_save, "SAVE")
|
||||||
|
|
||||||
@utils.add_cmd
|
@utils.add_cmd
|
||||||
|
Loading…
x
Reference in New Issue
Block a user