You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在discord.py 2.0中让命令仅在特定服务器运行

解决discord.py 2.0中命令仅在特定服务器运行的问题

要让你的UPDlogs命令仅在指定服务器生效,核心是用对装饰器——你之前尝试的@app_commands.guild()是错误写法,正确的是复数形式**@app_commands.guilds()**,传入目标服务器的ID(整数类型)即可。

修改后的完整代码

# 替换成你要限定的服务器ID,比如123456789012345678
TARGET_GUILD_ID = 123456789012345678

@app_commands.command(description='Shows the update log')
@app_commands.guilds(TARGET_GUILD_ID)  # 添加这行装饰器
async def UPDlogs(self, interaction: Interaction) -> None:
    embed = discord.Embed(color=0xFFFFFF)
    embed.set_author(name='~~~ Bot update log')
    embed.add_field(
        name='v.1.6.1 update',
        value=f"1. bla bla bla\n"
        "2. some update logs\n"
        "3. how to solve this?\n",
        inline=False,
    )
    view = ui.View()
    view.add_item(ui.Button(label='Discord', emoji="💻", url="https://discord.com", row=0))
    await interaction.response.send_message(embed=embed, view=view, ephemeral=True)

补充说明

  • 若要让命令在多个服务器生效,可传入多个ID:@app_commands.guilds(ID1, ID2, ID3)
  • 服务器ID需开启Discord开发者模式后,右键服务器图标选择「复制ID」获取
  • 如果命令属于Cog类,确保装饰器放在@app_commands.command()之后,且Cog已正确加载到机器人实例中

内容的提问来源于stack exchange,提问作者fanta09tv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 04:34:56