Adding new Discord Feature: Party Games
This commit is contained in:
parent
7d547ede67
commit
8496b23cf9
2 changed files with 95 additions and 1 deletions
|
@ -6,4 +6,5 @@ lyricsgenius==3.0.1 # lyrics
|
||||||
feedparser==6.0.8 # rss feed (news)
|
feedparser==6.0.8 # rss feed (news)
|
||||||
discord-py-slash-command==3.0.1 # slash commands
|
discord-py-slash-command==3.0.1 # slash commands
|
||||||
python_dotenv==0.19.0 # using .env file
|
python_dotenv==0.19.0 # using .env file
|
||||||
wavelink==0.9.10 # music | to know the version of lavalink used, see the repo
|
wavelink==0.9.10 # music | to know the version of lavalink used, see the repo
|
||||||
|
discord-together==1.1.1 # for the party games
|
||||||
|
|
93
src/cogs/partygames.py
Normal file
93
src/cogs/partygames.py
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
import discord
|
||||||
|
from discord.ext import commands
|
||||||
|
import discordTogether
|
||||||
|
from discord_slash import cog_ext
|
||||||
|
from discordTogether import DiscordTogether
|
||||||
|
from utils.core import mySendHidden
|
||||||
|
|
||||||
|
def setup(client):
|
||||||
|
"""Adding Cog to bot"""
|
||||||
|
client.add_cog(PartyGames(client))
|
||||||
|
|
||||||
|
class PartyGames(commands.Cog, name="Partygames"):
|
||||||
|
"""Discord beta "party games" dispo uniquement sur PC."""
|
||||||
|
def __init__(self, client):
|
||||||
|
self.client = client
|
||||||
|
self.togetherControl = DiscordTogether(client)
|
||||||
|
self.appList = { # appNameForDiscord - (AppNameForConsumer, AppImage)
|
||||||
|
"youtube": ("Youtube Together", "https://logo-logos.com/wp-content/uploads/2016/11/YouTube_icon_logo.png"),
|
||||||
|
"poker": ("Poker Night", None),
|
||||||
|
"chess": ("Chess in the Park", None),
|
||||||
|
"betrayal": ("Betrayal.io", None),
|
||||||
|
"fishing": ("Fishington.io", None)
|
||||||
|
}
|
||||||
|
|
||||||
|
@commands.command(name='app', hidden = True)
|
||||||
|
async def linkCreator(self, ctx, app: str = None, fromSlash = None):
|
||||||
|
"""Renvoie l'embed de l'app selectionée\n ➡ Syntaxe: {PREFIX}app <appName>"""
|
||||||
|
if app == None:
|
||||||
|
return await mySendHidden(ctx, fromSlash, f"Aucune application renseignée, merci d'en renseigner une (`{ctx.prefix}app <appName>`).")
|
||||||
|
appName = app
|
||||||
|
appImage = None
|
||||||
|
try:
|
||||||
|
appName = self.appList[app][0]
|
||||||
|
appImage = self.appList[app][1]
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
try:
|
||||||
|
link = await self.togetherControl.create_link(ctx.author.voice.channel.id, app)
|
||||||
|
except AttributeError:
|
||||||
|
return await mySendHidden(ctx, fromSlash, "Vous devez d'abord être dans un salon vocal avant de faire cette commande.")
|
||||||
|
except discordTogether.errors.InvalidActivityChoice:
|
||||||
|
return await mySendHidden(ctx, fromSlash, "Cette application n'est pas reconnu par Discord.")
|
||||||
|
embed = discord.Embed(title = "Party Games", description = f"[Lancer *{appName}*]({link})")
|
||||||
|
if appImage:
|
||||||
|
embed.set_thumbnail(url = appImage)
|
||||||
|
embed.set_footer(text = "Ne fonctionne que sur PC pour le moment.")
|
||||||
|
return await ctx.send(embed = embed)
|
||||||
|
|
||||||
|
|
||||||
|
@commands.command(name='youtube')
|
||||||
|
async def _youtube(self, ctx, fromSlash = None):
|
||||||
|
"""Créer une instance "Youtube Together"."""
|
||||||
|
return await ctx.invoke(self.client.get_command("app"), "youtube", fromSlash)
|
||||||
|
@cog_ext.cog_slash(name="youtube", description = "Créer une instance \"Youtube Together\".")
|
||||||
|
async def __youtube(self, ctx):
|
||||||
|
"""Slash command"""
|
||||||
|
return await self._youtube(ctx, True)
|
||||||
|
|
||||||
|
@commands.command(name='poker')
|
||||||
|
async def _poker(self, ctx, fromSlash = None):
|
||||||
|
"""Créer une instance "Poker Night"."""
|
||||||
|
return await ctx.invoke(self.client.get_command("app"), "poker", fromSlash)
|
||||||
|
@cog_ext.cog_slash(name="poker", description = "Créer une instance \"Poker Night\".")
|
||||||
|
async def __poker(self, ctx):
|
||||||
|
"""Slash command"""
|
||||||
|
return await self._poker(ctx, True)
|
||||||
|
|
||||||
|
@commands.command(name='chess')
|
||||||
|
async def _chess(self, ctx, fromSlash = None):
|
||||||
|
"""Créer une instance "Chess in the Park"."""
|
||||||
|
return await ctx.invoke(self.client.get_command("app"), "chess", fromSlash)
|
||||||
|
@cog_ext.cog_slash(name="chess", description = "Créer une instance \"Chess in the Park\".")
|
||||||
|
async def __chess(self, ctx):
|
||||||
|
"""Slash command"""
|
||||||
|
return await self._chess(ctx, True)
|
||||||
|
|
||||||
|
@commands.command(name='betrayal')
|
||||||
|
async def _betrayal(self, ctx, fromSlash = None):
|
||||||
|
"""Créer une instance "Betrayal.io"."""
|
||||||
|
return await ctx.invoke(self.client.get_command("app"), "betrayal", fromSlash)
|
||||||
|
@cog_ext.cog_slash(name="betrayal", description = "Créer une instance \"Betrayal.io\".")
|
||||||
|
async def __betrayal(self, ctx):
|
||||||
|
"""Slash command"""
|
||||||
|
return await self._betrayal(ctx, True)
|
||||||
|
|
||||||
|
@commands.command(name='fishing')
|
||||||
|
async def _fishing(self, ctx, fromSlash = None):
|
||||||
|
"""Créer une instance "Fishington.io"."""
|
||||||
|
return await ctx.invoke(self.client.get_command("app"), "fishing", fromSlash)
|
||||||
|
@cog_ext.cog_slash(name="fishing", description = "Créer une instance \"Fishington.io\".")
|
||||||
|
async def __fishing(self, ctx):
|
||||||
|
"""Slash command"""
|
||||||
|
return await self._fishing(ctx, True)
|
Reference in a new issue