我正在制造一个Discord机器人,所以我想拥有它,因此当on_ready
将该机器人的昵称设置为
⇨ ⇨ m O d E r A t O r B o T ⇦ ⇦
我也在使用repl.it:
https://repl.it/@CodingAndMemes/Moderator-Bot
答案 0 :(得分:0)
您将要使用Bot.get_guild
检索要在其中设置机器人昵称的服务器的特定Guild对象。然后,您可以使用the me
attribute of the Guild object (Guild.me
)来获取代表服务器中机器人的Member对象。有了该Member对象,您可以使用该方法的its edit
coroutine method (Member.edit
)和nick
参数来更改其自己的昵称。
例如:
@bot.event
async def on_ready():
guild = bot.get_guild(123456789)
me = guild.me
await me.edit(nick="⇨ ⇨ m O d E r A t O r B o T ⇦ ⇦")
确保您的漫游器有权更改其自己的昵称。否则,这将引发discord.Forbidden
错误。如果您不知道自己的机器人会使用change_nickname
还是manage_nicknames
permission,则应首先进行检查,例如与Member.guild_permissions
。
如果不想通过ID获取公会对象,请参见https://discordpy.readthedocs.io/en/latest/faq.html#how-do-i-get-a-specific-model。
我建议您在尝试更改机器人之前,先用Member.nick
来检查它的昵称是否已经不是您想要的名字。这样,您就不会执行不必要的API请求。如果要放在on_ready
中,则尤其如此,因为每次启动该bot时都会这样做,之后可能还会多次。
我还建议您不要在repl.it上托管机器人。它可以用于测试您是否正在执行此操作,但是它不是为托管目的而设计的,尝试这样做有很多缺点。