mirror of
https://github.com/jlu5/PyLink.git
synced 2025-01-11 20:52:42 +01:00
clientbot: return existing PUIDs in spawnClient if nick exists
This fixes some silly UID duplication with FNC handling.
This commit is contained in:
parent
ae63f72cf9
commit
113fbf9eb8
@ -84,18 +84,22 @@ class ClientbotWrapperProtocol(Protocol):
|
||||
"""
|
||||
|
||||
server = server or self.irc.sid
|
||||
uid = self.uidgen.next_uid()
|
||||
|
||||
ts = ts or int(time.time())
|
||||
|
||||
log.debug('(%s) spawnClient stub called, saving nick %s as PUID %s', self.irc.name, nick, uid)
|
||||
u = self.irc.users[uid] = IrcUser(nick, ts, uid, ident=ident, host=host, realname=realname,
|
||||
manipulatable=manipulatable, realhost=realhost, ip=ip)
|
||||
self.irc.servers[server].users.add(uid)
|
||||
|
||||
self.irc.applyModes(uid, modes)
|
||||
|
||||
return u
|
||||
# First, check if the pseudouser we want already exists. If so, return their UID.
|
||||
uid = self.irc.nickToUid(nick)
|
||||
if uid:
|
||||
log.debug('(%s) spawnClient stub called, returning existing PUID %s for %s',
|
||||
self.irc.name, uid, nick)
|
||||
return self.irc.users[uid]
|
||||
else:
|
||||
uid = self.uidgen.next_uid()
|
||||
ts = ts or int(time.time())
|
||||
log.debug('(%s) spawnClient stub called, saving nick %s as PUID %s', self.irc.name, nick, uid)
|
||||
u = self.irc.users[uid] = IrcUser(nick, ts, uid, ident=ident, host=host, realname=realname,
|
||||
manipulatable=manipulatable, realhost=realhost, ip=ip)
|
||||
self.irc.servers[server].users.add(uid)
|
||||
self.irc.applyModes(uid, modes)
|
||||
return u
|
||||
|
||||
def spawnServer(self, name, sid=None, uplink=None, desc=None, endburst_delay=0, internal=True):
|
||||
"""
|
||||
@ -576,7 +580,6 @@ class ClientbotWrapperProtocol(Protocol):
|
||||
oldnick = self.irc.serverdata['pylink_nick']
|
||||
self.irc.serverdata['pylink_nick'] = self.conf_nick = args[0]
|
||||
log.debug('(%s) Pre-auth FNC: Forcing configured nick to %s from %s', self.irc.name, args[0], oldnick)
|
||||
return
|
||||
|
||||
oldnick = self.irc.users[source].nick
|
||||
self.irc.users[source].nick = args[0]
|
||||
|
Loading…
Reference in New Issue
Block a user