mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-21 10:17:59 -05:00
[V3 Admin] Rewrite of Squid-Plugins Admin cog (#825)
* Add/remove roles * Announcement * Edit role stuff A bit of refactoring * Selfrole stuff * Add announce ignore capabilities * announce configurations Announcement fixes * Serverlock initial commit * Add some admin tests better test * Update for new config * Add user hierarchy checks * Fix tests * Update from rebase * Fix config getter * Fix async getters/selfrole
This commit is contained in:
33
redbot/cogs/admin/converters.py
Normal file
33
redbot/cogs/admin/converters.py
Normal file
@@ -0,0 +1,33 @@
|
||||
import discord
|
||||
from discord.ext import commands
|
||||
|
||||
|
||||
class MemberDefaultAuthor(commands.Converter):
|
||||
async def convert(self, ctx: commands.Context, arg: str) -> discord.Member:
|
||||
member_converter = commands.MemberConverter()
|
||||
try:
|
||||
member = await member_converter.convert(ctx, arg)
|
||||
except commands.BadArgument:
|
||||
if arg.strip() != "":
|
||||
raise
|
||||
else:
|
||||
member = ctx.author
|
||||
return member
|
||||
|
||||
|
||||
class SelfRole(commands.Converter):
|
||||
async def convert(self, ctx: commands.Context, arg: str) -> discord.Role:
|
||||
admin = ctx.command.instance
|
||||
if admin is None:
|
||||
raise commands.BadArgument("Admin is not loaded.")
|
||||
|
||||
conf = admin.conf
|
||||
selfroles = await conf.guild(ctx.guild).selfroles()
|
||||
|
||||
role_converter = commands.RoleConverter()
|
||||
role = await role_converter.convert(ctx, arg)
|
||||
|
||||
if role.id not in selfroles:
|
||||
raise commands.BadArgument("The provided role is not a valid"
|
||||
" selfrole.")
|
||||
return role
|
||||
Reference in New Issue
Block a user