Javascript 防止用户在Discord(Discord.js/Discord-Bot)上的昵称前添加点

Javascript 防止用户在Discord(Discord.js/Discord-Bot)上的昵称前添加点,javascript,discord,discord.js,Javascript,Discord,Discord.js,我正在尝试编写一个脚本,该脚本将检测用户是否以及何时在discord中将其名称从“bob”更改为“.bob”之类的内容,它将不允许此更改,并将其保留为“bob” 请尝试以下操作以替换列表中的所有“.” user.nickname = user.nickname.replace(/\./g,''); 代码笔供参考:您可以使用事件来检查成员何时更改其昵称,然后您可以检查如果新昵称a。,下面是一个示例: 我更喜欢使用而不是昵称,就像该成员没有昵称一样,他们的昵称将返回null client.on('

我正在尝试编写一个脚本,该脚本将检测用户是否以及何时在discord中将其名称从“bob”更改为“.bob”之类的内容,它将不允许此更改,并将其保留为“bob”


请尝试以下操作以替换列表中的所有“.”

user.nickname = user.nickname.replace(/\./g,'');
代码笔供参考:

您可以使用事件来检查成员何时更改其昵称,然后您可以检查
如果
新昵称a
,下面是一个示例:

我更喜欢使用而不是
昵称
,就像该成员没有昵称一样,他们的
昵称
将返回
null

client.on('guildMemberUpdate', (oldMember, newMember) => {  // this event triggers when a member changes their nickname.
    if (newMember.displayName.startsWith('.')) { // checks if the new nickname starts with a .
        newMember.setNickname(oldMember.displayName) //changes the member's nickname back to their old nickname
            .catch(console.error);
    }
});

另外,请记住,只有当成员的位置小于bot的highestRole位置时,这才有效,因此您可能需要检查
.catch()
Discord.js中的第一个句柄是否有一个名为guildMemberUpdate的事件侦听器。此事件侦听器在用户更新其昵称时执行,因此您可以充分利用此事件侦听器。比如说,

Client.on("guildMemberUpdate", (past, current) => {
    if (current.displayName.startsWith(".")) {
        current.setNickname(past.displayName);
    }
});
注意:为了使此代码正常工作,您的bot必须具有
MANAGE\u昵称
权限。
希望这有帮助。

你确定Discord机器人可以做到这一点吗?我认为这是不可能的。。。每30分钟或每小时设置一次时间,检查用户昵称,如果前面有“.”怎么办?是的!即使这样也行得通,我只是想弄清楚if语句是如何查找的,检查可能每小时左右进行一次,没关系,我只是不想让人们的名字前面有点不,但我也在看如何让discord bot检测到用户何时更改了他们的名字,我还没有在discords文档中看到如何做到这一点
Client.on("guildMemberUpdate", (past, current) => {
    if (current.displayName.startsWith(".")) {
        current.setNickname(past.displayName);
    }
});