.BANCHO. Kick all clients when using !kick, don't kick FokaBot with !kick command
This commit is contained in:
parent
44545c3bcb
commit
b4d498c26c
2
common
2
common
|
@ -1 +1 @@
|
|||
Subproject commit 3288420cd81cdb84912b9debda1e7828ebb7c62a
|
||||
Subproject commit 64445ae5464b35528bde3439623655ba3af45c04
|
|
@ -119,15 +119,18 @@ def kickAll(fro, chan, message):
|
|||
|
||||
def kick(fro, chan, message):
|
||||
# Get parameters
|
||||
target = message[0].replace("_", " ")
|
||||
target = message[0].lower().replace("_", " ")
|
||||
if target == "fokabot":
|
||||
return "Nope."
|
||||
|
||||
# Get target token and make sure is connected
|
||||
targetToken = glob.tokens.getTokenFromUsername(target)
|
||||
if targetToken is None:
|
||||
tokens = glob.tokens.getTokenFromUsername(target, all=True)
|
||||
if len(tokens) == 0:
|
||||
return "{} is not online".format(target)
|
||||
|
||||
# Kick user
|
||||
targetToken.kick()
|
||||
# Kick users
|
||||
for i in tokens:
|
||||
i.kick()
|
||||
|
||||
# Bot response
|
||||
return "{} has been kicked from the server.".format(target)
|
||||
|
|
|
@ -113,9 +113,7 @@ def partChannel(userID = 0, channel = "", token = None, toIRC = True, kick = Fal
|
|||
|
||||
# Delete temporary channel if everyone left
|
||||
if "chat/{}".format(channelObject.name) in glob.streams.streams:
|
||||
sas = len(glob.streams.streams["chat/{}".format(channelObject.name)].clients)
|
||||
print(str(sas - 1))
|
||||
if channelObject.temp == True and sas - 1 == 0:
|
||||
if channelObject.temp == True and len(glob.streams.streams["chat/{}".format(channelObject.name)].clients) - 1 == 0:
|
||||
glob.channels.removeChannel(channelObject.name)
|
||||
|
||||
# Force close tab if needed
|
||||
|
|
|
@ -54,25 +54,34 @@ class tokenList:
|
|||
# Get userID associated to that token
|
||||
return self.tokens[token].userID
|
||||
|
||||
def getTokenFromUserID(self, userID, ignoreIRC=False):
|
||||
def getTokenFromUserID(self, userID, ignoreIRC=False, all=False):
|
||||
"""
|
||||
Get token from a user ID
|
||||
|
||||
:param userID: user ID to find
|
||||
:param ignoreIRC: if True, consider bancho clients only and skip IRC clients
|
||||
:param all: if True, return a list with all clients that match given username, otherwise return
|
||||
only the first occurrence.
|
||||
:return: False if not found, token object if found
|
||||
"""
|
||||
# Make sure the token exists
|
||||
ret = []
|
||||
for _, value in self.tokens.items():
|
||||
if value.userID == userID:
|
||||
if ignoreIRC and value.irc:
|
||||
continue
|
||||
return value
|
||||
if all:
|
||||
ret.append(value)
|
||||
else:
|
||||
return value
|
||||
|
||||
# Return none if not found
|
||||
return None
|
||||
# Return full list or None if not found
|
||||
if all:
|
||||
return ret
|
||||
else:
|
||||
return None
|
||||
|
||||
def getTokenFromUsername(self, username, ignoreIRC=False, safe=False):
|
||||
def getTokenFromUsername(self, username, ignoreIRC=False, safe=False, all=False):
|
||||
"""
|
||||
Get an osuToken object from an username
|
||||
|
||||
|
@ -80,20 +89,29 @@ class tokenList:
|
|||
:param ignoreIRC: if True, consider bancho clients only and skip IRC clients
|
||||
:param safe: if True, username is a safe username,
|
||||
compare it with token's safe username rather than normal username
|
||||
:param all: if True, return a list with all clients that match given username, otherwise return
|
||||
only the first occurrence.
|
||||
:return: osuToken object or None
|
||||
"""
|
||||
# lowercase
|
||||
who = username.lower() if not safe else username
|
||||
|
||||
# Make sure the token exists
|
||||
ret = []
|
||||
for _, value in self.tokens.items():
|
||||
if (not safe and value.username.lower() == who) or (safe and value.safeUsername == who):
|
||||
if ignoreIRC and value.irc:
|
||||
continue
|
||||
return value
|
||||
if all:
|
||||
ret.append(value)
|
||||
else:
|
||||
return value
|
||||
|
||||
# Return none if not found
|
||||
return None
|
||||
# Return full list or None if not found
|
||||
if all:
|
||||
return ret
|
||||
else:
|
||||
return None
|
||||
|
||||
def deleteOldTokens(self, userID):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue
Block a user