#development
1 messages · Page 1089 of 1
why would you go back to commands that dont error/dont need ot be worked on?
it's not that fact that in most cases exporting modules would have more advantages that bothers me
theyy DO have advantages
i told you some
you can delete their cache and re-require
you cant do that with everythin on one index
its the fact that any advantages one file has that i prefer having are dismissed as wrong
if its a bot you program once, forget about, drop it, never come back to it.
i dont really see an issue.
ofc they have a lot of advantages
because those aren't advantages that I want or need right now compared to the loss of natural ease of use for me
you're exchanging functionallity and performance for stubbornness
if I don't use any of that functionality, it might as well not be there
reee
by dont use i mean the code doesn't require it, not dont use because I dont feel like it
stubborn's the word you looking for
restart for every change = discord resets your token for logging in too much
good luck doing that 1000 times
you're simply refusing to change to a better way due to laziness
that would matter if I was making a lot of changes
ANY lines that you change you need to restart your bot
what’s he doing?
It's not better if none of the advantages end up mattering
he refuses to put his commands outside of his index, man's got a 1800 line index@torn ravine
cuz he stubborn
I might make changes in the future idk
cause I have nothing to gain from it right now
changes are easier to do now
why not split it into separate files. and reload so you don’t have to restart your bot
or make it easier for debugging?
understanding exports really well takes like an hour to do
stack trace is a miracle
or for organization in general
by this afternoon you could have it done.
you're correct it would be hard to switch
by the time we started agruing he would've learned it
like I said I might switch at some point, definitely will when sharding comes along
if he spent said time just looking at module exports throughout this whole chat he'd have it learned and already started working on it
I know 90% of how module exports work
exports are a week one concept of js
If I don't prefer them because of personal preference, then it's my "loss"
if you refused to change cuz you didnt know, i'd give a bit of credit for being afraid of trying new things
but you already know it, and still dont do it
i have a reason, that reason is just completely invalid to you
its completely invalid to anyone
its completely invalid to anyone but me
its the other way aroundt
thats how preference works
the reason is only valid to you
yeah agreed
but that fact doesnt change that I think its easier to maintain one file without exports and find it more enjoyable to code
self taught developers have to learn to work well with standardization
by rejecting standardization your only making work harder on yourself
I would totally standardize if this had to stand up to any standard whatsoever
I have no issue with using standards when I have to
but thats not how learning works 🤔
if you are already rejecting standards cuz 'you dont like it', i cant imagine you fitting when you need to, at all
every project is learning, even personal projects.
I'm not completely rejecting them
no, your just learning both
I recognize that they have many advantages, but also some disadvantages
wasting your time when you do have to standardize
Personal preference matters to the person who's preference it is
you already admit youll do it in the future
when theres more commands and code to do it to
i can already imagine in a week or 2 his index growing to 3-4k lines
since thats the only person who's preference matters in my project, that's the one I'm going with, despite losing some advantages
nah lmao if anything itll get shorter with optimization
the bot is completely done and functional at this point
author doesnt have roles
.roles is not a property of a User instance
i'm not still working on it
message.member instead
use member instead
:0

self highfive
const commandFiles = fs.readdirSync('./commands/').filter(file => file.endsWith())```
Anyone know what I need to press to open this like I thought it would auto open but i am not sure
i dont understand the question
@solemn latch what you think?https://cdn.discordapp.com/attachments/691759632095379547/736996545857323118/0IBikLQJbE.gif
o wth
with a user?
wdym?:
okay so I am trying to open my commands into a separate folder but i am not sure if theres something i need to press to open it or if i coded something wrong.
does the bot login to irc as the user?
nah, anything said in the channel goes over to twitch, and anything said on twitch goes to that channel on discord
yeah
its a bot
has to log as user
ive not worked with irc in so long
twitch doesnt have a bot/user difference
twitch IRC is so shit
youtubes is a bit more complicated but equally as shit for streaming
yup
oh yeah, youtube looks like a pain
it is
Hi
So how do I define a embed?
but look
though i doubt thats what you wanted
defining embeds depends on your language/lib
assume everyone is d.js unless told otherwise lul
lool
im looking
those are fields
so how am I supposed to define
can I have an example?
sec
Oh ok
i was gonna get the docs
@desert ice https://discordjs.guide/popular-topics/embeds.html#using-the-richembedmessageembed-constructor
ok
ok thanks
Okay so I am trying to convert my commands over to a command folder, but someone told me to type this for it to work "const commandFiles = fs.readdirSync('./commands/').filter(file => file.endsWith())" then I was told to open it but i am not sure how to do so
i am not sure if that makes any sense
spoonfeed bad
command handler? ^
open it, as in execute it?
Hi guys
yes
So some one can help me?
execute it but i am not sure how to do so
this channel is for asking questions, go for it
Tanks
@jagged crater a command handler?
youd want to get one command from commandFiles
and then run the function(whatever you named it) from that command.
command.exectute()
would run the function execute of command
So I wana register my Server on Discord website
hmm okay i will try thanks
register your server as in like verifying or?
I never have submitted a server, im not sure
@keen gull Just to show my server
Hey guys
I never really added a server, so I'm not sure about that, but what does it say once you click it?
I need to invite the boot tô my Server?
@keen gull right
pretty sure, yes @short ember
Tanks
?
whats below what
how can I make it next to it?
@feral aspen make what next to it? the Invite our bot thing?
@feral aspen sorry mas but I realy dont now
Yes @keen gull
I dont want it below it
I want it next to it
And I have two .addfields
both need to be inline
Hm. okay!
Thanks
Sorry
Another question..
Oof me.
I have a picture that I want to upload to my !help command, and when someone performs this command, it will show the picture in the .addimage
how can I upload the image from my desktop?
read this and let me know if you still have a question
@feral aspen
yes
does djs not send activity updates if its the same thing its already set to?
how do i fill entire background black in canvas
updating every 60 seconds when you might have no changes seems useless
ctx.fillStyle = "#477148";
ctx.fillRect(0, 0, canvas.width, canvas.height);
that color is green
not black

but you get the idea
How can i list every object stored in a mongo db collection?
so you want to retrive every Document at once?
i think if you use find() and add some filtering to it should work. never needed to do it bcs it can create massive lags if you retrive like 200k docs
empty find() should get all i would think
trying to make a ban command, trying to evade errors, how do i make it so that way if it is missing permissions (the bot not the user) it says "cannot ban that member"
.catch it
Idk i just try this but it returns just a massive cursur object which none of the wanted documents were returns
_eval bot.db.collection("prefixes").find({})```
hi
weird
.catch it
@solemn latch example? (discord.js btw)
Just check if that member is bannable
how is that executed
<Member>.bannable
Returns a boolean if the member is bannable or not
If true, the bot can ban the member, if false, it can't ban the member
Yea but return it
if(!member.bannable) {
return message.channel.send("Member is not bannable!");
}```
does member.kickable work too?
Yea
kk
all properties are listed on the docs
@solemn latch Come to testing-1, i'll show ya what the find() returns
@earnest phoenix bro its says bannable of null
What
lol
idk
I'm confused wot
if I want add blacklisted words as an array, how would I access it?
🙂
xD
im not sure why it would return that @earnest phoenix
is it because you did find({})?
one more question:
how do i make it so if i do !ban (user) without putting a mention in there instead of giving me an error it says to put in a mention instead of nothing
im using message.users.mentions.first(); (or smthn like that)
im using message.users.mentions.first(); (or smthn like that)
@karmic compass
if (!message.users.mentions)
o
well i just did let bannedUser = message.users.mentions.first()
if(!bannedUser)
would that work too
yes of course
if it doesnt error because reading first from undefined
which i dont think it does, im not sure tho
oh tyty
in js, !isNaN(x)
*slams keyboard*
whats the difference between Int
int doesnt even check if something is a number
isNaN returns a boolean
wait lmao for what lang
js
Scriptjava
yeah, !isNaN(x) should work
uwu.script
No thank you
^
https://oliy.is-just-a.dev/4nplxi_5236.png you'll want to be careful though, it does a Number(x) in the backend, so it will still output true for numbers as a string
So this basically sexy parsein-
no
parseInt doesnt return a boolean
isNaN actually checks if something is or isnt a number
parseInt can return NaN
or you could use typeof x == "number" too
🤔
nodejs is used for server side js, not client side lul
and u cant edit or whatever u wanna call it in the backend, afaik
lol
With a template engine like handlebars, ejs, or pug
pug is a template engine?
rip eardrums
atleast its lavalink not ytdl
Yes
lmao
thats the real drum blaster
Pug is pretty good. Most people don't like the syntax though
like me :/
A frontend framework would be something like vue or react
your bots dashboard frontend is written in pug, isnt it?
Nuxt
Yup
It's pretty simple
what is the Discord.js permission to kick members from vc ?
3 of my websites frontend is ejs 🥴
vash > ejs
Vue is super fun
yeah, i heard vue is simple. which one do you recommend, vue or nuxt?
Coming from react I was super surprised
I prefer nuxt
oh
Routing is super simple
oh
those typically are quite expensive
? what expensive?
?
i am talking bout what can API can i use to fetch text instead of images or package
like from reddit
reddit's api gives text does it not?
what is that?
reddits api?
Reddit gives you the best of the internet in one place. Get a constantly updating feed of breaking news, fun stories, pics, memes, and videos just for you. Passionate about something niche? Reddit has thousands of vibrant communities with people that share your interests. Alte...
🤔
you can request the data separately, or use a template engine
<%- variable %>
just like
app.set('view engine', 'ejs');
yeah
and ofc download it
and just render the correct path and stuff
Also res.send/res.render
yes
how do you make a gif play in an embed
u can access the data in the frontend using res.send afaik
!coro asked
it shows, nothing happens, like u cant manipulate it
buh
@earnest phoenix how do u set an image
.setImage
embed.add_image?
are you using python?
yes
@digital ibex no
()
oof
doesnt work with () wither
@restive lily set_image is a method of a discord.Embed instance
*either
show your code
@commands.command()
async def asked(self, ctx):
embed = discord.Embed(colour=ctx.author.colour)
embed.set_author(name='Who asked?', icon_url=f"{ctx.guild.icon_url}")
embed.set_image('https://tenor.com/view/nobody-asked-nasa-satellite-nasa-asked-nobody-cares-gif-16192897')
embed.set_footer(text=f'Requested by: {ctx.author.name}', icon_url='{}'.format(ctx.author.avatar_url))
await ctx.send(embed=embed)```
like the docs say
let me open the docs
yup
im getting better at python
never will use it for anything
How i do to add my bot here
-faq 1
*cough*
*sneeze*
*hiccough*
im outa here, corona spreading
pretty sure i am 
Btw I gotta learn py for school
6th Lang yaaaaaaay
Any reccomended tutorials and shit?
hmmm
sending embeds on client is against ToS
though is using postman to do such without modifying the client also against tos?
slap token, send POST request, boom
.d
what does it output?
you dont seem to be passing roar
you've also got that code in a html file
moyai
change .html to .ejs
and you're passing root, not roar
you can send root, and roar
moyai
You need to render it
you need to pass roar
in the object
same way you pass root
{ root: __dirname, roar: roar }
Roar
you can also do forloops and stuff
Why would you ever use a for loop x)
user objects
What about them
erm
do you know how js works in general
because u dont
you literally created a function
just use it
🤔
do you know how programming works in general
you didnt have to delete it, its really not hard to see how you made that mistake
exports can be confusing at first.
stop dissing him
@earnest phoenix oh sry
why am i not there? 
imma be sad if im not top 15
I dont see you top 20 🤔
you should set roar in the ready event
I'd separate the bot and the express app
same
@solemn latch i cry
Into separate folders/files
im 29th, your 28th @opal plank
lmao
ive yet to add requests to see past the first 20
when scrolling down
had to check the db for this 
im not saying you should admin abuse and give me extra points to get to top 20
im just saying that if it were to happen i wouldnt complain

Epic
iirc, you can only send one embed per message
Webhooks can send multiple I think
Hey, is there a way to make bot custom status? (without Watching, Streaming or Playing)
My code for now is:
console.log(`[READY] Logged in as ${client.user.tag}! ID: ${client.user.id}`);
let statuses = [
"dev: Justas#4513",
"-help"
]
setInterval(function() {
let status = statuses[Math.floor(Math.random() * statuses.length)];
client.user.setActivity(status, {
type: "WATCHING"
})
}, 3000) //Seconds to Random
});```
type: is optional isnt it?
read docs
type is optional ya, but the default is playing, and you cant give it a custom status
nope
What kid of cool text do yall know how to add tk html
comic sans, best cool text font
HAHA IM GREEN
oop
green boi
it looks weird for u o.o
You forgot how I was when I had aleBot
but u got it removed oop
@slender thistle pls
how cute
anyone here got a bot with nice looking rank cards?
@cursive adder's rank card is pretty good @green kestrel
My bot got declined because of a bug, but I cant reproduce it
you think its dev would share with me how they created the rank card, e.g. are they artistically minded or did they outsource it?
i tend to outsource artwork usually
anyone here got a bot with nice looking rank cards?
@green kestrel approximatively 90% of bots with levelink system
rank cards are artistic?
im thinking of adding rank cards to triviabot for !rank instead of just the basic 'you are x of y players to have played today'
but they all use canva
imho a good rank card can be a work of art
i'd be using GD, most likely
in the php part, server side of my bot
api will generate the image, and pass it to the bot to display in the embed
Can I DM the mod that reviewed my bot for more info about the bug
wdym like tag em here?
Is it forbidden to change the status on the bot, I read that it is api abuse, and some say that it can if the delay is not less than 30 seconds
mine wont even change once every 10 minutes
🤷♂️
status's dont need to change often
mine changes every 10 mins yea
600,000
10 minutes
60 seconds each
1000 ms each
10x60x1000
ye thanks
@solemn latch yoinking that img btw
they share servers?
wait
hmm
the dash makes it highly misleading towards negative values btw
-21
put an = sign
or :
indeed
yeah i was right
if im in 2 servers
you're going to have 1 less server count
cuz im in both server
1 user, 2 server
makes sense member being lower
thats a ton of duplicate users
11
Its jesus
How do you make trigger words for your bot?
if (message.content == 'ur mom') { do whatever }
Aa alright thanks
np
anyone know why im getting this error: TypeError: ws.once is not a function ?
the code is just: js try { console.log(ws.createWebSocketStream(constants.GATEWAY)); } catch (e) { console.error(e); } }
Is this good?
how do you make a command where u can see on ur host how much memory, cpu, and disc space it uses python
ok ty
a guide
for..?
cuz you clearly dont know what you doing, read the guide
you need to listen to message events
not load a class from discord.js
What-
@restive lily unfortunately i dont know py
Thanks for the guide!
https://ptb.discordapp.com/channels/264445053596991498/272764566411149314/737096075063590922 'is this good?' No, use the guide i told you
@opal plank need help with the thing from yesterday
Alright
@torn ravine wutup
sending myself a DM when I join a server
is it guild_create when the bot joins a server?
no
its an event
guildCreate
@opal plank There's nothing here about trigger words :/
The closest thing is message reactions
its not about trigger words
its about learning how to the get basics
before you even do that
those 3 lines show you dont know the basics of a bot
how would I get data on the newly joined server?
https://discordjs.guide/creating-your-bot/#creating-the-bot-file @sudden hedge there are steps before this guide that i sent you, look at them too
@torn ravine when the event is emitted, it emits the guild object. from there you can get id or whatever you want
yeah, once you have that. you can submit your bot
its not for my bot, its for a bot that was already functioned/accepted
Like, can you makea vote page for your bot?
Ah ok
@halcyon ember use hastebin
collector.on('collect', msg => {
if(msg.embeds[0].description.startsWith("Congratulations")){
wins += 1
lossstreak = 0
balance += amount*multiplier-amount
amount = amounts
} else {
losses += 1
balance -= amount
lossstreak += 1
console.log(lossstreak)
if (lossstreak == 1){
amount = amounts*lossmultiplier
} else if (lossstreak == 2){
amount = amounts*lossmultiplier*lossmultiplier
}else if (lossstreak == 3){
amount = amounts*lossmultiplier*lossmultiplier*lossmultiplier
}
}
});
resolve();
});```
im doing this
USE HASTEBIN
but it adds to lossstreak 2-3 times each time the else is called
how do I get guild member size from guildcreate event
so, why you using collectors like that again?
you can set filters on collectors for when they finish @halcyon ember
no need to promisify them
so, why you reacting to embeds again?
users cant send embeds, so you either reacting to your own bot(which is stupid since you can pass values around) or reacting to someone elses bot(which is also stupid)
pog dylan
thats checking if it starts with it
thats reacting to an embed
reacting in this scenario means triggering, activating
not replying
nah
the other bot is yours?
ye
would recommend IPC
you submit a bot, once its done
oh
instead of parsing values, just send them over to the different bot via IPC
im testing it with my own but i want it to work with other bots later
how are you done
Can someone help me make my own music bot 🙂
🤔
plus thats not the problem
I said its not for my bot :/
the probelm is its running from the top over and over regardless if its completed or now
not*
Its not for that* bot
whats your while statement?
however all bots are manually reviewed
while (runs > 0) {}
and it will take 3+ closer to 4+ weeks to review
also your arent returning anything in that promise
you are defining objects which gets voided @halcyon ember
then its already got a vote page
@opal plank I created an embed
@torn ravine nicee
now this is what I'm doing
Doesnt really work
thats correct
ye
it works for everyone else
now how would I fetch myself?
I mean, usually it doesnt let you click anymore
you already did it IF6, just add your id
it does for me
lol
everything else in it works fine
just the thing gets ran over and over and over again
i think your right @sonic lodge
regardless if its finished
where are all these variables?
they are set at the top
at way beginning theres var wins = 0
So i am back again but this time my purge is not working and i was wondering if anyone noticed something wrong with my code
if(message.content.startsWith('${prefix}purge')){
if(message.member.hasPermission("MANAGE_MESSAGES")){
const command = "@purge@";
let deletecount = message.content.slice(command.length)
if(!deletecount || deletecount > 100 || deletecount < 2)return message.channel.send('Please provide a number of messages to delete between **2 and 100**');
message.delete();
message.channel.bulkDelete(deletecount)
message.channel.send('Successfully deleted **${deletecount}** messages!');
}
}
})```
whats not working?
error?
so this is supposed to be a purge command
no the variables work correctly
but nothing happens
the stuff in the else {} aren't
Is it possible to make a code like when someone votes the bot it automatically gives them a coin
yes, using the dbl api, and webhooks
oh
So do i need to add a else variable?
@opal plank oh yeah you're right because there's no message event
yup
well there is but this isn't it
well, yeah, im going by what you're showing me
i would append that method onto the returned user btw
instead of defining it
I don't think I really need async here do I?
nto really
you're defining "async" as the guild variable that guildCreate gives you lol
was about to mention that
idk if it even allows you to do that since async is a reserved word
nice
IRC relay lul
@jagged crater im not quite sure whats even going on in your command.
command is = to @prefix@
slicing that from content
your not checking if the remaining content is an int, or parsing it into an int.
relayCeption
anyway
alright thanks
i should go back to coding tbh, parsing those messages are going to be a pain
well, you providing help
at least you helping in some way
technically 'being productive'
erm...
the fact that this is not highlighted should indicate to you this is an unused declared variable
hm
Joined is light blue cuz its used
guildcreate isnt
your bot must be approved
@sonic lodge need how much time ?
3+ weeks
can u come dm
what do you need help with
dm !
just ask here
thank you @solemn latch and @opal plank
we did it reddit 
hello,
Little error
(node:13) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'get' of undefined at Finish (/home/container/commands/play.js:73:38)
CODE https://hastebin.com/yuyufimepo.js
(this going about a queue for music)
- Keanu
!eval msg.guild.members.filter(mem => mem.user.bot === true).size; => msg.guild.members.filter is not a function
@earnest phoenix if you're using Discord.js, it's .members.cache.filter on v12.
ofc ty
As for your first error, it could be options.active.get(dispatcher.guildID); with .active being undefined.
var fetchedData = options.active.get(dispatcher.guildID);
also, where did you copy that code from?
i didnt copy the code haha
would this count as collecting data from an API?
a good friend helped me with a tutoriol
yea
bad
ok
i will say i to him!
so your friend gave you code?
use const every once in a while or let
you arent even coding?
iam coding! haha
const is for constant, stuff that doesnt change
a friend helped me with music
let values can be changed
I like using const to represent important variables
its not about important variables
var will be used when the value is going to be changed
I know
i will change it to my own code than haha like i would do it
if you try to change a const it will say 'x is already defined'
^^
yea i know
switch everything to let if you really that lazy
im not lazy haha
using let is fine
start by fixing all those vars
vars ignore scopes
which is really bad
so, first thing, patch all that and re-run code
yea did it already haha
same error?
lets test
||should give same error||
same error
also functions should be declared before they are called
aha
the thing is everything worked on my friends side that helped me so strange
but yea
¯_(ツ)_/¯
so where do i need to declare it?? im new to YTDL and functions
var indeed ignores scope
like var is always global?
i have so many questions now
dont use vars basically
oops
like okay.
if you var something in an exports, and require that export, but not that var(just somewhere else)
is it acessable
never used functions got a whole team behind me for my official bot so yea we are putted into teams one does this one does that etc, and yea i wanted to learn some music but sadley its a bit harder than i thought, where do i need to declare the functions??
i got some science to do
lol
who was it?
lol
imagine
damn there's var all over my code

use let/const
its luckily an easy fix
but yea now iam stuck to declare that erwin said haha
imagine this
replace \bvar\b with let
replace with const
and fix the errors as they come
console.log(a)
const a = 1;
@fossil token what would happen here?
ow shit! haha its late let me think haha
I wont let me add Carl bot in my server
iam still learning btw so you know
thats the most basic example i could give dude
i know
if you dont know that i'll foward you to the d.js guide
its a trick question. a is an actor
shhh dont help em'
lol
Can someone explain this?
but is almost 4 o clock here in the netherlands so my brain isnt working 100%
looks like a json
bruh, its a 2 line code
you'd need 1 functioning braincell to awnser that
so
but it makes sense to var variables tha tshould be accessible anywhere in the file right
just awnser the question or come back tomorrow
I cant add Carl bot and others when it has let me add them before
I have a config.json file but it the eror says:
throw err;
^
Error: Cannot find module 'config.json'
Require stack:
- /Users/kamolkhon/Desktop/DiscordBot/index.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:965:15)
at Function.Module._load (internal/modules/cjs/loader.js:841:27)
at Module.require (internal/modules/cjs/loader.js:1025:19)
at require (internal/modules/cjs/helpers.js:72:18)
at Object.<anonymous> (/Users/kamolkhon/Desktop/DiscordBot/index.js:3:16)
at Module._compile (internal/modules/cjs/loader.js:1137:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
at Module.load (internal/modules/cjs/loader.js:985:32)
at Function.Module._load (internal/modules/cjs/loader.js:878:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [ '/Users/kamolkhon/Desktop/DiscordBot/index.js' ]
}```
ask in their server @twin wadi
im using discord.js and i have a command where i have it like two settings
one is for one webhook
another is for the other trigger
how i do that like make it detect stuff like
webhooksend (option) then text lol
if you ask for spoonfeeded code remember mods will give you warnings about it
I cant get in it
its in the rules
yea sorry buddy but its late 🤔

ngl, i thought it was a trick question at first
its a very simple thing about how js code is ran
yeah
if he 'coded' all that, it would be easy for him to anwser
im assuming all that was copy pasted
im still here btw it isnt copy an pasted! so as i said iam still learning! and i used a tut for music of my friend!
so... you copied it and didnt understand what this did
you are using async, one would assume you know what syncronous and async code is
Bruh what's this. I have a config.json file but the error says:
throw err;
^
Error: Cannot find module 'config.json'
Require stack:
- /Users/kamolkhon/Desktop/DiscordBot/index.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:965:15)
at Function.Module._load (internal/modules/cjs/loader.js:841:27)
at Module.require (internal/modules/cjs/loader.js:1025:19)
at require (internal/modules/cjs/helpers.js:72:18)
at Object.<anonymous> (/Users/kamolkhon/Desktop/DiscordBot/index.js:3:16)
at Module._compile (internal/modules/cjs/loader.js:1137:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
at Module.load (internal/modules/cjs/loader.js:985:32)
at Function.Module._load (internal/modules/cjs/loader.js:878:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [ '/Users/kamolkhon/Desktop/DiscordBot/index.js' ]
}internal/modules/cjs/loader.js:968
throw err;
^```
config.json needs a path









