#development

1 messages · Page 1542 of 1

spring bane
#

Who here is good at node.js?
I need help

pale vessel
#

with what

#

"I need help" doesn't say anything

unreal dagger
#

hey so i need help making a bot so when i go to cmd and type in cd desktop and then cd Discord bot and the discord bot one it says The system cannot find the path specified.

spring bane
#

Some weird thing with a switch case and a let variable not working together. Can I stream it to you?

unreal dagger
#

me?

pale vessel
#

what's the error?

unreal dagger
#

idk

pale vessel
#

and you can't stream here

spring bane
#

The variable looks like it is null inside of case "stop" but not inside of case "play" even though it was instantiated outside of the switch scope.

unreal dagger
#

yeah i can

#

can you dm me

spring bane
#

sure

spring bane
pale vessel
#

can you show your code?

spring bane
#

sure

#

Is it ok if I call you instead?

pale vessel
#

can't right now

spring bane
#

ok

pale vessel
#

a screenshot would suffice

spring bane
#

one moment

pale vessel
#

break; should be inside the {}

spring bane
#

oh

#

ill see if that helps real quick

#

should it also have the same indentation as other lines in the case?

pale vessel
#

it doesn't matter

#

but sure, to make your code clean

#

it would matter in languages like python where indentation is crucial

spring bane
#

ok

pale vessel
#

did you use the play command first

spring bane
#

yes

spring bane
pale vessel
#

debug

#

log your dispatcher

spring bane
#

This?

#

(1st and 2nd lines)

pale vessel
#

can you show your new code?

#

oh I think I know why

#

i'm so stupid

#

@spring bane dispatcher needs to be outside your function

#

otherwise it will keep on being undefined on every command

#
let dispatcher;

function run() {
    ...
    dispatcher = ...
}```
#

what did you do

#

can you send your full code lmao

#

you still have let dispatcher down there

#

remove that

#

and movieInterval

spring bane
#

oh ya

rustic nova
#

Tokenleak btw

#

Delete and regen

spring bane
#

oh no

pale vessel
#

Oh no

spring bane
#

im dumb

pale vessel
spring bane
#

thanks for catching that

ashen sigil
#

I want a code so that if you type in a particular chat, the bot will send an image to other chats

mellow kelp
#

that's not very specific

#

and we aren't here to spoonfeed

rocky hearth
#

Can somebody tell me, what these packages are used for, in my react project?

    "@testing-library/jest-dom": "^5.11.4",
    "@testing-library/react": "^11.1.0",
    "@testing-library/user-event": "^12.1.10",
sacred trout
#

for ex this

#

how can i add the number of members in each server?

#

and print it

agile lance
sacred trout
#

yup

agile lance
#

oh sorry man i cant help

sacred trout
#

np

agile lance
#

try something like

#

server.memberCount

sacred trout
#

for members in client.guilds:
print(members in server)

agile lance
#

maybe that’ll work

#

you can also look at .py docs

sacred trout
#

this prints member names

#

yea

agile lance
#

might help

sacred trout
spring bane
#

Does anyone know why

message.channel.bulkDelete(10);

wouldn't work?

sacred trout
#

um

agile lance
#

whats the error

sacred trout
#

show whole code

#

and error

agile lance
#

if it says missing permissions try this

sacred trout
#

are you making a purge thing?

spring bane
sacred trout
#

i can send my code if you want

agile lance
#

message.channel.bulkDelete(10).catch(e => message.reply(e))

sacred trout
#

js?

#

js or py?

agile lance
#

@sacred trout he using js

sacred trout
#

nvm

#

sorry can't help

agile lance
#

ik js by heart doe

agile lance
spring bane
#

ok

#

the code i had used to work, did they change something?

agile lance
#

not that i know of

#

please send the error

#

@spring bane

spring bane
#
(node:4821) UnhandledPromiseRejectionWarning: TypeError: Object.entries(...).filter(...).flatMap is not a function
agile lance
#

thats not a issue with your bulkDelete

#

i can give my purge command

spring bane
#

that error only happens with bulkdelete

agile lance
#

matter of fact you can even take someone’s off github and change it a bit

#

I say try something like this

spring bane
#

i use the one provided by discord.js

agile lance
#

message.channel.bulkDelete(args[0]);

#

that will delete the first argument said

#

if ur args are defined correctly

spring bane
#

that is how I am currently doing it

#

just a different array name

agile lance
#

Objects.entries, how is Objects defined?

#

is Objects a array or a string or a integer?

spring bane
#
    const paramater = message.content.substring(prefix.length + command.length + 2);
    const paramaters = paramater.split(" ");
agile lance
#

if it returns [object Object] that could be ur issue, try inside console calling Objects

spring bane
#

i have tried it with a sting and with an array

agile lance
#

Huh

#

I would say stick to a basic purge cmd

spring bane
#

it give me the same error even when i do

message.channel.bulkDelete(10);
agile lance
#

some function along the lines of this

#
function doPurge(message, args) {
    var purgeamnt = args[0];
    var purgelimit = Number(purgeamnt) + 1;
    message.channel.messages.fetch({ limit: purgelimit }).then(messages => {
        message.channel.bulkDelete(messages);
        message.reply("deleted " + messages.array().length + " messages, including deletion command.");
    }).catch(err => {
        message.channel.send("Failed to delete messages. This may be caused by attempting to delete messages that are over 2 weeks old.");
    });
}```
earnest phoenix
#

Is having many events in discord.js against discord tos? It gives me erros i have like 3 msg events and 2 guildmemberadd ev.

#

Nvm

agile lance
#

ratelimited

umbral skiff
#

How to create webhook for bot

earnest phoenix
#

webhooks are unrelated to bots

#

did you mean to ask how to create a webhook with a bot?

pure lion
#

Is anyone familiar with threejs

earnest phoenix
#

in which library

umbral skiff
#

?

#

Confuse can u give idea for python

earnest phoenix
#

...which library are you using

#

dpy?

eternal osprey
#

hey guys

#

does anybody know a database with bad words?

#

I am too lazy to type in every bad word myself..

lusty quest
#

what did you want to do?

eternal osprey
#

profanity filter.

lusty quest
#

like a Machine learning dataset?

eternal osprey
lusty quest
#

well just use trumps twitter feed

eternal osprey
#

i need trigger words for that

#

whahahahha

lusty quest
#

alternative idk maybe join a Modern Warfare 2 lobby

eternal osprey
#

sheesh always got bullied back in the days of bo1 and bo2..

lusty quest
eternal osprey
#

ah that's a giood one too!

#

Thanks

pale vessel
#

have you seen the regex one

eternal osprey
pale vessel
#

open the regex one

#

this shit

lusty quest
#

wtf is this regex

pale vessel
#

ikr

#

lmao

#

i wonder how fast this is

eternal osprey
#

uhhh

#

i rather use arrays

lusty quest
#

the page ive sended you gives you datasets ready to get used for Machine learning

earnest phoenix
#

profanity filters are useless on discord

#

the number of ways to bypass them are so huge that if you make it sensitive enough to include that range

#

you'll get way too many false positives

#

1111998^1990 is the approx. number of how many combinations there are on discord to bypass filters

#

most calculators can't even calculate that big of a number

#

profanity filters work only where you're restricted to a specific set of characters to use

eternal osprey
#

yeah i understand.

#

It worked so far!

#

however, i am trying to send a message to all channels.

#
client.channels.forEach(channel => {
        if(channel.type === 'text') channel.send(exampleEmbed).catch(console.error)
    })```
#

client.channels.forEach is not a function

#

nvm it should be cache

cinder patio
#

looks like api aboose

undone light
#

pog

lusty quest
eternal osprey
#

const getInsult = require("insults") console.log(getInsult()); \

#

why is this returning getInsult is not a function

lusty quest
#

is it a function?

eternal osprey
#

no..?

lusty quest
#

so then you cant call it as a function

eternal osprey
#

hmm okay

#

but like, i was lookin at w3schools

#
function name(parameter1, parameter2, parameter3) {
  // code to be executed
}``` what are parameter1,2,3 standin for.
lusty quest
#

it depends on what the insult modules exports as getInsult

#

if it exports a function it should work but it doesnt looks like it

eternal osprey
earnest phoenix
#

Guys can someone help me when i make a embed it says Client is undefinied but i am on v12

lusty quest
eternal osprey
lusty quest
lusty quest
eternal osprey
#

i read the fucking docs

#

well, doesn't seem like much info

lusty quest
#

gg in using a package that got the last update 4 years ago

eternal osprey
#

oooooo bruhh

#

i just saw that

cinder patio
#

love how earlier you wanted a profanity filter and now you want your bot to send insults

eternal osprey
#

and then throwing an insult at their fucking heads

lusty quest
#

so you want your bot to insult them back?

eternal osprey
earnest phoenix
# lusty quest send a code snipped of the area that errors out, please put it in a codeblock, i...
2021-01-23T10:40:29.992212+00:00 app[worker.1]: /app/node_modules/discord.js/src/structures/MessageEmbed.js:132021-01-23T10:40:29.992242+00:00 app[worker.1]: Object.defineProperty(this, 'client', { value: message.client });2021-01-23T10:40:29.992243+00:00 app[worker.1]: ^2021-01-23T10:40:29.992244+00:00 app[worker.1]: 2021-01-23T10:40:29.992244+00:00 app[worker.1]: TypeError: Cannot read property 'client' of undefined2021-01-23T10:40:29.992245+00:00 app[worker.1]: at new MessageEmbed (/app/node_modules/discord.js/src/structures/MessageEmbed.js:13:60)2021-01-23T10:40:29.992246+00:00 app[worker.1]: at Client.<anonymous> (/app/bot.js:47:16)2021-01-23T10:40:29.992247+00:00 app[worker.1]: at Client.emit (events.js:314:20)2021-01-23T10:40:29.992248+00:00 app[worker.1]: at MessageCreateHandler.handle (/app/node_modules/discord.js/src/client/websocket/packets/handlers/MessageCreate.js:9:34)2021-01-23T10:40:29.992249+00:00 app[worker.1]: at WebSocketPacketManager.handle (/app/node_modules/discord.js/src/client/websocket/packets/WebSocketPacketManager.js:102:65)2021-01-23T10:40:29.992250+00:00 app[worker.1]: at WebSocketConnection.onPacket (/app/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:325:35)2021-01-23T10:40:29.992250+00:00 app[worker.1]: at WebSocketConnection.onMessage (/app/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:288:17)2021-01-23T10:40:29.992250+00:00 app[worker.1]: at WebSocket.onMessage (/app/node_modules/ws/lib/EventTarget.js:103:16)2021-01-23T10:40:29.992251+00:00 app[worker.1]: at WebSocket.emit (events.js:314:20)2021-01-23T10:40:29.992251+00:00 app[worker.1]: at Receiver._receiver.onmessage (/app/node_modules/ws/lib/WebSocket.js:146:54)2021-01-23T10:40:30.037651+00:00 heroku[worker.1]: Process exited with status
lusty quest
#

this is the error not the code snippet

earnest phoenix
#

Oh wait

#
const client = message.client;const invite = new Discord.MessageEmbed()	.setColor('RANDOM')	.setTitle('CleanUp Help')	.setDescription('To invite the bot [click here](https://discord.com/api/oauth2/authorize?client_id=802452819378307072&permissions=126160&scope=bot)!')	.setTimestamp()	.setFooter('c!help'); return message.channel.send(invite);
lusty quest
#

where is message defined

earnest phoenix
#

In the message event

earnest phoenix
earnest phoenix
lusty quest
earnest phoenix
#

yeah for casual detection it works just fine

#

however if someone, for example, intentionally wants to spam slurs

#

they're going to find a way to do it

lusty quest
#

sure, they will always find a way around

#

but with the ML stuff i can atleast reduce a lot of Administration work by just having the bot to deal with them

#

stuff like Raiding users that just spam everywhere insults as example

lusty quest
earnest phoenix
# lusty quest show your entire flow for the embed including the message handler, bcs the error...
const Discord = require('discord.js');const client = new Discord.Client();client.on('ready', () => { console.log('I am ready!');});client.on('message', message => {
if(message.content.startsWith("c!invite")){ 	const client = message.client;const invite = new Discord.MessageEmbed()	.setColor('RANDOM')	.setTitle('CleanUp Help')	.setDescription('To invite the bot [click here](https://discord.com/api/oauth2/authorize?client_id=802452819378307072&permissions=126160&scope=bot)!')	.setTimestamp()	.setFooter('c!help'); return message.channel.send(invite);}			});client.login(process.env.BOT_TOKEN);

Sry i am on phone and i have to copy it

lusty quest
#

yea you have a ghosted variable, you have the client defined as your Bot Client and then again define it inside your message event

restive furnace
#

and that seems like minified code in my eyes too

#

but anyways

earnest phoenix
#

Yeah but when i take it out from the message event there is the same error

lusty quest
#

why did you need message.client?

restive furnace
#

client == message.client in most cases if you haven't extended it

earnest phoenix
lusty quest
#

well he defines the client earlyer as a Discord.Client()

#

i dont do DMs, ended up more than once with some annoying stuff

earnest phoenix
#

okay

#

then

#

wait

restive furnace
#

also use code formatting: ```js
code
```
becomes

code
#

that js makes the code coloured

earnest phoenix
#

Hey guys, can you guys give me the documents of discord.js I can’t find them

lusty quest
earnest phoenix
#

have you tried googling

earnest phoenix
lusty quest
lusty quest
earnest phoenix
#

Alr, thanks

earnest phoenix
lusty quest
#

next time google is your friend

lusty quest
#

do you get a new Error tho?

earnest phoenix
#
2021-01-23T10:59:09.361692+00:00 app[worker.1]: TypeError: Cannot read property 'client' of undefined
2021-01-23T10:59:09.361693+00:00 app[worker.1]:     at new MessageEmbed (/app/node_modules/discord.js/src/structures/MessageEmbed.js:13:60)
2021-01-23T10:59:09.361694+00:00 app[worker.1]:     at Client.<anonymous> (/app/bot.js:13:14)
2021-01-23T10:59:09.361694+00:00 app[worker.1]:     at Client.emit (events.js:314:20)
2021-01-23T10:59:09.361695+00:00 app[worker.1]:     at MessageCreateHandler.handle (/app/node_modules/discord.js/src/client/websocket/packets/handlers/MessageCreate.js:9:34)
2021-01-23T10:59:09.361697+00:00 app[worker.1]:     at WebSocketPacketManager.handle (/app/node_modules/discord.js/src/client/websocket/packets/WebSocketPacketManager.js:102:65)
2021-01-23T10:59:09.361697+00:00 app[worker.1]:     at WebSocketConnection.onPacket (/app/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:325:35)
2021-01-23T10:59:09.361697+00:00 app[worker.1]:     at WebSocketConnection.onMessage (/app/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:288:17)
2021-01-23T10:59:09.361698+00:00 app[worker.1]:     at WebSocket.onMessage (/app/node_modules/ws/lib/EventTarget.js:103:16)
2021-01-23T10:59:09.361698+00:00 app[worker.1]:     at WebSocket.emit (events.js:314:20)
2021-01-23T10:59:09.361699+00:00 app[worker.1]:     at Receiver._receiver.onmessage (/app/node_modules/ws/lib/WebSocket.js:146:54)
lusty quest
#

remove the client = message.client line in line 13

earnest phoenix
#

what

#

line 13 is

const help = new Discord.MessageEmbed()
lusty quest
#

in your help command used to be the same

#

did you saved and uploaded the code? bcs it still tryes to set client = message.client

earnest phoenix
#

i did

#

wait i deploy again

eternal osprey
#

hey how do i make a command that restarts the bot?

earnest phoenix
#

start a new process

#

shut down the one the command is being ran in

lusty quest
#

if you use pm2 configure it to restart crashed instances, then just stop the process with code pm2 should restart it

eternal osprey
#

client.destroy() client.login(token); like this?

lusty quest
#

(not sure if this works tho)

earnest phoenix
#

that does nothing

#

it's just logging out and logging in again

eternal osprey
#

i just want the bot to restart?

lusty quest
#

stop the process and start it again.

eternal osprey
earnest phoenix
#

that does just that

#

kills the current process

#

starts a new one

eternal osprey
#

yeah that is what i want

#

how would i implement that?

earnest phoenix
#

use spawn from child_process and spawn in a detached state

#

and then process.exit() in the current one

eternal osprey
#

wait i might not need that tbh

eternal osprey
#

because i can also just use an setinterval to update and read after my info's are updated.

#

nvm, thanks for the help!

#

it would read the updated code right every specific interval>?

earnest phoenix
#

Y I’m a pinged here

#

Hello

#

Can you help me with counting letter in this:

#

please

eternal osprey
#

hey

#

how do i change the nickname of all active users?

umbral skiff
earnest phoenix
umbral skiff
#

Thanks

earnest phoenix
#

please someone?

eternal osprey
#
 const data3 = fs.readFileSync("./cases2.json", "utf8")
    if(data3 == "Enabled"){
    const randomuser = message.members.cache.array();
    randomperson = (Math.random() *0 + guild.membercount)
    message.channel.send([randomuser])
   .then(msg => {
    msg.delete({ timeout: 60000 })```
#

why is cache undefined?

lusty quest
#

bcs message doesnt contain any managers

eternal osprey
lusty quest
#

cache only works on managers

earnest phoenix
eternal osprey
#

how would i do it with servers then?

#

as cache only works for guilds

lusty quest
#

use it for the guild?

eternal osprey
#

okay

lusty quest
#

message.guild.members.cache iirc should be valid

earnest phoenix
lusty quest
eternal osprey
#

shouldn't it just be

lusty quest
#

i dont think you have to split it, since this will make it an array

#

and i think your split function is invalid

eternal osprey
earnest phoenix
#

thanks, I'll try it 🙂

eternal osprey
#
  message.delete()
            const userList = message.guild.members.cache.array();
            var randomNumber = Math.round(Math.random() * message.guild.memberCount)
            var pingPerson = userList[randomNumber] 
            message.channel.send("<@" + pingPerson.user.id + ">")
        .then(msg => {
            msg.delete({ timeout: 0 })
  
  })

    }```
lusty quest
#

string.length is also valid

eternal osprey
#

for some reason this gets me Cannot read property 'user' of undefined

#

i have defined guild.

lusty quest
#

console.log your array

eternal osprey
lusty quest
#

also the way you get the randomNumber is not good. it will be possible to generate invalid indexes

#

just use your array.size() as max number

eternal osprey
#

seems solid

eternal osprey
eternal osprey
lusty quest
#

if you use the memberCount it could generate invalid indexes

eternal osprey
#

i changegd it

#

but it still would throw that error

lusty quest
#

also why did you use the member?

#

just use the users and then call the id on it

eternal osprey
#
 message.delete()
            const userList = message.guild.user.cache.array();
            console.log(userList)
            var randomNumber = Math.round(Math.random() * userList.length)
            var pingPerson = userList[randomNumber] 
            message.channel.send("<@" + pingPerson.id + ">")
        .then(msg => {
            msg.delete({ timeout: 0 })```
#

yup got it!

#

but still would throw errors?

lusty quest
#

users

eternal osprey
#

my s is a bit catchy

earnest phoenix
#

ummm

lusty quest
#

also i think userList.length is wrong, would say you want size

earnest phoenix
lusty quest
eternal osprey
#

but it is an array

lusty quest
#

why value?

eternal osprey
#

which means that i can get the whole length using .length

#

where did you get value from>?

eternal osprey
#

np

earnest phoenix
lusty quest
#

does it show an error?

earnest phoenix
lusty quest
#

bcs value is not defined

earnest phoenix
#

um

#

?

lusty quest
restive furnace
#

pointereval cool

earnest phoenix
restive furnace
#
let counter = 0;
if (thing) {
    counter++;
}```
earnest phoenix
restive furnace
earnest phoenix
#

👁️ 👄 👁️

restive furnace
#

also name ur variables properly kthx

silk acorn
#

😎

earnest phoenix
earnest phoenix
#

xdD

#

only removes 4 characters

earnest phoenix
lusty quest
#

var is deprecated, its still there for keeping millions of older scripts functional. better use let or const

earnest phoenix
lusty quest
#

it doesnt fix the code, its just for more consistent code

earnest phoenix
#

k

#

xd

lusty quest
#

also you want to count your members?

earnest phoenix
#

umm, no I want to count name letters, and slice it by the number of letters in name

lusty quest
#

to get an array of individual letters?

earnest phoenix
#

um

#

I want to get the number of these letters so I can remove them

lusty quest
#

?

earnest phoenix
#

yyy

#

I want to make the counter number of the letters in user.id

#

I want to delete this mention

lusty quest
#

so you want to have just the name there?

earnest phoenix
#

yes

lusty quest
#

why make it simple when you can reinvent the wheel

earnest phoenix
lusty quest
#

try user.username

#

if you want the one set in the guild you need to go over the member object

earnest phoenix
#

I don't really understand

#

hey Superbrain8

#

I need help

lusty quest
burnt chasm
earnest phoenix
#

anyone can help me?

#

but

#

I don't want

#

to delete

#

mention

lusty quest
earnest phoenix
#

but

#

whole

#

username

lusty quest
#

then dont set the username?

earnest phoenix
#
const Discord = require("discord.js");

module.exports.run = async (_client, message) =>{
    let User = message.mentions.users.first()
    let mention = message.mentions.users.first();
    username1 = message
    const str = `${User.id}`
    let counter = 0;
    if (str) {
        counter++;
    }
    

    if (mention == null) { return; }
    message.delete();
    mentionMessage = message.content.slice (4 + counter);
    console.log(mentionMessage)
    const infoEmbed = new Discord.MessageEmbed()
    .setColor(`#ffff00`)
    .setFooter(message.author.username, message.member.user.displayAvatarURL({dynamic: true, size: 512}))
    .setDescription(mentionMessage)
    .setTimestamp();
    mention.send(infoEmbed)
    message.channel.send ("Done!");
}

module.exports.help = {
    name:"pv",
}
lusty quest
#

or does the string contain the username?

earnest phoenix
#

it must be a mention

#

this is DM command

lusty quest
#

i think i know what your issue is now.

earnest phoenix
#

oh

lusty quest
#

did you got a command handler?

earnest phoenix
#

umm

#

yes

#

I wanna know the code from which if someone says ?setjoinchannel #<channel name >
sets that channel as the joinchannel

lusty quest
#

ok the command handler will split your arguments already into an array

#

you just want to get rid of the first item in the array

lusty quest
earnest phoenix
#

I want to simply delete a username/mention in DM, I removed the prefix, but I want also delete the username

#

spoonfeed meaning?

lusty quest
#

sending you full code

lusty quest
earnest phoenix
#

umm

earnest phoenix
#

I get it from a tutorial :/

#

I wish someone could help me though

lusty quest
#

so you have no idea

earnest phoenix
#

nope

#

I know the basics

lusty quest
#

your arguments that the command handler passes to your command is an array of strings

earnest phoenix
#

my bro also not teaching me how

#

My command handler:

fs.readdir("./commands/", (err, files) =>{
    if (err) console.log(err);

    let jsfile = files.filter(f => f.split(".").pop() === "js");

    if(jsfile.length <= 0){
        console.log("Error! Folder ./commands/ Is empty!");

    }

    jsfile.forEach((f) =>{
        let props = require(`./commands/${f}`);
        client.commands.set(props.help.name,props)
    })
})
lusty quest
#

so your command message will be first [!][command][mention][string][string]
your command handler will get rid of the prefix and command
you now want to get rid of the first item of the array to get only the string

earnest phoenix
#

um

earnest phoenix
#

aaaandddd

#

can you help me with this ?

lusty quest
blazing portal
#

Hey, I hope someone can help me out a bit with discords permissions... I am slightly lost currently.
So my bot has (among others) the permissions VIEW_CHANNEL, MANAGE_ROLES, MANAGE_CHANNELS.

Now i want to create a category channel where i give the bot the manage roles permission overwrite. But for some reason I am unable to, because of Missing Permissions.
Is that one of the many discord permission oddities?^^ And what permission would i need to make this happen (i know admin works, but there must be another way?!)

visual kettle
#

Hello

#

How can I set a interval into a database

#

Js

shadow sandal
#

uu

blazing portal
quartz kindle
#

The authorization header is an extra field that you define, and all top.gg vote events will include this field

misty sigil
#

(In the Authorization header)

quartz kindle
#

So when you receive it, you can confirm that its really coming from top.gg and not a fake thing from hackers

#

Because the authorization you set will be there

#

If someone has your ip address, they can send you fake requests, but since they dont know your authorization code, they cant fake that

astral onyx
#

@versed thorn Leave

#

@
@

earnest phoenix
astral onyx
#

@versed thorn stop

earnest phoenix
lusty quest
#

the bot cant see commands in this channel here

astral onyx
#

@versed thorn stop

earnest phoenix
#

tf is wrong with this guy

astral onyx
#

eeee

earnest phoenix
#

fuck it ill do it myself

astral onyx
earnest phoenix
#

wtf

#

@astral onyx you use the commands in the channel #commands

astral onyx
#

Ok

rocky hearth
#

what are the best npm packages, that can generate a unique random id?

lusty quest
#

crypto

#
crypto.randomBytes(8).toString("hex");
#

generates a 8 chars long random string

rocky hearth
#

what about uid?

lusty quest
#

crypto is buildin into node, also does the job

#

uid also works but i bet it uses crypto to generate the string

rocky hearth
#

yes, it is mentioned there

#

Should/Can I use timestamps as a id??

lusty quest
#

you can, but there is the possibility to get duplicated ids

elfin marsh
cobalt spruce
#

does anyone here uses slappey?

unreal dagger
#

there are some very rude developers here

elfin marsh
#

like?

cobalt spruce
#

like?

unreal dagger
#

@tough glen just told me to shut up and blocked me when i tried to get help

elfin marsh
#

dms?

unreal dagger
#

Hey I need help something is going on when im making a bot can i show you i dont know why to do its my first time and something is going on

unreal dagger
#

ok dm

elfin marsh
#

no

#

here

lusty quest
unreal dagger
#

ohh ok

lusty quest
#

so you can use it in every command

#

i do it with my guild settings

elfin marsh
#

not a bot

lusty quest
#

¯_(ツ)_/¯

unreal dagger
#

Hey I need help something is going on when im making a bot can i show you i dont know why to do its my first time and something is going on

torpid valve
#

If bot sends 1 message to 1 channel in every guild, will it be against discord ToS?

elfin marsh
#

no

frigid cave
#

don't spread false information out there tbh

#

it legit is, same with dm all commands

elfin marsh
frigid cave
#

considered as spam

#

spam against the terms

lost stone
#

Hi

elfin marsh
#

Talk with ToS please

lost stone
elfin marsh
lost stone
#

whats wrong

summer torrent
#

it is against to ToS

frigid cave
#

they asked if they can make the bot send a message ( that can be an AD ) to each guild, that's spam and against the terms

frigid cave
lost stone
#

someone help me

elfin marsh
#

many bot feature that

frigid cave
#

against ToS

elfin marsh
#

dont think many get banned

frigid cave
#

against ToS

solemn leaf
#

@torpid valve that is api abuse and breaks ToS

elfin marsh
#

u are spamming now

summer torrent
lost stone
frigid cave
#

it's legit considered as spam, give me your bot ID and I can get it banned, you stop spreading false information and making people break the terms, ty

elfin marsh
#

it means spreading of false info on prpose

solemn leaf
#

Head

#

Legit

#

3 people have said you would get banned

elfin marsh
#

I dont have a bot featuring that!

#

cant u understand that?

#

have a nice day

lost stone
#

SOMEONE HELP ME PLZ

frigid cave
#

if you're not sure, don't help

#

simple as that

lost stone
frigid cave
#

and you legit said above that your bot has that, so you're lying now for 2nd time :D

elfin marsh
frigid cave
#

IT'S against the ToS

#

can't you read?

elfin marsh
#

Where did i say i have it in my bot?

#

where tell me that

lost stone
#

what does that mean how can i fix it please?

frigid cave
#

yeah I don't have the time to play with kids, just stop spreading false information that can get people banned.

lost stone
#

i am noob☹️

elfin marsh
#

No answer

pale vessel
#

He's just tired dealing with you

elfin marsh
#

even tho he mis understood he is spreading false info

frigid cave
#

how old are you?

elfin marsh
#

Why am i supposed to tell u that?

elfin marsh
#

Pleasure to have talked to u

frigid cave
#

lol, yeah stay safe and stop telling stuff to people that can get them banned for breaking discord ToS spam category.

elfin marsh
#

xD

lone pivot
#

Yo

#

Can someone help w node

#

its telling me its missing a module "moment" but the module is installed

#

its like showing up when i do npm list

lusty quest
#

i guess there is a way to do it with next to no spam by sheduling the messages, but anyways i would not suggest doing it

tribal siren
lusty quest
lone pivot
lusty quest
#

lol vsc is not a host

tribal siren
#

now to my problem

#
bot.fetchInvite(args[0])
    .then(invite => {
      const embed = new Discord.MessageEmbed()
        .setTitle(`Invite Information`)
        .setColor('BLUE')
        .addField(`General Information`, [
          `**Invite:** ${invite}`,
          `**Created At:** ${moment(invite.createdAt).format('LT')} ${moment(invite.createdTimestamp).format('LL')}`,
          `**Expires At:** ${moment(invite.expiresAt).format('LT')} ${moment(invite.expiresTimestamp).format('LL')}`,
          `**Invite Author:** ${invite.inviter}`,
          `**Maximum Age:** ${invite.maxAge} seconds`,
          `**Maximum Uses:** ${invite.maxUses} uses`,
          `**Uses:** ${invite.uses}`,
          `\u200b`
        ])
        .addField(`Invite Server Information`, [
          `**Invite Server:** ${invite.guild}`,
          `**Invite Channel:** ${invite.channel} (${invite.channel.id})`,
          `**Server Membercount:** ${invite.memberCount}`,
          `**Online Users Count:** ${invite.presenceCount}`,
          `\u200b`
        ])
        .setThumbnail(invite.guild.iconURL())
        .setTimestamp()
      message.channel.send(embed)
    })
    .catch(err => {
      const error = new Discord.MessageEmbed()
        .setTitle('Error')
        .setDescription('Your Invite is Wrong!')
        .setColor('#bb1414')
      message.channel.send(error)
    })```
#

half of that is like null or invalid

#

and yes all i wrote is written in the documentation

lusty quest
#

is the invite.createdAt a valid timestamp?

tribal siren
#

what's that

lusty quest
#

is invite valid? bcs invite.maxAge is also null

tribal siren
#

yes..

#

i generated new invite for it to work

lusty quest
#

idk but its possible that you need a Gateway intend for it

tribal siren
#

Server Members Intent is approved for me

#

Presence Intent is not..

#

Maybe that's the problem

lusty quest
#

GUILD_INVITES enabled?

tribal siren
#

what is that

#

how to put it on?

lusty quest
#

also an intend

#

client option

tribal siren
#

and how does it work

#

i mean how to enable it

lusty quest
tribal siren
#

i think it is

#

it may be not on

lusty quest
#

nvm the stuff i where thinking on is something different

tribal siren
#

oh guild invites is on

lusty quest
#

i dont think presence is needed.

#

but if you expect a competent quick answer i guess ask on the Discord Developers Server

pure lion
#

is there an easy way to know when the height/width of a div has changed?

#

its for threejs; i need to know if a div has changed width and then resize the viewport display

bitter badger
#

Supposedly there's a thing called ResizeObserver

earnest phoenix
#

Are you know what is going on with this?

bitter badger
#

That seems to be recently supported by all major browsers within the last year

bitter badger
pure lion
#

oh i just read the mdn docs and saw the compatibility sheets

pure lion
#

i got the impression that it was chrome only for some reason

earnest phoenix
#

this is ok?

earnest phoenix
bitter badger
bitter badger
#

It's hard to tell with your random indentation

hasty sparrow
#

Missing ); on L36

bitter badger
#

Yeah. I think replace the } with );

hasty sparrow
#

Nah, you need both

bitter badger
#

I mean the one on L38

earnest phoenix
bitter badger
#

@hasty sparrow found the real problem though kek

hasty sparrow
#

Properly indenting your code would make your life easier though

bitter badger
#

I'm currently rewriting my bot and plan to make a site for easier customization. Would I use OAuth2 to enable login and be able to get guild information through the user?

earnest phoenix
#

correct

bitter badger
#

Noice. Thanks

ionic dawn
#

Hi, I tried to let my bot run on pm2 24/7 but after 10m or so my bot stop responding to any command but still being online

sterile lantern
#

did it log any errors

#

something probably errored

ionic dawn
#

No, it doesnt

sterile lantern
#

Try restarting the bot

ionic dawn
#

Did it a few times, still

#

i'll try running it without pm2 and see if it happens the same

earnest phoenix
pale vessel
#

you can't use continue there

#

Remove it

earnest phoenix
#

ok

pale vessel
#

hmm That looks like API abuse and async doesn't even work with forEach

ionic dawn
#

one of my VPS

earnest phoenix
#

hmmm

#

I had the same problem on raspberry pi, and I fixed it by disabling network power safe mode

earnest phoenix
#

npm i forever -g

#

or sudo npm i forever -g

earnest phoenix
#

forever should work

#

it is almost the same

ionic dawn
#

what does forever do?

earnest phoenix
#

it works for me all the time

#

pm2 not always

#

type forever -h for help

#

you have commands like: forever start, forever list, almost the same as pm2, and if you want to stop, it's forever stopall or stop and instance name

#

@ionic dawn

lusty quest
#

would still recommend using pm2 for node projects, it can handle certain stuff better than forever

edgy heron
#

I want to track votes with my bot for server that i have in top.gg listing website, but how do i get a DBL token for a server

earnest phoenix
quartz kindle
#

but can forever do this?

earnest phoenix
#

ummm

#

i don't test it

#

but

#

Does anyone know how to fix this on python

Traceback (most recent call last):
File "main.py", line 648, in <module>
bot.loop.create_task(app.run_task(host='0.0.0.0', port=8080))
AttributeError: 'Quart' object has no attribute 'run_task'

earnest phoenix
quartz kindle
#

i talking about the fancy web dashboard

earnest phoenix
#

oh

#

idk

#

pm2 don't working on f1 micro, and my raspberry pi, unless I'm using it wrong

lusty quest
#

i can use pm2 on my rpi

quartz kindle
#

im using it on my f1-micro too

earnest phoenix
#

Guys um where can I find all of the

#

.addField
.setTitle
Etc

quartz kindle
earnest phoenix
#

Alr, thanks! @quartz kindle

rocky hearth
#

Does .env.local variables has no effect when NODE_ENV != development

quartz kindle
#

assuming this is about react

earnest phoenix
#

Wtf?

rocky hearth
#

yes, I also read that. But I'm stil confused, Tim

earnest phoenix
#

Why is it saying I’m missing a semicolon when I’m not

#

@quartz kindle

quartz kindle
#

show the rest of he code

#

lines before 17

earnest phoenix
#

Sure

earnest phoenix
#

A lot of fields

#

Ping me

quartz kindle
rocky hearth
#

Syntax Errors, shame shame 😆 @earnest phoenix

opal plank
earnest phoenix
#

for your own sake, please use a dynamic help commandDDDD

opal plank
#

also isnt there a 10 limit?

quartz kindle
#

25

opal plank
#

i though it was much less than that

earnest phoenix
#

i have a question

#

ive made a bot and it got stolen

#

trough wireshark

pale vessel
#

Well done

earnest phoenix
#

idk how

lyric mountain
#

Not possible without losing ur account

mellow kelp
#

congratulations

earnest phoenix
#

like its just for my server bot somehow he got the link of my bot

lyric mountain
#

Like, you can just refresh the token

earnest phoenix
#

you leaked your bot token somewhere

#

he doesnt have the token

#

nah

rustic nova
earnest phoenix
#

i didnt

pale vessel
#

What do you mean by link

lyric mountain
#

It's not stolen then

mellow kelp
#

if he's using your bot, he got the token

rustic nova
#

How do you know it is not your token? WeirdChamp

earnest phoenix
#

like he told me throught traffic he could get my bot

#

they can get the token

#

through the traffic

#

bruh

#

ok

lyric mountain
earnest phoenix
#

because it's sent in every REST request

#

i cant explain it properly

#

because of my english

#

so like one of the persons who got my bot i know him

#

and he didnt want to damage it

#

and he said

#

your bot can be stolen

#

with wireshark

#

but not the token

#

like the invite link

#

what

#

lol

lyric mountain
#

Invite link meaningless

earnest phoenix
#

yeah idk too

lyric mountain
#

I can get it really now

earnest phoenix
#

an invite link is constructed of just the id that is just public data

#

whoever you're talking to is a moron

lyric mountain
#

All i need is the id

mellow kelp
lyric mountain
#

No hack involved

earnest phoenix
#

anyways what can i do that my bot is not getting stolen

#

i didnt leak my token

#

to anyone

lyric mountain
#

It's not getting stolen

mellow kelp
#

by "stolen", do you mean invited to other servers?

earnest phoenix
#

but its now on other servers

#

and my database

#

is now broken

lyric mountain
#

Why?

earnest phoenix
#

yes

pale vessel
#

Why isn't it a private bot

earnest phoenix
#

stolen != being invited to other servers

#

invited to other servers

mellow kelp
#

go to the bot options

#

set it to private

#

ez

earnest phoenix
#

ohhhhhhhhh wait i didnt think about that

lyric mountain
#

Dot dot dot

earnest phoenix
#

wait

pale vessel
#

Aren't bots private by default?

lyric mountain
#

Yeah

mellow kelp
#

yeah?

earnest phoenix
#

i don't think they are

pale vessel
#

So they disabled it...

lyric mountain
#

You need to manually set it to public

mellow kelp
#

i just did it

earnest phoenix
#

the switch is for being a public bot

#

not a private bot

mellow kelp
#

it's on public by default

pale vessel
#

Oh

lyric mountain
#

Lul

#

It used to be the inverse

mellow kelp
#

o

earnest phoenix
#

yes

#

but still wasn't private by default

regal creek
#

Wtf are yall talking bout

lyric mountain
#

Stuff

earnest phoenix
#

dildos

mellow kelp
#

yes

regal creek
#

😌

#

You cant make a bot public in code wise

#

( without using a third party platform like github )

pale vessel
lyric mountain
#

What are you talking about?

mellow kelp
#
client.on('guildCreate', guild => {
  guild.systemChannel?.send('Bye bye fuckers');
  guild.leave();
});
regal creek
pale vessel
#

Not that kind of "public"

earnest phoenix
#

we're not talking about the source

lyric mountain
#

That's not about code

mellow kelp
#

o

regal creek
#

Oh

#

Its public by default

#

You can make it so only the application owner can add the bot

lyric mountain
#

doubt too late

regal creek
#

🥲

lone pivot
#

i got a "please install sqlite3 manually" error and i was told to do npm rebuild, that didnt work so i deleted the node_modules folder and did npm install, then i got other errors which i fixed and im back at the please install sqlite3 manually error

#

does anyone have a fix for this?

lyric mountain
#

Did u install sqlite3 manually?

rocky hearth
#

"dev": "export NODE_ENV=development&&nodemon --require dotenv/config src/index.ts dotenv_config_path=/private/.env"
Is this my script correct?

earnest phoenix
#

how do I type "/" in regex

#

escape it

#

/

#

smh

#

\/

#

oh my fucking god

pale vessel
#

Good job

lyric mountain
#

Is / a regex char?

earnest phoenix
#

\/

#

there we go

pale vessel
#

V

earnest phoenix
#

acute angle

crimson vapor
#

bruh

#

no

lyric mountain
#

No, i mean, is it a reserved char?

crimson vapor
#

out

#

no more acute angles

pale vessel
#

you need to escape it otherwise it'll denote the end of regex

lyric mountain
#

Ah, true

#

Forgot about the delimiters

lyric mountain
crimson vapor
#

no

lyric mountain
#

Round angles

crimson vapor
#

--

#

180 degrees

earnest phoenix
#

O

#

2pi gang

crimson vapor
#

lol

#

fucking nerd

quartz kindle
#

C

lyric mountain
#

Tim's blue

pale vessel
#

Good role

quartz kindle
#

wait what

#

since when

lyric mountain
#

Timblue

quartz kindle
#

:O

cinder patio
#

cyan*

oak cliff
#

Since like half an hour ago

summer torrent
#

notable member pog

quartz kindle
#

<3

slender thistle
#

yo Tim congrats

solemn latch
#

Pog tim

quartz kindle
#

ty ty <3

tight plinth
#

pog

trim saddle
#

tims from brasil

tight plinth
#

time to rename this channel to #tim-house

earnest phoenix
#

Does anyone know how to make a bot dashbord

lyric mountain
#

Yes

earnest phoenix
#

Can I pm you

lyric mountain
#

No

earnest phoenix
#

Can you help me make one

lyric mountain
#

Also no

#

It's not a quick task

earnest phoenix
#

Ok

#

I no

delicate zephyr
earnest phoenix
#

Were is the place to Learn

lyric mountain
#

Also research about websockets, it's the best way to interface your bot with your site

#

If you're newbie, I recommend react native

earnest phoenix
#

I have web hosting

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

quartz kindle
#

<3

delicate zephyr
#

Here's a good tutorial for react: https://www.youtube.com/watch?v=0-S5a0eXPoc

React Native Tutorial for Beginners - Learn to build an amazing React Native app for iOS & Android.
🚀 Get the full React Native course: https://bit.ly/3f40a4l
👍 Subscribe for more React Native tutorials like this: https://goo.gl/6PYaGF

CONNECT WITH ME

My Courses: http://codewithmosh.com
My Blog: http://programmingwithmosh.com
My Facebook: htt...

▶ Play video
#

it'll take time to master but it'll pay off

earnest phoenix
#

Why is it doing that?

#

@earnest phoenix verify )

#

Ohh yeah I’m blind lmao

quartz kindle
#

ages ago

#

lmao

delicate zephyr
quartz kindle
earnest phoenix
lusty quest
#

i hate making localisations, and the way i started it is probably stupid

delicate zephyr
#

Depends

#

does it work for you

earnest phoenix
#

It says that here’s a problem with timestamp

delicate zephyr
#

no

#

it doesnt

lusty quest
#

well i have now 4 supported languages and the file is now at 714 lines

delicate zephyr
#

thats bound to happen

#

localisations are massive

quartz kindle
#

intl is a pain

earnest phoenix
#

Why does it say timestamp is missing a semicolon wtf?

lusty quest
#

atleast i found a way to make it easy for me if someone else wants to make a translation. opened a github repo and the bot pulls on start a fresh translation

lusty quest
earnest phoenix
#

Like 1 more semicolon?

cinder patio
#

show the exact error

lusty quest
#

.setTimestamp();

earnest phoenix
#

Huh

#
const { MessageEmbed } = require("discord.js")

module.exports = {
  name: 'help',
  run: (message, args, client) => {
    message.channel.send(`<@${message.author.id}> check your DMs!`);

    const help = new MessageEmbed()
      .setColor('red')
      .setTitle('Command list')
      .setDescription('')
      .setTimestamp(new Date())
      .addField("+ban", "- bans a user")
      .addField("+unban", "- unbans a banned user")
      .addField("+kick","- kicks a user")
      .addField("+purge","- purges messages (99)")
      .addField("+bomb","- completly purges a channel")
      .addField("+setprefix", "- set your own costume prefix")
      .addField("+userinfo", "- shows user information")
      .addField("+serverinfo", "- shows server information")
      .addField("+role", "- adds a role")
      .addField("+remove", "- removes a role")
      .addField("+avatar", "- shows a picture of your) avatar")
      .addField("+hug", "- shows a gif")
      .addField("+meme", "- shows a meme")
      .addField("+kill", "- shows a gif (SFW)")
      .addField("+slap", "- shows a gif")
      .addField("+gayrate", "- shows gay rate")
      .addField("+joke", "- shows a joke")
      .addField("+height", "- shows a random height")
      .addField("+verify", "- needs a setup")
      .addField("+invite", "- sends a bot invite")
      .addFooter("if you’re having problems, please join the support server")
      .setTimestamp();


    message.author.send(`**thank you for adding this bot**\nPrefix: ${client.prefix}\nCommands: https://discor.gg/5AJFadyJKZ`, help);
  }
}```
#

It’s not showing error, but just not working

lusty quest
#

well you have 2 timestamps

#

also keep in mind there is a max amount of fields

#

another thing since you have a command handler make a dynamic help command, or you will hate the day you didnt made one. ususally they are a one time thing and doesnt require any maintainance.

sudden geyser
#

oh god, hard coding commands

misty sigil
#

oh god

#

i just had a brain death

lyric mountain
#

My tip is: if you ever need more than 15 fields in a single embed, consider using pagination

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

solemn latch
#

Do you have a dynamic command handler?

#

If you do, you should just be able to loop through the commands the same exact way, just adding the specific content to the help command.
In the case of my help command it loops through it at startup and saves it so it only does it once.

lusty quest
#

the d.js guide got a good tutorial for a dynamic help command. idk for py or other languages

earnest phoenix
#

@lusty quest lmao sorry I forgot totally

#
const { MessageEmbed } = require("discord.js")

module.exports = {
  name: 'help',
  run: (message, args, client) => {
    message.channel.send(`<@${message.author.id}> check your DMs!`);

    const help = new MessageEmbed()
      .setColor('blue')
      .setTitle('Command list')
      .addField("+ban", "- bans a user")
      .addField("+unban", "- unbans a banned user")
      .addField("+kick","- kicks a user")
      .addField("+purge","- purges messages (99)")
      .addField("+bomb","- completly purges a channel")
      .addField("+setprefix", "- set your own costume prefix")
      .addField("+userinfo", "- shows user information")
      .addField("+serverinfo", "- shows server information")
      .addField("+role", "- adds a role")
      .addField("+remove", "- removes a role")
      .addField("+avatar", "- shows a picture of your) avatar")
      .addField("+hug", "- shows a gif")
      .addField("+meme", "- shows a meme")
      .addField("+kill", "- shows a gif (SFW)")
      .addField("+slap", "- shows a gif")
      .addField("+gayrate", "- shows gay rate")
      .addField("+joke", "- shows a joke")
      .addField("+height", "- shows a random height")
      .addField("+verify", "- needs a setup")
      .addField("+invite", "- sends a bot invite")
      .addFooter("if you’re having problems, please join the support server")
      .setTimestamp();


    message.author.send(`**thank you for adding this bot**\nPrefix: ${client.prefix}\nCommands: https://discor.gg/5AJFadyJKZ`, help);
  }
}```
#

For some reason, this isn’t working..

quartz kindle
#

its setFooter not addFooter

misty sigil
#

multiple footers 🤔

earnest phoenix
#

LMAO

lusty quest
#

ahh yes something fucked my localisation file, its saved as json and node-fetch finds an illegal char that vsc and a jsonpathfinder cant find

#

nvm fixed it somehow

crimson vapor
#

if you have a command handler its probably better just to loop through all the commands and addField(${prefix}${command.name}, - ${command.description})

random helm
#

Error: Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime (83)

cinder patio
cinder patio
#

still... try it, we don't know if that number matters in this case

random helm
#

hmm

#

I'll try thanks!

earnest phoenix
#

@quartz kindle

#

Oops

cinder patio
earnest phoenix
earnest phoenix
#

Can soneone help me fix my code when I upload a new videos or start a new steam on YouTube ans twitch it is not sensing it to my discore

rustic nova
#

Most likely something on your code, can't help you much without any starting point

earnest phoenix
rustic nova
#

No clue about py, read a few docs

#

Also i suggest not coding on a plain editor/phone in general

earnest phoenix
#

that's copypasted

#

fun

#

this is like the 10th time im seeing the exact same snippet in this channel

#

Can you help me

earnest phoenix
#

when I upload a new videos or start a new steam on YouTube ans twitch it is not sensing it to my discore

gilded olive
#

Oh this is the same person from before

#

Read from here.

earnest phoenix
#

Ok

#

What would you use for youtube

gilded olive
#

Youtubes API

earnest phoenix
#

So every time I delete cool down, it dosent work since it gets really annoying

#

Like the commands don’t reply anymore..

#

Line 66 to 74

#

DAMN NO ONE?

solemn latch
#

honestly, i hate support questions with photos as their code source.

earnest phoenix
#

same

#

im a helper in the d.py server and

#

you will

#

freak out

#

when you see the amount of images as source code

#

its so hard to tel

#

At start, you're if cooldowns has the command, if not then you attempt to set an empty collection, and you're not setting the user to that collection at all

#

Have you seen d.js support server?

#

Ye..

#

What about it?

#

@earnest phoenix

#

If you're not setting the user it won't apply the cooldown for them at start tho

#

So what can I do?

#

Also why are you checking if the timestamps has the ID of the author twice?

#

if(timestamp.....?

earnest phoenix
earnest phoenix
#

And you shouldn't use collections nor maps for cooldowns since they reset when the process exits

#

At least use a database

#

I don’t have one... I can’t afford one lmao

#

What

#

Most databases are free, even MongoDB

#

So um, what can database be used for?

solemn latch
#

Storing data

#

in a safe way

rustic nova
#

and efficient

earnest phoenix
#

and hosting

#

keeping it 24/7

#

i think

earnest phoenix
solemn latch
#

honestly, most databases are straight forward just by looking at their documentation

earnest phoenix
#

Depends on what database you're willing to use

#

MongoDB

solemn latch
#

montodb best db