Disclaimer; I've never really looked a cold beyond once or twice prior to today.
The base Bot I got is from here;
but I end up with this in cmd prompt when I try to run it:
C:\Users\aer\Desktop\discordbotjson>node start
C:\Users\aer\Desktop\discordbotjson\start.js:9
var channel = client.channels.get("name", "general").id;
^
ReferenceError: client is not defined
at Client.<anonymous> (C:\Users\aer\Desktop\discordbotjson\start.js:9:16)
at emitNone (events.js:67:13)
at Client.emit (events.js:166:7)
at WebSocket.websocket.onmessage (C:\Users\aer\Desktop\discordbotjson\node_modules\discord.js\lib\Client\InternalClient.js:1047:13)
at WebSocket.onMessage (C:\Users\aer\Desktop\discordbotjson\node_modules\ws\lib\WebSocket.js:414:14)
at emitTwo (events.js:87:13)
at WebSocket.emit (events.js:172:7)
at Receiver.ontext (C:\Users\aer\Desktop\discordbotjson\node_modules\ws\lib\WebSocket.js:797:10)
at C:\Users\aer\Desktop\discordbotjson\node_modules\ws\lib\Receiver.js:473:18
at Receiver.applyExtensions (C:\Users\aer\Desktop\discordbotjson\node_modules\ws\lib\Receiver.js:360:5)
This is what the start.json
looks like:
var Discord = require("discord.js");
var schedule = require('node-schedule');
var AuthDetails = require("./auth.json");
var bot = new Discord.Client();
bot.on('ready', () => {
// change channel name to name of channel or just set to equal the channel ID if you already know it.
var channel = client.channels.get("name", "general").id;
var rule = new schedule.RecurrenceRule(); // Creates new Recurrence Rule
rule.minute = 0; // Must set to 0 or scheduled job will run every minute.
rule.hour = [14, 19, 20]; // Hours are based on your system's time.
var j = schedule.scheduleJob(rule, function() {
bot.channels.get("id", channel).sendMessage("Testing");
})
/* For different announcements:
rule.hour = 8; // Set different time. Use array like above for multiple hours.
var i = schedule.scheduleJob(rule, function() {
bot.channels.get("id", channel).sendMessage("Announcement at 8AM");
})
// Repeat for more announcements
*/
console.log("Bot is ready.");
});
//login
bot.login(AuthDetails.email, AuthDetails.password);
Help would be appreciated, thanks.
Disclaimer; I've never really looked a cold beyond once or twice prior to today.
The base Bot I got is from here;
but I end up with this in cmd prompt when I try to run it:
C:\Users\aer\Desktop\discordbotjson>node start
C:\Users\aer\Desktop\discordbotjson\start.js:9
var channel = client.channels.get("name", "general").id;
^
ReferenceError: client is not defined
at Client.<anonymous> (C:\Users\aer\Desktop\discordbotjson\start.js:9:16)
at emitNone (events.js:67:13)
at Client.emit (events.js:166:7)
at WebSocket.websocket.onmessage (C:\Users\aer\Desktop\discordbotjson\node_modules\discord.js\lib\Client\InternalClient.js:1047:13)
at WebSocket.onMessage (C:\Users\aer\Desktop\discordbotjson\node_modules\ws\lib\WebSocket.js:414:14)
at emitTwo (events.js:87:13)
at WebSocket.emit (events.js:172:7)
at Receiver.ontext (C:\Users\aer\Desktop\discordbotjson\node_modules\ws\lib\WebSocket.js:797:10)
at C:\Users\aer\Desktop\discordbotjson\node_modules\ws\lib\Receiver.js:473:18
at Receiver.applyExtensions (C:\Users\aer\Desktop\discordbotjson\node_modules\ws\lib\Receiver.js:360:5)
This is what the start.json
looks like:
var Discord = require("discord.js");
var schedule = require('node-schedule');
var AuthDetails = require("./auth.json");
var bot = new Discord.Client();
bot.on('ready', () => {
// change channel name to name of channel or just set to equal the channel ID if you already know it.
var channel = client.channels.get("name", "general").id;
var rule = new schedule.RecurrenceRule(); // Creates new Recurrence Rule
rule.minute = 0; // Must set to 0 or scheduled job will run every minute.
rule.hour = [14, 19, 20]; // Hours are based on your system's time.
var j = schedule.scheduleJob(rule, function() {
bot.channels.get("id", channel).sendMessage("Testing");
})
/* For different announcements:
rule.hour = 8; // Set different time. Use array like above for multiple hours.
var i = schedule.scheduleJob(rule, function() {
bot.channels.get("id", channel).sendMessage("Announcement at 8AM");
})
// Repeat for more announcements
*/
console.log("Bot is ready.");
});
//login
bot.login(AuthDetails.email, AuthDetails.password);
Help would be appreciated, thanks.
Share Improve this question edited Mar 3, 2016 at 13:22 Sevle 3,1192 gold badges21 silver badges31 bronze badges asked Dec 17, 2015 at 21:13 Nonia BuisnessNonia Buisness 11 gold badge1 silver badge1 bronze badge 3- 6 Try changing client.channels.get to bot.channels.get – Ctx Commented Dec 17, 2015 at 21:17
- 1 You have no element named "client". Did you mean "bot", perhaps? – Prune Commented Dec 17, 2015 at 21:18
-
This
var Discord = require("discord.js");
most probably should be:var Discord = require("discord");
– Alexandr Lazarev Commented Dec 17, 2015 at 21:58
5 Answers
Reset to default 3Some code examples you might find use var client = new Discord.Client();
, some others use var bot = new Discord.Client();
. They mean the same but use a different name, and since you're using the latter, you must replace all instances of the variable name client
with bot
.
var Discord = require("discord.js");
var schedule = require('node-schedule');
var AuthDetails = require("./auth.json");
var bot = new Discord.Client();
bot.on('ready', () => {
var channel = bot.channels.get("name", "general").id;
var rule = new schedule.RecurrenceRule();
rule.minute = 0;
rule.hour = [14, 19, 20];
var j = schedule.scheduleJob(rule, function() {
bot.channels.get("id", channel).sendMessage("Testing");
})
console.log("Bot is ready.");
});
bot.login(AuthDetails.email, AuthDetails.password);
Bot is your instance of a Discord Client it's normal that client.channels.()
doesn't return anything since client is not defined anywhere.
Just replace client with your instance of a client which is here "bot"
var channel = bot.channels.get("name", "general").id;
This code should work;
var channel = bot.channels.find("name", "general");
channel.sendMessage("Hello Owner Just Restarted Me!");
Replace var Discord = require("discord.js");
with var bot = require("discord.js");
Hope this helps!