aboutsummaryrefslogtreecommitdiffstats
path: root/bot/cogs/spookysound.py
diff options
context:
space:
mode:
authorGravatar meooow25 <[email protected]>2018-10-14 19:58:26 +0530
committerGravatar meooow25 <[email protected]>2018-10-14 19:58:26 +0530
commitdc8a2330c5ca4ddef307101b6ce47de99ba61522 (patch)
tree63e1510c21660eec7ef3d765d0ca68700dcd764e /bot/cogs/spookysound.py
parentIssue #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.py39
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))