#development
1 messages Β· Page 534 of 1
xD
i think u can do like <Promise>.then(callback.call(this))
iβm not really sure as I never use any sort of binding for functions
I know what call/bind does
Then you should know that thats pointless

You don't need to provide a this argument if you use an arrow function
never ask the same thing in 2 channels smh
smh
smh
what is the question?
commands do not work here, the only places that commands will work is in the testing channel @empty compass
Well if you run a help cmd in any channel you'll get a bunch of dms
how could i tell if there is no message.content
like i tried if(message.content == "")
so like
or !message.content
but it wont work
no i
well
idk
idk if theres something there
but like if you sent an attachment
theres no message.content
uh
what about embed though
no thats not it
+eval message.channel.fetchMessage('521522475222433821')
.then(res => {
if(message.content == 0) console.log('hi')
})
i did that
message.content == 0
i can tell if it has an attachment
but i cant tell if it has no message.content
cuz u can send or not send a message with the attachment
yk what
wait so "" didnt work?
yes
ok 1 sec
im stupid
it would not work
i did message.content == 0
lmao
y tho
lol
what do you need to check
.length
message.content.length == 0
now that works
yeah im used to C# lol
with just an image or embed they can
^
or you can just edit a message into nothing
true
oh wait they patched that
that's a bug tho
yep
@hoary stag it failed to connect
okey
.
Is there a way as a bot owner to unsubscribe from channels?
you mean for the bot to ignore certain channels?
ok ik that's a known bug, but every time i refresh the discord applications page, my bot gets another token, w0tf should i do, cuz i can't connect my bot
bcs i refresh the page, bot gets another token, and i can't use it in my code
The old token still works
It only disables those tokens if you used the refresh token button
i can't get the old token fok me
regenerate*
You don't need the old token
Any token shown on there will work
Untill u hit regenerate
nope it doesn't
Then you're doing something wrong
π

π
wot
did you even put it in env
ok wtf is this
it worked before and now it doesn't
when i set command that can be used by my id only it works for others 2 lol
Code π
The way I understand it to work is that any channel can invite my bot to their channel right? Can I as the owner of the bot force it to leave those channels?
I'm using Discord.js
hmm ok, I'll check the API
client.guilds.get(id) to get the guild
The bot console isn't aware of what servers it's connected to right?
I can only determine that through code?
make an eval command
List all servers with corresponding name and ID
client.guilds.map(g => 'Guild: ' + g.name + ' ID: ' +g.id).join('\n')```
Assuming that you have an eval command
```javascript
client.guilds.get('ID').leave();
it is if you run it in a browser environment
for example, if you run your bot in nwjs or electron, you can access it through the developer tools console and interact with discord in real time
But who does that π
Hi !
Who can help me ?
I have a problem
My code
My error : `/home/Akimitsu_Dev/commandes.js:83
const { body: buffer } = await snekfetch.get(member.displayAvatarURL);
^^^^^
SyntaxError: await is only valid in async function
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:617:28)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Function.Module.runMain (module.js:694:10)
at startup (bootstrap_node.js:204:16)
at bootstrap_node.js:625:3`
```js
<code here>``` pls
what
whats your native language
French
ok
i assume you have
function (){
// ...
await thing();
// ...
}```
or something
like that
am i correct?
mmmmhhh
you can edit my code ?
Plz ?
@west raptor
Hum no @west raptor look my code
this is not async https://perfectly-balanced.as-all-things-should.be/i/npjr.png
What @west raptor ?
Ok ^^
Google translate:
La fonction n'est pas asynchrone
So ?
wait ne peut Γͺtre utilisΓ© que dans une fonction asynchrone
For test my canvas i set thi in command but this command work
const applyText = (canvas, text) => {
const ctx = canvas.getContext('2d');
// Declare a base size of the font
let fontSize = 42.5;
do {
ctx.font = `bold ${fontSize -= 10}px sans-serif`;
} while (ctx.measureText(text).width > canvas.width - 300);
return ctx.font;
};
const canvas = Canvas.createCanvas(700, 250);
const ctx = canvas.getContext('2d');
const background = await Canvas.loadImage('./Welcome.png');
ctx.drawImage(background, 0, 0, canvas.width, canvas.height);
// Slightly smaller text placed above the member's display name
ctx.font = 'italic 25px sans-serif';
ctx.fillStyle = '#2A2A30';
ctx.fillText('Bienvenue sur le Serveur', canvas.width / 2.7, canvas.height / 2.1);
// Add an exclamation point here and below
ctx.font = applyText(canvas, `${message.author.username}`);
ctx.fillStyle = '#2A2A30';
ctx.textAlign = 'center'
ctx.fillText(`${message.author.username}`, canvas.width / 1.7, canvas.height / 1.5);
ctx.beginPath();
ctx.arc(125, 125, 100, 0, Math.PI * 2, true);
ctx.closePath();
ctx.clip();
const { body: buffer } = await snekfetch.get(message.author.displayAvatarURL);
const avatar = await Canvas.loadImage(buffer);
ctx.drawImage(avatar, 25, 25, 200, 200);
const attachment = new Discord.Attachment(canvas.toBuffer(), 'Welcome.png');
message.channel.send(attachment);
break;```
But in guildmemberadd my code doesn't work @west raptor
I don't know why
Because the function is not async
so you can't use await
hi
rolles command?
bot.on('guildMemberAdd', async member => {
//...```
np
@normal wyvern you would have to do some research'
Software License Keys are used in various copy protection schemes. The basic idea is that only users that have acquired the appropriate license will be issued a license key enabling them to install or use the software. The key itself can be a st...
Ok
As of now i just do $guildactivate <guildId> <true/false>
Yes
It's nose and ez for now
But then later I have to keep track literall of stuff intact don't even worry
I'll do it when the time comes if i need to.
You see those emojis
On mobile it looks like :emojiName:
it may be an issue with discord
Yes
It is
It's a discord issue i know
use \β and \β
no
mobile will show unicode
I send the emoji by just doing :emojiName:

at the least
Heck out of here tony
Not by getting it or something
fine
unicode is better
you just put a \ infront of the emoji in discord
in mobile, they'll show unicode but on pc they'll show as actual emojis
\\\π©
maybe they broke it on mobile lol
You try
rip
Look at those two emojis ok

Works fine
Because that's the way discord mobile works
I wouldn't expect a change to that anytime soon
If you want your bot to work properly on mobile, don't use emojis in titles
Same goes for field names afaik
if (blackListInfo[msg.author.id]) return msg.channel.send(blacklistembed) I have this but it ignores it and let blacklisted users use commands
it saves ID's like this https://upload.kayosite.xyz/521797480732557326.png
wat
idk how to make it work
[
"blacklistedID1",
"blacklistedID2",
"blacklistedID3"
]```
..
oh
You're using the id in the fricking ..
If you want to hardcode your blacklist you can do it by putting the ids in an array like that^^
and then use if (blackListInfo.includes(msg.author.id))
its gonna corrupt soon
Because they aren't going to try using a db
I'm giving them something to work with
And a hardcoded blacklist legit doesn't matter
If you're not an ape you're not going to blacklists thousands of users
json is persistent data
a
in discord.py, does the AutoShardedClient object share the same user/guild cache?
How did you define blackListInfo
const blackListInfo = require("./JSON/blacklistinfo.json")
π

if (blackListInfo.includes(msg.author.id)) return msg.channel.send(blacklistembed)
thats what I have
Β―_(γ)_/Β―
a
b
you should do

{
"users":["user1", "user2", "user3"]
}```
I don't know how to use JSON
[
"100",
"200"
]```
idk how
const test = require('./test');
console.log(test.includes("100")); //true
console.log(test.includes("00")); //false
console.log(test.includes("200")); //true
console.log(test.includes("10000")); //false```
Works fine for me.
test being the json above
the problem is commands dont error when the user is blacklisted
it errors when they're not
idk
let args = msg.content.split(" ").slice(2).join(' ')
if(!args[0]) return msg.channel.send("Invalid ID.")
let embed = new Discord.RichEmbed()
embed.setTitle("Please wait...").setDescription("Please wait while I check a few things.").setColor("RED")
let m = await msg.channel.send(embed)
fs.writeFileSync(`./JSON/blacklistinfo.json`, JSON.stringify(args, true, 4))
embed.setTitle("Done!").setDescription("Sucessfully blacklisted.").setColor("RED")
m.edit(embed)
},```
I need this to save the user ids like this:
```'ids' {
'234'
'32423'
'324'
}``` but idk how
currently it just over writes ids
Maybe but I dont think I would ever use them for anything useful
Or if you rly want to use json
Because writefile will overwrite
You can get the entire json
Add the new user
and then write that
the problem is I need ALOT of ids possible and I need to be able to add and delete them
that's why I want to use commands
Then you should rly consider a database
mlab & mongoose is what I would recommend
If you look it up I'm sure you'll find something
whats a dict
I need them to save as a file
because they will be long term blacklists
You can always create backups if you want to be sure
I can add
You can add/remove to it
..
It's a database
You read/write to it
You could also host the database on your own system if that makes you feel more secure..
@sick cloud a dictionary is an object
with key: value pairs
π
so a python object or smtn?
can bot read messages from specific channel without prefix
prefixes are unrelated to receiving messages
discord sends message events for all channels the bot has permission to read
whatever you do with those events is your code
how could i get just message
read the docs for your library
on how to add an event listener for received messages
discordjs
lets say i want to read message
from some channel
and display it on site
for now i just need to get message content
i guess
You can check the channel with message.channel.id
It's just message.content ? π
docs are so hard to read, aren't they

?
How would I make a voter-only command?
Explain more please
nvm
If your asking how to make a command that ONLY voter can use, then you would search if the member has the role either by the I'd or name
If they don't then return a message saying that they don't have the right role.
Ok
Did you define args?
Code please?
sec
Ok
If you copied the code to get args and stuff from somewhere without actually understanding how any of it works
You probably won't be able to do many changes to it 
Yes
client.on("message", async message => {
let testmessage = args.join();
const testchannel = bot.channels.get("513436447425036320")
client.channels.get(testchannel).send(testmessage)
you don't have args defined
Args is not defined
@earnest phoenix just do message.content
Yes
No need for .join
Or message.content.startsWith();
How can I make my bot run forever I use node.js
Vps
That code would send a message everytime it receives a message π
Also you already got test channel you don't need to find it again @earnest phoenix
@earnest phoenix if you have a VPS already then npm i forever
@earnest phoenix VPS is better
Is forever God, or is it just like pm2
Forever is better than pm2
pm2 is better lol
Rip
I just use nodemon
For production?
For both for now, til I get a vps, I am a guy who wants free things that don't need a credit card
My bot is really stable for now, it hasn't died yet
If your going to code your bot I would at least pay 3/Mon for a vps but just me
I wouldn't if I can get it for free
I suggest for beginners to use node or nodemon
might run it on a PI
;-;
@late hill that's like saying why buy a meal when you can eat crackers
No
Then you missunderstood
If I can get a free service to suit all my needs
I will not pay
Yes
I demand there to be a free lifetime vps
That's very wrong
There's free hosts which are located in the uk
with a good ping
under 30ms
Really?
Which run like shit yeah
Nah
But do you need to have a credit card to get one?
No
ping is a shit measurement
Ummmmmm
@late hill link me one so I can compare
Yes
I can legit host my bot on a free platform
also just ping means nothing
ping is only meaningful if all measurements are to the same place
And 30 Ms is pretty fast
yes but 30ms to what?
I'll use VNC
xd
Just in general, the US has many things that are around 100ms
Yes
What's the website?
Cuz they are too stupid to set them up properly
Lol
The most known ones would be glitch and heroku I guess? xd
im angry at node
Heroku I have, but struggling with setting it up
I've never used glitch
I seen good reviews, but I don't understand the git and vps thing
glitch for da win
Glitch is for people who want to look stupid
@vernal rivet no uβ’
client.on("message", async message => {
const messageContent = message.content;
});```
Nah
@earnest phoenix ?
I'm cheap af
Oof
He's asking how to get the messag content
And wants an example
I already told him it's just message.content
π€·
okay
Message.content is a method you use to check if the message contents it, so it's very unnecessary to name it
^^
Sorry
lol
I was right about the function of it at least
it returns parsed content
you can use cleanContent to get the content
that's raw
but clean
Shhhh, no one needs to know that π
what
did (); cause problem?
No it needs to have();
you don't need it on message content
Oh really?
I don't use the message.content property
do you own a bot
Yes
does it have commands
Yes
π
I don't have the message.content.startsWith(); thing
oh so you have no prefix LUL
I do
you use message content if you have commands in your bot
what if i use commando
i was ragging over ;
but what is cmd
lol
It's a messageArray[0]
that's basically the same as startsWith
and just as bad
and messageArray is most likely message.content.split(' ')
Lol
i use regex
It's easier to make commands at least
require("./commands/" + name)(message)
It's only commands like ping, if it's too small, or has multiple commands but shares the same function I have them in the bot file
that's disgusting
π
It is, but it works
But it's ass to read
Bet
I comment each section for what each thing is
That's bad programming habits, lol
good code should also have docs
Yes
all good code has docs
It's the opposite of bad habbits
I agree with the docs, but comments are only used to define something that the programmer knows that someone else won't understand it
Yes
It's your job to make them understand
Which you can in most cases do without comments
I only use comments to do that, and make it easier for me to find stuff
comments are useful to explain why something is what it is
This is where I say fight my apcs teacher, he will strongly disagree with you about comments, lol
when you spend 1 hour looking for free VPS hosting, find nothing, continue looking...

That's what I did, but for two whole days worth
I'm just saying
wow
Why put a comment if you can replace it with a function
lol
Why not, why put a function if you don't need a function?
because they're different things?
Lol
You don't need comments on every block of code
I don't do that
okie
I only do it for big section, duh, I am not that dumb. If it's music section I put a comment saying music and that's it
Of course it's going to have more than just music, I was just making it clear that I only make comments for a section or genre of things, if it's music I make a comment about the music function, settings have a settings comment talking about it's in here, etc. I don't do it by each command, that's stupid and unnecessary to do
xd
A good code would have little comments, yes, but sometimes the programmer doesn't have good beginning comment, that they have to make more than one, but really you only need at least 10 comments for a code that is about 1,500 lines, lol
yes
If it's short, then 1 should work for about a 100 - 300 line code
lol

Oops! Error: 401 Unauthorized
Why do I keep getting this in logs?
It doesn't affect the bot, it just says it
anyone have any knowledge of the shards and websocket? Please DM me
I do
@sick cloud ok my shards are failing to log in and this is a recent thing. After check discord.js it doesn't appear they have made any major changes to shards but now all of a sudden the only errors i get are because of shards
What could cause them to fail to log in
Error [SHARDING_READY_DIED]: Shard 1's process exited before its Client became ready.
Discord API is memeing a lot for big bots
what does that mean exactly?
@earnest phoenix discordjs right?
i use
const Discord = require('discord.js');
const { TOKEN } = process.env;
const Manager = new Discord.ShardingManager('./Botty.js', { totalShards: 'auto', token: TOKEN });
Manager.spawn() ```
of course set token to wherever you token is located
oof
Mikes problem is all fixed up, seems it was something else in his shard file that was causing the errors
Does anyone know how to make a custom emoji?
@earnest phoenix Paint 3D?
Or Photoshop
Or Adobe InDesign
But those two cost money
I just use my school's Adobe programs to do that shit
Lmao
u can use anything and upload it to discord
Anyone know how to get your app to be authorized?
I'm having a hard time figuring it out, would much appreciated if someone could help.
What is the Redirect url @sick cloud ?
I used the example function get_token() it works, but only for the bot owner's account and not others, do you perhaps know the solution for adding it for users that add my bot as well?
Do you have a solution in the language you're using?
not really
text
.replace(':skin-tone-1:', '').replace('π»', '')
.replace(':skin-tone-2:', '').replace('πΌ', '')
.replace(':skin-tone-3:', '').replace('π½', '')
.replace(':skin-tone-4:', '').replace('πΎ', '')
.replace(':skin-tone-5:', '').replace('πΏ', '');
``` why didnt this work
doesn't it also need the ids?
skin tones only go on human emojis and not the yellow ones
Only hand emojis and ones of people will take skin tone the rest wont
the api has the skin tones though
you are using an emoji that cannot use skin tones
ππ½π΄πΌππ½ββοΈ emojis like this take skintones
the regular emojis do not
how to calculate double integrals?
who uses mysql and does djs client sharding?
@soft plaza i think @earnest phoenix had mysql and shards going
Np
is there a way to fix the whole widget is cached thing
i cant seem to find a way to make the widget display the current amount of upvote instead of an old amount in a embed
I feel like a total dumbass, but I rarely use exports like this and I cannot for the life of me figure this out -
const db = require('./mariadb.js')
const cps = function getCPS(userid) {
db.query(`SELECT mystuffgoeshere FROM table WHERE userid = ${userid}`, function (error, table, fields) {
db.query(`SELECT mystuffgoeshere FROM tableagain WHERE userid = ${userid}`, function (erroragain, tableagain, fieldsagain) {
//some error stuff here normally
var baseCPS1 = Math.floor(1.1); //this normally has calculations
var baseCPS = Math.floor(1.1); //this normally has calculations as well
return baseCPS;
})
})
}
module.exports = cps;
But when I call the function when requiring it like so
let thing = require('../utils/getCPS.js');
thing(<userid goes here>)
It returns undefined
when you return in the callback it doesn't reach the outer function
The easiest solution would be attaching a callback
I've fiddled for like a good hour and couldnt get something to work
yeah callback is an alternative to promise but pls no π
I tried wrapping it in a promise as well
Do you know how to create a callback?
function (userID, callback) {
//Async code
callback(baseCPS)
}
Something like that
const db = require('./mariadb.js')
const cps = function getCPS(userid) {
return new Promise(function(resolve, reject) {
db.query(`SELECT mystuffgoeshere FROM table WHERE userid = ${userid}`, function (error, table, fields) {
db.query(`SELECT mystuffgoeshere FROM tableagain WHERE userid = ${userid}`, function (erroragain, tableagain, fieldsagain) {
//some error stuff here normally
var baseCPS1 = Math.floor(1.1); //this normally has calculations
var baseCPS = Math.floor(1.1); //this normally has calculations as well
resolve(baseCPS);
})
})
})
}
module.exports = cps;
Then, in the other file,
thing("ID, baseCPS => { console.log(baseCPS)})```
hm I see
I tried what Tonkku just posted but I did something differently lemme see what I did
oooh I see - alright
Thank you 
The call back is hella straightforward
we're trying to get rid of callbacks cuz they're hell
thats why promises and async/await exist
Most of my stuff is promise based
async/await is the least hell
^
Can't escape it with async ops in JS
async/await is godlike ππ»
after i learned how to properly await promises, i felt like jesus learning to walk on water
hah
Well, a bunch of await statements in a try catch looks ugly too
My preference in that case would be to chain promises
better await 5 times than 5 callbacks inside each other
Promise.all > all
That won't run things one after the other
just keep this in mind with await https://medium.freecodecamp.org/avoiding-the-async-await-hell-c77a0fb71c4c
So it won't apply in all cases tim
it applies to parallel computing
usually tho
@inner jewel Thanks
I await something, then await something else with the data from the first function
if the multiple awaits have no dependencies between them, just use destructuring + Promise.all
I dont think I've ever been in a situation like that thumbnail
[a, b, c, d] = await Promise.all([getA(), getB(), getC(), getD()])
[e, f, g] = await Promise.all([getE(a), getF(b), getG(c)])```
Tim Tom
promises = [];
for(i = 0; i < something.length; i++) {
promises.push(new Promise((resolve,reject) => {
resolve("thing")
}))}
resolved = await Promise.all(promises)```
hue
The woes that we have in asynchronous JS: one solution creates another problem
all solutions create more problems
await Promise.all(Array(something.length).fill().map(() => (async () => "thing")()))```
Mmm, I could beg to differ, but that's out of the scope of this channel
y tho
are you saying you have discovered the elixir of life? the one solution to all problems?
Yes, Tim
Here's some code I did for turning a gist into a standalone webpage that could be useful for command lists https://gist.github.com/TheEssemCraft/24af72180637ca1b16bad16494b4e36b
It also updates when you update your gist
@lament meteor wdym
I installed FFMPEG from the website into my node modules and it says FFMPEG not found
whats the opus engine module called?
For nodejs itβs node-opus
To install with npm npm i node-opus βsave
node-opus or opusscript
ty
ios does that
my bot has commands like .command --option1=ok --option2=bla and i had to add corrections for that
because so many people had their phones automatically convert -- to long dash lol
yarn 
how can i get all members with same role
e.g. role asd, and i want to give them new role
what lib
discordjs
message.guild.members.filter(m => m.roles.has(role id))
that'll get all members with that role
can i get roles by name?
i'll try
one more question
im searching but cant find a way to replace role color
well I mean isn't there a way to mention a role and have the bot find the id?
no need
Roles are sorted by IDs. And names
just remove <@& and >
Yes
and you'll get the id
But that only works for single server bots
wdym
Each role has a different id
yes
You can search for the name
whats wrong with that
If the person wants to see the person's role is equal to let's say dj, if you do it be the I'd, then your only doing it for one server and not other servers
var role = message.guild.roles.find("name", "RoleName");
That's decrepit
yeah you cant use find like that anymore
message.guild.roles.find(r => r.name==='RoleName')```
Yes
You should be telling him this, and not to search for the I'd, cause he is a bot developor, and his bot is approved, so it was made for anyone
what does he even want to do
It's best to do hex color
No hex color is a system
#ffffff is equal to white
.
Let me check
Bet
$5?
how do i post my bots shard/server count? i literally have never had to do shards manually
Paypal or cash?
Here, and your right
Bots are not allowed to:
β’ Break the Discord Terms of Service
β’ Have NSFW names/avatars/command responses (in non-NSFW channels)
β’ Advertise anything NSFW in the short or long description
β’ Be a clone or fork of another bot
β’ Contain malicious scripts/code
β’ Hide the report/delete/vote buttons
β’ Vote in behalf of the user
β’ Autoplay video or audio
β’ Use CSS/JS or anything to hide DBL placed ads/banners
Bots in the queue will be declined if they:
β’ Do not comply with the bot rules
β’ Are offline
β’ Fail to provide an easily accessible list of commands
β’ Have no actual features
β’ Allow NSFW content (including but not limited to the Urban Dictionary, links that source to pornographic material) outside of NSFW channels.
Bots will be kicked from the server if they:
β’ Send join messages/mass messages/advertisements in direct messages
Bots will receive a mute if they:
β’ Spam testing channels
β’ Send level up messages (these should be disabled for this server)
β’ Reply to other bots
β’ Go rogue
β’ Respond to non-prefixed commands
β’ Send automatic messages without being triggered by a prefixed command
Any existing bot that breaks the rules will be deleted.
Please do not flood this channel with unnecessary things
{ server_count: guildCount, shard_count: client.shard.count } so is something like this okay
Tbh I haven't worked with sharding before, you might need to look at the discord developer docs for that
Does anyone know a bot with a calculator cmd?
Btw @sick cloud why can't u just use dblapi.js 
can someone help me?
I have this code
return message.react.name("white_check_mark")
Is it going to do what it should and react to last message?
did u send it?
oh ok
wait
@faint junco react is a function not a property
\β
ik
.
message.react('β ')
k lemme try that
ik
if (lastFlip !== null && cooldown - (Date.now() - lastFlip) > 0 ) { message.channel.send(Sorry, you have to wait ${timeObj.seconds}s ${timeObj.milliseconds}m!`)
} else {
if (currentMoney < 1) return message.channel.send('You do not have enough money! Price: 1 BB')
` this messed me tmy bot up
if (lastFlip !== null && cooldown - (Date.now() - lastFlip) > 0 ) {
message.channel.send(`Sorry, you have to wait **${timeObj.seconds}s ${timeObj.milliseconds}m!**`)
} else {
if (currentMoney < 1) return message.channel.send('You do not have enough money! Price: 1 BB')
it replies with Sorry, you have to wait 4s 809m!
But I want to get rid of the last digit
ok
thats not it
i must be dumb but i can't see the issue
shouldn't it define /src/ on ./commands & ./events since it's in the same dir?
nvm i fixed it
Aye so when can a message's author be null?
Cus i got weird stuff happening with messages having null as author
when a webhook sends it
Nope, i was dumb and parsing message_update as if it was message_create
message_update is allowed to skip parameters that havent changed
: )
thanks anyways tho
Did this kid actually tag mods because of his birthday lmao
- dont ping all mods
9. What is this
Yo, ppl. I am currently developing a framework for a better Discord Bot developing experience. Doest someone wants to get know about that framework more, and maybe try that out? π
Used lang is JS with Typescript declarations
@sly girder sure, dm me
dblapi.js
webhook is undefined
Oh
const dbl = new DBL(yourDBLTokenHere, { webhookPort: 5000, webhookAuth: 'password' });
What will be password? @quartz kindle
Hey Tim!
yes
You can't use a discord webhook
What do I do then?
dblapi.js does that already no?
Oh
it should receive requests on port 5000 in your ip address
Yes
you just need to configure your firewall, depending on where you're hosted








