Compare commits

...

4 Commits

1 changed files with 11 additions and 4 deletions

15
bot.py
View File

@ -12,6 +12,7 @@ servers = []
match_players = {}
connections = {}
admins = {}
lastPlayed = ""
def update_file(name):
with open(f"playerlist-{name}.txt", "wb") as file:
@ -32,7 +33,7 @@ class Server(BaseServer):
print("Line Params: ", line.params)
if "PRIVMSG" in line.command and any(channel in line.params[0] for channel in self.params.autojoin):
chan = self.channels[line.params[0].lstrip("@")].name
chan = self.channels[line.params[0].lstrip("@")].name
if line.params[1].startswith(".match"):
channel = self.channels[line.params[0].lstrip("@")]
if len(line.params[1].split(" ")) < 2:
@ -41,12 +42,14 @@ class Server(BaseServer):
game = " ".join(line.params[1].split(" ")[1:]).lower()
ping = ""
user = line.source.split('!')[0]
global lastPlayed
lastPlayed = game
if game not in match_players[self.name + '-' + chan]:
await self.send(build("PRIVMSG", [chan, "ERROR: no players in "+ game]))
else:
matches = match_players[self.name + '-' + chan][game]
others = list(set(matches) - set([user])) # don't ping the user who .matched
others = list(set(matches) - set([user])) # don't ping the user who .matched
if len(others) > 0:
for player in others:
pfold = self.casefold(player)
@ -84,6 +87,9 @@ class Server(BaseServer):
update_file(self.name + '-' + chan)
await self.send(build("PRIVMSG", [chan, "Added " + user + " to the " + game + " match list."]))
elif line.params[1].startswith(".last"):
await self.send(build("PRIVMSG", [chan, "Last game played: " + lastPlayed]))
elif line.params[1].startswith(".list"):
user = line.source.split('!')[0]
if len(line.params[1].split(" ")) < 2:
@ -97,6 +103,7 @@ class Server(BaseServer):
await self.send(build("PRIVMSG", [chan, "ERROR: no players in " + game + " list."]))
else:
await self.send(build("PRIVMSG", [chan, game + " players: " + str(['_' + e for e in match_players[self.name + '-' + chan][game]])]))
elif line.params[1].startswith(".remove"):
channel = self.channels[line.params[0].lstrip("@")].name
if channel in admins[self.name]:
@ -133,7 +140,7 @@ class Server(BaseServer):
await self.send(build("PRIVMSG", [chan, "Removed " + user + " from the " + game + " match list."]))
elif line.params[1].startswith(".help"):
await self.send(build("PRIVMSG", [chan, " .add game: Add user to the game list; .del game: Remove user from the game list; .match game: Ping everyone on the game list; .list game: list people added to the game; .list: list games; .remove game: removes the game from the list (admin command)"]))
await self.send(build("PRIVMSG", [chan, " .add game: Add user to the game list; .del game: Remove user from the game list; .match game: Ping everyone on the game list; .list game: list people added to the game; .list: list games; .remove game: removes the game from the list (admin command); .last: show last played game"]))
async def line_send(self, line: Line):
print(f"{self.name} > {line.format()}")