approve/revoke/addhacker/removehacker/probate/unprobate: Re-make and
combine commands
This commit is contained in:
parent
5fc612710c
commit
8c32a99f3d
6 changed files with 69 additions and 32 deletions
|
@ -24,7 +24,8 @@ Based on https://gitlab.com/ao/dpybotbase
|
|||
- [x] Moderation: kick
|
||||
- [x] Moderation: userinfo
|
||||
- [x] Moderation: approve-revoke (community)
|
||||
- [ ] Moderation: addhacker-removehacker
|
||||
- [x] Moderation: addhacker-removehacker (hacker)
|
||||
- [x] Moderation: probate-unprobate (participant)
|
||||
- [ ] Moderation: lock-soft-unlock (channel lockdown)
|
||||
- [ ] Moderation: timelock (channel lockdown with time)
|
||||
- [ ] Moderation: mute-unmute
|
||||
|
@ -33,7 +34,6 @@ Based on https://gitlab.com/ao/dpybotbase
|
|||
- [x] Moderation: botnickname
|
||||
- [x] Moderation: nickname
|
||||
- [ ] Moderation: clear/purge
|
||||
- [ ] Moderation: probate-unprobate
|
||||
- [ ] Moderation: watch-unwatch (using log module from akbbot)
|
||||
- [ ] Warns: warn
|
||||
- [ ] Warns: delwarnid-delwarn
|
||||
|
|
|
@ -40,8 +40,10 @@ def get_prefix(bot, message):
|
|||
initial_extensions = ['cogs.common',
|
||||
'cogs.admin',
|
||||
'cogs.basic',
|
||||
"cogs.err",
|
||||
"cogs.verification",
|
||||
'cogs.err',
|
||||
'cogs.verification',
|
||||
'cogs.logs',
|
||||
'cogs.legacy',
|
||||
'cogs.links',
|
||||
'cogs.mod',
|
||||
'cogs.meme']
|
||||
|
|
22
cogs/legacy.py
Normal file
22
cogs/legacy.py
Normal file
|
@ -0,0 +1,22 @@
|
|||
from discord.ext import commands
|
||||
|
||||
|
||||
class Legacy:
|
||||
def __init__(self, bot):
|
||||
self.bot = bot
|
||||
|
||||
@commands.command(hidden=True, aliases=["removehacker"])
|
||||
async def probate(self, ctx):
|
||||
"""Use .revoke <user> <role>"""
|
||||
await ctx.send("This command was replaced with `.revoke <user> <role>`"
|
||||
" on Robocop-NG, please use that instead.")
|
||||
|
||||
@commands.command(hidden=True, aliases=["addhacker"])
|
||||
async def unprobate(self, ctx):
|
||||
"""Use .approve <user> <role>"""
|
||||
await ctx.send("This command was replaced with `.approve <user> <role>`"
|
||||
" on Robocop-NG, please use that instead.")
|
||||
|
||||
|
||||
def setup(bot):
|
||||
bot.add_cog(Legacy(bot))
|
|
@ -1,7 +1,7 @@
|
|||
import discord
|
||||
import asyncio
|
||||
from discord.ext import commands
|
||||
from config import log_channel, staff_role_ids, participant_role, community_channels, general_channels, hacker_role, community_role
|
||||
from config import log_channel, staff_role_ids, named_roles, community_channels, general_channels
|
||||
|
||||
|
||||
class Lockdown:
|
||||
|
@ -16,9 +16,9 @@ class Lockdown:
|
|||
"""Locks the channel"""
|
||||
log_chan = self.bot.get_channel(log_channel)
|
||||
if ctx.message.channel in community_channels:
|
||||
roles = (hacker_role, community_role)
|
||||
roles = (named_roles["hacker"], named_roles["community"])
|
||||
else:
|
||||
roles = participant_role
|
||||
roles = named_roles["participant"]
|
||||
overwrites = ctx.message.channel.overwrites_for(roles[0])
|
||||
if not overwrites.send_message:
|
||||
await ctx.send("This channel is already locked!")
|
||||
|
|
52
cogs/mod.py
52
cogs/mod.py
|
@ -141,38 +141,46 @@ class ModCog:
|
|||
@commands.guild_only()
|
||||
@commands.check(check_if_staff)
|
||||
@commands.command()
|
||||
async def approve(self, ctx):
|
||||
approval_list = ctx.message.mentions
|
||||
community_role = ctx.guild.get_role(config.community_role)
|
||||
for to_approve in approval_list:
|
||||
await to_approve.add_roles(community_role,
|
||||
reason=str(ctx.author))
|
||||
async def approve(self, ctx, target: discord.Member,
|
||||
role: str = "community"):
|
||||
if role not in config.named_roles:
|
||||
return await ctx.send("No such role! Available roles: " +
|
||||
','.join(config.named_roles))
|
||||
|
||||
await ctx.send(f"Approved {len(approval_list)} member(s).")
|
||||
log_channel = self.bot.get_channel(config.log_channel)
|
||||
target_role = ctx.guild.get_role(config.named_roles[role])
|
||||
|
||||
approved_mentions = [approved.mention for approved in approval_list]
|
||||
await log_channel.send(f"✅ Approved: {ctx.author.mention} approved"
|
||||
f" {len(approval_list)} members\n"
|
||||
f"{' '.join(approved_mentions)}") # HACK
|
||||
if target_role in target.roles:
|
||||
return await ctx.send("Target already has this role.")
|
||||
|
||||
await target.add_roles(target_role, reason=str(ctx.author))
|
||||
|
||||
await ctx.send(f"Approved {target.mention} to role {role}.")
|
||||
|
||||
await log_channel.send(f"✅ Approved: {ctx.author.mention} added"
|
||||
f" {role} to {target.mention}")
|
||||
|
||||
@commands.guild_only()
|
||||
@commands.check(check_if_staff)
|
||||
@commands.command(aliases=["unapprove"])
|
||||
async def revoke(self, ctx):
|
||||
revoke_list = ctx.message.mentions
|
||||
community_role = ctx.guild.get_role(config.community_role)
|
||||
for to_revoke in revoke_list:
|
||||
await to_revoke.remove_roles(community_role,
|
||||
reason=str(ctx.author))
|
||||
async def revoke(self, ctx, target: discord.Member,
|
||||
role: str = "community"):
|
||||
if role not in config.named_roles:
|
||||
return await ctx.send("No such role! Available roles: " +
|
||||
','.join(config.named_roles))
|
||||
|
||||
await ctx.send(f"Un-approved {len(revoke_list)} member(s).")
|
||||
log_channel = self.bot.get_channel(config.log_channel)
|
||||
target_role = ctx.guild.get_role(config.named_roles[role])
|
||||
|
||||
revoked_mentions = [revoked.mention for revoked in revoke_list]
|
||||
await log_channel.send(f"❌ Un-approved: {ctx.author.mention} approved"
|
||||
f" {len(revoke_list)} members\n"
|
||||
f"{' '.join(revoked_mentions)}") # HACK
|
||||
if target_role not in target.roles:
|
||||
return await ctx.send("Target doesn't have this role.")
|
||||
|
||||
await target.remove_roles(target_role, reason=str(ctx.author))
|
||||
|
||||
await ctx.send(f"Un-approved {target.mention} from role {role}.")
|
||||
|
||||
await log_channel.send(f"❌ Un-approved: {ctx.author.mention} removed"
|
||||
f" {role} from {target.mention}")
|
||||
|
||||
@commands.guild_only()
|
||||
@commands.check(check_if_staff)
|
||||
|
|
|
@ -22,6 +22,14 @@ guild_whitelist = [
|
|||
269333940928512010 # ReSwitched discord
|
||||
]
|
||||
|
||||
# Named roles to be used with .approve and .revoke
|
||||
# The defaults are for NotSwitched
|
||||
named_roles = {
|
||||
"community": 526378381839695872,
|
||||
"hacker": 526471781184176139,
|
||||
"participant": 526378358129557506
|
||||
}
|
||||
|
||||
bot_manager_role_id = 526372554081042462 # Bot management role in NotSwitched
|
||||
staff_role_ids = [526384077679624192, # Team role in NotSwitched
|
||||
526372582455508992, # Mod role in NotSwitched
|
||||
|
@ -30,9 +38,6 @@ staff_role_ids = [526384077679624192, # Team role in NotSwitched
|
|||
|
||||
log_channel = 526377735908491284 # Log channel in NotSwitched
|
||||
welcome_channel = 526372470752673792 # rules-info channel in NotSwitched
|
||||
participant_role = 526378358129557506 # participant role in NotSwitched
|
||||
community_role = 526378381839695872 # community role in NotSwitched
|
||||
hacker_role = 526471781184176139 # hacker role in NotSwitched
|
||||
|
||||
community_channels = [526378423468425236] # Channels requiring community role
|
||||
general_channels = [526372255052201995] # Channels everyone can access
|
||||
|
|
Loading…
Reference in a new issue