输入/时不显示我的机器人在丢弃中的命令

问题描述 投票:0回答:1

当我开始输入 / 时,我的机器人不在内置命令中(通常会出现机器人,并且可以看到其所有命令的列表)...

我用 ____ 符号隐藏了部分文本,以免分散对主要代码的注意力。 我是这个行业的新手,所以我会很高兴收到任何评论和建议:) 先谢谢大家的解答

import os
import discord
import asyncio
import aiohttp
from discord.ext import commands
from discord.ui import View, Button
import interactions

intents = discord.Intents.default()
intents.message_content = True

bot = commands.Bot(command_prefix='/', intents=intents, case_insensitive=True)

@bot.command(name='wew')
async def wew_command(ctx):
    pass
@bot.event
async def on_message(message):
    if message.author != bot.user and message.content.startswith('/wew'):
        user_input = message.content[len('/wew'):].strip()
        lines = user_input.split(',')
        if len(lines) == 6:
          block_title = "№ " + lines[0].strip()`
          embed = discord.Embed(title=block_title, color=0x000000)
          if lines[1].isnumeric():
            mention = lines[1]

          else:
            user_id = lines[1].strip().strip('<@!>').strip('<@').strip('>')
            mentioned_user = await bot.fetch_user(user_id)
            if mentioned_user:
                mention = mentioned_user.mention

            else:
                mention = f"<@{user_id}>"
          field_value = f"**1. _____________ {mention}**"
          embed.add_field(name="\u200B", value=field_value, inline=False)
          embed.add_field(name="**_________** " + lines[2], value="", inline=False)
          embed.add_field(name="**_________** " + lines[3], value="", inline=False)
          embed.add_field(name="**_________** " + lines[4], value="", inline=False)
          embed.add_field(name="**_________** " + lines[5], value="", inline=False)
          embed.add_field(name="\u200B", value="**_________** " + message.author.mention)
          await message.channel.send(embed=embed)
          await message.delete()

        else:
          embed = discord.Embed(title="Ошибка", description=f"_________, {message.author.mention}, _________*", color=discord.Color.red())

          await message.reply(embed=embed, delete_after=5)

          await message.delete()
token = '_______'
keep_alive()
bot.run(token)

附注团队运作良好

python discord discord.py command bots
1个回答
0
投票

如果您使用discord.py,那么您需要创建和同步树命令。方法如下:

同步树:

@bot.command()
async def treesync(ctx:commands.Context):
    synced = await bot.tree.sync()
    await ctx.send(f"Synced {len(synced)} commands")

创建一个简单的树命令:

@bot.tree.command(name="test3")
async def test3(interaction:discord.Interaction,message:str):
    await interaction.response.send_message(f"Message: {message}",ephemeral=True)
    await interaction.edit_original_response(content="Hello!")
    asd:discord.Message = await interaction.followup.send("Hi!")
    await interaction.delete_original_response()
    await interaction.followup.delete_message(asd.id)

这些是使用斜杠命令时需要的主要内容。您还可以在

on_ready
功能中同步。 (我也这样做,但 Stack 用户讨厌它:D)它使用更多请求,但如果你只是乱搞并使用机器人进行测试,那就更容易了。

© www.soinside.com 2019 - 2024. All rights reserved.