Add .remove admin command
This commit is contained in:
parent
7921f44058
commit
d2f13337b0
|
@ -1,7 +1,8 @@
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
[host]
|
[host]
|
||||||
server = chat.freenode.invalid
|
server = irc.freegamedev.net
|
||||||
nickname = matchmaking-bot
|
nickname = matchmaking-bot
|
||||||
channels = #matchmaking-test
|
channels = #matchmaking-test
|
||||||
#Skipping ':' means using default port 1234
|
#Skipping ':' means using default port 1234
|
||||||
connections = tilde tildeverse.org foo foo.bar:6969
|
connections = tilde tildeverse.org foo foo.bar:6969
|
||||||
|
admins = {"#matchmaking-test: ["Rampoina","franzopow","emorrp1"], "#other": ["test"]}
|
||||||
|
|
27
bot.py
27
bot.py
|
@ -6,10 +6,12 @@ from ircrobots import Bot as BaseBot
|
||||||
from ircrobots import Server as BaseServer
|
from ircrobots import Server as BaseServer
|
||||||
from ircrobots import ConnectionParams
|
from ircrobots import ConnectionParams
|
||||||
import pickle
|
import pickle
|
||||||
|
import json
|
||||||
|
|
||||||
servers = []
|
servers = []
|
||||||
match_players = {}
|
match_players = {}
|
||||||
connections = {}
|
connections = {}
|
||||||
|
admins = {}
|
||||||
|
|
||||||
def update_file(name):
|
def update_file(name):
|
||||||
with open(f"playerlist-{name}.txt", "wb") as file:
|
with open(f"playerlist-{name}.txt", "wb") as file:
|
||||||
|
@ -85,7 +87,22 @@ class Server(BaseServer):
|
||||||
await self.send(build("PRIVMSG", [chan, "ERROR: no players in " + game + " list."]))
|
await self.send(build("PRIVMSG", [chan, "ERROR: no players in " + game + " list."]))
|
||||||
else:
|
else:
|
||||||
await self.send(build("PRIVMSG", [chan, game + " players: " + str(['_' + e for e in match_players[self.name + '-' + chan][game]])]))
|
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]:
|
||||||
|
fadmins = admins[self.name][channel]
|
||||||
|
else:
|
||||||
|
fadmins = []
|
||||||
|
user = line.source.split('!')[0]
|
||||||
|
game = " ".join(line.params[1].split(" ")[1:]).lower()
|
||||||
|
if game not in match_players[self.name + '-' + chan]:
|
||||||
|
await self.send(build("PRIVMSG", [chan, "ERROR: game " + game + " not found"]))
|
||||||
|
if user not in fadmins:
|
||||||
|
|
||||||
|
await self.send(build("PRIVMSG", [chan, "ERROR: user " + user + " is not an admin"]))
|
||||||
|
if user in fadmins and game in match_players[self.name + '-' + chan]:
|
||||||
|
del match_players[self.name + '-' + chan][game]
|
||||||
|
await self.send(build("PRIVMSG", [chan, "Removed " + game]))
|
||||||
elif line.params[1].startswith(".del"):
|
elif line.params[1].startswith(".del"):
|
||||||
user = line.source.split('!')[0]
|
user = line.source.split('!')[0]
|
||||||
if len(line.params[1].split(" ")) < 2:
|
if len(line.params[1].split(" ")) < 2:
|
||||||
|
@ -128,9 +145,19 @@ async def main():
|
||||||
elif not config[section]['channels']:
|
elif not config[section]['channels']:
|
||||||
print(f"ERROR: You didn't define any channels in section {section}.")
|
print(f"ERROR: You didn't define any channels in section {section}.")
|
||||||
exit(1)
|
exit(1)
|
||||||
|
elif not config[section]['admins']:
|
||||||
|
print(f"ERROR: You didn't define any admins in section {section}.")
|
||||||
|
exit(1)
|
||||||
server = config[section]['server']
|
server = config[section]['server']
|
||||||
nickname = config[section]['nickname']
|
nickname = config[section]['nickname']
|
||||||
channels = set(config[section]['channels'].split())
|
channels = set(config[section]['channels'].split())
|
||||||
|
try:
|
||||||
|
admins[section] = json.loads(config[section]['admins'])
|
||||||
|
except Exception as e:
|
||||||
|
print(f"ERROR: Invalid admins in section {section}.")
|
||||||
|
print(e)
|
||||||
|
exit(1)
|
||||||
|
|
||||||
if config[section]['connections']:
|
if config[section]['connections']:
|
||||||
if len(config[section]['connections'].split()) % 2 != 0: # If connections isn't even
|
if len(config[section]['connections'].split()) % 2 != 0: # If connections isn't even
|
||||||
print(f"ERROR: The section {section} has an invalid 'connections' defined.")
|
print(f"ERROR: The section {section} has an invalid 'connections' defined.")
|
||||||
|
|
Loading…
Reference in New Issue