Reputation: 27
I am relatively new to coding. I already coded a bot with a "nickname changer". My problem is, that I want it to change to a specific format: "!nick @JohnDoe John" changes name to "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, ''));
})
}
It is for a private server, where everyone can see the users Gametag and their real name.
Thanks in advance for your help :)
PS: If there are better ways for that code pls tell me. As I said, I am a noob in programming stuff
Upvotes: 1
Views: 202
Reputation: 124
Here is the answer:
command:
!test @user tag
result:
@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);
}
}
Upvotes: 1