Greetings everyone, and a special welcome to those willing to assist me. I am currently working on a project that involves verifying users through a hash decryption challenge system (base64). However, I've encountered an issue where the verification process is not working as expected, even though there are no errors in the code. The bot connects successfully, but the verification does not happen in the desired channel; instead, it occurs in DMs. I would appreciate any help to rectify this issue. Thank you.
const Discord = require('discord.js')
const client = new Discord.Client();
const prefix = "&";
let rawdata = fs.readFileSync('config.json');
let object = JSON.parse(rawdata);
var channel_id = object['verification_channelID']
var guild_id = object['guild_ID']
var role_name = object['verification_role_name']
var server_invite = object['server_invite']
var token = object['bot_token']
var questions = object['questions']
var dict = {};
var encodingQuestions = []
questions.forEach(element => {
encodingQuestions.push(element)
});
client.on('ready', function(){
console.log("Login : " + client.user.tag);
})
client.on('guildMemberAdd', member => {
var uname = member.user.username
var disc = member.user.discriminator
var memberID = member.user.id
var rand = Math.random();
rand *= encodingQuestions.length;
rand = Math.floor(rand);
var question = encodingQuestions[rand]
dict[uname] = [Buffer.from(question, 'base64').toString('utf-8'), 3];
const embed = new Discord.MessageEmbed()
.setTitle(uname + "#" + disc)
.setColor(0x1e90ff)
.addField(uname='Welcome', value='Welcome <@' + memberID + '> Déchiffrer le code , vous avez 3 essais ! Utilisez ``&answer {decoded message}`` ', inline=false)
.addField(uname='Question', value=question, inline=false)
member.send(embed)
member.guild.channels.cache.get(channel_id).send("Welcome <@" + memberID + "> Regarder vos DM pour accédez au serveur !");
});
client.on('message', message => {
var memberid = message.author.id;
var memberuname = message.author.username;
var messagecontent = message.content;
var messageID = message.id;
var disc = message.author.discriminator;
if (!message.content.startsWith(prefix)) return;
if (message.content.startsWith(prefix + 'answer') && message.channel.type === "dm"){
var msg = message.toString().replace('&answer ', '')
for (var key in dict){
if (key == message.author.username){
if (msg == dict[key][0]){
message.channel.send("Vous avez passer le test !")
var role = client.guilds.cache.get(guild_id).roles.cache.find(role => role.name === role_name)
client.guilds.cache.get(guild_id).members.cache.get(message.author.id).roles.add(role);
var memberID = message.author.id
client.channels.cache.get(channel_id).send("Trés bien <@" + memberID + "> vous avez réussis le test avec succèes !")
delete dict[key];
} else{
dict[key][1] = dict[key][1] - 1
if (dict[key][1] == 0){
memberID = message.author.id
message.channel.send("Vous avez pas réussis le test vous allez êtres exclus ! Revenir sur Paradox : " + server_invite)
client.channels.cache.get(channel_id).send("<@" + memberID + "> Vous avez échoué le test...")
setTimeout(function(){
client.guilds.cache.get(guild_id).members.cache.get(message.author.id).kick()
}, 5000)
} else{
message.channel.send("Réessayer !")
}
}
}
}
}
})
client.login(token);
The database config.json:
{
"bot_token": "TOKEN",
"verification_channelID": "",
"guild_ID": "",
"verification_role_name": "",
"server_invite": "",
"questions": ["eW91IHBhc3NlZA==", "dGhpcyB3YXMgZWFzeQ==", "dGhhbmtzIGZvciBqb2luaW5n", "ZW5qb3kgeW91ciBzdGF5", "dGhhbmtzIGZvciBub3QgYmVpbmcgYW5vbnltb3Vz", "ZW5qb3kgeW91ciBzdGF5", "aW52aXRlIHlvdXIgZnJpZW5kcyE="]
}