Sharding is Required | Bot doesn't respond

I found out my bot stopped working and message content intents is enabled but greyed out on the Discord applications page. I updated discord.js then I'm having an error saying sharding is required. By setting the amount of shards to >= 2 the bot goes and connects however it doesn't respond.
112 Replies
d.js toolkit
d.js toolkit12mo ago
• What's your exact discord.js npm list discord.js and node node -v version? • Post the full error stack trace, not just the top part! • Show your code! • Explain what exactly your issue is. • Not a discord.js issue? Check out #useful-servers.
Larsenv
Larsenv12mo ago
discord.js@14.11.0
Uncaught Exception: Error: Sharding is required
at WebSocketShard.onClose (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/@discordjs/ws/dist/index.js:1057:15)
at WebSocket.emit (node:events:527:28)
at WebSocket.emitClose (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/ws/lib/websocket.js:258:10)
at TLSSocket.socketOnClose (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/ws/lib/websocket.js:1264:15)
at TLSSocket.emit (node:events:539:35)
at node:net:709:12
at TCP.done (node:_tls_wrap:582:7)
Uncaught Exception: Error: Sharding is required
at WebSocketShard.onClose (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/@discordjs/ws/dist/index.js:1057:15)
at WebSocket.emit (node:events:527:28)
at WebSocket.emitClose (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/ws/lib/websocket.js:258:10)
at TLSSocket.socketOnClose (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/ws/lib/websocket.js:1264:15)
at TLSSocket.emit (node:events:539:35)
at node:net:709:12
at TCP.done (node:_tls_wrap:582:7)
Danial
Danial12mo ago
How many guilds is your bot in?
Larsenv
Larsenv12mo ago
@Danial 2510 that's probably my issue
Danial
Danial12mo ago
Yes
Larsenv
Larsenv12mo ago
I'm trying to implement shard.js but it's still not responding could you help?
d.js docs
d.js docs12mo ago
guide Sharding: Getting started read more
Larsenv
Larsenv12mo ago
I've read it still kind of confused
Danial
Danial12mo ago
Show your code
Larsenv
Larsenv12mo ago
@Danial oh and more than 2 shards gives an error
Danial
Danial12mo ago
I don't know much about sharding so I'll let someone else help you
Larsenv
Larsenv12mo ago
I have gone to implement sharding but it's not actually reading stuff @Danial how long will I have to wait in order to find someone which can help?
Unknown User
Unknown User12mo ago
Message Not Public
Sign In & Join Server To View
Larsenv
Larsenv12mo ago
yes I can be patient was just making sure that I don't have just silence sorry
d4
d412mo ago
notice that you try to listen to the shardCreate event only after actually creating the shards with spawn, the guide creates a listener first and then uses spawn
Larsenv
Larsenv12mo ago
that gonna make some difference?
d4
d412mo ago
well it seems to me like your current code won't log the Lauching shard ... message
Larsenv
Larsenv12mo ago
it did
d4
d412mo ago
i guess that's fine then also what do you mean by "the bot doesn't respond"? to what?
Larsenv
Larsenv12mo ago
it's supposed to be reading server message it doesn't also there's a command to give a verification code it doesn't do anything rn all that's going on with index.js is that that starts bot
d4
d412mo ago
can you send it?
Larsenv
Larsenv12mo ago
process.on('uncaughtException', (err) => {
console.error('Uncaught Exception:', err);
});

const bot = require('./bot.js')

bot.startBot()
process.on('uncaughtException', (err) => {
console.error('Uncaught Exception:', err);
});

const bot = require('./bot.js')

bot.startBot()
d4
d412mo ago
bot.js would be nice to see as well
Larsenv
Larsenv12mo ago
const fs = require('fs')
const Discord = require('discord.js')
const auth = require('./authentication.js')
const connectionHandler = require('./connectionHandler.js')

const cachelength = 100 // Length of message history

const msghistory = {}
const client = new Discord.Client({ partials: ['MESSAGE'], totalShards: 'auto', shardList: 'auto', intents: [Discord.GatewayIntentBits.MessageContent,] }) // Allows me to recieve "uncached" (actually manually cached by me) message events

// setInterval(function () { // TODO: See if this is needed
// client.user.setActivity('for people at https://discross.rc24.xyz/', { type: 'WATCHING' })
// }, 20000)

// https://stackoverflow.com/questions/1967119/why-does-javascript-replace-only-first-instance-when-using-replace

client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`)
// console.log(client.channels.array());
})

client.on('message', async function (msg) {
if (msghistory[msg.channel.id] && !(msghistory[msg.channel.id].get(msg.id))) {
msghistory[msg.channel.id].set(msg.id, msg)

console.log(msghistory[msg.channel.id].length);

if (msghistory[msg.channel.id].length > cachelength) {
msghistory[msg.channel.id] = msghistory[msg.channel.id].slice(msghistory[msg.channel.id].length - (cachelength + 1), msghistory[msg.channel.id].length) // Limit the length of the cache to 50 messages
}
}

// console.log(msghistory[msg.channel.id.toString()].length);
if (msg.content === '^connect') {
if (msg.webhookID) {
msg.reply("you're already using Discross!")
} else {
msg.author.send('Verification code:\n`' + (await auth.createVerificationCode(msg.author.id)) + '`')
msg.reply('you have been sent a direct message with your verification code.')
}
}

// TODO: Do properly
connectionHandler.sendToAll(msg.content, msg.channel.id)
})

// client.on('messageDelete

exports.startBot = async function () {
client.login(fs.readFileSync('secrets/token.txt', 'utf-8').replace('\n', ''))
}

exports.addToCache = function (msg) {
if (msghistory[msg.channel.id]) {
msghistory[msg.channel.id].set(msg.id, msg)
}
}

exports.getHistoryCached = async function (chnl) {
if (!chnl.id) {
chnl = client.channels.get(chnl)
}
if (!msghistory[chnl.id]) {
const messagearray = await chnl.messages.fetch({ limit: cachelength })
msghistory[chnl.id] = messagearray.sort((messageA, messageB) => messageA.createdTimestamp - messageB.createdTimestamp)
}
return Array.from(msghistory[chnl.id].values())
}

exports.client = client
const fs = require('fs')
const Discord = require('discord.js')
const auth = require('./authentication.js')
const connectionHandler = require('./connectionHandler.js')

const cachelength = 100 // Length of message history

const msghistory = {}
const client = new Discord.Client({ partials: ['MESSAGE'], totalShards: 'auto', shardList: 'auto', intents: [Discord.GatewayIntentBits.MessageContent,] }) // Allows me to recieve "uncached" (actually manually cached by me) message events

// setInterval(function () { // TODO: See if this is needed
// client.user.setActivity('for people at https://discross.rc24.xyz/', { type: 'WATCHING' })
// }, 20000)

// https://stackoverflow.com/questions/1967119/why-does-javascript-replace-only-first-instance-when-using-replace

client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`)
// console.log(client.channels.array());
})

client.on('message', async function (msg) {
if (msghistory[msg.channel.id] && !(msghistory[msg.channel.id].get(msg.id))) {
msghistory[msg.channel.id].set(msg.id, msg)

console.log(msghistory[msg.channel.id].length);

if (msghistory[msg.channel.id].length > cachelength) {
msghistory[msg.channel.id] = msghistory[msg.channel.id].slice(msghistory[msg.channel.id].length - (cachelength + 1), msghistory[msg.channel.id].length) // Limit the length of the cache to 50 messages
}
}

// console.log(msghistory[msg.channel.id.toString()].length);
if (msg.content === '^connect') {
if (msg.webhookID) {
msg.reply("you're already using Discross!")
} else {
msg.author.send('Verification code:\n`' + (await auth.createVerificationCode(msg.author.id)) + '`')
msg.reply('you have been sent a direct message with your verification code.')
}
}

// TODO: Do properly
connectionHandler.sendToAll(msg.content, msg.channel.id)
})

// client.on('messageDelete

exports.startBot = async function () {
client.login(fs.readFileSync('secrets/token.txt', 'utf-8').replace('\n', ''))
}

exports.addToCache = function (msg) {
if (msghistory[msg.channel.id]) {
msghistory[msg.channel.id].set(msg.id, msg)
}
}

exports.getHistoryCached = async function (chnl) {
if (!chnl.id) {
chnl = client.channels.get(chnl)
}
if (!msghistory[chnl.id]) {
const messagearray = await chnl.messages.fetch({ limit: cachelength })
msghistory[chnl.id] = messagearray.sort((messageA, messageB) => messageA.createdTimestamp - messageB.createdTimestamp)
}
return Array.from(msghistory[chnl.id].values())
}

exports.client = client
@d4isdavid
d4
d412mo ago
are you using v14? you should be using the messageCreate event
Unknown User
Unknown User12mo ago
Message Not Public
Sign In & Join Server To View
Larsenv
Larsenv12mo ago
instead of what? @d4isdavid
d4
d412mo ago
instead of message
Unknown User
Unknown User12mo ago
Message Not Public
Sign In & Join Server To View
Larsenv
Larsenv12mo ago
I have that
Unknown User
Unknown User12mo ago
Message Not Public
Sign In & Join Server To View
Larsenv
Larsenv12mo ago
what are partials doing?
Unknown User
Unknown User12mo ago
Message Not Public
Sign In & Join Server To View
Larsenv
Larsenv12mo ago
yes
d.js docs
d.js docs12mo ago
guide Popular Topics: Partial Structures read more
Larsenv
Larsenv12mo ago
why do I have to parse intents to the program
Unknown User
Unknown User12mo ago
Message Not Public
Sign In & Join Server To View
d4
d412mo ago
do you mean pass intents?
Larsenv
Larsenv12mo ago
yes sorry
Unknown User
Unknown User12mo ago
Message Not Public
Sign In & Join Server To View
d.js docs
d.js docs12mo ago
guide Popular Topics: Gateway Intents read more
Unknown User
Unknown User12mo ago
Message Not Public
Sign In & Join Server To View
Larsenv
Larsenv12mo ago
I'm trying to go read intents with guild
Unknown User
Unknown User12mo ago
Message Not Public
Sign In & Join Server To View
Larsenv
Larsenv12mo ago
sigh what I meant's that I'm trying to read message intents via guild not via dm I know why intents have to be used
Unknown User
Unknown User12mo ago
Message Not Public
Sign In & Join Server To View
d.js docs
d.js docs12mo ago
If you aren't getting content, embeds or attachments of a message, make sure you have the MessageContent intent enabled in the Developer Portal and provide it to your client:
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({
intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent]
});
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({
intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent]
});
Larsenv
Larsenv12mo ago
just don't know why you have to pass it into the code
Unknown User
Unknown User12mo ago
Message Not Public
Sign In & Join Server To View
Larsenv
Larsenv12mo ago
yes I just passed those in still not reading
Unknown User
Unknown User12mo ago
Message Not Public
Sign In & Join Server To View
Larsenv
Larsenv12mo ago
wait a second there's a command which I had ran it just sent 3 of them because there's 3 instances of the bot running
Unknown User
Unknown User12mo ago
Message Not Public
Sign In & Join Server To View
Larsenv
Larsenv12mo ago
const client = new Discord.Client({ partials: [], shards: 'auto', shardCount: 5, intents: [Discord.GatewayIntentBits.Guilds, Discord.GatewayIntentBits.GuildMessages, Discord.GatewayIntentBits.MessageContent] }) // Allows me to recieve "uncached" (actually manually cached by me) message events
shards
Unknown User
Unknown User12mo ago
Message Not Public
Sign In & Join Server To View
Larsenv
Larsenv12mo ago
should this client code be put somewhere else? shard.js is calling the index.js which is calling bot.js which contains the amount of shard am I doing it wrong
d.js docs
d.js docs12mo ago
guide Sharding: How does sharding work? read more
Unknown User
Unknown User12mo ago
Message Not Public
Sign In & Join Server To View
Larsenv
Larsenv12mo ago
I think that I'm calling it wrong
d4
d412mo ago
i'm not sure that you should be using shards and shardCount here, the guide certainly doesn't
Larsenv
Larsenv12mo ago
ok now it ran once the problem is that my servers aren't loading it doesn't look like it's reading
d4
d412mo ago
you mean your http server?
Larsenv
Larsenv12mo ago
yes the page loads but what the bot does is let you talk on discord with any client that support html
d4
d412mo ago
not sure what that means but you're trying to use bot.js from there as well, i don't know exactly if that would actually work depending on how you use it
Larsenv
Larsenv12mo ago
I'm dealing with too much right now that's probably why I can't correctlytalk
d4
d412mo ago
it's fine
Larsenv
Larsenv12mo ago
basically I don't think guild are correctly being loaded on the bot after shard had to be implemented because the alternate client lets you pick from list of guild currently it's empty
d4
d412mo ago
how do you get the list?
Larsenv
Larsenv12mo ago
bot didn't respond until changed intents
const discordID = await auth.checkAuth(req, res)
if (discordID) {
serverpage.processServer(bot, req, res, args, discordID)
}
const discordID = await auth.checkAuth(req, res)
if (discordID) {
serverpage.processServer(bot, req, res, args, discordID)
}
d4
d412mo ago
right but this doesn't really tell me anything, i need the line of code inside of the serverpage.processServer function which gets the list of guilds
Larsenv
Larsenv12mo ago
exports.checkAuth = async function (req, res, noRedirect) {
const cookies = req.headers.cookie

const cookiedict = {} // https://stackoverflow.com/questions/3393854/get-and-set-a-single-cookie-with-node-js-http-server

cookies && cookies.split(';').forEach(function (cookie) {
var parts = cookie.split('=')
cookiedict[parts.shift().trim()] = decodeURI(parts.join('='))
})

if (cookiedict.sessionID) {
if (cookiedict.sessionID === 'guest') {
return ['guest', cookiedict.guestUsername]
} else {
const session = await exports.checkSession(cookiedict.sessionID)
if (session) {
return session
} else {
if (!noRedirect) {
res.writeHead(303, { Location: '/login.html?redirect=' + encodeURIComponent(req.url) })
res.end()
}
return false
}
}
} else {
if (!noRedirect) {
res.writeHead(303, { Location: '/login.html?redirect=' + encodeURIComponent(req.url) })
res.end()
}
return false
}
}
exports.checkAuth = async function (req, res, noRedirect) {
const cookies = req.headers.cookie

const cookiedict = {} // https://stackoverflow.com/questions/3393854/get-and-set-a-single-cookie-with-node-js-http-server

cookies && cookies.split(';').forEach(function (cookie) {
var parts = cookie.split('=')
cookiedict[parts.shift().trim()] = decodeURI(parts.join('='))
})

if (cookiedict.sessionID) {
if (cookiedict.sessionID === 'guest') {
return ['guest', cookiedict.guestUsername]
} else {
const session = await exports.checkSession(cookiedict.sessionID)
if (session) {
return session
} else {
if (!noRedirect) {
res.writeHead(303, { Location: '/login.html?redirect=' + encodeURIComponent(req.url) })
res.end()
}
return false
}
}
} else {
if (!noRedirect) {
res.writeHead(303, { Location: '/login.html?redirect=' + encodeURIComponent(req.url) })
res.end()
}
return false
}
}
d4
d412mo ago
this doesn't look like processServer to me
Larsenv
Larsenv12mo ago
I believe that it's having problem loading guild it worked before now it doesn't before I had implemented shard the bot worked ok
d4
d412mo ago
i don't see where you load guilds in this code
d4
d412mo ago
you might need to start using the manager variable inside of this code from now on instead of importing bot.js
Larsenv
Larsenv12mo ago
inside bot.js or index.js?
d4
d412mo ago
i guess it's called shard.js
Larsenv
Larsenv12mo ago
I don't know how to go start bot using that bot.js has stuff in it do I need to implement partials?
d4
d412mo ago
no, this isn't related to partials
Larsenv
Larsenv12mo ago
"Cannot read properties of null (reading 'setActivity')" I'm confused how I need to change thing
d4
d412mo ago
you are trying to use bot.js from shard.js, but there the Client would not be started you should re-read this because it explains that separate processes are ran, and every process would have a different client your main process would have a different client too
Larsenv
Larsenv12mo ago
I'm confused don't know what I have to change
d4
d412mo ago
seems like you have to change a lot of things to implement sharding like this, mainly because you can't use bot.js from shard.js
Larsenv
Larsenv12mo ago
should I put all the code in shard.js? namely the client?
d4
d412mo ago
i don't think that's what i meant
Larsenv
Larsenv12mo ago
you're telling me I can't call bot.js on shard.js?
d4
d412mo ago
yes not like this at least without sharding it would've been fine but with sharding you can't unfortunately
Larsenv
Larsenv12mo ago
the code on discord.js documentation says that you call bot.js there client's called
d4
d412mo ago
when using ShardingManager, yes
Larsenv
Larsenv12mo ago
I'm confused what I need to do sorry I didn't write this code I'm just maintaining what do I need to substitute with the call of bot.js?
d4
d412mo ago
you have to change everything that uses the bot.js client inside of shard.js
Larsenv
Larsenv12mo ago
change it to do?
d4
d412mo ago
i'm not sure, it depends on what the code is doing, because currently your code assumes that there's a single instance of a client, when sharding creates multiple
Larsenv
Larsenv12mo ago
const fs = require('fs')
const Discord = require('discord.js')
const auth = require('./authentication.js')
const connectionHandler = require('./connectionHandler.js')

const cachelength = 100 // Length of message history

const msghistory = {}
const client = new Discord.Client({ partials: [], intents: [Discord.GatewayIntentBits.Guilds, Discord.GatewayIntentBits.GuildMessages, Discord.GatewayIntentBits.MessageContent] }) // Allows me to recieve "uncached" (actually manually cached by me) message events

// setInterval(function () { // TODO: See if this is needed
// client.user.setActivity('for people at https://discross.rc24.xyz/', { type: 'WATCHING' })
// }, 20000)

// https://stackoverflow.com/questions/1967119/why-does-javascript-replace-only-first-instance-when-using-replace

client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`)
// console.log(client.channels.array());
})

client.on('messageCreate', async function (msg) {
if (msghistory[msg.channel.id] && !(msghistory[msg.channel.id].get(msg.id))) {
msghistory[msg.channel.id].set(msg.id, msg)

console.log(msghistory[msg.channel.id].length);

if (msghistory[msg.channel.id].length > cachelength) {
msghistory[msg.channel.id] = msghistory[msg.channel.id].slice(msghistory[msg.channel.id].length - (cachelength + 1), msghistory[msg.channel.id].length) // Limit the length of the cache to 50 messages
}
}

// console.log(msghistory[msg.channel.id.toString()].length);
if (msg.content === '^connect') {
if (msg.webhookID) {
msg.reply("you're already using Discross!")
} else {
msg.author.send('Verification code:\n`' + (await auth.createVerificationCode(msg.author.id)) + '`')
msg.reply('you have been sent a direct message with your verification code.')
}
}

// TODO: Do properly
connectionHandler.sendToAll(msg.content, msg.channel.id)
})

// client.on('messageDelete

exports.startBot = async function () {
client.login(fs.readFileSync('secrets/token.txt', 'utf-8').replace('\n', ''))
}

exports.addToCache = function (msg) {
if (msghistory[msg.channel.id]) {
msghistory[msg.channel.id].set(msg.id, msg)
}
}

exports.getHistoryCached = async function (chnl) {
if (!chnl.id) {
chnl = client.channels.get(chnl)
}
if (!msghistory[chnl.id]) {
const messagearray = await chnl.messages.fetch({ limit: cachelength })
msghistory[chnl.id] = messagearray.sort((messageA, messageB) => messageA.createdTimestamp - messageB.createdTimestamp)
}
return Array.from(msghistory[chnl.id].values())
}

exports.client = client
const fs = require('fs')
const Discord = require('discord.js')
const auth = require('./authentication.js')
const connectionHandler = require('./connectionHandler.js')

const cachelength = 100 // Length of message history

const msghistory = {}
const client = new Discord.Client({ partials: [], intents: [Discord.GatewayIntentBits.Guilds, Discord.GatewayIntentBits.GuildMessages, Discord.GatewayIntentBits.MessageContent] }) // Allows me to recieve "uncached" (actually manually cached by me) message events

// setInterval(function () { // TODO: See if this is needed
// client.user.setActivity('for people at https://discross.rc24.xyz/', { type: 'WATCHING' })
// }, 20000)

// https://stackoverflow.com/questions/1967119/why-does-javascript-replace-only-first-instance-when-using-replace

client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`)
// console.log(client.channels.array());
})

client.on('messageCreate', async function (msg) {
if (msghistory[msg.channel.id] && !(msghistory[msg.channel.id].get(msg.id))) {
msghistory[msg.channel.id].set(msg.id, msg)

console.log(msghistory[msg.channel.id].length);

if (msghistory[msg.channel.id].length > cachelength) {
msghistory[msg.channel.id] = msghistory[msg.channel.id].slice(msghistory[msg.channel.id].length - (cachelength + 1), msghistory[msg.channel.id].length) // Limit the length of the cache to 50 messages
}
}

// console.log(msghistory[msg.channel.id.toString()].length);
if (msg.content === '^connect') {
if (msg.webhookID) {
msg.reply("you're already using Discross!")
} else {
msg.author.send('Verification code:\n`' + (await auth.createVerificationCode(msg.author.id)) + '`')
msg.reply('you have been sent a direct message with your verification code.')
}
}

// TODO: Do properly
connectionHandler.sendToAll(msg.content, msg.channel.id)
})

// client.on('messageDelete

exports.startBot = async function () {
client.login(fs.readFileSync('secrets/token.txt', 'utf-8').replace('\n', ''))
}

exports.addToCache = function (msg) {
if (msghistory[msg.channel.id]) {
msghistory[msg.channel.id].set(msg.id, msg)
}
}

exports.getHistoryCached = async function (chnl) {
if (!chnl.id) {
chnl = client.channels.get(chnl)
}
if (!msghistory[chnl.id]) {
const messagearray = await chnl.messages.fetch({ limit: cachelength })
msghistory[chnl.id] = messagearray.sort((messageA, messageB) => messageA.createdTimestamp - messageB.createdTimestamp)
}
return Array.from(msghistory[chnl.id].values())
}

exports.client = client
d4
d412mo ago
ah i guess any functions here can't really be used correctly
Larsenv
Larsenv12mo ago
sorry I thought that I sent that you know what I can do to have it remedied?
d4
d412mo ago
every single shard runs index.js, meaning every shard has a different Client instance and a different bot.js instance this means that every single variable inside of bot.js that you try to use inside of shard.js will be different from the shards
Larsenv
Larsenv12mo ago
what confuses me's that looking into example code each has a client
d4
d412mo ago
that doesn't change anything, each shard would still run that code on its own with a different Client instance
Larsenv
Larsenv12mo ago
would moving the code over to be on shard.js help?
d4
d412mo ago
you need to move the cache parts of bot.js to shard.js that's probably it? also every single part of code that uses bot.client inside of shard.js should be changed too
Larsenv
Larsenv12mo ago
done
Uncaught Exception: TypeError: process.send is not a function
at Client.<anonymous> (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/discord.js/src/sharding/ShardClientUtil.js:43:19)
at Client.emit (node:events:527:28)
at WebSocketManager.<anonymous> (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/discord.js/src/client/websocket/WebSocketManager.js:270:19)
at WebSocketManager.emit (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/@vladfrangu/async_event_emitter/dist/index.js:282:31)
at WebSocketShard.<anonymous> (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/@discordjs/ws/dist/index.js:1103:51)
at WebSocketShard.emit (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/@vladfrangu/async_event_emitter/dist/index.js:290:37)
at WebSocketShard.onClose (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/@discordjs/ws/dist/index.js:1006:10)
at WebSocket.emit (node:events:527:28)
at WebSocket.emitClose (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/ws/lib/websocket.js:258:10)
at TLSSocket.socketOnClose (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/ws/lib/websocket.js:1264:15)
Uncaught Exception: TypeError: process.send is not a function
at Client.<anonymous> (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/discord.js/src/sharding/ShardClientUtil.js:43:19)
at Client.emit (node:events:527:28)
at WebSocketManager.<anonymous> (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/discord.js/src/client/websocket/WebSocketManager.js:270:19)
at WebSocketManager.emit (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/@vladfrangu/async_event_emitter/dist/index.js:282:31)
at WebSocketShard.<anonymous> (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/@discordjs/ws/dist/index.js:1103:51)
at WebSocketShard.emit (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/@vladfrangu/async_event_emitter/dist/index.js:290:37)
at WebSocketShard.onClose (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/@discordjs/ws/dist/index.js:1006:10)
at WebSocket.emit (node:events:527:28)
at WebSocket.emitClose (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/ws/lib/websocket.js:258:10)
at TLSSocket.socketOnClose (/var/www/rc24/discross.rc24.xyz/public_html/node_modules/ws/lib/websocket.js:1264:15)
🤔
d4
d412mo ago
show the updated shard.js code please
Larsenv
Larsenv12mo ago
thank you for helping thus far 🙂 not very fun when my bot's in over 2500 discord and it break
Unknown User
Unknown User12mo ago
Message Not Public
Sign In & Join Server To View
Larsenv
Larsenv12mo ago
I didn't know really didn't see how many people had been adding the bot to their discord you know why it became popular ? michael mjd created a video on it
Unknown User
Unknown User12mo ago
Message Not Public
Sign In & Join Server To View
Larsenv
Larsenv12mo ago
then lots of people started testing it I know @d4isdavid sorry to bother but you there?
d4
d412mo ago
sorry i gtg