34 lines
No EOL
1.2 KiB
Python
34 lines
No EOL
1.2 KiB
Python
import discord
|
|
from discord.ext import commands
|
|
from util import embed
|
|
|
|
class Encryption(commands.Cog):
|
|
def __init__(self, client: discord.Client):
|
|
self.client = client
|
|
|
|
@commands.command(name="rot", description="Applies the ROT encryption", usage="rot [number] [message]")
|
|
@commands.cooldown(1, 2)
|
|
async def rot(self, ctx: commands.Context, shift: str, *message: str):
|
|
if not shift.isnumeric():
|
|
await ctx.send(embed=embed.make_error_embed(f"{shift} is not a number."))
|
|
return
|
|
|
|
shift = int(shift)
|
|
if (shift < 1) or (shift > 25):
|
|
await ctx.send(embed=embed.make_error_embed("That's too much rotation. Stop it."))
|
|
return
|
|
|
|
old_message = list(' '.join(message))
|
|
for i in range(0, len(old_message)):
|
|
if not old_message[i].isalpha():
|
|
continue
|
|
|
|
if old_message[i].isupper():
|
|
old_message[i] = chr(ord('A') + ((ord(old_message[i]) + shift - ord('A')) % 26))
|
|
else:
|
|
old_message[i] = chr(ord('a') + ((ord(old_message[i]) + shift - ord('a')) % 26))
|
|
|
|
await ctx.send(''.join(old_message))
|
|
|
|
def setup(client: discord.Client):
|
|
client.add_cog(Encryption(client)) |