mirror of
https://github.com/jlu5/PyLink.git
synced 2024-11-30 14:49:28 +01:00
parseModes: give prefix modes precedence over mode types
This commit is contained in:
parent
2d886367b5
commit
c6fcdd854c
26
classes.py
26
classes.py
@ -538,7 +538,19 @@ class Irc():
|
|||||||
arg = None
|
arg = None
|
||||||
log.debug('Current mode: %s%s; args left: %s', prefix, mode, args)
|
log.debug('Current mode: %s%s; args left: %s', prefix, mode, args)
|
||||||
try:
|
try:
|
||||||
if mode in (supported_modes['*A'] + supported_modes['*B']):
|
if mode in self.prefixmodes and not usermodes:
|
||||||
|
# We're setting a prefix mode on someone (e.g. +o user1)
|
||||||
|
log.debug('Mode %s: This mode is a prefix mode.', mode)
|
||||||
|
arg = args.pop(0)
|
||||||
|
# Convert nicks to UIDs implicitly; most IRCds will want
|
||||||
|
# this already.
|
||||||
|
arg = self.nickToUid(arg) or arg
|
||||||
|
if arg not in self.users: # Target doesn't exist, skip it.
|
||||||
|
log.debug('(%s) Skipping setting mode "%s %s"; the '
|
||||||
|
'target doesn\'t seem to exist!', self.name,
|
||||||
|
mode, arg)
|
||||||
|
continue
|
||||||
|
elif mode in (supported_modes['*A'] + supported_modes['*B']):
|
||||||
# Must have parameter.
|
# Must have parameter.
|
||||||
log.debug('Mode %s: This mode must have parameter.', mode)
|
log.debug('Mode %s: This mode must have parameter.', mode)
|
||||||
arg = args.pop(0)
|
arg = args.pop(0)
|
||||||
@ -553,18 +565,6 @@ class Irc():
|
|||||||
# Set the arg to the old one on the channel.
|
# Set the arg to the old one on the channel.
|
||||||
arg = oldargs[0]
|
arg = oldargs[0]
|
||||||
log.debug("Mode %s: coersing argument of '*' to %r.", mode, arg)
|
log.debug("Mode %s: coersing argument of '*' to %r.", mode, arg)
|
||||||
elif mode in self.prefixmodes and not usermodes:
|
|
||||||
# We're setting a prefix mode on someone (e.g. +o user1)
|
|
||||||
log.debug('Mode %s: This mode is a prefix mode.', mode)
|
|
||||||
arg = args.pop(0)
|
|
||||||
# Convert nicks to UIDs implicitly; most IRCds will want
|
|
||||||
# this already.
|
|
||||||
arg = self.nickToUid(arg) or arg
|
|
||||||
if arg not in self.users: # Target doesn't exist, skip it.
|
|
||||||
log.debug('(%s) Skipping setting mode "%s %s"; the '
|
|
||||||
'target doesn\'t seem to exist!', self.name,
|
|
||||||
mode, arg)
|
|
||||||
continue
|
|
||||||
elif prefix == '+' and mode in supported_modes['*C']:
|
elif prefix == '+' and mode in supported_modes['*C']:
|
||||||
# Only has parameter when setting.
|
# Only has parameter when setting.
|
||||||
log.debug('Mode %s: Only has parameter when setting.', mode)
|
log.debug('Mode %s: Only has parameter when setting.', mode)
|
||||||
|
Loading…
Reference in New Issue
Block a user