提问人:qweq 提问时间:11/17/2023 更新时间:11/17/2023 访问量:35
输入 / 时,我的机器人在 Discard 中的命令未显示
The command of my bot in the Discard is not displayed when entering /
问:
当我开始输入/时,我的机器人不在内置命令中(通常会出现机器人并且可以看到其所有命令的列表)......
我用 ____ 符号隐藏了部分文本,以免分散主代码的注意力。 我是这个行业的新手,所以我很乐意收到任何意见和建议:) 提前感谢大家的回答
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)
P.S. 团队工作得很好
答:
1赞
Rexy
11/17/2023
#1
如果您使用的是 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)
这些是斜杠命令所需的主要内容。您还可以在函数中同步。(我也这样做,但 Stack 用户:D讨厌它)它使用更多的请求,但如果你只是乱搞和测试机器人,那就更容易了。on_ready
评论