# ╔══════════════════════════════════════════════════════════════════╗ # ║ ║ # ║ +-+-+-+-+-+-+-+-+ ║ # ║ |H|e|x|a|H|o|s|t| ║ # ║ +-+-+-+-+-+-+-+-+ ║ # ║ ║ # ║ © 2026 HexaHost — All Rights Reserved ║ # ║ ║ # ║ discord ── https://discord.gg/hexahost ║ # ║ github ── https://github.com/theoneandonlymace ║ # ║ ║ # ╚══════════════════════════════════════════════════════════════════╝ import discord from discord.ext import commands import os from core import Cog, Axiom, Context import games as games from utils.Tools import * from utils.cv2 import CV2 from games import button_games as btn import random import asyncio class Games(Cog): """Axiom Games""" def __init__(self, client: Axiom): self.client = client @commands.hybrid_command(name="chess", help="Play Chess with a user.", usage="Chess ") @blacklist_check() @ignore_check() @commands.cooldown(1, 3, commands.BucketType.user) @commands.max_concurrency(5, per=commands.BucketType.default, wait=False) @commands.guild_only() async def _chess(self, ctx: Context, player: discord.Member): if player == ctx.author: await ctx.send(view=CV2("❌ Error", "You Cannot play game with yourself!")) elif player.bot: await ctx.send(view=CV2("❌ Error", "You cannot play with bots!")) else: game = btn.BetaChess(white=ctx.author, black=player) await game.start(ctx) @commands.hybrid_command(name="rps", help="Play Rock Paper Scissor with bot/user.", aliases=["rockpaperscissors"], usage="Rockpaperscissors") @blacklist_check() @ignore_check() @commands.cooldown(1, 3, commands.BucketType.user) @commands.max_concurrency(5, per=commands.BucketType.default, wait=False) @commands.guild_only() async def _rps(self, ctx: Context, player: discord.Member = None): game = btn.BetaRockPaperScissors(player) await game.start(ctx, timeout=120) @commands.hybrid_command(name="tic-tac-toe", help="play tic-tac-toe game with a user.", aliases=["ttt", "tictactoe"], usage="Ticktactoe ") @blacklist_check() @ignore_check() @commands.cooldown(1, 3, commands.BucketType.user) @commands.max_concurrency(5, per=commands.BucketType.user, wait=False) @commands.guild_only() async def _ttt(self, ctx: Context, player: discord.Member): if player == ctx.author: await ctx.send(view=CV2("❌ Error", "You cannot play game with yourself!")) elif player.bot: await ctx.send(view=CV2("❌ Error", "You cannot play with bots!")) else: game = btn.BetaTictactoe(cross=ctx.author, circle=player) await game.start(ctx, timeout=30) @commands.hybrid_command(name="wordle", help="Wordle Game | Play with bot.", usage="Wordle") @blacklist_check() @ignore_check() @commands.cooldown(1, 3, commands.BucketType.user) @commands.max_concurrency(3, per=commands.BucketType.default, wait=False) @commands.guild_only() async def _wordle(self, ctx: Context): game = games.Wordle() await game.start(ctx, timeout=120) @commands.hybrid_command(name="2048", help="Play 2048 game with bot.", aliases=["twenty48"], usage="2048") @blacklist_check() @ignore_check() @commands.cooldown(1, 3, commands.BucketType.user) @commands.max_concurrency(3, per=commands.BucketType.default, wait=False) @commands.guild_only() async def _2048(self, ctx: Context): game = btn.BetaTwenty48() await game.start(ctx, win_at=2048) @commands.hybrid_command(name="memory-game", help="How strong is your memory?", aliases=["memory"], usage="memory-game") @blacklist_check() @ignore_check() @commands.cooldown(1, 3, commands.BucketType.user) @commands.max_concurrency(3, per=commands.BucketType.default, wait=False) @commands.guild_only() async def _memory(self, ctx: Context): game = btn.MemoryGame() await game.start(ctx) @commands.hybrid_command(name="number-slider", help="slide numbers with bot", aliases=["slider"], usage="slider") @blacklist_check() @ignore_check() @commands.cooldown(1, 3, commands.BucketType.user) @commands.max_concurrency(3, per=commands.BucketType.default, wait=False) @commands.guild_only() async def _number_slider(self, ctx: Context): game = btn.NumberSlider() await game.start(ctx) @commands.hybrid_command(name="battleship", help="Play battleship game with your friend.", aliases=["battle-ship"], usage="battleship ") @blacklist_check() @ignore_check() @commands.cooldown(1, 3, commands.BucketType.user) @commands.max_concurrency(3, per=commands.BucketType.default, wait=False) @commands.guild_only() async def _battle(self, ctx: Context, player: discord.Member): game = btn.BetaBattleShip(player1=ctx.author, player2=player) await game.start(ctx) @commands.hybrid_group(name="country-guesser", help="Guess name of the country by flag.", aliases=["guess", "guesser", "countryguesser"], usage="country-guesser") @commands.guild_only() async def _country_guesser(self, ctx: Context): if ctx.invoked_subcommand is None: await ctx.send_help("country-guesser") @_country_guesser.command(name="start", help="Starts the country guesser game. It's a 100 Seconds Game so suggested to play in a SPECIFIC CHANNEL.") async def _start_country_guesser(self, ctx: Context): game = games.CountryGuesser(is_flags=True, hints=2) await game.start(ctx) """@_country_guesser.command(name="end", help="Ends the country guesser game.") async def _end_country_guesser(self, ctx: Context): await self.country_guesser_game.end_game_manually(ctx)""" @commands.hybrid_command(name="connectfour", help="Play Connect Four game with user.", aliases=["c4", "connect-four", "connect4"], usage="connectfour ") @blacklist_check() @ignore_check() @commands.cooldown(1, 3, commands.BucketType.user) @commands.max_concurrency(1, per=commands.BucketType.user, wait=False) @commands.guild_only() async def _connectfour(self, ctx: Context, player: discord.Member): if player == ctx.author: await ctx.send(view=CV2("❌ Error", "You cannot play against yourself!")) elif player.bot: await ctx.send(view=CV2("❌ Error", "You cannot play with bots!")) else: game = games.ConnectFour(red=ctx.author, blue=player) await game.start(ctx, timeout=300) @commands.hybrid_command(name="lights-out", help="Play Lights Show game with bot.", aliases=["lightsout"], usage="Lights-out") @blacklist_check() @ignore_check() @commands.cooldown(1, 3, commands.BucketType.user) @commands.max_concurrency(3, per=commands.BucketType.default, wait=False) @commands.guild_only() async def _lights_show(self, ctx: Context): game = btn.LightsOut() await game.start(ctx)