防止用户在 Discord 的昵称前加上点(discord.js / Discord Bot)
Prevent users from putting dots in front of their nicknames on Discord (discord.js / Discord Bot)
我正在尝试编写一个脚本来检测用户是否以及何时将他们在 discord 上的名称更改为 "bob" 中的“.bob”之类的名称,它会禁止此更改并将其保留为"bob".
if (user.nickname.startsWith(".")) {
user.nickname = "bob";
}
尝试用以下方法替换所有“.”在凝视
user.nickname = user.nickname.replace(/\./g,'');
Codepen 供参考:https://codepen.io/YasirKamdar/pen/papGzK
您可以使用 guildMemberUpdate event to check when a member changes their nickname and then you can check if
the new nickname startsWith
a '.'
,下面是一个示例:
我更喜欢使用 displayName
而不是 nickname
,因为成员没有昵称,他们的 nickname
将 return 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);
}
});
此外,请记住,这仅在成员的 highestRole
's position
低于机器人的 highestRole 位置时才有效,因此您可能需要首先检查 .catch()
[ 中的句柄=24=]
Discord.js 有一个名为 guildMemberUpdate 的事件侦听器。当用户更新昵称时会执行此事件侦听器,因此您可以利用此事件侦听器发挥自己的优势。例如,
Client.on("guildMemberUpdate", (past, current) => {
if (current.displayName.startsWith(".")) {
current.setNickname(past.displayName);
}
});
注意:为了使此代码正常工作,您的机器人必须具有 MANAGE_NICKNAMES
权限。
希望这对您有所帮助。
我正在尝试编写一个脚本来检测用户是否以及何时将他们在 discord 上的名称更改为 "bob" 中的“.bob”之类的名称,它会禁止此更改并将其保留为"bob".
if (user.nickname.startsWith(".")) {
user.nickname = "bob";
}
尝试用以下方法替换所有“.”在凝视
user.nickname = user.nickname.replace(/\./g,'');
Codepen 供参考:https://codepen.io/YasirKamdar/pen/papGzK
您可以使用 guildMemberUpdate event to check when a member changes their nickname and then you can check if
the new nickname startsWith
a '.'
,下面是一个示例:
我更喜欢使用 displayName
而不是 nickname
,因为成员没有昵称,他们的 nickname
将 return 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);
}
});
此外,请记住,这仅在成员的 highestRole
's position
低于机器人的 highestRole 位置时才有效,因此您可能需要首先检查 .catch()
[ 中的句柄=24=]
Discord.js 有一个名为 guildMemberUpdate 的事件侦听器。当用户更新昵称时会执行此事件侦听器,因此您可以利用此事件侦听器发挥自己的优势。例如,
Client.on("guildMemberUpdate", (past, current) => {
if (current.displayName.startsWith(".")) {
current.setNickname(past.displayName);
}
});
注意:为了使此代码正常工作,您的机器人必须具有 MANAGE_NICKNAMES
权限。
希望这对您有所帮助。