【问题标题】:Discord Nickname Command with a specific format具有特定格式的不和谐昵称命令
【发布时间】:2021-05-04 07:04:33
【问题描述】:

我对编码比较陌生。我已经用“昵称更改器”编写了一个机器人。我的问题是,我希望它更改为特定格式: “!nick @JohnDoe John”将名称更改为“JohnDoe [John]”

module.exports = client => {
    
    const command = require('../command')

    command(client, 'nick', (message) => {

        if (!message.member.permissions.has("CHANGE_NICKNAME")) return message.channel.send("Missing Permissions!");
        if (!message.mentions.users.first()) return message.channel.send("Tag somebody!");   
            const user = message.mentions.members.first();
            user.setNickname(message.content.replace('!nick ', '').replace(user, ''));
    })
}

这是一个私人服务器,每个人都可以看到用户的游戏标签和他们的真实姓名。

提前感谢您的帮助:)

PS:如果该代码有更好的方法,请告诉我。正如我所说,我是编程方面的菜鸟

【问题讨论】:

  • 您可以使用这种格式来显示它:lang-js `${userName} [${nickName}]` (igonore lang-js) 这将使字符串看起来像这样:用户名 [昵称]
  • “userName”是否需要“const”?我试过这个:const user = message.mentions.members.first(); const userName = user.id; const nickName = message.content.replace('!nick ', '').replace(user, ''); user.setNickname('${userName} [${nickName}]');
  • 使用${variables}时需要使用``而不是''
  • 我知道。我因为这个网站上的文本格式而改变了。它仍然不起作用。它说命令太长: UnhandledPromiseRejectionWarning: DiscordAPIError: Invalid Form Body , nick: Must be 32 or less in length.
  • 我知道了,检查我的答案,问题是它使用了 18 个字母长的用户 ID

标签: javascript node.js discord discord.js


【解决方案1】:

答案如下:
命令:
!test @user tag
结果:
@user[tag]

var  Discord = require('discord.js');
var  client = new Discord.Client();
module.exports = {
  name: 'gamertag',
  description: "this is a gamertag command",
  
  execute(message, args){
    if (!message.member.permissions.has("CHANGE_NICKNAME")) return message.channel.send("Missing Permissions!");
        if (!message.mentions.users.first()) return message.channel.send("Tag somebody!");   
        const user = message.mentions.members.first(); //get mentioned user username
        const username = message.mentions.members.first().displayName; //get mentionde user display username(normal username)
        let  nickName = message.content.split(/\s+/).slice(2); //exclude first 2 words 
        var combined = `${username}[${nickName}]`
        user.setNickname(combined);
    }
}

【讨论】:

  • 哦,是的。那行得通。非常感谢!
猜你喜欢
  • 2021-07-28
  • 2021-03-10
  • 1970-01-01
  • 2021-02-03
  • 1970-01-01
  • 2021-04-05
  • 1970-01-01
  • 2021-05-25
  • 2021-03-11
相关资源
最近更新 更多