#development

1 messages · Page 1209 of 1

earnest phoenix
#

this

#

one

#

extra

#

bracket

pale vessel
earnest phoenix
#

oh

#

shit

#

i am fucking dumb

pale vessel
#

that's still valid

earnest phoenix
#

oh

pale vessel
#

hover over the red circle

weak rain
#

hey wassup

viral spade
#

Hi, i have a problem..

I create a mysql connection when it is needed. I listen for the "PROTOCOL_CONNECTION_LOST" event, to catch terminating idle connections. Code here: https://hastebin.com/yidozaguwa.js

At first it seems to work.. After the connection is idle it gets terminated, the event is fired and i remove the connection. when i make an action that needs the connection, it is also successfully recreated again.

However, when an idle connection is already terminated and i dont need and recreate it again within about 5 to 10 minutes, then i get another PROTOCOL_CONNECTION_LOST event that is not handled by my code.

I dont understand where that second similar (unhandled) event a few minutes after the first (handled) event comes from, any ideas?

earnest phoenix
#

Which scripting language you're using?? OwO

cobalt furnace
#

@earnest phoenix

earnest phoenix
#

Yo

cobalt furnace
#

Heyo

earnest phoenix
#

Which scripting language you're using?? OwO
@earnest phoenix there is a difference between a programming language and scripting language

#

OwO

#

they're using a programming language

#

wtf am i even trying to say

digital ibex
#

A scripting language is a programming language

earnest phoenix
#

OwO what is the difference between Scripting language and Programming language

cobalt furnace
#

Dêv

digital ibex
earnest phoenix
#

i see the difference don't you

digital ibex
#

have you read all of it?

earnest phoenix
wanton anvil
#

scripting languages are translated into another language and then converted into binary

earnest phoenix
#

someone call a doctor i am losing my mind and might die

wanton anvil
#

example: python is written in C first python gets converted into c and then gets run

earnest phoenix
#

someone call a doctor i am losing my mind and might die
@earnest phoenix If u die then I'll get your Golden Apple

slender thistle
#

JS is translated into CPP, right

wanton anvil
#

@earnest phoenix If u die then I'll get your Golden Apple
@earnest phoenix 🤣🤣🤣🤣🤣🤣🤣

elder loom
#

Hello! does anyone here know how i can override the default help command? I'm using eris

earnest phoenix
#

someone call a doctor i am losing my mind and might die
@earnest phoenix If u die then I'll get your Golden Apple
@earnest phoenix haha i have keepInventory on

#

1 Golden Apple= Death of Ender Dragon

potent ferry
#

Hey, my permissions don't apply to the new ticket channel but it working before

digital ibex
#

v8 is written in cpp

earnest phoenix
#

please explain your problem better

potent ferry
#

Me ?

digital ibex
#

idk about nodejs

elder loom
#

Hello! does anyone here know how i can override the default help command? I'm using eris

earnest phoenix
#

v8 is written in cpp
@digital ibex who in their right mind would say cpp instead of C++

digital ibex
#

ur mom

earnest phoenix
#

Hello! does anyone here know how i can override the default help command? I'm using eris
@elder loom don't send the same question twice

#

wait for someone to help

#

Me ?
@potent ferry yes

elder loom
#

alright

wanton anvil
#

Hello! does anyone here know how i can override the default help command? I'm using eris
@elder loom just a sec I'll send you docs

elder loom
#

Alright

#

Thanks

earnest phoenix
#

do the overriden permissions not work in new ticket channels?

#

yeah this grammar is totally correct

elder loom
#

lol

potent ferry
#

When i use my command, the channel is create but the permissions don't apply

#

sorry for my english I'm french

earnest phoenix
#

lemme see your code

potent ferry
digital ibex
#

r u-

elder loom
wanton anvil
#

yeah

#

you js?

elder loom
#

i said i was using eris

earnest phoenix
#

let membre = message.guild.member(message.author);
membre???

elder loom
#

lol

earnest phoenix
#

on the sixth line

#

of the hastebin code

wanton anvil
#

is eris a programming language i thought it was your name

potent ferry
#

yes ?

elder loom
#

but i am rewriting

#

it

#

in eris

digital ibex
#

eris is a library mate

wanton anvil
#

oh

elder loom
#

is eris a programming language i thought it was your name
@wanton anvil eris is a library

wanton anvil
#

ok

elder loom
#

it's for node.js

#

so javascript

earnest phoenix
#

wait that's french

elder loom
#

what is french

digital ibex
#

what is?

potent ferry
#

yes code913

earnest phoenix
#

well umm

#

me doesn't know french

#

so i can't figure out if membre is a typo or a French word

potent ferry
#

french word

earnest phoenix
#

@quartz kindle might be able tohelp

#

he loves P I N G S

digital ibex
#

membre is a french word

#

literally means member lmao

quartz kindle
#

wut

elder loom
#

eh

#

anyone here made a bot in eris or no

#

else i'll look further

quartz kindle
#

many people did

digital ibex
#

ive ever used the command client

#

else i would try to help

elder loom
#

wait i think i found the answer to my question.

delicate shore
#

Who

elder loom
#

?

viral spade
#

tim could you take a look at my problem?

earnest phoenix
elder loom
#

eh

#

so is there anyone that can help me how i can override the default help command using eris?

brisk vessel
#

Eh what?

fair spire
#

hey guys can you help me cuz i need a GWcodesJs reddit meme code with the prefix 7meme pls

#

BTW dm me da code

#

or here

slender thistle
#

Asking to be spoonfed

fair spire
#

stfu

slender wagon
#

@fair spire spoonfed is not allowed

#

bruh

fair spire
#

kk

#

sry

slender wagon
#

chill bruh

fair spire
#

i am

fringe axle
#

You not

fair spire
#

nah i am

#

chill

#

🙂

fringe axle
#

Nah, do commands yourself

fair spire
#

kk

#

kkk

slender thistle
#

We won't spoonfeed code here since it's not allowed

slender wagon
#

and it is dumb*

fair spire
#

ok

fringe axle
#

(Rule 8a I think)

fair spire
#

np

slender thistle
#

We only help with helping to understand how to do X or Y

fair spire
#

ok

quartz kindle
#

@viral spade i have no idea, but something you could try is ensure the connection is property killed after the error happens

#

for example, add a conns[dbHost].destroy() before deleting it

ionic dawn
#

We only help with helping to understand how to do X or Y
@slender thistle or Z

quartz kindle
#

Z doesnt deserve help

earnest phoenix
opal plank
#

thats Z'cist

earnest phoenix
#

can this type of thing be converted into a discord.User object

#

a string into a discord.User object

opal plank
#

i mean you could just fetch api info and manually map it

#

but i dont know if d.js has a reverse method for that

#

basically the opposite of toString()

#

fromString() ?

earnest phoenix
#

ye

quartz kindle
#

use regex to strip out non-numbers

#

then use either users.get or users.fetch

earnest phoenix
#

what if someone manually types the string out

#

that doesnt happen

#

but

#

still

quartz kindle
#

what string?

earnest phoenix
#

like

#

@acoustic lagoon

charred nimbus
#

Can anyone help me

quartz kindle
#

same thing

earnest phoenix
#

nvm

charred nimbus
#

Pls

quartz kindle
#

its automatically converted to a mention, so you can use message.mentions

earnest phoenix
#

it will throw an error or sum

#

ye

quartz kindle
#

but you can still parse it from text

charred nimbus
#

My bot wont stay online

earnest phoenix
#

oki

#

ye got it

slender thistle
#

Do you use d.py ir d.js

golden condor
#

Hi I am using discord.js/discord.js-light and i listened for the debug event because my bot would come online and function properly but then after a couple minutes, went offline, every single time and then I used the debug event, and this happened and I have no idea why this keeps happening:

charred nimbus
#

Discord.js

golden condor
#

and this is continually spammed in the console

charred nimbus
#

Lol

golden condor
#

and this never seemed to happen before so I am very confused

#

It seems like it always sends one heartbeat, which is acknowledged and then it sends another which isn't and then the bot comes offline but it doesn't exit the process

quartz kindle
#

i've seen people complaining about that in discord.js

#

not sure what can cause it since it never happened to me

cinder patio
#

Hey Tim, I'm using discord.js-light, and there's this really weird problem. Every time I try to send a message, I get the error "Cannot send empy messages". The error doesn't occur when I am using discord.js, and strangely, when I am testing the script with a bot which is only in a few servers @quartz kindle

#

I am assuming it's from dicord.js-light since I don't get any errors when I'm using the normal discord.js

split hazel
#

tims overthrowing discord.js with discord.js-light

quartz kindle
#

lul

#

@cinder patio any sample code?

remote ivy
#

@cinder patio are you sending an embed?

cinder patio
#

okay one sec

#

yeah

remote ivy
#

try doing .send({embed: variablename });

#

i keep getting that error on discord.js on there latest version

#

and that seemed to fix it

earnest phoenix
#

Does anybody remember when i was trying to get my bot to send messages every 10 minutes? well.....my whole server is now filled with "depression has entered the chat"

cinder patio
#

That fixed it. So it's a problem from discord.js, sorry Tim

remote ivy
#

yeah it seems to be a discord.js problem lmao

quartz kindle
#

does it happen in normal discord.js as well?

remote ivy
#

yep

cinder patio
#

yea

remote ivy
#

after updating it... it kinda broke lmao

#

kept saying it couldnt send an empty message when it was an embed

quartz kindle
#

hmm weird

#

i'll take a look at djs's code to see what changed

remote ivy
#

have fun haha

fluid basin
#

@golden condor how many shards do you have

golden condor
#

1

fluid basin
#

and are you killing your shards in your code?

golden condor
#

Well I don't have any

fluid basin
#

or killing the bot

golden condor
#

No I don't

fluid basin
#

ah ok

#

thats weird then

golden condor
#

It seems to send a heartbeat

#

But not receive a response

fluid basin
#

both latest version?

golden condor
#

Yes

#

I literally have got one place where I destory the client which is the reconnect command but I log back in

remote ivy
#

the easier way to fix worrying about sql injections is by using ?

#

is it possible to define your parameters like this? sql.get(`SELECT * FROM accounts WHERE id = ?`, [message.author.id])

earnest phoenix
#

What does ?` do?

split hazel
#

That should work

remote ivy
#

well in nodejs when using mysql it creates it into a parameter so you can define the variable externally

split hazel
#

What library are you using?

remote ivy
#

it helps prevent sql injections

split hazel
#

Oh I see nevermind

earnest phoenix
#

Ah I see, okay. Thank you 🙂

remote ivy
#

np

opal plank
#

doesnt SQL use VALUES() syntax or only for insertion?

remote ivy
#

only for insertion

opal plank
#

'SELECT * FROM table WHERE id = VALUES($1)

remote ivy
#

to insert data you do "INSERT INTO table (column, column2) VALUES(value1, value2)"

opal plank
#

interesting

remote ivy
#

for selecting you dont need to say that its a value

opal plank
#

i see

remote ivy
#

you should always worry about SQL attacks

#

even if its just a .get

earnest phoenix
#

Oh I see, okay. 😮

remote ivy
#

even though .get itself should protect from doing stuff like cat"; DROP TABLE table;

#

its always a good idea to practice security with queries

split hazel
#

It's still good to get into the habit even from parameters you're certain won't be forged like guild ids

opal plank
#

yeah limit it, or this happens

remote ivy
#

fat oof lmao

opal plank
earnest phoenix
#

@split hazel Yeah true. Alright, thanks guys CatDance

opal plank
#

that all in 5 h

remote ivy
#

not a problem dude

#

and oof rip database

opal plank
#

it was completely fine, was barely using 1 core of the server

remote ivy
#

gg

nimble kiln
#

Pfff that's what databases are for VibeCat

earnest phoenix
#

How do i make my bot send an image?

remote ivy
#

what library are you using?

earnest phoenix
#

huh

remote ivy
#

there is multiple different librarys to talk to the discord api

earnest phoenix
#

wdym

remote ivy
#

if you are using discord.js you can do .send({ files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048'] })

earnest phoenix
#

thats it?

opal plank
#

can files use urls'?

earnest phoenix
#

that is a URL

remote ivy
#

according to the discord.js docs haha

opal plank
#

wtf

#

i thought they needed to be, well, FILES

earnest phoenix
#

https:// means URL, u dum?

remote ivy
opal plank
#

oh it has attachment

#

interesting

remote ivy
#

that may work @earnest phoenix

#

not sure if it would be considered safe as its just a variable and not a statement

#

what package are you using for sql queries?

earnest phoenix
#

Codes snow, and foam ur code is now in my bag :3
(I suck at rhyming)

remote ivy
#

ive never actually worked with sqlite

earnest phoenix
#

Me neither

remote ivy
earnest phoenix
#

I mean, ehh, i'm new to coding discord bots, so im new to everything follwoing: json/Javascript or Node.js or VS code

quartz kindle
#

use prepared statements

remote ivy
#

in that screenshot i just posted shows how you use a prepared statement

#

would make it much more secure

quartz kindle
remote ivy
#

yep

#

use ? if you want to use variables

#

then define those variables outside of the SQL

#

should be easy enough to setup what you want to do working with that

earnest phoenix
#

@gilded plank help

#

@gilded plank commands

quartz kindle
#

@remote ivy btw what exactly is the issue with djs, does .send(embed) not work when embed is an instance of MessageEmbed?

remote ivy
#

yep that is what the issue is @quartz kindle

earnest phoenix
#

.send(embed) works fine for me

remote ivy
#

i uploaded my bot to a VPS and updated to the latest discordjs version and it decided to just break and wouldnt send any embeds

earnest phoenix
#

As well as .send({embed:embed})

remote ivy
#

until i did .send({embed: varname })

earnest phoenix
#

someone added my bot server then my bot crashed when it trys to start
here is the server id : 532753259740266506

remote ivy
#

@earnest phoenix if the embed variable is called embed you can just use .send({embed})

quartz kindle
#

@earnest phoenix the problem is your bot not the server, check your bot's code and look for errors

earnest phoenix
#

^

#

no errors in bot

#

error*

quartz kindle
#

how did you code your bot?

earnest phoenix
#

what you mean

quartz kindle
#

how did you make your bot

#

which programs did you use

earnest phoenix
#

i use vps for hosting centos 7

#

discord.js for code

#

v11

quartz kindle
#

alright, did you check your console?

remote ivy
#

how does one get certified developer 😉

earnest phoenix
#

client.on('ready', e => {
   client.guilds.get("532753259740266506").leave().catch(err => {
    console.log(`there was an error leaving the guild: \n ${err.message}`);
})
})
quartz kindle
#

does any error appear in the console?

earnest phoenix
#

i added this command for leave that server but

#

bot doesn't get ready

#

nothing in console

#

sometimes it says someting take too long to do

quartz kindle
#

add this: client.on("debug",console.log)

earnest phoenix
#

okey

#

it started and my code is worked

#

thanks for helping

remote ivy
#

yeah thats a good way to battle SQL injections

#

one of the best

earnest phoenix
#

Alright, thanks buddy! ❤️

green bison
#

hi i have a question

#

how can i make the bot chose from 2 diffrent answers?

earnest phoenix
#

Why is DSL bot offline

green bison
#

how can i make the bot chose from 2 diffrent answers?

short siren
#

Put both choices in an array and math.random it from 0 to array length then just index the choice with the number that the math.random returns

#

We know no need to bump just ask don't ask to ask

#

You forgot the colon after 'purge'

#

Also instead of a billion IFS at the top just use a switch much easier

opal plank
#

also wtf why not toLowerCase()?

short siren
#

Also unnecessary space after (PREFIX.length)

opal plank
#

How Are You,
how Are You,
How Are you,
How are you,
How are You, @earnest phoenix

#

you can solve all that by just toLowerCase() it

short siren
#

Heck I didn't even realize all the IFS pretty much do the same thing I would of mentioned it lmao 😂

opal plank
#

lemme do some math rq just out of curiosity

#

9^2

#

512

#

512 possible combinations that you can solve with a simple toLowerCase()

#

just used math to see the combination

#

imagine writing 512 if's to match every single case

short siren
#

That'd be painful

prisma locust
#

Hi

#

Pls help me

opal plank
#

what u trying to do again?

prisma locust
#

I created an application. if you enter an incorrect information, it throws it on the error page, but it gives this error in console log and the website closes.

ionic dawn
#

specify the roles that are able to purge or check if the user have the permission to manage messages

still merlin
#

I'm getting a error with this ```js
await message.channel.messages.fetch({ limit: amount }).then(message => {
message.channel.bulkDelete(amount, true).then(message => {
message.channel.send(SuccessfullyDone);
});

        });``` trying to purge messages, 'bulkDelete isnt defined', I've logged message as well https://hastebin.com/xetebozafe
ionic dawn
#

if(user.hasPermission("BLA BLA")){
do bla
}

#

is not gray

#

oh, he deleted the message

earnest phoenix
#

@remote ivy Will it work for sql.all too and sql.run? Example: sql.all(`SELECT id FROM servers ORDER BY id DESC LIMIT 5`) & sql.run(`DELETE FROM warnings WHERE guildId = "${message.guild.id}" AND userId = "${user.id}"`) etc.

remote ivy
#

yep

blazing ravine
#

sorry xd fixed

quartz kindle
#

@still merlin messages.fetch() returns a collection of messages, not a single message

#

so .then(message <- this message is a collection, not a message

#

therefore there is no message.channel

still merlin
#

Oh

#

How do I bulk delete them? messages.bulkDelete?

quartz kindle
#

you dont need to fetch them, just bulkdelete them directly

#

message.channel.bulkDelete(amount)

still merlin
#

oki thanks

quartz kindle
#

if you want to bulkdelete specific messages, then fetch them, and use the fetch result in the delete

#

.fetch().then(result => message.channel.bulkDelete(result))

earnest phoenix
#

@remote ivy But should I worry if it's just sql.all(`SELECT id FROM servers ORDER BY id DESC LIMIT 5`)?

remote ivy
#

yeah

nimble kiln
#

^I'd say no

remote ivy
#

actually just anything really

#

it doesnt do too much damage if its a .get]

nimble kiln
#

You can't do an SQL injection when you can't give it any arguments thonk

remote ivy
#

even .get should be using prepared statements as it can return data that its not supposed to

#

^ i have a feeling that hes talking about using sql.all and sql.run and not the actual query itself

#

if hes talking about the query then absolutely no need

#

should be fine to use

quartz kindle
#

the only attack vector in an sql statement is user input. if a query has user input, you have to protect it. if it doesnt have any user input, it doesnt matter

earnest phoenix
#

@quartz kindle Ah I see

quartz kindle
#

nope

remote ivy
#

not really

#

but its still a good practice to just use that

earnest phoenix
#

Yeah I'll protect it anyways

quartz kindle
#

yes, its good practice to use prepared statements in all queries

earnest phoenix
#

Thanks

remote ivy
#

hey tim

#

how do u get certified developer?

quartz kindle
#

it also helps with code consistency and styling

#

@remote ivy top.gg had a certified program thing, but its in hiatus atm afaik

remote ivy
#

ahh its that

#

thanks

earnest phoenix
#

Hey

remote ivy
#

hi

earnest phoenix
#

Someone fix DSL bot

#

It's offline

remote ivy
#

not the place for that

gritty bolt
#

is mongoose the best way to go for mongodb in nodejs?

ionic dawn
#
function botVotes(){
  dbl.getVotes().then(votes => {
    votes.length
  });
}

message.channel.send('I have ' + botVotes() + ' votes!')
#

Should this work?

#

I always have problems with promises

quartz kindle
#

mongoose is an option, not necessarily the best nor the worst

ionic dawn
#

dnt really understand how they work

quartz kindle
#

@ionic dawn no that wont work

#

then you use .then(), the result will be given in a new context, long after the old context ends

#

the .then() never returns to the original context

#

its like spawning a separate process to run it

ionic dawn
#

hmm.. but I have to use the .then to be able to have the number of votes on screen

#

right?

#

ive been reading and I have to use the .then to resolve the promise, again I still reading about promises, dnt really get them

quartz kindle
#

.then is one way of getting the result of the promise

#

await is another

ionic dawn
#

should I use await in async fnct?

quartz kindle
#

yes

ionic dawn
#

to do what im doing

#

kk ill try

quartz kindle
#

you have to await it

#
async function botVotes(){
  let votes = await dbl.getVotes();
  return votes.length
}

message.channel.send('I have ' + await botVotes() + ' votes!')
ionic dawn
#

oh in the msg too?

#

I think the await was only inside the function

quartz kindle
#

yes, because its an async function

#

all async functions must be awaited

ionic dawn
gritty bolt
#

mongoose is an option, not necessarily the best nor the worst
@quartz kindle do you have any other better options?

ionic dawn
#

and also the length is wrong

#

F to me

quartz kindle
#

@gritty bolt i dont use mongo

gritty bolt
#

oh

#

what do you use?

restive furnace
#

sql is another option (sqlite, mysql, mariadb, postgres)

quartz kindle
#

i use sqlite

ionic dawn
#

await func() isnt a thing

restive furnace
#

r u on 14.8 or newer?

tight plinth
#

await func() isnt a thing
@ionic dawn u sure?

#

it should

restive furnace
#

if not, you need to add (async() => {})(); iirc

#

^ lower than 14.8.x

#

thats why promises are better, cause no callback hell

torpid tiger
#
let add = client.channels.get("740591444963885129")
const eklendim = new Discord.RichEmbed()

.setTitle(`:inbox_tray: Sunucuya Eklendim`)
.setTimestamp()
.setColor("GREEN")
.setThumbnail(guild.iconURL)
.addField(`:clipboard: Server İsmi`,guild.name)
.addField(`:id: Sunucu ID`, guild.id)
.addField(`:crown: Server Sahibi`,guild.owner.user.tag)
.addField(`:id: Server Sahibi ID`,guild.owner.user.id)
.addField(`:busts_in_silhouette: Üye Sayısı`,guild.memberCount)

add.send(eklendim)

});

client.on("guildDelete", guild => {  // sunucuya eklendim ve atıldım
let add = client.channels.get("740591444963885129")
const eklendim = new Discord.RichEmbed()

.setTitle(`:outbox_tray: Sunucudan Atıldım`)
.setTimestamp()
.setColor("RED")
.setThumbnail(guild.iconURL)
.addField(`:clipboard: Server İsmi`,guild.name)
.addField(`:id: Sunucu ID`, guild.id)
.addField(`:crown: Server Sahibi`,guild.owner.user.tag)
.addField(`:id: Server Sahibi ID`,guild.owner.user.id)
.addField(`:busts_in_silhouette: Üye Sayısı`,guild.memberCount)

add.send(eklendim)```
ionic dawn
quartz kindle
#

try (await botVotes())

ionic dawn
#

and im using 12.16.3 @restive furnace

obtuse wind
#

is it bot.cache.guilds.get or bot.guilds.cache.get for guild IDs

ionic dawn
#

@quartz kindle still saying Unecpected identifier

obtuse wind
#

cause im pretty sure starting my index file im going to get lots of errors

quartz kindle
#

@ionic dawn is the place where you're using it also an async function?

#

it has to be async as well

ionic dawn
#

kk let me try something

#

cause my embed is outside the func

#

but.. should be outside the funct right?

still merlin
#

Almost all my commands work fine other than my mute command, 'execute is undefined'

#

Can someone help please?

quartz kindle
#

that means the command was not found

ionic dawn
#

the file where command is or the command location isnt founded

still merlin
#

ok thanks

#

i have a mute.js file tho

ionic dawn
#

@quartz kindle can I send you the whole thing at dm? mayb im missing somethin idk

tight plinth
#

Almost all my commands work fine other than my mute command, 'execute is undefined'
@still merlin use a command handler plz

#

like

still merlin
#

I'm using a command handler

tight plinth
#

try client.commands.get(command).execute(...) catch errors

#

here no

#

also your mute command does not have an execute function to execute

#

wait no

#

the command "mute" was not found

weak rain
#

hey

#
const Discord = require('discord.js');
const fs = require("fs");
const canvacord = require("canvacord");

 module.exports = {
  name: "delete",
  category: "image",
  description: "Delete Meme",
  run: async (client, message, args) => {
    const text = args.join(" ");

        let avatar = message.mentions.displayAvatarURL || message.author.displayAvatarURL({ dynamic: false, format: 'png' });
        let image = await canvacord.delete(avatar);
        let attachment = new Discord.MessageAttachment(image, "deleted.png");
        return message.channel.send(attachment);
  }
}```
#

even if i m mentioning someone

ionic dawn
#

why isnt that working

elder loom
#

Hello

#

does anyone know how i can overwrite the default help command? (i'm using eris)

restive furnace
#

if there's no option, don't use the commandclient, use client instead.

earnest phoenix
#

@remote ivy For this SELECT * FROM table WHERE col = "${message.guild.id} AND row ="${test}", should I do WHERE col = ?, "${message.guild.id} AND row = ?`, [test] or something.

elder loom
#

alright thanks

remote ivy
earnest phoenix
#

Thank you

quartz kindle
#

@ionic dawn you cant use .then

earnest phoenix
#

Does anyone know how to make polls and end them in discord.py

elder loom
#

Thanks for everyone's help! but i just found out there's something called bot.unregisterCommand so i just did that with the default help command and my problem is solved now.

obtuse wind
quartz kindle
#

yes

#

all guild and channel information is cached by default

obtuse wind
#

thats gay

#

let me guess is there gonna be channel.cache.send

opal plank
#

client.channels.cache is a thing, if thats what u asking

weak rain
#

@opal plank HEY

#

ERWIN

#

oops caps

opal plank
#

oh god not again

#

wusup?

obtuse wind
#

no i meant what I said "channel.cache.send" in order to send messages

weak rain
opal plank
#

@weak rain okay... what am i looking at?

weak rain
solemn merlin
#

Somebody knows how to post a message using Discord webhook with Node.js http lib ?

weak rain
#

Na sorry @solemn merlin

opal plank
#

i mean it should be simple

#

the url is the webhook

#

then just add the headers/payload

solemn merlin
#

I'm not a node.js devlopper

#

But I'm forced to use it with Plesk

opal plank
#

im familiar with axios, but any http library should handle the request is a similar fashion

#

url => headers => body

solemn merlin
#

Yes but http lib need a port

weak rain
#

my bot is sending my pic

#

not mentioned user's

solemn merlin
#

What iss the webhook port ?

weak rain
#
const Discord = require('discord.js');
const fs = require("fs");
const canvacord = require("canvacord");

 module.exports = {
  name: "delete",
  category: "image",
  description: "Delete Meme",
  run: async (client, message, args) => {
    const text = args.join(" ");

        let avatar = message.mentions.displayAvatarURL || message.author.displayAvatarURL({ dynamic: false, format: 'png' });
        let image = await canvacord.delete(avatar);
        let attachment = new Discord.MessageAttachment(image, "deleted.png");
        return message.channel.send(attachment);
  }
}```

heres the code

opal plank
#

why does it need a port?

#

its a POST request

#

you dont need any ports on your end for a webhook @solemn merlin

#

@weak rain and i explained to you that you havent described any error

weak rain
#

i explained

ionic dawn
#

@quartz kindle isnt working without the .then, cant display it at the embed

weak rain
#

see this

#

wrong pic

#

even i mentioned

ionic dawn
#

if the embed is outside the thing wont workt CBCattoCry

weak rain
#

wtf

#

i m unble to send pics

opal plank
#

wait what?

#

message.mentions?

ionic dawn
#

first()

solemn merlin
#

Ok, I'll manage to do it in another way, ty ^^

ionic dawn
opal plank
#

message.mentions.users[0]?.displayAvatarULR();

#

actually, tis a map not an array

weak rain
#

error is

solemn merlin
#

The webhook that top.gg send, does the header have something like "user_id" with the id of the discord account that vote ?

weak rain
#

message.mentions?
@opal plank yes

summer torrent
#

@solemn merlin user

opal plank
#

@solemn merlin OH you mean THAT webhook

#

i thought you meant discord's webhook

solemn merlin
#

No @opal plank I was first speaking of the discord webhook x)

quartz kindle
#

@ionic dawn show code

opal plank
#

oh i see

solemn merlin
#

Ok ty, the TEST request send an user ?

weak rain
opal plank
#

@weak rain .user

summer torrent
#

@solemn merlin you mean "Test button" ? It triggers webhook with your ID

weak rain
#

? @opal plank

opal plank
#

@weak rain mentions.users

weak rain
#

kk

solemn merlin
#

Ok ty

weak rain
#

@opal plank

opal plank
#

?

solemn merlin
#

I got "undefined" for the user headers

#

fs.appendFile('console.txt',request.headers['user'],function (err){if(err){throw err;}});

opal plank
#

lemme check the types rq

weak rain
opal plank
weak rain
#

same error

opal plank
#

im assuming this is body

solemn merlin
#

?

opal plank
#

idk what headers top.gg sends, but i think its auth

mellow marlin
#

i need codes

solemn merlin
#

This is barely my codes

opal plank
#

@mellow marlin we dont spoonfeed here

solemn merlin
#
var fs = require('fs'); 
http.createServer(function(request, response) {
    if(request.headers['authorization']==process.env.apiKey){
    fs.appendFile('console.txt','==Requête de Top.gg===\n',function (err){if(err){throw err;}});
    fs.appendFile('console.txt',request.headers['user'],function (err){if(err){throw err;}});    
    fs.appendFile('console.txt','\n==Fin requête===\n',function (err){if(err){throw err;}});
    response.writeHead(200, {'Content-Type': 'text/html'});
      response.end('<p>ok)</p>');
    }else{
        response.writeHead(200, {'Content-Type': 'text/html','connected':false});
      response.end('<p>no.</p>');
        f//s.appendFile('console.txt','',function (err){if(err){throw err;}});
        
    }
  

}).listen(8443);```
opal plank
#

@solemn merlin what i sent above is the response

solemn merlin
#

Yep but you have "user"

mellow marlin
#

@mellow marlin we dont spoonfeed here
@opal plank arab ?

slender thistle
#

Imagine not supporting queries in your webhook

opal plank
#

im not sure tbh

summer torrent
solemn merlin
#

That I didn't got

opal plank
#

@mellow marlin no, english

solemn merlin
#

Yes there is "user"

opal plank
#

user is in payload iirc

#

this is payload response

solemn merlin
#

Bruh idk how to get the payload, only the header

mellow marlin
#

@mellow marlin no, english
@opal plank ok

opal plank
#

should be in Body

solemn merlin
#

i'm not node.js dev

#

Oh in body

slender thistle
#

Parse the body as JSON, get user key

opal plank
#

^^

solemn merlin
#

So request.body ?

opal plank
#

i was about to check if there was a header saying if it was json

slender thistle
#

request.json might be a thing

opal plank
#

im not too sure either, most of the stuff i use is express(which is similar) and axios

slender thistle
#

I mean, if it's not JSON, I doubt it's a proper request from top.gg

solemn merlin
#

Ok ty (I'm really not web dev, I just need to make a thinks with webhook lmao)

#

And the worst is that with Plesk I can't add modules

opal plank
#

wouldnt it be 1000000X easier to just copy the snippet?

#

rather than using http?

solemn merlin
#

Ye but I can't add modules

opal plank
#

oh i see

summer torrent
#

why you can't

solemn merlin
#

Plesk$

summer torrent
solemn merlin
#

I have a vps but fully use for my bot

fringe axle
#

So I have this:

{member.user.displayAvatarURL({ format: png })
``` and for any reason ``png`` is not defined. anyone knows why?
opal plank
#

cuz png is a variable

#

'png' is a string

#

@fringe axle

fringe axle
#

Oh, okay!

drifting wedge
#

if members size === 1 === 742831363358589028:

#

wuts wrong with this?

pure lion
#

What

drifting wedge
#

saying invalid syntax

pure lion
#

What are you trying to do?

sweet kestrel
#

when will i know my bot it approved?

pure lion
#

Because yes, that is invalid

drifting wedge
#

check to see if bot is alone in vc

sweet kestrel
#

k

pure lion
#

How well do you know JavaScript? (@drifting wedge)

drifting wedge
#

its python

pure lion
#

Oh

#

Makes sense

obtuse wind
#

yikes

pure lion
#

Yeet

#

Anyway

obtuse wind
#

I was putting that into js

slender thistle
#

len(voice_channel.members) == 1

pure lion
#

Does py use .s to access obje-

drifting wedge
#

@slender thistle

#

but for just the bot

#

like for the bot to disconnect

pure lion
#

Shiv is py wizard

drifting wedge
#

does the bot lag if its a ton of vc?

#

vcs without playing music

pure lion
#

Depends on your host

#

Usually no

topaz fjord
#

if the bot is in a vc alone then the length of voice channel members will be 1

drifting wedge
#

ok

#

so len(voice_channel.members) == 1

#

?
this checks for bot?

pure lion
#

What is len thonkku

sand thicket
#

What is len thonkku
Pythons way to count

#

Or well i say parse a number

pure lion
#

But in what context

#

Oh

#

Tank :)

sand thicket
#

So len('Hey') == 3

pure lion
#

OhHHhhH

#

len as in length

#

Got it

fringe axle
#

So, I want to make something like wfakequote Username | Text hwo can I do the text split? (discord.js v12)

sand thicket
#

What language Vale?

fringe axle
#

discord.js v12. Sorry, forgot that

pure lion
#

let cum = message.content.split("|")

sand thicket
#

NodeJS.. use .split('|')

obtuse wind
#

i lowkey wish this server could make multiple development channels and specify a channel for languages

fringe axle
#

let cum = message.content.split("|")
@pure lion Okay? xD

#

Ahh

pure lion
#

Wait

sand thicket
#

i lowkey wish this server could make multiple development channels and specify a channel for languages
This is brilliant

fringe axle
#

How can I do it with args?

pure lion
#

Add .trim() after

fringe axle
#

Okay

earnest phoenix
#

when the bot is approved on the top.gg website will they put it on that server? like to do tests on the bot and etc.

still merlin
#

How do I get a role?
I get this error

Uncaught Promise Rejection TypeError: message.guild.roles.find is not a function```
when i tried this
```js
let muterole = message.guild.roles.find(role => role.name === "muted");```
fringe axle
#

And with args?

pure lion
#

@fringe axle I named it cum because it's an array like args

#

@still merlin discord.js V12?

fringe axle
#

Hmmm

still merlin
#

yes

earnest phoenix
#

when the bot is approved on the top.gg website will they put it on that server? like to do tests on the bot and etc.

pure lion
#

Roles are cached

earnest phoenix
#

Sorry

pure lion
#

But yes they will

sand thicket
#

let muterole = message.guild.roles.cache.find(role => role.name === "muted"); @still merlin

pure lion
#

Don't spoonfeed

still merlin
#

thankyou very much

fringe axle
#

Hm

pure lion
#

Trim is a method

#

Put ()

fringe axle
#

Did it

pure lion
#

O?

#

Eh I forgot the thing to remove whitespace

fringe axle
#

The what

pure lion
#

Regex time!!!!

fringe axle
#
let text = message.content.split("|").trim();
golden condor
#

Do message.content.trim().split("|")

fringe axle
#

Okay

sand thicket
#

replace(/\s/g, "") to remove whitespace

fringe axle
#

And with args.join?

golden condor
#

Just use .trim

fringe axle
#

How?

pure lion
#

/\|| | /g 😄

golden condor
#

as I said

#

.trim

pure lion
#

Regex is not fun

fringe axle
#

Okay

golden condor
#

Do message.content.trim().split("|")

#

instead

#

You trim first then split

pure lion
#

Does that remove all spaces

golden condor
#

No

fringe axle
#

Da fuq

pure lion
#

Bruj

#

Oh

fringe axle
#

You want to see the code?

pure lion
#

Spice the shit

golden condor
#

Because you split the message content?

pure lion
#

Like args

#

Copy args

golden condor
#

Split the args

fringe axle
#

Make sence

pure lion
#

And replace / +/g with /|/g

#

And trim too

fringe axle
#

Whut?

#

Where?

pure lion
#

Wait show args

#

How do you do args

golden condor
#

Hello all, I had to go earlier and didn't have a chance to finish so could I have some help with this:
#development message

fringe axle
#
async run(message) {

    let argsC = message.content.split(" ").slice(1);

    let text =  argsC.join(0).trim().split("|");

    if(!text) {
      message.say(`Please provide a text!`)
    }

    let member = message.guild.members.cache.find(m => m.user.username.toLowerCase() === argsC.join(1).toLowerCase()) || message.member;
    const userFlagsA = await member.user.fetchFlags();
    const userFlags = userFlagsA.toArray();

var image = await canvas.quote({
username: `${member.user.username}`,
message: `${text}`,
color: `#ffffff`,
image: `${member.user.displayAvatarURL({ format: 'png' })}`,
});
return message.channel.send(new Discord.MessageAttachment(image, 'fakequote.png'))
  }
}
``` Whole code.
#

I define args manually with argsC, don't ask.

pure lion
#

Do slice(1) on cum

faint prism
#

lol

restive furnace
#

@golden condor are you destroying your shards? it might be d.js-light related issue if you're not doing anything wrong.

fringe axle
#

I don't have cum

pure lion
#

Same thinf

#

Text

golden condor
#

Hi I am using discord.js/discord.js-light and i listened for the debug event because my bot would come online and function properly but then after a couple minutes, went offline, every single time and then I used the debug event, and this happened and I have no idea why this keeps happening:
Just gonna bring this down

fringe axle
#

At the end?

golden condor
#

@golden condor are you destroying your shards? it might be d.js-light related issue if you're not doing anything wrong.
@restive furnace no I'm not

fringe axle
#

argsC.join(0).trim().split("|").slice(1)

#

Like this?

pure lion
#

Does Tim know of the issue?

fringe axle
#

Okay xD

golden condor
#

Haven't told him about it

drifting wedge
#
    return await msg.voice_client.disconnect(), await msg.send(f":lp: Disconnected from Voice Channel because it had no users")
else:
    return```
#

this is giving me error

#

return error

golden condor
#

But it only seemed to happen this morning

pure lion
#

Hmmmm

#

Check the API ping and server status

golden condor
#

I changed nothing

pure lion
#

Then it's a discord issue

#

Too many bots 😄

fringe axle
golden condor
#

Unless fetchAllMember could have an affect

pure lion
#

@fringe axle console.log the Argy boyes

golden condor
#

But I enabled it yesterday and it worked fine

pure lion
#

@golden condor doesn't discord.js-light show you when you're ratelimited?

fringe axle
golden condor
#

Yeah

#

It wouldn't be to do with rate limits I don't think

pure lion
#

Try disabling the fetchall

golden condor
#

And I am not declaring intents

fringe axle
#

Can someone help? :0

pure lion
#

Uh

#

In a sec

fringe axle
#

Okay

pure lion
#

My brain slow

fringe axle
#

Sec done

golden condor
#

Try disabling the fetchall
@pure lion it worked yesterday tho, could it be to do with my WiFi?

pure lion
#

Are you hosting on your net

golden condor
#

Yes atm

pure lion
#

HmmmMMMMMM

#

Probably

golden condor
#

Because I'm just testing out code and stuff

pure lion
#

I test on my webserver 8)

golden condor
#

I'm still coding it so there is no point putting it into the vps but I can try

pure lion
#

Yeah try that and if it works then 😄

golden condor
#

Alright

fringe axle
#
async run(message) {

    let argsC = message.content.split(" ").slice(1);

    let text =  argsC.join(0).trim().split("|").slice(0);

    if(!text) {
      message.say(`Please provide a text!`)
    }

    let member = message.guild.members.cache.find(m => m.user.username.toLowerCase() === argsC.join(1).toLowerCase()) || message.member;
    const userFlagsA = await member.user.fetchFlags();
    const userFlags = userFlagsA.toArray();

var image = await canvas.quote({
username: `${member.user.username}`,
message: `${text}`,
color: `#ffffff`,
image: `${member.user.displayAvatarURL({ format: 'png' })}`,
});
return message.channel.send(new Discord.MessageAttachment(image, 'fakequote.png'))
  }
}
#

someone? ;__;

quartz kindle
#

?

fringe axle
#

Read above

#

The text split

quartz kindle
#

explain what's wrong with it

#

what do you want to happen

fringe axle
#

wfakequote Hi! | Tim

sweet ruin
#

Hello I am in need of assistance :/

#
if (oldMember.user.avatar != newMember.user.avatar){  await embed.setThumbnail(newMember.user.displayAvatarURL({ dynamic:true }).replace('.webp', '.png') + '?size=2048'), embed.setTitle(`Profile Picture Update`) } else {}```
#

so I coded this to work whenever a user changes something about themselves

#

it goes through a list of if then statements in a way

#

but for some reason

#

this avatar thing doesnt work at all
it sends the basic embed that i created. but doesnt add anything in for this avatar change.
all the other ones I made do work, help?

quartz kindle
#

@fringe axle you're adding 0,0 to it because you're joining with a 0

fringe axle
#

Oh

#

But IDK how can I do it right...

quartz kindle
#

@fringe axle first remove the command: .split(" ").slice(1).join(" ")

#

then split the delimiter: .split("|").map(t => t.trim())

#

then the result is [0] the text, [1] the user

fringe axle
#

Okay

versed igloo
#

is there a way to have my bot only respond to a message if its sent by me?

sonic lodge
#

check if the author of the message has the same id as you

sweet ruin
#

under your message event

obtuse wind
#

^ or that;

  if(message.author.id != yourID) return;
sweet ruin
#

either way works tbh

obtuse wind
#

tru tru

sweet ruin
versed igloo
#

ok thanks

obtuse wind
#

uh yeah what version of discord.js are you using Creepa

sweet ruin
#

12

obtuse wind
#

make sure to use cache to get required information

sweet ruin
#

well it gets my information

obtuse wind
#

so like oldMember.user.cache.avatar;

sweet ruin
#

oh

#

hmm

#

lemme doublecheck

#

no

#

that breaks it

obtuse wind
#

hmm

sweet ruin
#

you see what im using gets me the guild member object

fringe axle
#

@quartz kindle you there?

sweet ruin
#
client.on('guildMemberUpdate', async (oldMember, newMember) => {
    if (oldMember.guild.id === '700847999076663566') {
        const patroncheck = client.guilds.cache.get('700847999076663566');
        const patronrole = patroncheck.channels.cache.get('746276368785997844');
        if (oldMember.nickname === null) oldMember.nickname = oldMember.user.username;
        if (newMember.nickname === null) newMember.nickname = newMember.user.username;
        let embed = new Discord.MessageEmbed()
        .setColor('ORANGE')
            .setAuthor(`${newMember.user.tag}`, `${newMember.user.displayAvatarURL({ dynamic:true }).replace('.webp', '.png') + '?size=2048'}`)
            .setTimestamp()
            .setFooter(`User ID: ${newMember.user.id}`);
            // Roles
            if (oldMember.roles.cache.size != newMember.roles.cache.size) { await embed.addField('Old', `${oldMember.roles.cache.filter(r => r.id !== oldMember.guild.id).map(roles => `<@&${roles.id}>`).join(" ") || "![no](https://cdn.discordapp.com/emojis/725924147489669241.webp?size=128 "no") No Roles."}`, true), embed.addField(`New`, `${newMember.roles.cache.filter(r => r.id !== newMember.guild.id).map(roles => `<@&${roles.id}>`).join(" ") || "![no](https://cdn.discordapp.com/emojis/725924147489669241.webp?size=128 "no") No Roles."}`, true), embed.setTitle(`Role Update`)} else {}
            // Nick / User
            if (oldMember.nickname != newMember.nickname) { await embed.setTitle(`Nick / Username Update`), embed.addField('Old', `${oldMember.nickname}`, true), embed.addField('New', `${newMember.nickname}`, true) } else {}
            // AvatarURL```
#
            if (oldMember.user != newMember.user){  await embed.setThumbnail(newMember.user.displayAvatarURL({ dynamic:true }).replace('.webp', '.png') + '?size=2048'), embed.setTitle(`Profile Picture Update`) } else {}
            // Username
            if (oldMember.user.username != newMember.user.username){  await embed.setTitle(`Username Update`), embed.addField(`Old`, `${oldMember.user.username}`, true), embed.addField(`New`, `${newMember.user.username}`, true) } else {}
            // Discrim
            if (oldMember.user.discriminator != newMember.user.discriminator){  await embed.setTitle(`Discriminator Update`), embed.addField(`Old`, `${oldMember.user.discriminator}`, true), embed.addField(`New`, `${newMember.user.discriminator}`, true) } else {}
            
            
            await patronrole.send(embed)
    } else {
    }
});```
earnest phoenix
sweet ruin
#

OOooh

#

thanks

earnest phoenix
#

seems to be broken

#

again

obtuse wind
#

yeah.. you lost my on that

earnest phoenix
#

fork of hastebin

obtuse wind
#

question though; does definedembed.addField; also work for like definedembed.setAuthor? or definedembed.setColor?

#

or is it definedembed.addField only for adding fields

sweet ruin
#

its the whole line that isnt working

#

which means that it cannot realize the starting code that compares the two things

versed igloo
#

when I use it it returns ReferenceError: message is not defined

#

also this is the full code if (msg.content === "creator") { if(message.author.id != 666378959184855042) return; msg.channel.send("hey look its my creator insert username here"); }

eternal zodiac
#

Hu

restive furnace
#

you are using msg and message..

#

so make your message to msg.

eternal zodiac
#

Hi

#

,

restive furnace
#

don't spam here, aka ask ur question thx

eternal zodiac
#

Hi Izzy foreign gÇ

restive furnace
#

?

versed igloo
#

it worked thanks!

uncut vortex
#

Does anyone know how to have multiple instances of code running at the same time linked to one user

restive furnace
#

Why tho?

sweet kestrel
#

wanna make your bot 24/7 online?

#

go to heroku

restive furnace
#

we know heroku, glitchh, repl.it etc.

sweet kestrel
#

is free

#

nocie

restive furnace
#

but they all are bad.

sweet kestrel
#

noice

restive furnace
#

💩

sweet kestrel
#

?

#

they are pretty good

earnest phoenix
#

heroku/glitch/repl doesn't keep your bot 24/7 online

restive furnace
#

^

sweet kestrel
#

it does

#

mine does

restive furnace
#

sometimes they might keep ur bot up 95% of the time - but only if you're lucky.

sweet kestrel
#

...

#

really?

earnest phoenix
#

repl restarts every 10 minutes, glitch restarts everyday, heroku resets when dyno ends it's worker time

restive furnace
#

heroku += aka everyday

drifting wedge
#
    return await msg.voice_client.disconnect(), await msg.send(f":lp: Disconnected from Voice Channel because it had no users")
else:
    return``` giving me syntax error
#

sometimes they might keep ur bot up 95% of the time - but only if you're lucky.
@restive furnace heroku for me works 24/7

#

no card, hosting like 6 bots

restive furnace
#

as i said before

#

that there will come downtime

golden condor
#

Relating to this:
#development message
I've tried logging in on another bot, I've tried removing the fetchAllMembers option and I get the exact same result

#

I've tried putting it on my vps and recieve the same issue

quartz kindle
#

try to remove all your code except require and login, and debug

golden condor
#

Ok

#

Am doing that

#

huh

#

it works with that

#

and I'm using the same client options

#

That's really weird

misty sigil
#

they are pretty good
@sweet kestrel if those are good then a vps is the best fucking shit to ever exist

sweet kestrel
#

noice

golden condor
#

hmm

#

then the second one isn't acknowledged

#

and it starts spamming that error again

quartz kindle
#

even with just basic code?

golden condor
#

no

#

basic code works

misty sigil
#

where could it be happening then

golden condor
#

i have no idea

misty sigil
#

try gradually adding more and more code?

golden condor
#

like i use a custom client

#

but i don't that would cause it

earnest phoenix
#

Show us your custom client

golden condor
#

buckle up bois

earnest phoenix
#

HASTEBIN

golden condor
#

I FUCKING KNOW

#

lmao

earnest phoenix
#

ok

golden condor
#

let's just say

#

it's long

earnest phoenix
#

Ok

golden condor
earnest phoenix
#

You arent editing any heartbeats or anything weird

golden condor
#

it always happens after like 5 mins

earnest phoenix
#

Can u comment out the custom events section

#

I have a suspicion that might be the issue

golden condor
#

i just saw something

#

i did an oopsie

misty sigil
#

what

golden condor
#

that might fix it

#

just checking

#

yeah it fixed it

#

i had a setInterval for presence

#

and i forgot to put in the time value

#

lol

misty sigil
#

lmfao

#

you eejit

golden condor
#

shut up

#

i didn't notice it

misty sigil
#

we all make mistakes

golden condor
#

@slender thistle monkaStab

fervent goblet
#

it wont let me install color-thief :/

earnest phoenix
#
    return await msg.voice_client.disconnect(), await msg.send(f":lp: Disconnected from Voice Channel because it had no users")
else:
    return``` giving me syntax error

@drifting wedge what error

quartz kindle
#

@fervent goblet its looking for cairo, which is a graphics processing library

#

check if they have specific instructions for installing on windows

#

usually windows builds require something like GTK which includes cairo

earnest phoenix
quartz kindle
#

what the fuck

#

how

earnest phoenix
#

How do i make my bot send a message with out any commands from a player?

#

i think it downloaded the entire library

#

nvm, i already know, lmaooo

quartz kindle
#

what kind of library is fucking 33 gigs

earnest phoenix
#

i have no idea

quartz kindle
#

afaik github's limit is 100mb

earnest phoenix
#

also its terabyte

quartz kindle
#

tb

#

what te fuck

#

wait

fervent goblet
#

So if i install GTK it will work potentially?

quartz kindle
#

do you even have 33tb disk space?

misty sigil
#

@earnest phoenix the fuck

#

how many modules

#

did you install

earnest phoenix
#

its not my pic xD

#

it's photoshopped

#

but i heard the guy installed like 2000 fucking modules

#

fr tho

quartz kindle
#

@fervent goblet check their website/github for windows installation instructions

misty sigil
#

i'd doubt 2000 would be that much

earnest phoenix
#

apple devices don't come with 33TB of storage

#

lol

#

imma bet some sqlite file is in one of them that increased heavily

fervent goblet
#

there is nothing as far as i can see

earnest phoenix
#

apple devices don't come with 33TB of storage
@earnest phoenix pretty sure thats linux, not apple's shit

#

oh?

#

it looks so much like sierra

#

with linux, anything's copyable

#

xD

#

pretty sure windows themes exist to turn linux's desktop into windows 10

fervent goblet
#

so i guess i need to install GTK

quartz kindle
#

yes

#

my guess is that its made mainly for browsers

#

but for node it uses node-canvas, which requires GTK and cairo

earnest phoenix
#

How do i make my bot send messages to people?

misty sigil
#

<user>.send

earnest phoenix
#

that ez?

misty sigil
#

yea

#

at least in djs

earnest phoenix
#

<user>.send('message')?

fervent goblet
#

yup

earnest phoenix
#

Aight

#

Wait, does the user have to be the name and number? or sumthin

#

yes, i assume

#

dumb question ;-;

#

Hey

misty sigil
#

hi

#

Wait, does the user have to be the name and number? or sumthin
@earnest phoenix no

#

it has to be the user object

#

lol

earnest phoenix
#

Just started my RainzSecurity Bot a couple weeks ago and everything is already going good

sudden geyser
#

pretty sure thats linux, not apple's shit
@earnest phoenix even so, 33 TB?

#

Who is going to need that

earnest phoenix
#

it has to be the user object
@misty sigil
huh?-

#

Wtf is a user object

#

can someone explain how a user object works?

quartz kindle
#

which library are you using?