#development

1 messages · Page 1047 of 1

obtuse jolt
#

What’s the difference between 11 and 12

astral yoke
#

cache

#

things

obtuse jolt
#

Is that it

astral yoke
#

you will be staring at this until you make the full switch

#

yeah no not really

obtuse jolt
#

Frick

#

This is gonna be hard

#

I haven’t even been accept into bot lists

#

I’m still the queue for 3 bot lists

#

It’s been over a month

quartz kindle
#

from what i can see, in v11 you can simply add intents yourself

obtuse jolt
#

Oh my god pls tell me how

quartz kindle
#

new Discord.Client({ws:{intents:YOUR INTENTS NUMBER HERE}})

obtuse jolt
#

I don’t wanna change

#

What does intents even mean

quartz kindle
#

the only difference is that you have to give a number, you cant use the v12 helpers that give them as names

brittle orchid
#

Are you going to look at the dm box? @quartz kindle

#

I've been waiting for you for 10 minutes :?

obtuse jolt
#

@quartz kindle what do intents mean and how do they work I don’t get it

quartz kindle
#

intents mean "hey discord, i want you to send me only this this and this"

#

instead of "hey discord, just send me everything you got"

obtuse jolt
#

lol

#

Nice

#

So basically they’re making the api more strict

#

Again

quartz kindle
#

yup

obtuse jolt
#

fucking hell

quartz kindle
#

its a blessing tbh

pale vessel
#

less useless payloads

quartz kindle
#

because with intents, you can finally get rid of presenceUpdate

#

presenceUpdate is cancer

obtuse jolt
#

No idea what that is

quartz kindle
#

90% of your bot's bandwidth and cpu usage is presenceUpdates

obtuse jolt
#

Interesting

quartz kindle
#

client.on("presenceUpdate")

obtuse jolt
#

I don’t use it

quartz kindle
#

when people change online/offline status, etc

obtuse jolt
#

What’s its purpose

#

ah

#

That sounds like it’s gonna use a lot

quartz kindle
#

90% of bots out there dont need this

#

and before there was no way out of it

#

which means a shit ton of wasted resources for both bots and the discord api

obtuse jolt
#

Good thing I have unlimited bandwidth

quartz kindle
#

when i enabled intents for my bots

#

my server's bandwidth went from 400gb per month do ~20gb per month

obtuse jolt
#

bruh

#

That’s

#

A lot of bandwidth

quartz kindle
#

yup

#

presence updates are stupid

obtuse jolt
#

I don’t think my bot has a bandwidth monitor

quartz kindle
#

your server should have, if you are on a vps

obtuse jolt
#

I think it only monitors the internet speed uses

#

Not bandwidth

quartz kindle
#

rip

obtuse jolt
#

So if I was downloading something and used 100mb/s it would log that

#

Not the bandwidth

quartz kindle
#

@brittle orchid use client.on("guildMemberUpdate")

brittle orchid
#

okay, I will try

#

thanks <3

obtuse jolt
#

How would I get intent numbers

#

I don’t understand them

cinder patio
#

If you are using discord.js Discord.Intents

#

Where Discord is require("discord.js")

quartz kindle
#

intents are a bitfield, which is a binary representation of a sequence of "on/off" settings

#

for example, 0010 means off off on off

obtuse jolt
#

oof

quartz kindle
#

and each intent is given a specific position of this binary number

obtuse jolt
#

b r u h

quartz kindle
#

this lists all intents, and their positions in the binary

obtuse jolt
#

I read it

quartz kindle
#

however, you have to pass the value as a decimal number, not binary

marble juniper
#

is it normal that when I first used lavalink searching was fine and now I don't get any results because I get an error saying it didn't find any tracks even though it shouldve

quartz kindle
#

so it works like this

obtuse jolt
#

Makes me wonder if it would just be easier to just have them all on

marble juniper
#

and no its not my code my code was fine I didn't change anything

quartz kindle
#

when using binaries, they are counted from right to left, and each digit represents a value that is double the one before

#

for example 1111 means 8+4+2+1

#

if you had 0111 it would be 0+4+2+1

hazy sparrow
quartz kindle
#

if you had 0101 it would be 0+4+0+1

marble juniper
#

@hazy sparrow read it

hazy sparrow
#

i did

#

not able to understand

#

;-;

marble juniper
quartz kindle
#

lets say you want the following intents from that list: GUILDS, GUILD_MEMBERS and GUILD_BANS

obtuse jolt
#

What you a saying is beyond my knowledge

marble juniper
#

Tim they are not big brain enough like us

quartz kindle
#

GUILDS is the first position, so 0 or 1
GUILD_MEMBERS is the second position, so 0 or 2
GUILD_BANS is the third one, so 0 or 4
to enable GUILDS and GUILD_MEMBERS and GUILDBANS, you would send 111 which equals 4+2+1 which equals 7.
so if you send ws:{intents:7} you get GUILDS, GUILD_MEMBERS and GUILD_BANS

hazy sparrow
#

tim when did you start coding>

#

did you invent coding

quartz kindle
#

lol

obtuse jolt
#

Is there any chance you could do the new client with all of them on and comment what the frick each of them mean?

marble juniper
#

binary stuff aint even that hard lol

quartz kindle
#

about 3-4 years ago? idk

#

i've been into IT tech for about 10 years tho

hazy sparrow
#

lol i started a few months ago

#

lol

#

lol

#

;-;

obtuse jolt
#

I’ve been learning programming for a few months and they’re teaching me python not js

#

I’m learning js on my own

quartz kindle
#

@obtuse jolt js supports bitfield operators, so you can literally use them

#

for example

#

ws:{intents:(1 << 0) + (1 << 1) + (1 << 2)}

#

will work

hazy sparrow
#

can you help meh when you are done

obtuse jolt
#

that looks easier

pure lion
#

@hazy sparrow code

hazy sparrow
#

ok wait

obtuse jolt
#

@hazy sparrow it’s addField not addfield

#

I could’ve read console to see that

hazy sparrow
#

ohh

pure lion
#

O shit

#

retard noises<

hazy sparrow
#

ty yxri

obtuse jolt
#

np

digital ibex
#

can someone help me get my private key for my website, i've got the certkey and idk how to get the private key

obtuse jolt
#

Your bot has to be approved to get API keys

pure lion
#

🍿

quartz kindle
#

you mean for SSL/HTTPS?

digital ibex
#

SSL

quartz kindle
#

your website is in express right? is it running in a linux server?

obtuse jolt
#

to get ssl you could use certbot

digital ibex
#

yeah, its running on express and on a linux server

quartz kindle
#

do you have an nginx reverse proxy?

marble juniper
#

when using lavalink when I try to search for a song it tells me it didn't find any tracks and that shit worked 2 days ago

digital ibex
#

uhh, i dont know

quartz kindle
#

did you ever install nginx?

digital ibex
#

i haven't

earnest phoenix
#

I added my boat to the site 3 days ago, it is still not accepted

pure lion
#

It's meant to be 3 weeks

quartz kindle
#

alright so you have two options. you can add your cert keys to node.js and use them in express, or you can install nginx and setup a reverse proxy

#

the nginx method is recommended for performance reasons

digital ibex
#

i'll use nginx then

quartz kindle
#

nginx is much faster than node when dealing with cryptography, and nginx also acts as a layer of protection, preventing direct access to node.js

#

so the setup looks like this: internet <-HTTPS-> nginx <-HTTP-> node.js

delicate shore
#

ok

#

so

#

how are you all?

quartz kindle
#

and with nginx you can use certbot which can set up SSL automatically using letsencrypt

digital ibex
#

yeah, I've got the certbot thing done i believe, i've got the certification thing and i just need the private key and idk how to get that

pure lion
#

When you're done being big brains, I want to ask why the forEach on my dynamic help command only gets 24 of the 30-something commands

#

I'll send code in a sec

delicate shore
#

ok

#

@pure lion which bot you making now?

digital ibex
pure lion
#

alebot

delicate shore
#

what does that do

pure lion
#
const { MessageEmbed } = require("discord.js-light")

module.exports = {
    name: 'help',
    usage: 'aa!help',
    async execute(client, msg, args) {
        let helpembed = new MessageEmbed()
        .setTitle('Help')
        .setFooter(msg.author.tag, msg.author.displayAvatarURL())
        .setColor(`#7289DA`) 
        client.commands.forEach(h => {helpembed.addField(h.name, h.usage, inline = true)})
        msg.channel.send(helpembed)
    }
}
#

@delicate shore a lot

delicate shore
#

ok

#

ncie

#

nice

quartz kindle
#

embeds are limited to 25 fields

pure lion
#

ohfuck

digital ibex
#

tim, any ideas?

pure lion
#

there a way for me to do the first 24 then the remainder?

quartz kindle
#

@digital ibex check the live folder

digital ibex
#

kk

quartz kindle
#

open the folder

digital ibex
quartz kindle
#

yes

digital ibex
quartz kindle
#

@pure lion either split it into two messages, or make a different setup altogether

#

@digital ibex privkey is the private key

#

fullchain is the certificate

pure lion
#

ill do pages

#

but how do i get the first 10 or so?

digital ibex
#

kk

gentle wagon
#

Does anyone know react?

pure lion
#

nvm ill slice it

quartz kindle
#

@pure lion you can do collection.first(10)

pure lion
#

tyy

slender thistle
#
>>> 1 << 0 + 1 << 1
4
>>> (1 << 0) + (1 << 1)
3
``` for a second I thought my brain went idiot mode but then I remembered the order of operations ![mmulu](https://cdn.discordapp.com/emojis/587328389929500692.webp?size=128 "mmulu")
quartz kindle
#

:^)

vernal vapor
#

How would one code a despawn feature similar to cords for example so when something new pops up it's replaced

#

In py

spare mirage
#

.

quartz kindle
#

you need to keep track of the old ones by message id and channel id

#

then on new one, check if channel id is the same, and delete the old message id

vernal vapor
#

I see

digital ibex
#

tim, where can i find the private key?

quartz kindle
#

its privkey.pem

digital ibex
#

o ok

orchid shoal
#

Porque todos ablan tan rraro

#

Arhe no perdón

#

Bay

quartz kindle
#

porque si

orchid shoal
#

Jsjsjs

#

No encuentro fallas en tu lógica

viral coral
#

P%help

spare mirage
#

what do u do if ur commands dont save

#

nvm

orchid shoal
spare mirage
#

xD

orchid shoal
#

buscando el traductor

#

Naaaaaa que flojera mejor me voy a dormir

spare mirage
orchid shoal
#

Adioooos

#

Mimanse bien

#

<3

wheat hornet
spare mirage
#

cool

#

what api does it use?

wheat hornet
#

openweathermaps api

spare mirage
#

Nice!

hazy sparrow
#

i tried to change my bot name but it isnt changing, i refreashed the bot, dsicord, everything still o

spare mirage
#

you have to change the name at discord.dev

hazy sparrow
#

refreshed*

#

i know

spare mirage
#

go to applications -> bot -> and change the name

#

and save

hazy sparrow
#

all done

wheat hornet
#

save also

spare mirage
#

maybe wait a whule

hazy sparrow
#

oh wauit

#

wait

wheat hornet
#

my net so slow typing it at 4:31

hazy sparrow
#

yes everything is saved

#

what

spare mirage
hazy sparrow
#

@wheat hornet IST?

spare mirage
#

he prolly lives in irak or smtng

wheat hornet
#

nope

#

india

hazy sparrow
#

IST = indian time zone

#

-_-

wheat hornet
#

lol

spare mirage
wheat hornet
#

@hazy sparrow u indian too

hazy sparrow
#

yea

slender wagon
#

i tried to change my bot name but it isnt changing, i refreashed the bot, dsicord, everything still o
@hazy sparrow it takes awhile to change

hazy sparrow
#

kk

slender wagon
#

also u might have changed the application name instead of the bot's name

spare mirage
#

are you guys on the TEA Series side or on pewds side?

hazy sparrow
#

i did both

slender wagon
#

alright all what u have to do is wait

hazy sparrow
#

are you guys on the TEA Series side or on pewds side?
@spare mirage PEWDS

spare mirage
#

good boi :D

slender wagon
#

are you guys on the TEA Series side or on pewds side?
@spare mirage #general

spare mirage
#

ok :3

quartz kindle
#

name changing was pretty much instant last time i did it

wheat hornet
#

@spare mirage nor t nor pewds

slender wagon
#

i think i had trouble with it

wheat hornet
#

only coding

hazy sparrow
#

lol

spare mirage
hazy sparrow
#

still name not changed ;-;

pure lion
#

@spare mirage database, Math.ratio

spare mirage
#

ohno

#

=

#

database makes me scared

wheat hornet
#

are u using js or py

pure lion
#

Use enmap you'll be fine

#

@quartz kindle how do I slice in a collection without using slice?(doesn't work)

quartz kindle
#

the closest thing that collections have is .filter()

#

or this

pure lion
#

why cant it just be easy

#

if i can get the first why cant i get the middle >:c

quartz kindle
#

well

#

you can do .first(20).last(10)

#

lmao

#

but a much more efficient solution would be a loop

pure lion
#

fuckfuckfuckfcukfcufkcufkcufkcufk

wheat hornet
#

can anyone sugest me a good command

quartz kindle
#
let messages = []
let embed = new MessageEmbed()
for(let [key,value] of collection) {
  embed.addField(key,value)
  if(embed.fields.length === 10) {
    messages.push(embed);
    embed = new MessageEmbed()
  }
}
``` lol
pure lion
#

i literally want to get the 10th to the 19th >:c

wheat hornet
#

can anyone sugest me a good command

pure lion
#

no

wheat hornet
#

pls

quartz kindle
#

a command that does my dishes

wheat hornet
#

that

#

is a point to be noted

quartz kindle
#

link all your lightbulbs to some controller, connect it to a server, have your bot connect to it, and make a command that turns your lights on/off

wheat hornet
#

discord bot

#

not a alexa

quartz kindle
#

its still a discord bot

wheat hornet
#

how

quartz kindle
#

magic

wheat hornet
#

OwO

quartz kindle
#

and then get hacked and let the hackers play disco in your house

wheat hornet
#

lmao

#
if going_to_hack: dont()
hazy sparrow
#

just this one

vernal vapor
#

@quartz kindle you know earlier when you said I would need to keep track of old messages through message id and channel Id and on the new one check if channel Id is the same and delete the message id how would I manage to do that if it's on a ton of servers

#

Like 500+

earnest phoenix
#

Why my leavechannel command doesn't work ? I got no errors when i use the command

let LeaveChannel = require("../../models/LeaveChannel");

module.exports = {
    name: "leavechannel",
    description: "Set the leave message channel",
    category: "Config",
    aliases: ["lc"],
    run: async (bot, message, args) => {

        LeaveChannel.findOne({ Guild: message.guild.id }, async(err, data) => {
            if(err) console.log(err);
            if(!data) {

                if(!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("Nu ai permisiunea sa faci asta!")

                let channel = message.mentions.channels.first() || message.guild.channels.cache.get(args[0]);
                if(!channel) return message.channel.send("Trebuie sa specifici un canal ! (ID sau Mention)")

                let newData = new LeaveChannel({
                    Guild: message.guild.id,
                    Channel: channel.id
                })

                newData.save()

                message.channel.send(`Canalul a fost setat la ${channel}`);
            } else return;
        })
    }
}
wheat hornet
#

@hazy sparrow wtf is pipe

hazy sparrow
#

what pipe

wheat hornet
#

cannot read property of pipe of undefined

tulip ledge
#

So I currently have this:
${client.moment.duration(cd, 'milliseconds').format("h[h] m[m] s[s]")}
But is there a way to make the h[h] disappear when the cd is less then na hour?

wheat hornet
#

thats ur error

hazy sparrow
#

theres no pipe in my code

wheat hornet
#

send the full error

hazy sparrow
#

ok

pure lion
#

@tulip ledge maybe regex?

hazy sparrow
#

@wheat hornet

tulip ledge
#

What the what

#

What

#

No lmao

#

Regex won't do shit here

wheat hornet
#

what the hell is pipe

tulip ledge
#

@hazy sparrow You're trying to access a key "pipe" of an object that is not defined

hazy sparrow
#

i have no pipe in my code

hasty sparrow
#

@tulip ledge Check whether the millisecond total is more than one hour and modify the format accordingly

tulip ledge
#

You clearly do

cinder patio
#

ChickenDev, you could do something like:

let formatStr = "";
if (check if less than hour, if not) formatStr += "h[h]"
formatStr += " m[m] s[s]"

And then use the formatStr in the format function

hazy sparrow
#

lemme send the code brb

tulip ledge
#

Alright

hazy sparrow
#

over 2k letters ;-;

wheat hornet
#

lmao

hazy sparrow
#

lemme make a pastebin

molten thorn
#

⊙/○

#

Pastebin is didnt work lol

hazy sparrow
#

wut?

cinder patio
#

The error isn't coming directly from your bot bow pro

wheat hornet
#

not gona read it all in white it hurts my eyes

cinder patio
#

it's coming from discord.js

hazy sparrow
#

then what to do?

cinder patio
#

It's because you provide no files in the .attachFiles function

hazy sparrow
#

hmm

#

lol im so dumb

#

thanks

pure lion
#

over 2k letters ;-;
my bot has a bin command that works with files x)

#
        help.awaitReactions((reaction, user) => user.id == msg.author.id && (reaction.emoji.name == '👍' || reaction.emoji.name == '👎'),
        { max: 1, time: 30000 }).then(collected => {
                if (collected.first().emoji.name == '👉') {
                    help.edit(helpembedPG2)
                    console.log('working')
                }
        })

also i need help

#

oh nvm

#

Fixed it within the first second

quartz kindle
#

@vernal vapor channel IDs are unique across guilds

#

so you just need an object to store channel IDs

#

object/dict/whatever python uses

pure lion
#

Is there a way to procedurally generate random base64 strings

quartz kindle
#

what for?

devout wagon
#

Sure, make a string or a list of all legal base64 characters and pick random elements repeatedly

hazy sparrow
#

ok s i wanted to makea die command with arguments aka prefix roll 7 would generate a random number from 1 - 7 but i have no idea how. heres my code so far

module.exports = {
    name: 'roll',
    description: "this is a dice command. it generates random numbers from 1-x or by default, 6. .",
    execute(message){
        message.channel.send( ":game_die:" + "|" + message.author.username + " rolled a " + "**" + Math.floor(Math.random() * (6- 1 + 1) + 1) + "**")
     
    }
 }
quartz kindle
#

6-1+1 is redundant lol

pure lion
#

what for?
secure ID-ing (not for the bot, I'm just curious)

opal plank
#

secure id?

#

use uuid?

hazy sparrow
#

tim?

#

wdym tim

quartz kindle
#
n = args[0] || 6 // get value from arguments or set as 6 if no arguments given
Math.ceil(Math.random() * n) // Math.ceil rounds to the upper number instead of lower number
opal plank
#

6 - 1 + 1 is the same as 6

#

it'll subtract then add 1

hazy sparrow
#

i know?

opal plank
#

why write that down tho?

quartz kindle
#

@pure lion there are a billion methods to generate unique IDs

#

even something as simple as (Math.random() + Date.now()).toString(36)

worthy sleet
#

Math.random() is not so random anyway

opal plank
#

uuid are some of the ways i use it, its hard to crack down

quartz kindle
#

thats why you combine it with Date.now()

#

you have a random component and a date component, guaranteeing a high level of uniqueness

#

the rest is just encoding, base36, base64, hex, doesnt matter

worthy sleet
#

I prefer using crypto module with base64 to each their own

quartz kindle
#

yeah, it depends on use case and how secure you need it to be

#

the tradeoff is always performance x security

worthy sleet
#

128 bit uuid are pretty unique

earnest phoenix
#

How to use FindOneAndDelete? ( mongoose )

summer torrent
#

read the docs

pale vessel
#

deleteOne() gang

obtuse jolt
#

@quartz kindle would intents work now?

quartz kindle
#

yes they work now

#

you can easily test

#

client.on("presenceUpdate",console.log)

#

without intents, that will spam your logs

#

with intents it wont

novel grove
#

can someone help with d.py?

pure lion
#

deleteOne() gang
Always the better option 😄 👍

slender thistle
pure lion
#

Well the problem is that it's python and I haven't learnt that yet photoblobs

slender thistle
#

Was responding to BoTerator unless that's you

pure lion
#

O shit I thought you were asking a general question pandasad

gray finch
#

Then why you choose python

#

There were plenty of alternatives

delicate shore
#

my error

#
  • command code
#

pls help

gray finch
#

It seems that one of you abreviations is failing

delicate shore
#

why so

marble juniper
#

for some reason lavalink stopped working

#

I can't search any tracks

#

anymore

#

its not my code

#

I changed nothing

#

and im using the latest version

#

so I don't understand what the problem is

#

I can play tracks with urls and I can do everything else but not search

delicate shore
#

don't spam

marble juniper
#

thats not spam bro

#

read

delicate shore
#

It seems that one of you abreviations is failing
@gray finch no lang works

#

thats not spam bro
@marble juniper you could have typed everything in one or three lines

marble juniper
#

but I don't

#

so

quartz kindle
#

@delicate shore your args2 only removes the prefix, not the command

#

so args2[0] is the command, not the first language

delicate shore
#

hmmmmm

quartz kindle
#

and args2[1] is the first language

#

not the second

delicate shore
#

ok

#

thanks

#

i am smol brain

gray finch
#

I dont use arguments tho

delicate shore
#

@quartz kindle


  if(command === "translate"){
        const args2 = msg.content.slice(PREFIX.length).trim().split(/ +/g);

   if (args2.length < 3) {
            msg.reply(speech.BOT_TRANS_SPECIFIC_ERROR);
        } else {
            let argFrom = args2[0].toLowerCase();
            let argTo = args2[1].toLowerCase();

            let lang_from = language.filter(ele => ele.name === argFrom)[2].abrv;
            let lang_to = language.filter(ele => ele.name=== argTo)[1].abrv;
            let text = args2.slice(3).join(' ');
console.log(text)
          console.log(lang_from)
          console.log(lang_to)
            translate(text, {from: lang_from, to: lang_to})
                .then(res => msg.channel.send(res.text))
                .catch(err => console.log(speech.BOT_TRANSLATION_ERROR + err));
        }
    }  
#

this is giving same error

gray finch
#

I check for example "rhelp" for 1st page and "rhelp 2"

#

abrv is recognized?

delicate shore
#

that is issue

#

(node:3730) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'abrv' of undefined

gray finch
#

After bot command help message shouldn't be a ' ;'

#

Idk if that solve

#

But ill check more

delicate shore
#

i think it's doing everything

#

in logs

#

but not sending messages

gray finch
#

You didnt add discord dependencies

delicate shore
#

what

#

i did

#

smh

gray finch
#

You need a part of code

delicate shore
#

i ahvbe

gray finch
#

const Discord = require('discord.js');

delicate shore
#

bruh

#

i have it

#

bruh

gray finch
#

Where

delicate shore
#

what do you think that i made a whole bot without it

#

smh

quartz kindle
#

@delicate shore did you fix the args2?

gray finch
#

Idk i didn't saw that line

delicate shore
#

yes

#

i did

#
 if(command === "translate"){
        const args2 = msg.content.slice(PREFIX.length).trim().split(/ +/g);

   if (args2.length < 3) {
            msg.reply(speech.BOT_TRANS_SPECIFIC_ERROR);
        } else {
            let argFrom = args2[1].toLowerCase();
            let argTo = args2[2].toLowerCase();

          console.log(argTo)
          console.log(argFrom)
          
          
          
          
            let lang_from = language.filter(ele => ele.name === argFrom)[1].abrv;
            let lang_to = language.filter(ele => ele.name=== argTo)[1].abrv;
            let text = args2.slice(3).join(' ');
console.log(text)
          console.log(lang_from)
          console.log(lang_to)
            translate(text, {from: lang_from, to: lang_to})
                .then(res => msg.channel.send(res.text))
                .catch(err => console.log(speech.BOT_TRANSLATION_ERROR + err));
        }
    }  
  
#

my code tim

#

error

quartz kindle
#

why .filter()[1]

delicate shore
#

why

#

it should be 1

quartz kindle
#

in fact you shouldnt even be using filter

#

you want to get 1 language from the languages list

#

not multiple languages

delicate shore
#

oh

#

ao

#

so

#

it should be args()[0]?

quartz kindle
#

just use .find() and remove the [1]

#

in the filter lines

delicate shore
#

just use .find() and remove the [0]
@quartz kindle you mean i should remove language.filter and do lanuage.find

quartz kindle
#

yes

delicate shore
#

k

#

still not working

#

same error

quartz kindle
#

did you remove the [1]

delicate shore
#

yes

quartz kindle
#

show code

delicate shore
#
if(command === "translate"){
        const args2 = msg.content.slice(PREFIX.length).trim().split(/ +/g);

   if (args2.length < 3) {
            msg.reply(speech.BOT_TRANS_SPECIFIC_ERROR);
        } else {
            let argFrom = args2[1].toLowerCase();
            let argTo = args2[2].toLowerCase();

          console.log(argTo)
          console.log(argFrom)
          
          
          
          
            let lang_from = language.find(ele => ele.name === argFrom).abrv;
            let lang_to = language.find(ele => ele.name=== argTo).abrv;
            let text = args2.slice(3).join(' ');
console.log(text)
          console.log(lang_from)
          console.log(lang_to)
            translate(text, {from: lang_from, to: lang_to})
                .then(res => msg.channel.send(res.text))
                .catch(err => console.log(speech.BOT_TRANSLATION_ERROR + err));
        }
    }  
  
quartz kindle
#

show logs

delicate shore
#

k

#

here

#
            let lang_to = language.find(ele => ele.name=== argTo).abrv;
#

affected line

gray finch
#

You have 1000 lines in index js?

quartz kindle
#

there is no hindi in your list of languages

delicate shore
#

there is no hindi in your list of languages
@quartz kindle there is

quartz kindle
#

not in the file you sent before

delicate shore
#

oh

#

wait

#

yeah

#

lo

#

lol

#

@quartz kindle but if i do

s!translate swedish korean Hej världen
#

there is still error

quartz kindle
#

same error?

delicate shore
#

no

quartz kindle
#

then its an error in the translate function

delicate shore
#

ooh

earnest phoenix
#
Copyright (C) 2002-2020 RealVNC Ltd.
RealVNC and VNC are trademarks of RealVNC Ltd and are protected by trademark
registrations and/or pending trademark applications in the European Union,
United States of America and other jurisdictions.
Protected by UK patent 2481870; US patent 8760366; EU patent 2652951.
See https://www.realvnc.com for information on VNC.
For third party acknowledgements see:
https://www.realvnc.com/docs/6/foss.html
OS: Raspbian GNU/Linux 10, Linux 4.19.118, armv7l

xauth:  unable to write authority file /home/pi/.Xauthority-n
xauth:  unable to write authority file /home/pi/.Xauthority-n
On some distributions (in particular Red Hat), you may get a better experience
by running vncserver-virtual in conjunction with the system Xorg server, rather
than the old version built-in to Xvnc. More desktop environments and
applications will likely be compatible. For more information on this alternative
implementation, please see: https://www.realvnc.com/doclink/kb-546

Running applications in /etc/vnc/xstartup

The virtual session failed to start. Session log:

Anyone know why its not working? Trying to do the command vncserver on my raspberry pi. Only started happening today.

#

Any ideas?

quartz kindle
#

also, to avoid the abrv error with invalid languages, check if the language exists first

delicate shore
#

yes

#

ok

quartz kindle
#

let lang = languages.find(...)
if(!lang) { return ... }

delicate shore
#

but it's not working anyways

quartz kindle
#

what does the error say?

marble juniper
#

anyone know why lavalink just breaks and is like "nah im not gonna find any tracks no matter the query"

delicate shore
#

what does the error say?
@quartz kindle nothing

marble juniper
#

it worked and then not anymore

delicate shore
#

this is what log

#

says

quartz kindle
#

nothing after the error line?

delicate shore
#

nope

marble juniper
#

ig I will have to ask here for a year or longer

quartz kindle
#

sorry link, i dont use lava

delicate shore
#

^^

marble juniper
#

k

quartz kindle
#

@delicate shore change + err to , err

delicate shore
#

ok

#

error

#

came

#
    at /rbd/pnpm-volume/aa72828e-329b-4d4b-a55d-e8f868d6e1c2/node_modules/.registry.npmjs.org/google-translate-api/2.3.0/node_modules/google-translate-api/index.js:105:17
    at processTicksAndRejections (internal/process/task_queues.js:88:5) {
  code: 'BAD_REQUEST'
}

#

it's api problem ig

quartz kindle
#

bad request means you did something wrong, or the module did

marble juniper
#

well lavalink doesn't have a support server and in the support server im in for the node module im using thier server is dead

#

so no place to ask

delicate shore
#

oh

marble juniper
#

and ig this channel was a shot in the dark

#

stackoverflow time

delicate shore
#

well lavalink doesn't have a support server and in the support server im in for the node module im using thier server is dead
@marble juniper use YTDL core

marble juniper
#

no

#

Im not using that again

delicate shore
#

i use YT_Search

#

that's the best

marble juniper
#

it was horrible

delicate shore
#

no rate limit

marble juniper
#

bruh

delicate shore
#

or anything

fluid sphinx
#

Just because you use it doesn't mean it's the best

delicate shore
#

bad request means you did something wrong, or the module did
@quartz kindle so i need to go through whole code?

marble juniper
#

ytdl-core is super slow

#

for me

quartz kindle
#

@delicate shore it seems google-translate-api hasnt been updated in 3 years

marble juniper
#

just use axios and make http requests

#

with thier api

delicate shore
#

oh

#

oof

hazy sparrow
#
module.exports = {
    name: 'ping',
    description: "this is a ping command!",
    execute(message){
        const cf = Math.floor(Math.random() * (2- 1 + 1) + 1);
     
        if(cf = 1){
            message.channel.send `${message.author.username} + it was heads!`
        }
        if(cf = 2){
            message.channel.send `${message.author.username} + it was tails!`
        }
    }
 }
#

am i doing it correctly?

solemn latch
#

===

#

Not =

#

Why is your ping command a flip coin command

hazy sparrow
#

its a coi fip command

#

i copy pasted from the ping command handler xd

steep ocean
#

ooof

earnest phoenix
#

how do i make my bot change states slower

solemn latch
#

Change on a timer

earnest phoenix
#

i use set interval

#

is correct???

opal plank
#

setInterval is after

summer torrent
#

no

opal plank
#

the interval is a param

#

setInterval(func, interval)

earnest phoenix
#

i need

opal plank
#

u need what?

earnest phoenix
#

that the state changes every minute because I am abusing the api

opal plank
#

well yeah no shit

#

you arent suppose to automate it

spare mirage
#

BANNED

misty sigil
#

but I do automate it

opal plank
#

indeed, though Jake has said a couple times not to automate the api in short term

#

if its long periods, its fine, they dont care

misty sigil
#

only once every 60 seconds tho

opal plank
#

but stuff like that they do

solemn latch
#

60 seconds is still considered api abuse pretty sure

opal plank
#

¯_(ツ)_/¯

#

yup

earnest phoenix
#

Since I put it to change every 60 seconds, I know I have to touch some of this: setInterval (function () {(is incomplete)

opal plank
#

actually

#

i got a thing for it

earnest phoenix
#

60 seconds is still considered api abuse pretty sure
@solemn latch i know

spare mirage
#

its 10 min

#

just do that

#

:3

misty sigil
#

or is it 120 I can’t be bothered to check CODe

opal plank
#

Discord has a very loose interpretation of API abuse; as quoted by them:

American Jake01/21/2018
@Danny automating the API in that way /is/ abuse. Automatically doing "X" every N is generally not a good idea. Where X could be posting a message, changing someone's nickname, renaming a role, changing a channel topic, etc... 

Generally bots should only react to user actions... 

Although, for very large N we generally don't care. But for small N, we do care. Think rainbow bots, etc....

"N" is not really defined, as rate limits are not a good thing to try to get very close to. You're going to have to mostly use common sense here, compare how close you are the rate limit, how often you do this, etc.

slender thistle
#

Common sense ain't so common

opal plank
#

^^

#

indeed

earnest phoenix
#

where I put the 60 seconds in setInterval (function () {

opal plank
#

the rule is, if you have to ask, dont do it

solemn latch
#

At the end of the options

earnest phoenix
#

trulyamazing i made a bot better then members+

woeful void
#

/g.

earnest phoenix
#

the only thing I need because my bot is on 80 servers and I want to have it legal

spare mirage
#

is there an official discord server?

#

imma ask there

slender thistle
#

no

quartz kindle
#

setInterval(() => { code here }, 60000)

opal plank
#

its a param, you p put it in the second parameter @earnest phoenix

woeful void
#

how to put

#

bot to

slender thistle
#

Discord API server might be what you want though

woeful void
#

:9

spare mirage
#

is setInterval a loop?

slender thistle
#

-faq 1 @woeful void

gilded plankBOT
#

@woeful void

Frequently Asked Questions 📜
woeful void
#

😦

tulip ledge
#

How owuld I trigger a piece of code every week at the same time??

opal plank
#

indeed

solemn latch
#

It runs on an internal @spare mirage

earnest phoenix
#

setInterval(() => { code here }, 60000)
thanks I need that

slender thistle
#

is setInterval a loop?
yes, setTimeout is just "wait X ms and then do Y"

quartz kindle
#

setInterval is a timer, not exactly a loop, but a timer that repeats itself

earnest phoenix
#

okoko

woeful void
#

i alrdy

#

do thta

opal plank
#

everyweek is bad for intervals

woeful void
#

-bot

opal plank
#

use scheduler

woeful void
#

😦

tulip ledge
#

Are u talking to me Erwin?

opal plank
#

those intervals are too big incase your bot goes offline

#

yeah

solemn latch
#

Bull does stuff like that

opal plank
#

in a week is too big of a time gap

tulip ledge
#

Yes that's what I'm scared for

opal plank
#

use scheduler

woeful void
#

-faq 1 @woeful void
@slender thistle i alredy do that but when i search at top.gg i dont find my bot

#

😦

opal plank
#

it runs code cron

tulip ledge
#

Oh Woo ur bot got accepted gg!

solemn latch
#

Yep

quartz kindle
#

you can set up long timers that survive offline bots without any external lib nor database

tulip ledge
#

scheduler is a function?

solemn latch
#

O

opal plank
#

its a module

solemn latch
#

Hows that work @quartz kindle

quartz kindle
#

you just need to recalculate the timer on every startup

opal plank
#

i mean yeah

earnest phoenix
#

aaa

solemn latch
#

Ooh

opal plank
#

lmao

solemn latch
#

I see

earnest phoenix
#

tim what do I have to put where it says [code here]?

quartz kindle
#

for example, if you want something to run every day at midnight, on startup calculate how long until next midnight, then set a timeout for it, then an interval

tulip ledge
#

I basically want to reset a certain thing every saturday at 2pm in belgium

#

Thats CEST

hazy sparrow
#

how do i add a cooldown to commands? like if the commands are not 5 secs apart, the bot wont respond.

earnest phoenix
#

finally my bot is now legal

quartz kindle
#

you can do that with timezones i believe

#

js's Date object supports timezones

hazy sparrow
#

tim do you have a bot of your own?

quartz kindle
#

i have 3

opal plank
#

im losing my shit rn

hazy sparrow
#

oh wow

tulip ledge
#

And how would I do that then? Using scheduler?

opal plank
#

you could use that thing i sent you

hazy sparrow
#

you made currency commands tim?

opal plank
#

which saves you from a lot of date manipulation which is a pain

tulip ledge
#

Tim has some weird calculation bot thing

quartz kindle
#

no, i dont have currency commands

hazy sparrow
#

what does your bots do then?

wheat hornet
#

@quartz kindle same 3

#

@quartz kindle same 3

opal plank
tulip ledge
#

So usig schedule I can run something every saturday at 2pm Cest?

quartz kindle
#

one its for astrology, another is a captcha and the last one shows the content of discord message links

opal plank
#

@tulip ledge yes

hazy sparrow
#

oh ok

opal plank
#

why am i coding at 10am?

night bridge
#

I want my bot use 1️⃣ in react but when i use :one: in message.react(":one:")

#

it not working

opal plank
#

unicode

solemn latch
#

Oh oh tim, I recently got my telescope out @quartz kindle
I lost the eyepieces(rip had a $200 set)
Going to get some new ones here soon.
Going to try and get some camera gear too and do some astrophotography.

opal plank
#

\1️⃣

night bridge
#

oh thanks

opal plank
#

actually, that wont work

#

but use unicode

quartz kindle
#

awesome

hazy sparrow
#

why am i coding at 10am?
@opal plank lol im coding from 9am, its 7pm now

opal plank
#

1⃣

#

arg

#

fuck

#

1⃣

#

there

#

@night bridge

#

use that ^^

hazy sparrow
#

does anyone here have a detailed guide (video or docs) for making a database setup?

opal plank
#

unicode numbers are weird

#

postgres or mongo

night bridge
#

is that really unicode? 0-0?

opal plank
#

maybe sql depending what you doing

#

yeah, copy it and try it

tulip ledge
#
let date = new Date(2020, 7, 11, 14, 00, 0);
 
let wipeGuilds = schedule.scheduleJob(date, function(){
  // My Code
});

Ok so how do I make it so the date changes every time the function ran? Do I save it to a database?
Oh and how do I use timezones in Date()?

night bridge
#

yay it work, but idont know how to type it x.x

opal plank
#

type what?

night bridge
#

1⃣
@opal plank this

opal plank
#

why would you type that?

#

copy it on the code in the reaction part. after that you dont need to type it anywhere

#

bruh ive been staring at this for the past 10 minutes trying to figure out if theres a typo

night bridge
#

➡️ for this and 2️⃣ and more other reaction 😅

wheat hornet
#

one its for astrology, another is a captcha and the last one shows the content of discord message links
@quartz kindle how u did strology

opal plank
#

can someone who's not hangover tell me what im missing here?

hazy sparrow
#

lmfao

opal plank
#

like actually

tulip ledge
#

Not 100% sure but don't u need 0, t.length?

opal plank
#

m and h passes fine

quartz kindle
opal plank
#

its that stupid s not catching

quartz kindle
#

splice doesnt play nice with for of apparently

opal plank
#

for real? -.-

night bridge
#

how to get the unicode of ➡️ ?

opal plank
#

even though im filtering it?

tulip ledge
opal plank
#

i tried filter but thats worse

#

was looking for something destructive

quartz kindle
#

you're splicing the same array that you're looping over

opal plank
#

yeah

summer torrent
#

@night bridge \:emoji:

quartz kindle
#

so the array gets iffy and skips stuff

opal plank
#

its removing that specific element from the array

#

hmm

#

even though i cloned it?

quartz kindle
#

use a for loop instead of for of

tulip ledge
#

He wanted the unicode string?

#

Or like \➡️

night bridge
#

any that work >_<"

opal plank
#

i'll try that, but still boggles me its not playing nice with it

#

cuz i did see that coming, thats why i cloned it

#

args = original
nargs = args clone to be modified

quartz kindle
#

it makes sense tho

#

because

hazy sparrow
#

yo tim i have a question for ya

quartz kindle
#

for of will still loop over the array indexes, just give you the value instead of the index

#

how did you clone it?

opal plank
#

nargs = args

#

¯_(ツ)_/¯

hazy sparrow
#

do you know how to store things in database tim?

quartz kindle
#

thats not cloning

#

arrays are objects, they are passed by reference

tulip ledge
#

@hazy sparrow Depens on what database you're using

quartz kindle
#

you can nargs = Array.from(args), or nargs = new Array(args) or even nargs = [...args]

#

or nargs = [].concat(args)

hazy sparrow
#

i need a suggestion for that too

quartz kindle
#

lmao

opal plank
#

i was trying map before

#

though that was getting a bit over the top

#

thought it'd be fine with a shallow copy

tulip ledge
#

Tim btw question. My friend stores stuff in his database like this:

user-userid: {
JSON OBJECT
}

He doesn't use JSON tho he uses sqlite but is it smart to store data like that?

opal plank
#

since it'd be using the args as the index for the loop

#

and then put it on nargs

quartz kindle
#

yeah

solemn latch
#

@hazy sparrow databases are extremly well documented and guides on them are extremely common

tulip ledge
#

yeah like it's smart?

quartz kindle
#

@tulip ledge its fine to store json objects in a database, the only problem is that you cant index them, nor access them partially, you will always have to use them as all-or-nothing

opal plank
quartz kindle
#

lmao

opal plank
#

it works

#

-.-

hazy sparrow
#

i want a guide specifically for discord bots

opal plank
#

fucking references

tulip ledge
#

but having 11 different tables each with like 20 columns is fine aswell? Lmao

#

Or should I use the JSON object?

opal plank
#

from what i've learned, dont mix json and postgres. specially jsonb

night bridge
#

_<" sorry i still got error like this even i do message.react("\:one:");

opal plank
#

keep shit in string format, for your own sanity

tulip ledge
#

No

#

U do

#

\1️⃣

#

Then copy that

#

And paste it in

opal plank
#

unicode

tulip ledge
#

\1️⃣

opal plank
#

i told you

quartz kindle
#

@hazy sparrow there are a billion databases out there, for example SQLite, MySQL, PostgreSQL, MongoDB, and many more

tulip ledge
#

What the heck

opal plank
#

1⃣

spare mirage
#
let statuses = [
        `over ${bot.guilds.cache.size} people`
        `b!help`
        `Im not idle! I just like yellow color it fits with my banana :D`
    ]
    
   
    setInterval(function() { 
        let s = statuses[Math.floor(Math.random() * statuses.length)];
        bot.user.setPresence({ activity: { name: s }, status: 'idle' })
    }, 40000)```is this considered api abuse?
opal plank
#

use this

hazy sparrow
#

i want for SQlite or anything that is easy to learn for a beginner

opal plank
#

40 secs?/

night bridge
#

when i pasted it on visual studio code, it become \:one:

opal plank
#

yeah

quartz kindle
#

if you want to use SQLite, the best library for node.js is better-sqlite3

opal plank
#

1⃣
this becomes one?

solemn latch
#

What you do with a database will be the same no matter if its for a bot or not @hazy sparrow

tulip ledge
#

But tim? Is it fine to have 11 tables and like 10-20 columns per table?

quartz kindle
#

yes its fine

hazy sparrow
#

economy system kinda

opal plank
spare mirage
#

whats that emoji?

tulip ledge
#

Even if I have lets say 1000 usrs (only like 6 tables are for users) then it'll still be fine?

opal plank
#

unicode

tulip ledge
#

1️⃣ and 2️⃣

quartz kindle
#

should be fine, depends on how its organized

tulip ledge
#

I mean

night bridge
#

@opal plank your working fine
@tulip ledge i tried your and i got error x.x

hazy sparrow
#

What you do with a database will be the same no matter if its for a bot or not @hazy sparrow
@solemn latch bot economy system

opal plank
#

@night bridge what error?

quartz kindle
#

yes thats fine

night bridge
#

unknown emoji

quartz kindle
#

but isnt varchar limited to 255

tulip ledge
#

Should I set the varchar(2000) to TEXT?

spare mirage
tulip ledge
#

No apparently not

#

Thats the funny part

spare mirage
#

cannot read property of guilds

tulip ledge
#

I thought so too

#

ANd I did 500 once accidentally and it worked

#

🤷‍♂️

opal plank
#

var char at least on postgres can go up to 8bytes iirc

tulip ledge
#

Should I change it to TEXT?

opal plank
#

dont quote me on that though, i vaguely recall

night bridge
tulip ledge
#

NOt like that

#

I told u

wheat hornet
#

@spare mirage ooo 8ball command

spare mirage
#

yes

tulip ledge
#

U to like: \ 🤔 and then u get \🤔 and then u copy this and paste it in there

opal plank
#

:\one: wont work either

#

one is native to discord

#

it wont unicode it

tulip ledge
#

You sure you're using bot and client?

digital ibex
#

u can just d :one: lol

#

ur bot will do it urself

quartz kindle
#

apparently mysql supports 16bit varchars, so until 64k

spare mirage
#

yes

#

I use bot

night bridge
#

let me try again

tulip ledge
#

Yes and it's the total of all varchars together

spare mirage
#

const bot = new Discord.Client();

tulip ledge
#

SO if u have a total of 64k in varchars in 1 table you can't make more

quartz kindle
#

oh rly

tulip ledge
#

are you doing bot.login?

#

And not client.login?

spare mirage
#

I do botlogin

tulip ledge
#

Yes I experienced it myself lmao

spare mirage
#

ofc

tulip ledge
#

weird

spare mirage
#

bot.login(token);

opal plank
#

1️

#

1

#

hmmm

#

that gets converted into 1

tulip ledge
#

But should I change the Varchar(2000) to TEXT?

opal plank
#

1⃣

tulip ledge
#

I heard TEXT is much better

#

For big strings

opal plank
#

why even limit it?

#

well, i digress, letting it error once it gets to max isnt a good idea either

tulip ledge
#

Cause I use id's like this: TY36-TI74-OY89 and they can have a max of like 10 meaning the max is 180 and to be save Imade it 2000 lmao

spare mirage
#

I know what was wrong

quartz kindle
#

i'd use TEXT yes

tulip ledge
#

kk

#

It's MODIFY columname TEXT riught?

#

Wait though

#

The data I currently have$

#

Will it go away?µ

#

When I modify it

#

Jezus I can't type on this keyboard ffs

spare mirage
#

whats that u

#

xD

tulip ledge
#

µ this?

earnest phoenix
#

How can i create category for all commands? (With fs module) It's possible?

tulip ledge
#

Idk it's on my keyboard

#

Wdym @earnest phoenix

#

Or in the help command?

earnest phoenix
#

@tulip ledge like commands/anime

#

Yes is it

night bridge
#

sorry maybe i'm bad at coding, i got this error after copied your text from T_T

U to like: \ 🤔 and then u get 🤔 and then u copy this and paste it in there

spare mirage
#

what even is that emoji

#

;D

night bridge
#

try to do react but always failed x.x

spare mirage
#

show cod

#

e

night bridge
earnest phoenix
#

Noo

spare mirage
#

\

#

?

hazy sparrow
#

why \

pale vessel
#

😩

spare mirage
#

why that

#

just

#

"🤔"

pale vessel
#

\🤔

tulip ledge
#

So in fs theres this function called isDirectory() to see if it is a directory or not.
What I do is I have this function and ask for 2 parameters: dir and (error, files)
If the isDirectory() triggers I trigger the function again and add the directory to the dir parameter
@earnest phoenix

pale vessel
#

copy this

earnest phoenix
#

and don't use text

tulip ledge
#

If that made sense

hazy sparrow
#

just do :thinking:

opal plank
#

or unicode

spare mirage
#

":thinking":

earnest phoenix
#

@tulip ledge so what can i do?

opal plank
#

\🤔

hazy sparrow
#

or unicode
@opal plank you really like unicode

pale vessel
#

just use unicode oh my god my braincells are decreasing

tulip ledge
#

What do you mean?

opal plank
#

cuz they ARE unicodes

tulip ledge
#

I told u what to do

earnest phoenix
#

Omg u people

spare mirage
#

whats unicode

#

?

earnest phoenix
#

Google

night bridge
opal plank
#

unicode

quartz kindle
#

msg.react("\🤔")

opal plank
#

\🤔

tulip ledge
#

Create a function, loop through all the files and folders in the "commands" directory
Then check if the file/folder you are checking is a directory using fs's isDirectory() function
If it is a directory rerun the function and add the directory to the parameter

spare mirage
#

just copy paste an emoji from internet

tulip ledge
#

@earnest phoenix

night bridge
#

funny right? it got error 😅

spare mirage
#

:3

#

:3

opal plank
#

msg.react("\🤔")
@night bridge

solemn latch
#

^ that works

#

its how my react on tag stuff works

opal plank
#

i wonder tho, are bots allowed to react here?

#

im assusming no

earnest phoenix
#

@tulip ledge I don't understand

opal plank
#

n.reload

#

nah

slender thistle
#

no

solemn latch
#

i have the feature disabled here anyway

night bridge
#

thanks it works now!

#

if i wanted react multiples so i need repeat msg.react(emoji); as many emoji i wanted?

tulip ledge
#

Okay

spare mirage
#

.then?

pale vessel
#

or await

spare mirage
#

^

night bridge
#

oh

spare mirage
#

you need an async function for that

quartz kindle
#

you dont need async if you dont care about the reaction order

hazy sparrow
#

how can i add a cooldown to my commands in a command handler?

opal plank
#

d.js guide

#

sec

#

ez, next

hazy sparrow
#

hmm ty

earnest phoenix
#
for (emoji of arrayemojis){
msg.react(emoji)
}```
this will work? xd
spare mirage
#

thats a smart idea

quartz kindle
#

yes it will work

spare mirage
#

sometimes I just sit here watching this channel for an hour gaining braincells

tulip ledge
#

@earnest phoenix You create a function lets say we call it loadCommands()

const loadCommands = module.exports.loadCommands = (dir ="./commands/") => {
  // Rest of code
}

Inside there we're going to do a fs.readdir(dir, (error, files) => {})
inside of that we're going to run a forEach loop on the files gotten and run the isDirectory() function on the file
If it is a directory isDirectory() returns true so you can just do file.isDirectory()
Then if it is true we call the loadCommands like this loadCommans(dir + file + "/") and return
File is a folder name so it should now filter through: ./commands/fun/
If it is not a directory it doesn't go into the loadCommands "loop" meaning we're not returning so under the if(files.isDirecotry() you can just do your usuall adding stuff to the client.commands set

quartz kindle
#

thats a smart way to learn

#

learning through osmosis

earnest phoenix
#

Woah

tulip ledge
#

I mean I learnt alot by helping people

earnest phoenix
#

I didn't mean that lol

hazy sparrow
#

sometimes I just sit here watching this channel for an hour gaining braincells
@spare mirage relatable

spare mirage
#

I learntg by letting people help me

#

lol

tulip ledge
#

I thoguht u ment it like this lmao

hazy sparrow
#

but i never will understand what tim says, hes too advanced for me

earnest phoenix
#

I want to create with fs yes but with eval, xd

tulip ledge
#

Tim big brain

#

Wait what

quartz kindle
#

if you dont understand something, i can maybe explain better if you ask

earnest phoenix
#

I want to create categories with eval

#

I mean this

tulip ledge
#

Like creating new ones?

opal plank
#

Tim lowkey carries this whole channel on his back, praise the lord

earnest phoenix
#

(y)

spare mirage
#

@hazy sparrow tim isnt humane

opal plank
#

indeed, an angel

tulip ledge
#

You can create directoreis using the mkdir package

quartz kindle
#

i am a slave

opal plank
#

angel is more befitting

hazy sparrow
#

ok tim we'll make a variable.

if(bow = coudn't understnd tim){
  bow.channel.send("lmao tim")
{
earnest phoenix
#

this?

opal plank
#

= sets, not equal to

quartz kindle
#

you dont need a package

tulip ledge
#

Euhm

quartz kindle
#

there is fs.mkdir

tulip ledge
#

Oh

#

Oh yeah

#

Lmao

spare mirage
#

no @opal plank tim is an angel who wets code in your mouth

tulip ledge
#

I knew it was mkdir but didn't know fs had it

#

Tim lowkey is a cow and everyone here is milking code from him

#

Lmao

quartz kindle
#

Lol

hazy sparrow
#

ok tim we'll make a variable.

 if(bow  === coudn't understnd tim){
   bow.channel.send("lmao tim")
 }

@quartz kindle what do you say?