[Region] Initial commit

This commit is contained in:
aikaterna
2019-09-16 12:39:41 -07:00
parent c020dc5e89
commit a74c15e73a
3 changed files with 55 additions and 0 deletions

View File

@@ -33,6 +33,8 @@ pingtime - Show all shards' pingtimes.
pupper - A cog for Ryan5374. A pet that comes around on an on_message listener and waits for someone to pet it (react with a standard wave emoji), and rewards with credits. Many attributes are configurable.
region - A command to change the voice region of a server. Requires the guild admin or mod role or guild administrator.
retrosign - A v3 port of Anismash's retrosign cog: https://github.com/Anismash/Ani-Cogs/tree/master/retrosign
rndstatus - A v3 port of Twentysix's rndstatus cog with a couple extra settings.

5
region/__init__.py Normal file
View File

@@ -0,0 +1,5 @@
from .region import Region
def setup(bot):
bot.add_cog(Region())

48
region/region.py Normal file
View File

@@ -0,0 +1,48 @@
import discord
from redbot.core import checks, commands
from redbot.core.utils.chat_formatting import humanize_list
class Region(commands.Cog):
"""Change the guild voice region."""
@checks.mod_or_permissions(administrator=True)
@commands.cooldown(1, 60, discord.ext.commands.BucketType.guild)
@commands.command()
async def region(self, ctx, *, region: str):
"""Set the current guild's voice region."""
regions = [
"japan",
"singapore",
"eu-central",
"india",
"us-central",
"london",
"eu-west",
"amsterdam",
"brazil",
"dubai",
"us-west",
"hongkong",
"us-south",
"southafrica",
"us-east",
"sydney",
"frankfurt",
"russia",
]
region = region.replace(" ", "-")
if region not in regions:
ctx.command.reset_cooldown(ctx)
return await ctx.send(
f"`{region}` was not found in the list of Discord voice regions. Valid regions are: {humanize_list(regions)}."
)
try:
await ctx.guild.edit(region=region)
except discord.errors.Forbidden:
return await ctx.send("I don't have permissions to edit this guild's settings.")
except discord.errors.HTTPException:
return await ctx.send(f"Error: An invalid server region was passed: `{region}`")
await ctx.send(
f"The voice server region for `{ctx.guild.name}` has been changed to `{region}`."
)