-
Notifications
You must be signed in to change notification settings - Fork 35
/
examples.py
118 lines (97 loc) · 4.37 KB
/
examples.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
import discord_games as games
# import base module
from discord_games import button_games
# import button_games module
# import respective discord.py modules
import discord
from discord.ext import commands
# define games Cog
class Games(commands.Cog):
def __init__(self, bot: commands.Bot) -> None:
self.bot = bot
self.twenty_48_emojis = {
"0": "<:grey:821404552783855658>",
"2": "<:twoo:821396924619161650>",
"4": "<:fourr:821396936870723602>",
"8": "<:eightt:821396947029983302>",
"16": "<:sixteen:821396959616958534>",
"32": "<:thirtytwo:821396969632169994>",
"64": "<:sixtyfour:821396982869524563>",
"128": "<:onetwentyeight:821396997776998472>",
"256": "<:256:821397009394827306>",
"512": "<:512:821397040247865384>",
"1024": "<:1024:821397097453846538>",
"2048": "<:2048:821397123160342558>",
"4096": "<:4096:821397135043067915>",
"8192": "<:8192:821397156127965274>",
}
# the emoji mapping for 2048, replace values with your own created emojis: <:name:id> ;
# The helper function `twenty48.create_2048_emojis` could be ran manually to automatically create such emojis onto the specified guild`
# or manually using your own assets OR the assets provided in `/assets/2048-emoji-asset-examples/`
# note: emojis can be obtained by sending \:emoji:
# alternatively if you have discord.py >= 2.0.0, pass render_image=True into the class constructor instead
# this will render an image for the board if you want
# the worst but easiest option would be to not pass anything into the constructor:
# it would then default to sending out the plain numbers instead, not fancy, but works.
@commands.command(name="connect4")
async def connect4(self, ctx: commands.Context[commands.Bot], member: discord.User):
game = games.ConnectFour(
red=ctx.author,
blue=member,
)
await game.start(ctx)
@commands.command(name="hangman")
async def hangman(self, ctx: commands.Context[commands.Bot]):
game = games.Hangman()
await game.start(ctx, delete_after_guess=True)
@commands.command(name="chess")
async def chess(self, ctx: commands.Context[commands.Bot], member: discord.User):
game = games.Chess(
white=ctx.author,
black=member,
)
await game.start(ctx, timeout=60, add_reaction_after_move=True)
@commands.command(name="typerace")
async def typerace(self, ctx: commands.Context[commands.Bot]):
game = games.TypeRacer()
await game.start(ctx, timeout=30)
@commands.command(name="battleship")
async def battleship(
self, ctx: commands.Context[commands.Bot], member: discord.User
):
game = games.BattleShip(ctx.author, member)
await game.start(ctx)
# Button Games: Requires discord.py >= v2.0.0
@commands.command(name="tictactoe")
async def tictactoe(
self, ctx: commands.Context[commands.Bot], member: discord.User
):
game = button_games.BetaTictactoe(cross=ctx.author, circle=member)
await game.start(ctx)
@commands.command(name="wordle")
async def wordle(self, ctx: commands.Context[commands.Bot]):
game = button_games.BetaWordle()
await game.start(ctx)
@commands.command(name="guess")
async def guess(self, ctx: commands.Context[commands.Bot]):
game = button_games.BetaAkinator()
await game.start(ctx, timeout=120, delete_button=True)
@commands.command(name="twenty48")
async def twenty48(self, ctx: commands.Context[commands.Bot]):
game = button_games.BetaTwenty48(self.twenty_48_emojis)
await game.start(ctx)
@commands.command(name="memory")
async def memory_game(self, ctx: commands.Context[commands.Bot]):
game = button_games.MemoryGame()
await game.start(ctx)
@commands.command(name="rps")
async def rps(
self, ctx: commands.Context[commands.Bot], player: discord.User = None
):
game = button_games.BetaRockPaperScissors(
player
) # defaults to playing with bot if player = None
await game.start(ctx)
# add cog, entry point for cog setup
async def setup(bot: commands.Bot) -> None:
await bot.add_cog(Games(bot))