Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def target_filter(filterby, source=None):
- """Processes a target string and resolves it to one or more players
- Args:
- filterby: A string filterby in the form of
- Name: "<playername>" ex: "necavi"
- Userid: "#<userid>" ex: "#5"
- Multi-Filter: "@<filterby>" ex "@me"
- source: A player to consider the source, used for filters such as @me
- Returns:
- A list of players that fit the filterby string
- """
- print("Filtering: " + filterby)
- playerlist = []
- if filterby == "":
- pass
- elif filterby[0] == "@":
- if filterby[1] == "!":
- if source is not None and filterby[2:] == "me":
- source_index = index_from_playerinfo(source)
- for player in PlayerGenerator():
- index = index_from_playerinfo(player)
- if index != source_index:
- playerlist.append(index)
- else:
- playerlist = [x for x in PlayerIter(not_filters=filterby[2:], return_types="index")]
- else:
- if source is not None and filterby[1:] == "me":
- playerlist.append(index_from_playerinfo(source))
- else:
- playerlist = [x for x in PlayerIter(is_filters=filterby[1:], return_types="index")]
- elif filterby[0] == "#":
- userid = filterby[1:]
- if userid.isnumeric():
- try:
- playerlist.append(index_from_userid(int(userid)))
- except ValueError:
- pass
- else:
- for playerinfo in PlayerGenerator():
- filterby = filterby.casefold()
- if filterby in playerinfo.get_name().casefold():
- playerlist.append(index_from_playerinfo(playerinfo))
- return playerlist
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement