【问题标题】:Changing nickname of bot with a command [closed]使用命令更改机器人的昵称[关闭]
【发布时间】:2019-09-05 23:48:54
【问题描述】:

我想使用!Changenick nick 之类的命令更改我的机器人名称 - 'nick' 是指新机器人的名称。你们能帮帮我吗?我只想让机器人在有人写!Changenick 时更改用户名,例如:

!changenick Freshname

bot 将自己的名字改为 Freshname

【问题讨论】:

标签: javascript node.js discord discord.js


【解决方案1】:

如果您想更改用户昵称,您需要一个GuildMember obj。您可以通过在公会的成员道具中搜索机器人 ID 来将其应用于机器人。以下行将允许您在给定 Message obj 的情况下更改机器人的用户名。

message.guild.me.setNickname('NICKNAME'); 根据@slothiful 的建议更新

如果您需要有关如何创建整个命令的进一步帮助,请参考 https://discordjs.guide/https://discord.js.org/#/docs/

更新 1:通过您提供的示例,我很难理解您想要的实现。

假设您想要这样的命令:!changenick <@user> <nickname>

在这种情况下,我会引用this。它解释了如何解析提及。关于更改昵称的实际问题,您可以更改任何用户的昵称 (您将通过提及获得此用户)使用message.guild.members.find(user => user.id === mentionUser.id).setNickname('NICKNAME')

更新 2:我现在明白你的意思了。我很抱歉。您无需重新启动机器人即可更新昵称。我已经测试过了。

以下代码每 10 秒更改一次机器人昵称。

const Discord = require('discord.js');
const Client = new Discord.Client();

Client.on('ready', () => {
    let value = 0;

    setInterval(() => {
        Client.guilds.find(guild => guild.id === 'GUILD_ID').me.setNickname(value++);
    }, 10000);
});

Client.login('TOKEN');

重要的是 Client.guilds.find(guild => guild.id === 'GUILD_ID').me.setNickname('NICKNAME');

编辑:如果这回答了您的问题,请将答案标记为已接受。

【讨论】:

  • 使用 message.guild.me 而不是找到客户端(这也返回一个承诺)。
猜你喜欢
  • 1970-01-01
  • 2021-07-31
  • 2021-11-01
  • 2021-03-10
  • 2017-08-04
  • 2021-06-28
  • 1970-01-01
  • 2021-03-13
  • 2021-03-29
相关资源
最近更新 更多