🐛 fix roles on the server
This commit is contained in:
parent
717f094c16
commit
ad2fcf6828
|
@ -1,8 +1,11 @@
|
||||||
import code
|
import code
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
|
|
||||||
from discord.ext.commands import command, has_role, Bot
|
import discord
|
||||||
|
from discord import Colour, TextChannel, PermissionOverwrite
|
||||||
|
from discord.ext.commands import command, has_role, Bot, has_any_role
|
||||||
from discord.ext.commands import Cog
|
from discord.ext.commands import Cog
|
||||||
|
from discord.utils import get
|
||||||
|
|
||||||
from src.constants import *
|
from src.constants import *
|
||||||
|
|
||||||
|
@ -47,6 +50,12 @@ class DevCog(Cog, name="Dev tools"):
|
||||||
@command(name="reload", aliases=["r"])
|
@command(name="reload", aliases=["r"])
|
||||||
@has_role(Role.DEV)
|
@has_role(Role.DEV)
|
||||||
async def reload_cmd(self, ctx, name):
|
async def reload_cmd(self, ctx, name):
|
||||||
|
"""
|
||||||
|
(dev) Recharge une catégorie de commande.
|
||||||
|
|
||||||
|
A utiliser quand le code change. Arguments
|
||||||
|
possibles: `teams`, `tirages`, `dev`.
|
||||||
|
"""
|
||||||
|
|
||||||
MAP = {"d": "dev", "ts": "teams", "t": "tirages"}
|
MAP = {"d": "dev", "ts": "teams", "t": "tirages"}
|
||||||
name = MAP.get(name, name)
|
name = MAP.get(name, name)
|
||||||
|
@ -62,6 +71,57 @@ class DevCog(Cog, name="Dev tools"):
|
||||||
else:
|
else:
|
||||||
await ctx.send(f":tada: L'extension **{name}** a bien été rechargée.")
|
await ctx.send(f":tada: L'extension **{name}** a bien été rechargée.")
|
||||||
|
|
||||||
|
@command(name="setup-roles")
|
||||||
|
async def setup_roles(self, ctx):
|
||||||
|
"""
|
||||||
|
(dev) Temporary command to setup the server.
|
||||||
|
"""
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
guild: discord.Guild = ctx.guild
|
||||||
|
nothing = PermissionOverwrite(read_messages=False)
|
||||||
|
see = PermissionOverwrite(read_messages=True)
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
aide: TextChannel = get(guild.text_channels, name="aide")
|
||||||
|
for t in TOURNOIS:
|
||||||
|
orga = get(guild.roles, name=f"Orga {t}")
|
||||||
|
jury = get(guild.roles, name=f"Jury {t}")
|
||||||
|
await aide.set_permissions(orga, overwrite=see)
|
||||||
|
await aide.set_permissions(jury, overwrite=see)
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
tournois = {
|
||||||
|
tournoi: get(guild.categories, name=tournoi) for tournoi in TOURNOIS
|
||||||
|
}
|
||||||
|
|
||||||
|
for ch in guild.text_channels:
|
||||||
|
print(repr(ch.category))
|
||||||
|
|
||||||
|
for tournoi, cat in tournois.items():
|
||||||
|
if tournoi == "Lyon":
|
||||||
|
continue
|
||||||
|
|
||||||
|
jury_channel: TextChannel = get(
|
||||||
|
guild.text_channels, category=cat, name="cro"
|
||||||
|
)
|
||||||
|
await jury_channel.delete()
|
||||||
|
# jury = get(guild.roles, name=f"Jury {tournoi}")
|
||||||
|
orga = get(guild.roles, name=f"Orga {tournoi}")
|
||||||
|
ov = {
|
||||||
|
guild.default_role: nothing,
|
||||||
|
# jury: see,
|
||||||
|
orga: see,
|
||||||
|
}
|
||||||
|
await guild.create_text_channel(
|
||||||
|
f"cro-{tournoi}", category=cat, overwrites=ov
|
||||||
|
)
|
||||||
|
|
||||||
|
await ctx.send(str(jury_channel))
|
||||||
|
|
||||||
|
|
||||||
def setup(bot: Bot):
|
def setup(bot: Bot):
|
||||||
bot.add_cog(DevCog(bot))
|
bot.add_cog(DevCog(bot))
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
#!/bin/python
|
#!/bin/python
|
||||||
|
|
||||||
|
|
||||||
#!/bin/python
|
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
import random
|
import random
|
||||||
from collections import defaultdict, namedtuple
|
from collections import defaultdict, namedtuple
|
||||||
|
@ -667,7 +664,7 @@ class TirageCog(Cog, name="Tirages"):
|
||||||
@draw_group.command(
|
@draw_group.command(
|
||||||
name="start", usage="équipe1 équipe2 équipe3 (équipe4)",
|
name="start", usage="équipe1 équipe2 équipe3 (équipe4)",
|
||||||
)
|
)
|
||||||
@commands.has_role(Role.ORGA)
|
@commands.has_any_role(*Role.ORGAS)
|
||||||
async def start(self, ctx: Context, *teams: discord.Role):
|
async def start(self, ctx: Context, *teams: discord.Role):
|
||||||
"""
|
"""
|
||||||
(orga) Commence un tirage avec 3 ou 4 équipes.
|
(orga) Commence un tirage avec 3 ou 4 équipes.
|
||||||
|
@ -720,7 +717,7 @@ class TirageCog(Cog, name="Tirages"):
|
||||||
await self.tirages[channel_id].phase.start(ctx)
|
await self.tirages[channel_id].phase.start(ctx)
|
||||||
|
|
||||||
@draw_group.command(name="abort")
|
@draw_group.command(name="abort")
|
||||||
@commands.has_role(Role.ORGA)
|
@commands.has_any_role(*Role.ORGAS)
|
||||||
async def abort_draw_cmd(self, ctx):
|
async def abort_draw_cmd(self, ctx):
|
||||||
"""
|
"""
|
||||||
(orga) Annule le tirage en cours.
|
(orga) Annule le tirage en cours.
|
||||||
|
|
|
@ -11,6 +11,7 @@ __all__ = [
|
||||||
"TEAMS_FILE",
|
"TEAMS_FILE",
|
||||||
"TEAMS_CHANNEL_CATEGORY",
|
"TEAMS_CHANNEL_CATEGORY",
|
||||||
"DIEGO",
|
"DIEGO",
|
||||||
|
"TOURNOIS",
|
||||||
]
|
]
|
||||||
|
|
||||||
TOKEN = os.environ.get("TFJM_DISCORD_TOKEN")
|
TOKEN = os.environ.get("TFJM_DISCORD_TOKEN")
|
||||||
|
@ -27,11 +28,24 @@ if TOKEN is None:
|
||||||
GUILD = "690934836696973404"
|
GUILD = "690934836696973404"
|
||||||
DIEGO = "Diego" # Mon display name
|
DIEGO = "Diego" # Mon display name
|
||||||
|
|
||||||
|
TOURNOIS = [
|
||||||
|
"Lille",
|
||||||
|
"Lyon",
|
||||||
|
"Paris-Saclay",
|
||||||
|
"Avignon",
|
||||||
|
"Paris-Est",
|
||||||
|
"Tours",
|
||||||
|
"Bordeaux",
|
||||||
|
"Nancy",
|
||||||
|
"Rennes",
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
class Role:
|
class Role:
|
||||||
CNO = "CNO"
|
CNO = "CNO"
|
||||||
DEV = "dev"
|
DEV = "dev"
|
||||||
ORGA = "Orga"
|
ORGA = "Orga"
|
||||||
|
ORGAS = tuple(f"Orga {t}" for t in TOURNOIS)
|
||||||
BENEVOLE = "Bénévole"
|
BENEVOLE = "Bénévole"
|
||||||
CAPTAIN = "Capitaine"
|
CAPTAIN = "Capitaine"
|
||||||
PARTICIPANT = "Participant"
|
PARTICIPANT = "Participant"
|
||||||
|
|
Loading…
Reference in New Issue