diff options
| author | 2018-10-14 19:58:26 +0530 | |
|---|---|---|
| committer | 2018-10-14 19:58:26 +0530 | |
| commit | dc8a2330c5ca4ddef307101b6ce47de99ba61522 (patch) | |
| tree | 63e1510c21660eec7ef3d765d0ca68700dcd764e /bot/cogs/spookysound.py | |
| parent | Issue #15 Feature pull request template (#49) (diff) | |
Add cog to play spooky sounds
* Add SpookySound cog
* Add sound files
* Add PyNaCl to Pipfile (required for Discord voice)
Diffstat (limited to 'bot/cogs/spookysound.py')
| -rw-r--r-- | bot/cogs/spookysound.py | 39 | 
1 files changed, 39 insertions, 0 deletions
| diff --git a/bot/cogs/spookysound.py b/bot/cogs/spookysound.py new file mode 100644 index 00000000..99c1ae24 --- /dev/null +++ b/bot/cogs/spookysound.py @@ -0,0 +1,39 @@ +import random +from pathlib import Path + +import discord +from discord.ext import commands + +HACKTOBERBOT_VOICE_CHANNEL_ID = 101010  # Replace with actual channel ID + + +class SpookySound: + +    def __init__(self, bot): +        self.bot = bot +        self.sound_files = list(Path("./bot/resources/spookysounds").glob("*.mp3")) +        self.channel = None + +    async def on_ready(self): +        self.channel = self.bot.get_channel(HACKTOBERBOT_VOICE_CHANNEL_ID) + +    @commands.cooldown(rate=1, per=120) +    @commands.command(brief="Play a spooky sound, restricted to once per 2 mins") +    async def spookysound(self, ctx): +        """ +        Connect to the Hacktoberbot voice channel, play a random spooky sound, then disconnect. Cannot be used more than +        once in 2 minutes. +        """ +        await ctx.send("Initiating spooky sound...") +        voice = await self.channel.connect() +        file_path = random.choice(self.sound_files) +        src = discord.FFmpegPCMAudio(str(file_path.resolve())) + +        async def disconnect(): +            await voice.disconnect() + +        voice.play(src, after=lambda e: self.bot.loop.create_task(disconnect())) + + +def setup(bot): +    bot.add_cog(SpookySound(bot)) | 
