74 lines
2.5 KiB
Python
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() |