Added new 'modules' folder for cogs (extensions)

Added 420 cog
Updated help menu
Updated README
This commit is contained in:
Logan Cusano
2021-12-05 03:57:41 -05:00
parent 060be116a4
commit ba81d70669
3 changed files with 98 additions and 66 deletions

79
bot.py
View File

@@ -1,67 +1,8 @@
import os
import discord
import sound
import asyncio
import datetime
from discord.ext import commands
from discord.ext.tasks import loop
class WillieTimer(commands.Cog):
def __init__(self, bot, mention_group='Superadmins', channel_id=757379843792044102):
self.bot = bot
self.mention_group = str(mention_group)
self.channel_id = int(channel_id)
@loop(minutes=1)
async def bg_timer(self):
await self.bot.wait_until_ready()
seconds_until_next_minute = int(60 - int(datetime.datetime.now().strftime('%S')))
if not seconds_until_next_minute <= 2:
await asyncio.sleep(seconds_until_next_minute)
if datetime.datetime.now().strftime('%H:%M') in ("04:20", "16:20"):
print(f"It's {datetime.datetime.now().strftime('%H:%M:%S')}!")
channel = self.bot.get_channel(id=self.channel_id)
guild = channel.guild
role_id = discord.utils.get(guild.roles, name=self.mention_group)
print(role_id)
print(role_id.id)
await channel.send(f"<@&{role_id.id}> It's 4:20! It's time to light up!")
@commands.command()
async def start420(self, ctx, *, member: discord.Member = None):
member = member or ctx.author.display_name
await ctx.send(f"Thanks {member.display_name}, Willie will be in touch soon...")
self.bg_timer.start()
@commands.command()
async def stop420(self, ctx, *, member: discord.Member = None):
member = member or ctx.author.display_name
await ctx.send(f"Ok {member}, Willie will go back to writing music...")
self.bg_timer.stop()
@commands.command()
async def chchn(self, ctx, message, *, member: discord.Member = None):
member = member or ctx.author.display_name
try:
message = int(message)
if message and len(str(message)) == len(str(self.channel_id)):
self.channel_id = message
print(message)
except:
await ctx.send(f"{member}, {message} is not a valid channel ID, please try again")
pass
@commands.command()
async def chmtn(self, ctx, message, *, member: discord.Member = None):
member = member or ctx.author.display_name
try:
message = str(message)
if message and len(str(message)) == len(str(self.channel_id)):
self.mention_group = message
print(message)
except:
await ctx.send(f"{member}, {message} is not a valid role, please try again")
pass
class Bot(commands.Bot):
@@ -74,16 +15,18 @@ class Bot(commands.Bot):
self.add_commands()
self.check_for_modules()
def start_bot(self):
self.add_cog(WillieTimer(self))
#self.add_cog(WillieTimer(self))
self.run(self.BOT_TOKEN)
def add_commands(self):
@self.command()
@self.command(help="Use this to test if the bot is alive", brief="Sends a 'pong' in response")
async def ping(ctx):
await ctx.send('pong')
@self.command()
@self.command(help="Use this command to join the bot to your channel", brief="Joins the voice channel that the caller is in")
async def join(ctx, *, member: discord.Member = None):
member = member or ctx.author.display_name
await self.wait_until_ready()
@@ -102,7 +45,7 @@ class Bot(commands.Bot):
else:
await ctx.send("Opus won't load")
@self.command()
@self.command(help="Use this command to have the bot leave your channel", brief="Leaves the current voice channel")
async def leave(ctx):
await ctx.voice_client.disconnect()
@@ -118,3 +61,9 @@ class Bot(commands.Bot):
else:
return False
def check_for_modules(self):
for folder_name in os.listdir("modules"):
if os.path.exists(os.path.join("modules", folder_name, "cog.py")):
print(f"Loaded extension: {folder_name}")
self.load_extension(f"modules.{folder_name}.cog")