143 lines
4.1 KiB
Python
143 lines
4.1 KiB
Python
import logging
|
|
import random
|
|
import string
|
|
|
|
import discord
|
|
from discord.enums import ButtonStyle
|
|
from discord import ui, SelectOption
|
|
from discord.ext import commands
|
|
|
|
from tuxbot.cogs.Dev.functions.utils import TicTacToe
|
|
from tuxbot.core.bot import Tux
|
|
from tuxbot.core.i18n import (
|
|
Translator,
|
|
)
|
|
from tuxbot.core.utils import checks
|
|
from tuxbot.core.utils.functions.extra import command_extra, ContextPlus
|
|
|
|
log = logging.getLogger("tuxbot.cogs.Dev")
|
|
_ = Translator("Dev", __file__)
|
|
|
|
|
|
class Test(ui.View):
|
|
@ui.button(label="label1", disabled=True, style=ButtonStyle.grey)
|
|
async def label1(self, button, interaction):
|
|
print("label1")
|
|
|
|
print(type(button), button)
|
|
print(type(interaction), interaction)
|
|
|
|
@ui.button(label="label2", style=ButtonStyle.danger)
|
|
async def label2(self, button, interaction):
|
|
print("label2")
|
|
|
|
print(type(button), button)
|
|
print(type(interaction), interaction)
|
|
|
|
|
|
class Test2(ui.View):
|
|
@ui.select(
|
|
placeholder="placeholder",
|
|
min_values=1,
|
|
max_values=3,
|
|
options=[
|
|
SelectOption(
|
|
label="label1",
|
|
value="value1",
|
|
description="description1",
|
|
),
|
|
SelectOption(
|
|
label="label2",
|
|
value="value2",
|
|
description="description2",
|
|
),
|
|
SelectOption(
|
|
label="label3",
|
|
value="value3",
|
|
description="description3",
|
|
),
|
|
SelectOption(
|
|
label="label4",
|
|
value="value4",
|
|
description="description4",
|
|
),
|
|
],
|
|
)
|
|
async def select1(self, *args, **kwargs):
|
|
print("select1")
|
|
|
|
print(args)
|
|
print(kwargs)
|
|
|
|
|
|
class Dev(commands.Cog):
|
|
def __init__(self, bot: Tux):
|
|
self.bot = bot
|
|
|
|
# =========================================================================
|
|
# =========================================================================
|
|
|
|
@command_extra(name="crash", deletable=True)
|
|
@checks.is_owner()
|
|
async def _crash(self, ctx: ContextPlus, crash_type: str):
|
|
if crash_type == "ZeroDivisionError":
|
|
await ctx.send(str(5 / 0))
|
|
elif crash_type == "TypeError":
|
|
# noinspection PyTypeChecker
|
|
await ctx.send(str(int([]))) # type: ignore
|
|
elif crash_type == "IndexError":
|
|
await ctx.send(str([0][5]))
|
|
|
|
# =========================================================================
|
|
|
|
@command_extra(name="test", deletable=True)
|
|
@checks.is_owner()
|
|
async def _test(self, ctx: ContextPlus):
|
|
button = ui.Button(
|
|
style=ButtonStyle.primary,
|
|
label="test",
|
|
)
|
|
button2 = ui.Button(
|
|
style=ButtonStyle.secondary,
|
|
label="test2",
|
|
)
|
|
button3 = ui.Button(
|
|
style=ButtonStyle.green,
|
|
label="test3",
|
|
)
|
|
button4 = ui.Button(
|
|
style=ButtonStyle.blurple,
|
|
label="test4",
|
|
)
|
|
button5 = ui.Button(
|
|
style=ButtonStyle.danger,
|
|
label="test5",
|
|
)
|
|
|
|
view = ui.View()
|
|
view.add_item(button)
|
|
view.add_item(button2)
|
|
view.add_item(button3)
|
|
view.add_item(button4)
|
|
view.add_item(button5)
|
|
|
|
await ctx.send("test", view=view)
|
|
|
|
# =========================================================================
|
|
|
|
@command_extra(name="test2", deletable=True)
|
|
@checks.is_owner()
|
|
async def _test2(self, ctx: ContextPlus):
|
|
await ctx.send(view=Test2())
|
|
|
|
# =========================================================================
|
|
|
|
@command_extra(name="test3", deletable=False)
|
|
async def _test3(self, ctx: ContextPlus, opponent: discord.Member):
|
|
game = await ctx.send(f"Turn: {ctx.author}")
|
|
game_id = "".join(random.choices(string.ascii_letters, k=10))
|
|
|
|
view = TicTacToe(ctx.message.author, opponent, game, game_id=game_id)
|
|
|
|
await game.edit(content=f"Turn: {ctx.author}", view=view)
|