Add restrictions to most commands, fix starboard to take url or id, closes #62

This commit is contained in:
Zeva Rose 2021-07-22 09:04:03 -06:00
parent 5cd524f30e
commit 55fe2b5e05
8 changed files with 41 additions and 1 deletions

View file

@ -22,6 +22,7 @@ class CTCCog(commands.Cog):
description="CTC2 related commands",
guild_ids=guild_ids,
)
@commands.cooldown(1, 30, commands.BucketType.channel)
async def _about(self, ctx):
await ctx.send("See https://completethecode.com for more information")
@ -31,6 +32,7 @@ class CTCCog(commands.Cog):
description="Guess a password for https://completethecodetwo.cards",
guild_ids=guild_ids,
)
@commands.cooldown(1, 2, commands.BucketType.uer)
async def _pw(self, ctx, guess: str):
guessed = self.db.ctc2.guesses.find_one({"guess": guess})
if guessed:

View file

@ -34,6 +34,7 @@ class DbrandCog(commands.Cog):
guild_ids=guild_ids,
description="See what skins are available",
)
@commands.cooldown(1, 30, commands.BucketType.channel)
async def _skin(self, ctx):
await ctx.send(self.base_url + "shop/skins")
@ -43,6 +44,7 @@ class DbrandCog(commands.Cog):
guild_ids=guild_ids,
description="Get some robot camo. Make Tony Stark proud",
)
@commands.cooldown(1, 30, commands.BucketType.channel)
async def _camo(self, ctx):
await ctx.send(self.base_url + "shop/special-edition/robot-camo")
@ -52,6 +54,7 @@ class DbrandCog(commands.Cog):
guild_ids=guild_ids,
description="See devices with Grip support",
)
@commands.cooldown(1, 30, commands.BucketType.channel)
async def _grip(self, ctx):
await ctx.send(self.base_url + "shop/grip/#grip-devices")
@ -61,6 +64,7 @@ class DbrandCog(commands.Cog):
guild_ids=guild_ids,
description="Contact support",
)
@commands.cooldown(1, 30, commands.BucketType.channel)
async def _contact(self, ctx):
await ctx.send(
"Contact dbrand support here: " + self.base_url + "contact"
@ -72,6 +76,7 @@ class DbrandCog(commands.Cog):
guild_ids=guild_ids,
description="Contact support",
)
@commands.cooldown(1, 30, commands.BucketType.channel)
async def _support(self, ctx):
await ctx.send(
"Contact dbrand support here: " + self.base_url + "contact"
@ -83,6 +88,7 @@ class DbrandCog(commands.Cog):
guild_ids=guild_ids,
description="Get your order status",
)
@commands.cooldown(1, 30, commands.BucketType.channel)
async def _orderstat(self, ctx):
await ctx.send(self.base_url + "order-status")
@ -92,6 +98,7 @@ class DbrandCog(commands.Cog):
guild_ids=guild_ids,
description="Get your order status",
)
@commands.cooldown(1, 30, commands.BucketType.channel)
async def _orders(self, ctx):
await ctx.send(self.base_url + "order-status")
@ -101,6 +108,7 @@ class DbrandCog(commands.Cog):
guild_ids=guild_ids,
description="dbrand status",
)
@commands.cooldown(1, 30, commands.BucketType.channel)
async def _status(self, ctx):
await ctx.send(self.base_url + "status")
@ -110,6 +118,7 @@ class DbrandCog(commands.Cog):
guild_ids=guild_ids,
description="Give us your money!",
)
@commands.cooldown(1, 30, commands.BucketType.channel)
async def _buy(self, ctx):
await ctx.send("Give us your money! " + self.base_url + "shop")
@ -119,6 +128,7 @@ class DbrandCog(commands.Cog):
guild_ids=guild_ids,
description="(not) extortion",
)
@commands.cooldown(1, 30, commands.BucketType.channel)
async def _extort(self, ctx):
await ctx.send(
"Be (not) extorted here: " + self.base_url + "not-extortion"
@ -130,6 +140,7 @@ class DbrandCog(commands.Cog):
description="Robot Camo Wallpapers",
guild_ids=guild_ids,
)
@commands.cooldown(1, 30, commands.BucketType.channel)
async def _wallpapers(self, ctx):
await ctx.send(
"Get robot camo wallpapers here: https://db.io/wallpapers"
@ -152,6 +163,7 @@ class DbrandCog(commands.Cog):
)
],
)
@commands.cooldown(1, 2, commands.BucketType.user)
async def _shipping(self, ctx, *, search: str):
await ctx.defer()
if not re.match(r"^[A-Z- ]+$", search, re.IGNORECASE):

View file

@ -99,6 +99,7 @@ class DevCog(commands.Cog):
await ctx.send(embed=embed)
@commands.command(name="hash")
@commands.cooldown(1, 2, commands.BucketType.user)
async def _hash_pref(self, ctx, method: str, *, data: str = None):
await self._hash(ctx, method, data=data)
@ -106,6 +107,7 @@ class DevCog(commands.Cog):
name="hash",
description="Hash some data",
)
@commands.cooldown(1, 2, commands.BucketType.user)
async def _hash_slash(self, ctx, method: str, *, data: str = None):
await self._hash(ctx, method, data=data)
@ -135,6 +137,7 @@ class DevCog(commands.Cog):
await ctx.send(f"UUID{version}: `{to_send}`")
@commands.command(name="uuid")
@commands.cooldown(1, 2, commands.BucketType.user)
async def _uuid_pref(self, ctx, version: str = None, data: str = None):
await self._uuid(ctx, version, data)
@ -142,6 +145,7 @@ class DevCog(commands.Cog):
name="uuid",
description="Generate a UUID",
)
@commands.cooldown(1, 2, commands.BucketType.user)
async def _uuid_slash(self, ctx, version: str = None, data: str = None):
await self._uuid(ctx, version, data)
@ -150,6 +154,7 @@ class DevCog(commands.Cog):
await ctx.send(f"ObjectId: `{str(ObjectId())}`")
@commands.command(name="objectid")
@commands.cooldown(1, 2, commands.BucketType.user)
async def _objectid_pref(self, ctx):
await self._objectid(ctx)
@ -157,6 +162,7 @@ class DevCog(commands.Cog):
name="objectid",
description="Generate an ObjectID",
)
@commands.cooldown(1, 2, commands.BucketType.user)
async def _objectid_slash(self, ctx):
await self._objectid(ctx)
@ -165,6 +171,7 @@ class DevCog(commands.Cog):
await ctx.send(f"ULID: `{ulid.new().str}`")
@commands.command(name="ulid")
@commands.cooldown(1, 2, commands.BucketType.user)
async def _ulid_pref(self, ctx):
await self._ulid(ctx)
@ -172,6 +179,7 @@ class DevCog(commands.Cog):
name="ulid",
description="Generate a ULID",
)
@commands.cooldown(1, 2, commands.BucketType.user)
async def _ulid_slash(self, ctx):
await self._ulid(ctx)
@ -184,6 +192,7 @@ class DevCog(commands.Cog):
await ctx.send("Invalid UUID")
@commands.command(name="uuid2ulid")
@commands.cooldown(1, 2, commands.BucketType.user)
async def _uuid2ulid_pref(self, ctx, u: str):
await self._uuid2ulid(ctx, u)
@ -191,6 +200,7 @@ class DevCog(commands.Cog):
name="uuid2ulid",
description="Convert a UUID to a ULID",
)
@commands.cooldown(1, 2, commands.BucketType.user)
async def _uuid2ulid_slash(self, ctx, u: str):
await self._uuid2ulid(ctx, u)
@ -203,6 +213,7 @@ class DevCog(commands.Cog):
await ctx.send("Invalid ULID.")
@commands.command(name="ulid2uuid")
@commands.cooldown(1, 2, commands.BucketType.user)
async def _ulid2uuid_pref(self, ctx, u):
await self._ulid2uuid(ctx, u)
@ -210,6 +221,7 @@ class DevCog(commands.Cog):
name="ulid2uuid",
description="Convert a ULID to a UUID",
)
@commands.cooldown(1, 2, commands.BucketType.user)
async def _ulid2uuid_slash(self, ctx, u):
await self._ulid2uuid(ctx, u)
@ -229,6 +241,7 @@ class DevCog(commands.Cog):
await ctx.send(f"`{method(data.encode('UTF-8')).decode('UTF-8')}`")
@commands.command(name="encode")
@commands.cooldown(1, 2, commands.BucketType.user)
async def _encode_pref(self, ctx, method: str, *, data: str):
await self._encode(ctx, method, data)
@ -236,6 +249,7 @@ class DevCog(commands.Cog):
name="encode",
description="Encode using the base64 module",
)
@commands.cooldown(1, 2, commands.BucketType.user)
async def _encode_slash(self, ctx, method: str, *, data: str):
await self._encode(ctx, method, data)
@ -253,6 +267,7 @@ class DevCog(commands.Cog):
await ctx.send(f"`{method(data.encode('UTF-8')).decode('UTF-8')}`")
@commands.command(name="decode")
@commands.cooldown(1, 2, commands.BucketType.user)
async def _decode_pref(self, ctx, method: str, *, data: str):
await self._decode(ctx, method, data)
@ -260,6 +275,7 @@ class DevCog(commands.Cog):
name="decode",
description="Decode using the base64 module",
)
@commands.cooldown(1, 2, commands.BucketType.user)
async def _decode_slash(self, ctx, method: str, *, data: str):
await self._decode(ctx, method, data)
@ -270,6 +286,7 @@ class DevCog(commands.Cog):
await ctx.send(f"```\n{output}\n```")
@commands.command(name="cloc", help="Get J.A.R.V.I.S. lines of code")
@commands.cooldown(1, 30, commands.BucketType.channel)
async def _cloc_pref(self, ctx):
await self._cloc(ctx)
@ -277,6 +294,7 @@ class DevCog(commands.Cog):
name="cloc",
description="Get J.A.R.V.I.S. lines of code",
)
@commands.cooldown(1, 30, commands.BucketType.channel)
async def _cloc_slash(self, ctx):
await ctx.defer()
await self._cloc(ctx)

View file

@ -104,6 +104,7 @@ class ImageCog(commands.Cog):
)
@commands.command(name="resize", help="Resize an image")
@commands.cooldown(1, 60, commands.BucketType.user)
async def _resize_pref(self, ctx, target: str, url: str = None):
await self._resize(ctx, target, url)

View file

@ -127,6 +127,7 @@ class JokeCog(commands.Cog):
name="joke",
description="Hear a joke",
)
@commands.cooldown(1, 10, commands.BucketType.channel)
async def _joke_slash(self, ctx, id: str = None):
await self._joke(ctx, id)

View file

@ -148,6 +148,9 @@ class StarboardCog(commands.Cog):
)
return
if message.startswith("https://"):
message = message.split("/")[-1]
message = await channel.fetch_message(int(message))
exists = Star.get(

View file

@ -27,6 +27,7 @@ class UtilCog(commands.Cog):
name="status",
description="Retrieve J.A.R.V.I.S. status",
)
@commands.cooldown(1, 30, commands.BucketType.channel)
async def _status(self, ctx):
title = "J.A.R.V.I.S. Status"
desc = "All systems online"
@ -52,6 +53,7 @@ class UtilCog(commands.Cog):
name="logo",
description="Get the current logo",
)
@commands.cooldown(1, 30, commands.BucketType.channel)
async def _logo(self, ctx):
lo = logo.get_logo(self.config.logo)
await ctx.send(f"```\n{lo}\n```")
@ -92,7 +94,6 @@ class UtilCog(commands.Cog):
@cog_ext.cog_slash(
name="avatar",
description="Get a user avatar",
guild_ids=[862402786116763668],
options=[
create_option(
name="user",
@ -102,6 +103,7 @@ class UtilCog(commands.Cog):
)
],
)
@commands.cooldown(1, 5, commands.BucketType.user)
async def _avatar(self, ctx, user: User = None):
if not user:
user = ctx.author

View file

@ -34,6 +34,7 @@ class VerifyCog(commands.Cog):
name="verify",
description="Verify that you've read the rules",
)
@commands.cooldown(1, 15, commands.BucketType.user)
async def _verify(self, ctx: SlashContext):
await ctx.defer()
role = Setting.get(guild=ctx.guild.id, setting="verified")