I keep getting this error;
ReferenceError: client is not defined
at Object.<anonymous> (C:UsersaggieDownloadsBotbot.js:3:1)
←[90m at Module._compile (internal/modules/cjs/loader.js:1085:14)←[39m
←[90m at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)←[39m
←[90m at Module.load (internal/modules/cjs/loader.js:950:32)←[39m
←[90m at Function.Module._load (internal/modules/cjs/loader.js:790:12)←[39m
←[90m at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)←[39m
←[90m at internal/main/run_main_module.js:17:47←[39m
My bot.js code is
let ratelimits = [];
client.on("message", (msg) => {
// APPLYING RATELIMITS
const appliedRatelimit = ratelimits.find(
(value) =>
value.user === msg.author.id && value.channel === msg.channel.id
);
if (appliedRatelimit) {
// Can they post the message?
const canPostMessage =
msg.createdAt.getTime() - appliedRatelimit.ratelimit >=
appliedRatelimit.lastMessage;
// They can
if (canPostMessage)
return (ratelimits[
ratelimits.indexOf(appliedRatelimit)
].lastMessage = msg.createdAt.getTime());
// They can't
msg.delete({ reason: "Enforcing ratelimit." });
}
// SET RATELIMIT
if (msg.content === "!ratelimit") {
// Checking it's you
if (msg.author.id !== "705923685877415979") return msg.reply("ok.");
// You can change these values in function of the received message
const targetedUserId = "529395455109627925";
const targetedChannelId = msg.channel.id;
const msRateLimit = 25000; // 25 seconds
// Delete existant ratelimit if any for this user on this channel
ratelimits = ratelimits.filter(
(value) =>
!(
value.user === targetedUserId &&
value.channel === targetedChannelId
)
);
// Add ratelimit
ratelimits.push({
user: targetedUserId,
channel: targetedChannelId,
ratelimit: msRateLimit,
lastMessage: 0,
});
}
// CLEAR RATELIMITS
if (msg.content === "!clearRatelimits") {
// Checking it's you
if (msg.author.id !== "your id") return msg.reply("You can't do that.");
// Clearing all ratelimits
ratelimits = [];
}
});
I wanted to put slow mode on certain users because they keep spamming the chat, what am I doing wrong? Sorry if I missed something obvious it’s my first time making a bot. I copied it from a post on here because I’m still a beginner in javascript.
Александр, const Discord = require(‘discord.js’)
module.exports.run = async (bot, message, args) => {
let member = message.guild.member(message.mentions.users.first() || message.guild.members.find(m => m.user.username == args[0] || m.id == args[0])) // участник
if (!message.member.hasPermission(«BAN_MEMBERS»)) return message.channel.send(‘Недостаточно прав для использования команды!’) // смотрим есть ли у участника права на бан
else if (!message.guild.me.hasPermission(«KICK_MEMBERS»)) return message.channel.send(‘У меня недостаточно прав!’) // если у него тоже такие права есть то не сможет бот забанить
let reason = args.slice(1).join(‘ ‘) || ‘Не указана’ // причина
await member.ban(reason) // баним
let embed = new Discord.RichEmbed()
.setTitle(‘Бан’, true)
.addField(‘Модератор’, `${message.author.tag}`, true)
.addField(‘Пользователь’, `${member.user.tag}`,true)
.addField(‘Причина’, `${reason}`,true)
.setTimestamp()
await message.channel.send(embed)
}
module.exports.help = {
name: «ban»
}
module.exports.run = async (bot, message, args) => {
if (!message.member.hasPermission(«MANAGA_MESSAGES»)) return message.reply(‘Вы не имеете нужные права’) // чекаем права
let del = args[0] // число
if (!del) return message.reply(‘Укажите пожалуйста кол-во сообщений, которые вы хотите удалить’)
if(del < 1) return send(‘Укажите пожалуйста кол-во сообщений больше 1’)
if(del > 100) return send(‘Укажите пожалуйста кол-во сообщений меньше 100’)
await message.channel.bulkDelete(del) // удаляем число сообщений
send(`Удалено __**${del}**__ сообщений`)
}
module.exports.help = {
name: ‘clear’
}
module.exports.run = async (bot, message, args) => {
let member = message.guild.member(message.mentions.users.first() || message.guild.members.find(m => m.user.username == args[0] || m.id == args[0])) // участник
if (!message.member.hasPermission(«KICK_MEMBERS»)) return message.channel.send(‘Недостаточно прав для использования команды!’) // чек прав
else if (!message.guild.me.hasPermission(«KICK_MEMBERS»)) return message.channel.send(‘У меня недостаточно прав!’) // чек прав у участника
let reason = args.slice(1).join(‘ ‘) || ‘Не указана’ // причина
await member.kick(reason) // кик
let embed = new Discord.RichEmbed()
.setTitle(‘Кик’, true)
.addField(‘Модератор’, `${message.author.tag}`)
.addField(‘Пользователь’, `${member.user.tag}`)
.addField(‘Причина’, `${reason}`)
.setTimestamp()
await message.channel.send(embed)
}
module.exports.help = {
name: ‘kick’
}
const { Client } = require(‘discord.js’);
const ms = require(‘ms’);
module.exports.run = async (bot, message, args) => {
if (!message.member.hasPermission(«MANAGE_ROLES»)) return message.channel.send(‘Недостаточно права для использования команды!’)
let member = message.guild.member(message.mentions.users.first() || message.guild.members.find(m => m.user.username == args[0] || m.id == args[0]))
if (!member) return message.channel.send(‘Укажите пожалуйста участника’)
if (member.hasPermission(«MANAGE_ROLES»)) return message.channel.send(‘Я не могу замутить этого пользователя’)
let muterole = message.guild.roles.find(r => r.name == ‘Muted’)
if (!muterole) muterole = await message.guild.createRole({
name: ‘Muted’,
color: 0x607d8d
})
let reason = args.slice(1).join(‘ ‘) || ‘Не указана’
if (!member.roles.has(muterole.id)) return message.channel.send(‘Пользователь уже замучен’)
await member.addRole(muterole.id)
let embed = new Discord.RichEmbed()
.setTitle(‘Мут’, true)
.addField(‘Модератор’, `${message.author.tag}`, true)
.addField(‘Пользователь’, `${member}`, true)
.addField(‘Причина’, `${reason}`, true)
message.channel.send(embed)
setTimeout(function(){
member.removeRole(muterole.id)
message.channel.send(`${member.user.tag}|${member.user.id} has been unmuted after being in mute for ${ms(ms(mutetime))}`)
}, ms(mutetime))
}
module.exports.help = {
name: ‘mute’
}
Go to Discordjs
r/Discordjs
r/Discordjs
The unofficial subreddit for the discord.js JavaScript/TypeScript library.
Members
Online
•
by
JustSomeTrash12
ReferenceError: client is not defined
Im making a bot and when I run it, I get this error
https://srcb.in/mBdKt7I0U1
heres my code
https://srcb.in/o3l5947wJ7
I posted this question on Stack Overflow and the recommendation I got was to switch to pg-promise
. Does node-postgres
work with async
—await
?
This error seems to be coming up on every http
request I make. I’m not totally sure where it’s coming from?
(node:39390) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 22): ReferenceError: client is not defined
There is no line number in the error, but here is a sample of code that seems to be causing it:
try {
var client = await pool.connect();
await client.query(queryStatement, queryArgumentsArray);
res.sendStatus(200);
} catch (e) {
console.log('Error adding updating subvendor availability data, UPDATE SQL query task', err);
res.sendStatus(500);
} finally {
client && client.release && client.release();
}
It first I thought it must be coming from my finally block (maybe client
was out of scope), but I added and if statement to explicitly prevent attempting to call client.release
if it doesn’t exist:
if (client) { client && client.release && client.release() };
I am still getting this error, so I feel like it must be coming from these lines.
var client = await pool.connect();
await client.query(queryStatement, queryArgumentsArray);
res.sendStatus(200);
Am I misunderstanding how to use async? To be clear, the code is functioning well and the http
requests are working (responding correctly to the requests), my terminal is just getting flooded with these warnings.
Here is a simplified version of the full route:
var express = require('express');
var router = express.Router();
var pool = require('../modules/pg-pool'); // brings in pg-pool created in another module
// This route updates the availability for a user
router.put('/updateAvailability', async (req, res) => {
var userId = req.decodedToken.userSQLId;
var subvendorId = req.headers.subvendor_id;
var availability = req.body;
var queryStatement = 'UPDATE status SET status=$3 WHERE userId=$2';
var queryArgumentsArray = [availability.status, userId ];
try {
var client = await pool.connect();
await client.query(queryStatement, queryArgumentsArray);
res.sendStatus(200);
} catch (e) {
console.log('Error updating subvendor availability data, UPDATE SQL query task', err);
res.sendStatus(500);
} finally {
client && client.release && client.release();
}
});
module.exports = router;
Skip to content
so I am trying to make a discord bot and I am running in to a problem
ReferenceError: Client is not defined
at Object.<anonymous> (C:UsersAryaDesktopAryaDiscordbot.js:3:16)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47
the code is
require("dotenv").config();
const { Cient, Intents } = require("discord.js");
const client = new Client({
intent: [
Intents.FLAGS.GUILDS,
Intents.FLAGS.GUILD_MESSAGES
]
});
bot.login(process.env.TOKEN);
please help me
>Solution :
simple syntax error, happy to help
this should work
require("dotenv").config();
const { Cient, Intents } = require("discord.js");
const client = new Client({
intents: [
Intents.FLAGS.GUILDS,
Intents.FLAGS.GUILD_MESSAGES
]
});
client.login(process.env.TOKEN);
Your login at the bottom confuses me where the bot variable is but if my code does not work you can change it back. Otherwise you just needed to add a s to intent. Happy Coding 🙂