2020-09-01 07:58:35 +00:00
from discord . ext import commands
from discord . ext . commands import Cog
2023-03-09 22:01:10 +00:00
from robocop_ng . helpers . checks import check_if_staff
2020-09-01 07:58:35 +00:00
class ModReswitched ( Cog ) :
def __init__ ( self , bot ) :
self . bot = bot
@commands.guild_only ( )
@commands.command ( aliases = [ " pingmods " , " summonmods " ] )
async def pingmod ( self , ctx ) :
2020-09-01 18:18:17 +00:00
""" Pings mods, only use when there ' s an emergency. """
2023-04-05 10:10:18 +00:00
can_ping = any ( r . id in self . bot . config . pingmods_allow for r in ctx . author . roles )
2020-09-01 07:58:35 +00:00
if can_ping :
await ctx . send (
2023-04-05 10:10:18 +00:00
f " <@& { self . bot . config . pingmods_role } >: { ctx . author . mention } needs assistance. "
2020-09-01 07:58:35 +00:00
)
else :
await ctx . send (
2020-09-01 18:18:17 +00:00
f " { ctx . author . mention } : You need the community role to be able to ping the entire mod team, please pick an online mod (not staff, please!), and ping them instead. "
2020-09-01 07:58:35 +00:00
)
@commands.guild_only ( )
@commands.check ( check_if_staff )
2020-11-04 16:01:19 +00:00
@commands.command ( aliases = [ " togglemod " ] )
2020-09-01 07:58:35 +00:00
async def modtoggle ( self , ctx ) :
""" Toggles your mod role, staff only. """
2023-04-05 10:10:18 +00:00
target_role = ctx . guild . get_role ( self . bot . config . modtoggle_role )
2020-09-01 07:58:35 +00:00
if target_role in ctx . author . roles :
await ctx . author . remove_roles (
target_role , reason = " Staff self-unassigned mod role "
)
await ctx . send ( f " { ctx . author . mention } : Removed your mod role. " )
else :
await ctx . author . add_roles (
target_role , reason = " Staff self-assigned mod role "
)
await ctx . send ( f " { ctx . author . mention } : Gave you mod role. " )
2022-05-24 18:35:42 +00:00
async def setup ( bot ) :
await bot . add_cog ( ModReswitched ( bot ) )