我开始使用discord.py
(不是discord.ext
命令,只有导入不和谐
)。最近,我做了一个频道,名字显示了公会的成员数量,每次有人加入或离开都会更新。这是我的代码:
import discord
client = discord.Client()
@client.event
async def on_ready():
print("Bot is ready")
@client.event
async def on_member_join(member):
channel = client.get_channel('channel id here')
await channel.edit(name = 'Member count: {}'.format(channel.guild.member_count()))
@client.event
async def on_member_leave(member):
channel = client.get_channel('channel id here')
await channel.edit(name = 'Member count: {}'.format(channel.guild.member_count()))
client.run('my token here')
我还添加了客户端。在_message
命令上,以便bot将该名称编辑为我键入的任何名称。
@client.event
async def on_message(message)
if message.content == 'rename channel':
channel = client.get_channel('channel id here')
await channel.edit(name = 'TEST')
现在,在添加了一些用于调试的打印后,我发现,\u member\u join()上的和\u member\u leave()
上的从未被调用,但是当我键入命令时,bot会编辑频道的名称。这是一个语音频道,显示会员人数。没有任何错误。我看错API了吗?请帮忙
您需要在discord开发者门户中设置意图,然后代码如下:
import discord
from discord.ext import commands
intents = discord.Intents.all()
bot = commands.Bot(command_prefix=".", intents=intents)
# etc.
我不完全确定,但是你的on_member_join
和on_member_leave
不工作的原因可能是因为意图没有被传递。
import discord
intents = discord.Intents.all()
client = discord.Client(intents=intents)
然后要在bot应用程序中启用服务器意图。当我制作机器人时,我也面临着这个问题。
不一致的任何类型的ID都应该作为整数传递,而不是字符串。另外,不和谐。Guild.member_count
是一个属性,而不是方法,所以使用它时不要加括号。您还应该使用on_member_remove()
而不是on_member_leave()
。
import discord
client = discord.Client()
@client.event
async def on_ready():
print("Bot is ready")
@client.event
async def on_member_join(member):
channel = client.get_channel(ID)
await channel.edit(name = 'Member count: {}'.format(channel.guild.member_count))
@client.event
async def on_member_remove(member):
channel = client.get_channel(ID)
await channel.edit(name = 'Member count: {}'.format(channel.guild.member_count))
client.run('my token here')
My Discord bot在启动后至少切换到1个其他语音频道之前,无法识别语音频道中的成员(加入频道后,用户必须手动切换到其他频道,然后返回,以便bot识别成员并将其移动到所需频道)。这有点违反直觉,违背了我机器人的目的。
再一次,我的代码没有跟上,我不知道为什么。。。控制台显示没有错误。 这是我的密码:
我已经添加了所有必需的东西,如意图和网关,但我的机器人没有反应,我放了一个调试打印命令,以便当有人离开它时打印“机器人检测到“member.mention已经离开服务器”但是不管我做什么,它真的什么也做不了。 我省略了很多内容,因为这是不必要的(主要是与帮助和你好世界填充命令相关的东西),但手头的主要问题是我有intents.members,我已经在不和谐的应用程序面板中激活了它,但是即使这样做之
我试图通过visual Studio中的android绑定库将clover.aar文件绑定到xamarin。我把它归结为两个错误: “Decimal”不实现接口成员“icomparable.comapreto(对象)”
我正在通过discord开发discord机器人。js和我需要在这一刻获得语音频道中的所有成员。我该怎么做?我试过了 但是它说find不是一个函数。还有,我试过了 但是它说get不是一个函数。
我正在创建一个用户信息命令,DiscordJS一直在说 我使用的函数是:让target=message。公会成员。getMember(toFind) 我需要更新DiscordJS的新版本吗?我还没有找到任何东西。 谢谢,裘德·威尔逊