kasbot/legacy/kasino.py

74 lines
2.5 KiB
Python

import discord
import asyncio
from discord.ext import commands
class Kasino(commands.Cog):
def __init__(self, bot: commands.Bot):
self.bot = bot
@commands.command(name='kasino')
async def _kasino(self, ctx: commands.Context):
await self.play_song("./mp3/sabadaco.mp3", ctx)
await ctx.message.delete()
@commands.command(name='shakeit')
async def _shake_it(self, ctx: commands.Context):
await self.play_song("./mp3/shake it.mp3", ctx)
await ctx.message.delete()
@commands.command(name='jetmusic')
async def _jet_music(self, ctx: commands.Context):
await self.play_song("./mp3/jet music.mp3", ctx)
await ctx.message.delete()
@commands.command(name='companhia', aliases=['compania'])
async def _companhia(self, ctx: commands.Context):
voice_state = ctx.message.author.voice
if voice_state == None:
return
voice_channel = voice_state.channel
await voice_channel.connect()
await ctx.message.delete()
@commands.command(name='pare')
async def _pare(self, ctx: commands.Context):
voice_channel = ctx.message.author.voice
if voice_channel == None:
return
voice_clients = self.bot.voice_clients
for vc in voice_clients:
if vc.channel == voice_channel.channel:
await vc.disconnect()
break
# Delete command after action is done.
await ctx.message.delete()
async def play_song(self, filename: str, ctx: commands.Context):
if ctx.author.voice == None:
return
voice_client = discord.utils.get(self.bot.voice_clients, guild=ctx.guild)
if voice_client == None:
voice_channel = ctx.message.author.voice.channel
voice_client = await voice_channel.connect()
elif voice_client.is_playing():
return
voice_client.play(discord.FFmpegPCMAudio(source=filename))
# Sleep while audio is playing, then disconnect
while voice_client.is_playing() and voice_client.is_connected():
await asyncio.sleep(0.3)
await voice_client.disconnect()
async def join(self, ctx: commands.Context):
destination = ctx.author.voice.channel
voice_client = discord.utils.get(self.bot.voice_clients, guild=ctx.guild)
if voice_client == None or voice_client.channel != destination:
voice_client = await destination.connect()