75 lines
1.6 KiB
Python
75 lines
1.6 KiB
Python
from discord.ext import commands
|
|
import discord
|
|
import asyncio
|
|
|
|
|
|
def check_for_mention_1_player(message):
|
|
if len(message.mentions) == 1:
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
|
|
def accept(message):
|
|
return True
|
|
|
|
|
|
|
|
class UnoGameCog(commands.Cog):
|
|
def __init__(self, client):
|
|
self.client = client
|
|
|
|
@commands.command()
|
|
async def uno_create(self, ctx):
|
|
if self.client.get_channel(ctx.channel.id) == self.client.get_channel(555052075306713109):
|
|
embed = discord.Embed(colour=discord.Colour.purple())
|
|
embed.set_author(name="How many players?")
|
|
msg = await ctx.send(embed=embed)
|
|
await msg.add_reaction('2⃣')
|
|
await msg.add_reaction('3⃣')
|
|
await asyncio.sleep(1)
|
|
|
|
try:
|
|
reaction, user = await self.client.wait_for('reaction_add', timeout=20.0)
|
|
|
|
if str(reaction) == '2⃣' and ctx.author == user:
|
|
embed.set_author(name="Cool, mention the other player")
|
|
await msg.edit(embed=embed)
|
|
message = await self.client.wait_for('message', timeout=20.0, check=check_for_mention_1_player)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
embed.set_author(name="Awesome, that user has 20 seconds to say \"accept\" in chat")
|
|
await msg.edit(embed=embed)
|
|
await self.client.wait_for('message', timeout=20.0, check=accept)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
except asyncio.TimeoutError:
|
|
await ctx.send("time out or incorrect query")
|
|
|
|
|
|
def setup(client):
|
|
client.add_cog(UnoGameCog(client))
|