Add it just works

This commit is contained in:
Nexus 2023-03-22 14:56:33 +00:00
parent 6a9e0af902
commit a1e00cd3bb
4 changed files with 34 additions and 0 deletions

BIN
assets/it-just-works.mp3 Normal file

Binary file not shown.

BIN
assets/it-just-works.ogg Normal file

Binary file not shown.

Binary file not shown.

View file

@ -1,7 +1,9 @@
import io
import random
import re
import asyncio
import textwrap
import subprocess
from pathlib import Path
from typing import Optional, Tuple
import discord
@ -153,6 +155,21 @@ class Events(commands.Cog):
if message.channel.permissions_for(message.guild.me).manage_messages:
await message.edit(suppress=True)
@commands.Cog.listener()
async def on_voice_state_update(
self,
member: discord.Member,
*_
):
me_voice = member.guild.voice_state
if me_voice is None or me_voice.channel is None:
return
channel = me_voice.channel
if len(channel.members) - 1 == 0:
# We are the only one in the channel
await me_voice.disconnect()
@commands.Cog.listener()
async def on_message(self, message: discord.Message):
if not message.guild:
@ -206,6 +223,23 @@ class Events(commands.Cog):
# Only respond if the message has content...
if message.content:
if message.channel.can_send(): # ... and we can send messages
if "it just works" in message.content.lower():
file = Path.cwd() / "assets" / "it-just-works.ogg"
if message.author.voice is not None:
if message.guild.voice is not None:
await message.guild.voice.disconnect()
my_voice = await message.author.voice.channel.connect()
voice = await message.author.voice.channel.connect()
voice.play(
discord.FFmpegPCMAudio(str(file), stderr=subprocess.DEVNULL),
after=lambda _: asyncio.run_coroutine_threadsafe(
voice.disconnect(),
self.bot.loop
)
)
else:
await message.reply(file=discord.File(file))
if "linux" in message.content.lower() and self.bot.user in message.mentions:
console.log(f"Responding to {message.author} with linux copypasta")
try: