mirror of
https://github.com/brandons209/Red-bot-Cogs.git
synced 2024-05-20 20:32:53 +12:00
add in option to opt out users, and refund if name change failed
This commit is contained in:
parent
c18bd6efc6
commit
794fb786c4
|
@ -52,6 +52,7 @@ class NameChange(commands.Cog):
|
||||||
default_guild = {
|
default_guild = {
|
||||||
"allowed_roles": [],
|
"allowed_roles": [],
|
||||||
"allowed_users": [],
|
"allowed_users": [],
|
||||||
|
"disallowed_users": [],
|
||||||
"cost_per_minute": 0,
|
"cost_per_minute": 0,
|
||||||
"current_changes": {},
|
"current_changes": {},
|
||||||
}
|
}
|
||||||
|
@ -102,6 +103,10 @@ class NameChange(commands.Cog):
|
||||||
async def check_can_change(self, member: discord.Member):
|
async def check_can_change(self, member: discord.Member):
|
||||||
roles = await self.config.guild(member.guild).allowed_roles()
|
roles = await self.config.guild(member.guild).allowed_roles()
|
||||||
members = await self.config.guild(member.guild).allowed_users()
|
members = await self.config.guild(member.guild).allowed_users()
|
||||||
|
disallow_members = await self.config.guild(member.guild).disallowed_users()
|
||||||
|
|
||||||
|
if member.id in disallow_members:
|
||||||
|
return False
|
||||||
|
|
||||||
for role in member.roles:
|
for role in member.roles:
|
||||||
if role.id in roles:
|
if role.id in roles:
|
||||||
|
@ -208,7 +213,18 @@ class NameChange(commands.Cog):
|
||||||
async with self.config.guild(ctx.guild).current_changes() as current_changes:
|
async with self.config.guild(ctx.guild).current_changes() as current_changes:
|
||||||
current_changes[str(member.id)] = data
|
current_changes[str(member.id)] = data
|
||||||
|
|
||||||
await self.change_nickname(member, new_name)
|
result = await self.change_nickname(member, new_name)
|
||||||
|
if not result:
|
||||||
|
await ctx.send(
|
||||||
|
error(
|
||||||
|
f"It seem's I couldn't change {member}'s nickname, please contact a staff member to check my role hierarchy.\n\nYou have not been charged."
|
||||||
|
),
|
||||||
|
delete_after=30,
|
||||||
|
)
|
||||||
|
# refund them
|
||||||
|
await bank.deposit_credits(ctx.author, total_cost)
|
||||||
|
return
|
||||||
|
|
||||||
await ctx.send(f"{member}'s nickname changed to {new_name} until <t:{data['end_time']}>.")
|
await ctx.send(f"{member}'s nickname changed to {new_name} until <t:{data['end_time']}>.")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -331,6 +347,51 @@ class NameChange(commands.Cog):
|
||||||
for page in pagify(msg, page_length=1800, shorten_by=22):
|
for page in pagify(msg, page_length=1800, shorten_by=22):
|
||||||
await ctx.send(page)
|
await ctx.send(page)
|
||||||
|
|
||||||
|
@namechange_user.group(name="optout")
|
||||||
|
async def namechange_user_optout(self, ctx):
|
||||||
|
"""
|
||||||
|
Opt specific users out from changing their name
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
@namechange_user_optout.command(name="add")
|
||||||
|
async def namechange_user_optout_add(self, ctx, *, member: discord.Member):
|
||||||
|
"""
|
||||||
|
Add a member to disallow name changing
|
||||||
|
"""
|
||||||
|
async with self.config.guild(ctx.guild).disallowed_users() as disallowed_users:
|
||||||
|
if member.id not in disallowed_users:
|
||||||
|
disallowed_users.append(member.id)
|
||||||
|
await ctx.tick()
|
||||||
|
else:
|
||||||
|
await ctx.send(error(f"`{member}` is already added!"), delete_after=30)
|
||||||
|
|
||||||
|
@namechange_user_optout.command(name="del")
|
||||||
|
async def namechange_user_optout_del(self, ctx, *, member: discord.Member):
|
||||||
|
"""
|
||||||
|
Remove a member from opting out
|
||||||
|
"""
|
||||||
|
async with self.config.guild(ctx.guild).disallowed_users() as disallowed_users:
|
||||||
|
if member.id in disallowed_users:
|
||||||
|
disallowed_users.remove(member.id)
|
||||||
|
await ctx.tick()
|
||||||
|
else:
|
||||||
|
await ctx.send(error(f"`{member}` is not in the disallow list!"), delete_after=30)
|
||||||
|
|
||||||
|
@namechange_user_optout.command(name="list")
|
||||||
|
async def namechange_user_optout_list(self, ctx):
|
||||||
|
"""
|
||||||
|
View all members that allow name changing.
|
||||||
|
"""
|
||||||
|
members = await self.config.guild(ctx.guild).disallowed_users()
|
||||||
|
members = [ctx.guild.get_member(m) for m in members]
|
||||||
|
|
||||||
|
msg = [f"{m.mention}\n" for m in members if m is not None]
|
||||||
|
msg = "Current members:\n" + "".join(msg)
|
||||||
|
|
||||||
|
for page in pagify(msg, page_length=1800, shorten_by=22):
|
||||||
|
await ctx.send(page)
|
||||||
|
|
||||||
@namechange.command(name="cost")
|
@namechange.command(name="cost")
|
||||||
async def namechange_cost(self, ctx):
|
async def namechange_cost(self, ctx):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in a new issue