#development

1 messages ยท Page 1237 of 1

slender thistle
#

Do I look that dumb to you? :^)

opaque hawk
#

Why doesn't ts await message.guild!.members.kick(user); kick the GuildMember? The error is
"Property 'kick' does not exist on type 'GuildMemberManager.'"

slender thistle
#

Nah, my assignment says x must be 5

faint prism
#

Well you're getting Abs() which wouldn't be needed then if youre doing a sqrt
yeah?

slender thistle
#

Try message.guild.kick

opaque hawk
#

ok

#

Now it doesn't exist on type 'Guild'

faint prism
#

(Abs(1 - x) ^ (1 / 2))
did you mean?
(Abs(1 - x)) ^ (1 / 2)

#

assuming Abs is absolute value

slender thistle
#

...

#

oops

faint prism
#

๐Ÿ™‚ you're welcome

opaque hawk
#

:d

slender thistle
#

still doesn't work though

faint prism
#

Then break you're calculations down into steps
And debug that way
Set breakpoints and check the results along the way with what you do on paper or whatever

slender thistle
#

The "IDE" points at x^(1 / 2), the very first calculation in arr(1)

opaque hawk
#

your* but who really asked/cares

sonic lodge
#

what is x

faint prism
#

better make sure x is positive

slender thistle
#

5

#

It's a constant

sonic lodge
#

..interesting

#

you sure it's not changing somehow right before that line?

slender thistle
#

Unless my multiplications that only rely on x somehow edit it, I don't think that's an issue?

#

It's equal to 5 before the first exponential operator used on it

#

๐Ÿค”

sonic lodge
#

๐Ÿ˜•

ember lodge
#

Someone knows a package or API to know the status of a ARK server?

charred geyser
#

nope

opal plank
#

@ember lodge you need to use steam api for that

charred geyser
#

Can anyone give me advice about hosting a website/dashboard for my diiscordjs bot

opal plank
#

afaik there isnt a package for that, only a wrapper to easily communicate with steam

ember lodge
#

thxs

opal plank
ember lodge
#

but the servers are from PS4

charred geyser
opal plank
#

Hmmmm that might make things more difficulty

#

i am unaware of how to meddle with ps4/xbox servers

slender thistle
#

@sonic lodge One issue solved, now I'm getting division by zero somehow. This will be a rough night for my mind... ๐Ÿ˜‚

#

Thanks

ember lodge
#

i tried using gamedig but it doesn't work

opal plank
#

i dont think theres an open api for touching ps4 servers that you can acess

#

most of this stuff should be handled by ps4/microsoft servers

#

ive used the steam api to connect to ark servers before, but not on console

tough moth
#

Thanks for help, i am created music bots ๐Ÿ‘Œ

ember lodge
#

thanks then Love

opal plank
proven lantern
#

if you add the infinite many numbers between 0 and 1 do you get 2 or less than 2?

opal plank
#

offopic but should be 2

earnest phoenix
#

any suggestion how to bin converter

#

1101101001 = ?

#

like that

sonic lodge
#

use parseInt

proven lantern
#

parseInt(string, radix)

faint prism
#

1101101001 = ?
@earnest phoenix binary to what?

#

hex?

earnest phoenix
#

text

#

number

#

string

#

int

faint prism
#

so hex

earnest phoenix
#

yes . . .

#

didn't know it is hex

faint prism
#

a character's encoding is just representations of hex

#

Do you know what the encoding is?

earnest phoenix
#

nope

faint prism
#

do you know if it's even a character?

proven lantern
#

is the text "1101101001 "

earnest phoenix
#

string

#

@faint prism yes

faint prism
#

You could try ascii

earnest phoenix
#

a is a character

#

right ?

faint prism
#

a is a character
the hex representation is 61
the decimal representation is 98
and the octal representation is 141

earnest phoenix
#

so i have to convert it to number then convert it to hex

#

bin => number => hex

faint prism
#

binary is just one of the representations

#

it's actually easier to go from something -> binary -> something else

#

so going from binary -> is fairly simple

charred geyser
#

Can anyone give me advice about hosting a website/dashboard for my diiscordjs bot

faint prism
proven lantern
#

separate the discord bot logic from the website. host the discord bot on your computer and host the website on some cheap hosting somewhere.

misty sigil
#

no

#

thats a bad idea imo

#

its better to have the dashboard and the bot integrated

faint prism
#

Well you can integrate via a custom API

hexed zinc
#

Does anyone have example code on how to change the bots title color on top.gg?

pure lion
#
.bumbum {
  color: "pineapple green";
}```
proven lantern
#

@misty sigil why

misty sigil
#

because it just makes things easier

faint prism
#

[BOT] --> [API] <-- [WEBSITE]
|
v
[DB]

misty sigil
#

you only have one db connection

#

makes it easier to interact with the bot stuff too

charred geyser
#

yeah they both connect to the same db

proven lantern
#

your website shouldn't make discord api calls

#

it should only access the db.

faint prism
#

unless you want the bot making db calls directly as well

hexed zinc
#

@pure lion I added the to my bots long description and it just adds that code to the text

proven lantern
#

@faint prism agreed, that's how i have mine

limber flume
#

beb

#

ben

#

hi ben

#

idk u ๐Ÿ™‚

#

hi sesasnail

charred geyser
#

pls

pure lion
#

@hexed zinc is it in style tags?

hexed zinc
#

Im not sure how to do that

charred geyser
#

[BOT] --> [API] <-- [WEBSITE]
|
v
[DB]
@faint prism how would i do this?

faint prism
#

Well it's a pretty full stack dev project

charred geyser
#

yeah it seems like it

#

right now mine is fairly basic

#

the bot and the dashboard are seperate

#

they both make a connection to the same mongodb

pure lion
#

I am full stack dev

#

What is up

charred geyser
#

what

hexed zinc
#

Any idea why this is not working?

<style>
.bot-name {
  color: "pineapple green";
}
</style>
proven lantern
misty sigil
#

you cant host something like that for free really

valid frigate
#

free cloud

#

yeah im not so sure about that

proven lantern
#

i have free cloud hosting

#

been hosting many websites for around 6 years now

misty sigil
#

idk i've never really explored free hosting

valid frigate
#

that aside

misty sigil
#

you would need a node app, and most free web hosts dont allow those

valid frigate
#

the official discord api is interacting directly with your database

misty sigil
#

yea that too

#

how do they know the credentials

outer lodge
#

Hi everyone. I moved my bot from Heroku to Vultr VPS to avoid the dynos reset putting it to sleep. I start it with nohup node bot.js command. But it still stops every few hours. Anyone here experienced with that? Trying to run it 24/7

proven lantern
#

the data from the api is stored in the db

valid frigate
#

use pm2 process manager

proven lantern
#

the api cant directly do that

valid frigate
#

im having trouble understanding your issue

outer lodge
#

Vysion so I have actually tried using PM2 but for some reason my bot goes online for a second and then back offline when I do that

charred geyser
#

yeah my website is a node app

valid frigate
#

so basically im pretty sure pm2 has logs that you can read through

#

if you run pm2 ls what shows up

#

oh yeah pm2 logs appname

faint prism
#

@faint prism [diagram]
@proven lantern The discord api won't be calling your db lol

valid frigate
#

lmao that was confusing

outer lodge
#

Thank you I will try that now

valid frigate
#

well what i need to see is the logs

proven lantern
valid frigate
#

so just grab a screenshot and report back

#

commands through message listener sounds like a fancy way of saying discord wrapper

misty sigil
#

lmfao

charred geyser
#

but

valid frigate
#

like honestly the fuck is going on here

charred geyser
#

what do i do about the website api

valid frigate
#

do you want to display bot stats on the website

charred geyser
#

no

#

its liike

proven lantern
#

commands through message listener sounds like a fancy way of saying discord wrapper
@valid frigate this message listener client.on('message', messageListener);

valid frigate
#

AElawema,manAWIOEKWLA

charred geyser
#

for editting the bots settings

valid frigate
#

LOL

#

oh ic

#

client.on('message', messageListener); is from a discord api wrapper

outer lodge
proven lantern
#

oh, you mean an api library?

misty sigil
#

catch(){}?

valid frigate
#

this means you didnt close the catch block right

outer lodge
#

I didn't write that tho. This is discord.js

#

so weird

valid frigate
#

wow that is weird

misty sigil
#

discord.js is based off js

valid frigate
#

you have an outdated node version

#

update now

charred geyser
#

now

valid frigate
#

catch () {} can be substituted with catch {} (discards the error)

outer lodge
valid frigate
#

in later nodejs versions i believe

misty sigil
#

thank eyesight man

charred geyser
#

lol

valid frigate
#

nodejs 12 is in its maintenance stage

#

reaches eol pretty soon too

outer lodge
#

kk thank you, I'll uninstall that and install newer.

valid frigate
#

oh wait its still aactive nvm

#

never mind i read the wrong version

charred geyser
#

so is the conclusion: its way too confusing and complicated to do so i just shouldn't?

valid frigate
#

the fuck is the discord.js error then

uncut cosmos
#

can some one help me im in testing 1 vc

outer lodge
#

I think you may be right though, I think I had node 8 at some poitn I may have both and should uninstall 8 or something

valid frigate
#

to make a dashboard you need to work around oauth2

#

hmm wait

charred geyser
#

i already have that set up

#

i mean

valid frigate
#

can you run pm2 describe bot

charred geyser
#

i have a functional dashboard

valid frigate
#

right

charred geyser
#

it allows me to edit shit like the prefix per server

#

but i need to properly host it

valid frigate
#

uh

#

what's stopping you from hosting it on the same server as the bot

outer lodge
#

yes it's showing version 8.10! I didn't know it didn't switch when I install new version

valid frigate
#

ok well in that case

#

you should delete that pm2 entry and completely restart it

#

pm2 delete bot first

charred geyser
#

i guess i can do that

#

then do i just buy a domain?

valid frigate
#

and then start it again

#

you could access your own api directly from your vps ip

#

depending on your host though you might not want to expose your ip so if you really want to keep it secure then get a domain and hook it up with cloudflare

charred geyser
#

i just dont understand like

valid frigate
#

.xyz is <$1 for most registrars

charred geyser
#

yeah

outer lodge
#

wow thanks a lot Vysion, this fixed it! I'll be paying forward for your kind and timely help.

charred geyser
#

i have a domain

valid frigate
#

lmao no problem bro

charred geyser
#

snailcorp.xyz

#

but

valid frigate
#

sick

#

now use it

charred geyser
#

i have to pay for like

#

actual file hosting

valid frigate
#

wdym pay for file hosting

charred geyser
#

like i have the domain

valid frigate
#

im a bit lost

charred geyser
#

but

opal plank
#

domain isnt a vpn

valid frigate
#

right

charred geyser
#

there is nothing on the domain

opal plank
#

domain is just a name that fowards to an ip

#

thats all

charred geyser
#

yeah

earnest phoenix
#

and somewhere is free

opal plank
#

there isnt file storage in a domain

earnest phoenix
charred geyser
#

exactly

valid frigate
#

it points to an ip which you can then use

earnest phoenix
#

:))

valid frigate
#

so i see that you need help with perhaps setting up dns?

earnest phoenix
#

yes

charred geyser
#

but putting the domain into my node app doesn't work

valid frigate
#

ok ok

#

lets start from square one here before anything else

opal plank
#

just point to where your nodeapp is

valid frigate
#

who is your domain name provider

opal plank
#

be it locally

earnest phoenix
#
www - CNAME - UR_DOMAIN.DOMAIN
opal plank
#

or in a vpn

chilly tree
#

...

valid frigate
#

i man

#

i mean

#

if you have the domain set up and whatnot and the ip is pointing to your vps

charred geyser
#

i just got this becuase it was $1

earnest phoenix
#

from where ?

#

cheapname

#

?

faint prism
earnest phoenix
#

yes

charred geyser
#

lol

valid frigate
#

right

charred geyser
#

funny name

earnest phoenix
#

it is like "go dad pay it for me"

valid frigate
#

is the a record of your dns settings pointing to your vps ip

earnest phoenix
#

:))

charred geyser
#

is the a record of your dns settings pointing to your vps ip
@valid frigate im not sure how to do that

valid frigate
#

thats fine

#

here

earnest phoenix
#

wait what

#

yes

#
www - CNAME - IP
valid frigate
#

this is optional ^

earnest phoenix
#

nah

#

if u want to add a domain

valid frigate
#

in your domain name settings there should be an option to manage dns right

earnest phoenix
#

u have to do that

valid frigate
#

no you dont

#

i deleted that record

earnest phoenix
#

yes u have to

#

nvm

#

idk

valid frigate
#

cname is optional

earnest phoenix
valid frigate
#

please read about cname

charred geyser
#

yes

earnest phoenix
#

bruh if u want to add domain

charred geyser
#

there is options

misty sigil
#

its A you want

earnest phoenix
#

yes

valid frigate
#

ok ok cool

earnest phoenix
#

2 options

#

but cname better

misty sigil
#

no.

valid frigate
#

now add an a record pointing to your vps ip

misty sigil
#

they're different

earnest phoenix
#

ok

proven lantern
#

you shouldnt worry about setting up a domain until you are ready to advertise your bot

earnest phoenix
#

imma read docs about that

valid frigate
#

A record**

valid frigate
#

you shouldnt worry about setting up a domain until you are ready to advertise your bot
christ

#

hes making a dashboard

charred geyser
valid frigate
#

nice

charred geyser
#

this is what i have

proven lantern
#

most hosting comes with free domains

valid frigate
#

now click the edit icon next to the a record

misty sigil
#

The A record maps a name to one or more IP addresses when the IP are known and stable.
The CNAME record maps a name to another name. It should only be used when there are no other records on that name.

valid frigate
#

and under value, make that your vps ip

proven lantern
#

*..web.app is one google gives for free

earnest phoenix
#

should i make a email with my domain name ?

#

MX record

#

:))

charred geyser
valid frigate
#

should i make a email with my domain name ?
very challenging

earnest phoenix
#

why

proven lantern
#

no you dont need an email

earnest phoenix
#

it is ez

charred geyser
#

points to?

valid frigate
#

yes now replace "points to" with your vps ip

earnest phoenix
#

@charred geyser idk

proven lantern
#

use a free gmail account

charred geyser
#

ok

earnest phoenix
#

@valid frigate btw u can use github pages

#

u don't have to get a vps

valid frigate
earnest phoenix
#

: /

valid frigate
#

yes...you can

charred geyser
#

how can i get my vps ip

earnest phoenix
#

i use github pages

charred geyser
#

its aws

valid frigate
#

uhhhhhhhhh

earnest phoenix
#

ifconfig -a

#

@charred geyser ^^

valid frigate
#

try using what i used to use

charred geyser
#

oh

#

ok

earnest phoenix
#

sudo apt-get install net-tools

valid frigate
#

dig +short myip.opendns.com @resolver1.opendns.com

earnest phoenix
#

ifconfig -a

valid frigate
#

oh yeah that works too

earnest phoenix
#

and u done

valid frigate
#

you dont need to install an extra package

earnest phoenix
#

ok

#

what ever

valid frigate
#

yes its the ipv4 address

proven lantern
#

paying for a vps is overkill unless your bot is getting lots of traffic

earnest phoenix
#

but with ifconfig u can get all ur network info

valid frigate
#

so i assume you know about nginx

earnest phoenix
#

@valid frigate nah

#

i don't know anything about nginx

drifting wedge
#

how do i do custom embed colors?

#

python?

earnest phoenix
#

but will learn it soon

drifting wedge
#

0xfdfdfdf

#

?

earnest phoenix
#

@drifting wedge yes

#

u can do it

#

.setColor(0xfdfdfdfdfd)

#

i guess

#

in PY

drifting wedge
#

embed = discord.Embed(
colour = self.0x#7289da
)

#

?

earnest phoenix
#

uh idk

#

ask someone PY

valid frigate
#

HAHAHAHAH

earnest phoenix
#

for exmaple shivaco

charred geyser
#

i think i got the ip

valid frigate
#

that looks very javascript to me

charred geyser
#

lol

valid frigate
#

ok nice

proven lantern
#

colour or color?

valid frigate
#

do you have nginx setup on your vps

earnest phoenix
#

color

proven lantern
#

colour = self.0x#7289da

earnest phoenix
#

90%

#

color

charred geyser
#

ubuntu@ip-172-**-**-*:-$

earnest phoenix
#

why u hide it

charred geyser
#

cause

#

uh

#

idk

valid frigate
#

ddos

charred geyser
#

lol

earnest phoenix
#

i could access to ur FPT

#

:))

charred geyser
#

thats right isn't it

valid frigate
#

i closed all ports except for 443

charred geyser
#

nice

valid frigate
#

yes that is right

earnest phoenix
#

nah use PORT 6969

valid frigate
#

shut up dude

charred geyser
#

443 is good for vpn bypass

valid frigate
#

seriously

charred geyser
#

lol

valid frigate
#

yeah

earnest phoenix
#

6969 is the best port

charred geyser
#

i use that at school cause it-support lemonkezoom

valid frigate
earnest phoenix
#

i use it for my dblwebhook

#

:))

valid frigate
#

well get nginx installed

#

we need that for the next ste

charred geyser
#

okay so

#

i

#

added the vps ip to the A record

valid frigate
#

correct

earnest phoenix
#

imma make a email with my domain

#

ace@judger-bot.tk

#

:))

valid frigate
#

@earnest phoenix are you prepared to pay $5 a month for that

charred geyser
earnest phoenix
#

best name

#

@valid frigate wut

#

u don't have to

#

u can use google as a hosting

valid frigate
#

good luck

earnest phoenix
#

btw who use cloudflare for there domain ?

misty sigil
#

me

earnest phoenix
#

website*

#

me 2

valid frigate
#

ok so basically @charred geyser at this point what you need to do is install nginx and set it up as a reverse proxy to your application

earnest phoenix
#

cloudflare is the best

#

:))

valid frigate
#

sorta

charred geyser
#

nginx

valid frigate
#

when i was setting up my smtp server cloudflare didnt allow me to upload a custom ssl certificate

charred geyser
#

on the vps?

valid frigate
#

yes

#

well at this point i feel like you can do it on your own

drifting wedge
#

how do i send an image with python?

valid frigate
#

so ill give you a few resources to do it

drifting wedge
#

are tk domains cheap?

charred geyser
#

well at this point i feel like you can do it on your own
@valid frigate ๐Ÿ˜ซ

valid frigate
#

dude a part of being a programmer is asking for help bt at the same time i cant guide you all the way

#

dont worry though

proven lantern
#

@proven lantern if you really want a diagram it's this
@faint prism the apis are separate

charred geyser
pulsar forge
tame kestrel
#

@drifting wedge tk domains are free, but with domains you sort of get what you pay for.

I highly, highly, recommend you shell out even just a dollar or something for a domain on namecheap or get a free .tech domain off of the github student pack

valid frigate
#
DigitalOcean

Nginx is one of the most popular web servers in the world and is responsible for hosting some of the largest and highest-traffic sites on the internet. In this guide, we'll discuss how to get Nginx installed on your Ubuntu 20.04 server.

DigitalOcean

Node.js is an open-source JavaScript runtime environment for building server-side and networking applications. Node.js applications can be run at the command line but this guide focuses on running them as a service using PM2, so that they will automat

#

also .tk domains are typically highlighted as spam domains so sending email from them has a high chance of ending up in the trash

charred geyser
#

okay ill try my best ๐Ÿ˜„

#

thanks

valid frigate
#

yeah np and good luck

pulsar forge
#

What do you call this
Bot.tag or bot.tags

valid frigate
#

if you need help just ask again

pulsar forge
charred geyser
#

should i use https

valid frigate
#

yes

slender thistle
#

TIL ** has higher priority over / in Python

#

pain

opaque hawk
#

Does anybody else have an eval command on their bot? :d

#

Great, I arrive and kill the chat lmao

slender thistle
#

why tho

#

If you want to steal one, there's plenty if you google :^)))

charred geyser
#

๐Ÿ˜Ž

valid frigate
#

gg

charred geyser
#

okay there is a bit i dont understand now

#
Step 5 โ€“ Setting Up Server Blocks (Recommended)
When using the Nginx web server, server blocks (similar to virtual hosts in Apache) can be used to encapsulate configuration details and host more than one domain from a single server. 
proven lantern
#

i have one command that can create up to 12 voice channels, but they aren't all created at once. would this command be considered api abuse/spam?

drifting wedge
#

the github student thing is how long on average?

#

a month lol?

valid frigate
#

infinite

charred geyser
#

@valid frigate in this part they are starting to make folders on the vps and make index.html

drifting wedge
#

for pymongo and heroku

#

what requirements do i do?

valid frigate
#

hmm

#

you dont have to make those folders

charred geyser
#

step 5?

valid frigate
#

where is your application

charred geyser
#

should i just ignore that

valid frigate
#

well i mean

#

if you have a front end setup for your bot's website then yes

#

make the folder as they say

charred geyser
#

i do have front end

#

(although its ugly ๐Ÿ˜„ )

slender thistle
#

What the actual fuck is the difference between Sqr and WorksheetFunction.Power in VBA?

x = 5
we1 = Sqr(x)
we2 = WorksheetFunction.Power(x, 2)
eternal osprey
#
        locations_found.slice(0, 10).map(location, i) => {
        const flag = locations[i].split(": ")[0];``` it is giving me the error malformed arrow fucntion parameter list
#

that arrow is also red underlined. Why is that?

proven lantern
#

@slender thistle it looks like WorksheetFunction.Power can do more than square

charred geyser
#

i think arrows have to be inside the brackets?

slender thistle
#

Sure, but it should be the same operation, no?

misty sigil
#

the function isnt closed

proven lantern
#

square root maybe

#

not squared

charred geyser
#

like (blah blah => {
});

misty sigil
#

no

charred geyser
#

no?

misty sigil
#

not at all

charred geyser
#

oh

slender thistle
#

Oh my God, what is this ugliness

proven lantern
#

your mouse is coving it

slender thistle
#

Sqr is square root

#

Yeah, Sqr is square root

proven lantern
#

nice

slender thistle
eternal osprey
#

i think that my syntaxes are good

proven lantern
#

that's a weird number format

slender thistle
#

It's just a simple output with concats

proven lantern
#

oh, you put in the period at the end

slender thistle
#

we1 is Sqr, we2 is .Power

#

yeah, I don't intend to rely on that fully. It's just a simple MsgBox procedure I used

tired gate
#

nothing happens when run

#

vs code reports no problems, no console error

#

using quick.db, btw

misty sigil
#

put it in a bin pls

tired gate
#

alrighty

misty sigil
#

dont need to await quickdb

#

it isnt a promise

tired gate
#

you mean the js (await db.get(`${message.guild.id}_SETUP`) == undefined)?

misty sigil
#

yes

tired gate
#

well removing the await doesnt work

#

im super lost

proven lantern
drifting wedge
#

how do i claim my github education thingy?

#

i got it

#

but how do i like get the domain?

proven lantern
#

what do you mean get the domain?

drifting wedge
#

the github student thing

#

you get a free domain

#

a .tech domain

#

how do i like make one?

proven lantern
#

@tired gate try db.get(`${message.guild.id}_SETUP`) == null

tired gate
#

instead of undefined?

#

nope still doesnt work

#

i am getting UnhandledPromiseRejectionWarnings though

#

the undefined you're seeing is the field with no second value

#

"top.gg widget", "second value"

#

i think

#

that's weird

tired gate
opaque hawk
#
const member = await message.client.users.fetch(match);
  
  if (!member) return await message.reply("Couldn't find that user in this guild!");
  if (!member.banable) return await message.reply("I can't ban that user!");``` how come that does not work?
#

The error is on the last line and it says that property 'banable' does not exist on type 'User.'

#

.w.

modest crane
#

member.banable?

opaque hawk
#

check where member is defined

#

if i try it with kickable it also doesn't work

#

even though I know that kickable is valid

modest crane
#

that's because it's bannable not banable

opaque hawk
#

I tried with that

#

it still doesn

#

t work

modest crane
#

maybe because you need a guild user?

opaque hawk
#

I can't just use client.user?

#

I have to use guild.member is what you are saying

#
 const reason = args.length > 1 ? message.content.slice(
      message.content.split(/\s+/)[0].length
    ).trim().slice(args[0].length).trim() : "No reason provided"; // Reason as a "greedy string"
  

  await member.ban(reason);```
proven lantern
#

maybe member.ban({reason})

opaque hawk
#

but its a promise, so I have to use await

proven lantern
#

with await

opaque hawk
#

oh

proven lantern
#

just put reason in an object

opaque hawk
#

I don't understand how or why that works, but ok

proven lantern
#

it's the same as member.ban({reason:reason})

opaque hawk
#

Then finally, why does this return an error at ${member.tag}: ```ts
const banConfirm = new MessageEmbed()
.setColor("#00ff00")
.setTitle(${member.tag} has been banned by ${message.member})
.setDescription(Reason: ${reason});

message.channel.send(banConfirm);```

#

I can take .tag off and it works just fine

split hazel
#

Members don't have the .tag property

#

Users do

opaque hawk
#

const member = await message.guild!.members.fetch(match);

split hazel
#

All member objects have a .user property

proven lantern
split hazel
#

it's fine as long as you have a sensible delay between each creation

drifting wedge
#

can any1 help me?

#

i got the domain with get.tech

#

the github thing

#

but how do i move it to cpanel?

split hazel
#

you're asking how to build a house basically

drifting wedge
#

how do i build a house?

proven lantern
#

start with no foundation

#

just start building

drifting wedge
#

sounds go--

split hazel
#

ah i see

#

i havent used much cpanel but from logic you should be able to point your domain to the servers ip where cpanel is hosted on and add it to cpanel

#

if you add a domain to cpanel it should guide you through the process

drifting wedge
#

also where can i get a tk domain?

split hazel
#

plenty of hosts that offer for free

opaque hawk
#

Uhh yeah my bot isn't going online even though nothing changed in client.on("ready", async => {})

#
client.on("ready", async() => {
  console.log("Ready!");
  // Set user presence
  client.user!.setPresence({
    activity: {
      type: "PLAYING",
      name: "with Archigan and Terrain",
    },
    status: "idle",
  });
  await reloadCommands();
});```
sudden geyser
#

What's with the exclamation point in client.user!

#

And you should check where you try connecting/logging in with your bot (.login(token)).

opaque hawk
#

have you heard of TypeScript?

sudden geyser
#

I've heard of it, but I didn't know it had that operator.

opaque hawk
#

Also i login after the client.on("message")

sudden geyser
#

Are you sure the token is valid? You could also listen to the debug event and log the trace to see what's going on internally

opaque hawk
#

:wheeze: his token changed somehow, I never changed it

#

still isn't going online

sudden geyser
#

Even if you didn't explicitly change it, there are other reasons your bot may not be online. Like I said, could you listen to the debug event and log the trace to see if something interesting is going on internally.

Also can you try console.log(process.env.TOKEN) just to make sure it's there (but still try what I said above)

opaque hawk
#

How do I listen to the debug event

#

I don't usually do that kind of stuff

sudden geyser
#

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

earnest phoenix
#

ayo๐Ÿ”‰approve๐Ÿ”‰my๐Ÿ”‰bot๐Ÿ”‰

opaque hawk
#

That isn't how it works

earnest phoenix
#

i know

#

but why does it take so dang long

opaque hawk
#

COVID crap and whatnot delays everything

#

hah

#

error 429

#

aaaaaaaaaaaaaaaa

sudden geyser
#

So you got temporarily banned

opaque hawk
#

wdym

#

why

sudden geyser
#

If you got a 429 on trying to connect it means you got rate limited (aka temporarily banned). I don't know the reason for your case.

opaque hawk
#

ok

#

I just love rate limiting

#

I'll try it again tomorrow morning

modest crane
#

what are you even doing to get ratelimited

sudden geyser
#

some of it may be due to using repl.it

opaque hawk
#

no clue

#

maybe

#

Although I couldn't switch to anything but repl.it, it is just really easy for me

sudden geyser
#

Try running your bot locally (to test)

opaque hawk
#

ok

#

I forgot how to run main.ts using npm

#

Im in the target directory

#

is it just npm run main.ts?

sudden geyser
#

npm run is for scripts

opaque hawk
#

ok

sudden geyser
#

If your scripts include one to compile and run TypeScript then use that script (npm run <script>)

opaque hawk
#

so then what do I do here

dire obsidian
#

what you open json with notepad?

opaque hawk
#

I usually do

#

why

faint prism
#

I'd use something that has syntax highlighting and points out syntax errors

dire obsidian
#

well, you can use sublime text

#

or something

sudden geyser
#

or visual studio code

#

or any code editor/ide really

opaque hawk
#

coughcoughrepl.itcough

sudden geyser
#

online code editorโ„ข๏ธ

opaque hawk
#

yus

sudden geyser
dire obsidian
#

anyways, vsc is more recomendable

#

if you have a pc who runs it btw

#

but if you not

opaque hawk
#

My laptop can run VSC

dire obsidian
#

nice

#

mine no

opaque hawk
#

Mine is an IdeaPad

dire obsidian
#

oh ok

faint prism
#

Nano

#

My mind was blown when I realized you can run nano with syntax highlighting

thick gull
#

how should I avoid making database calls every message & why? I see it being said often here

sudden geyser
#

Why?
You'd be asking your database for data on every message. As your bot grows in servers, the message activity will grow as well. You could be receiving hundreds of messages every minute. Databases are strong, but they're not immune.

How?
When you request something from your database, cache it in memory (such as a map). Look up the data in the map before you hit the database (repeat step one if you hit the db). Caching will put pressure on your app's memory instead which is the downside.

thick gull
#

ty qt

near veldt
#

oh

versed jay
#

hi there

#

how do you separate the settings for different guilds?

#

for example guild 1 is playing this audio file and guild 2 playing the other one

crisp meteor
#

Is there a place to inquire about how to enter my bot on this server?

split hazel
#

Caching will put pressure on your app's memory instead which is the downside.
you can't overwhelm a programs cache memory even if you wanted to purposefully, memory exists for a reason

opaque hawk
#

Is there a place to inquire about how to enter my bot on this server?
@William.#0008 read FAQ, you have to go onto https://top.gg and enter your bot for application, wait around five weeks or so, get accepted

#

@crisp meteor

crisp meteor
faint prism
#

+5wks, rip

crisp meteor
#

If the bot was not verification
Is it accepted?

faint prism
#

Verified = Accepted

opaque hawk
#

But Accepted != Verified

faint prism
#

Pretty sure it's used interchangeably in this context

snow urchin
slender wagon
opal plank
#

prov a video

slender wagon
#

prov a video
@opal plank oh is that it? Do u know any solutions like to not accept the videos

opal plank
#

@slender wagon im assuming you fetching reddit post which may contain videos, and you trying to put them in the image payload, which wont work

slender wagon
#

Oh yeah probably that

#

Is there a way that i can stop the posts that contain videos

opal plank
#

by coding

#

check the type before sending embed

slender wagon
#

Yes ofc lmao

#

Yeah i was thinking abt that

opal plank
#

if its a video, either return or set it on the video message payload

slender wagon
#

There is one for video too?

opal plank
#

on embed, yes

slender wagon
#

Oh but what if i use video can it support images too?

opal plank
#

images for images, video for videos

slender wagon
#

Aight ty

opal plank
#

use them accordingly

slender wagon
#

Yeah i gotta make the difference before sending

outer perch
#

do you guys know any 24/7 app host?

fluid basin
#

no free ones though

outer perch
#

heroku dies at day 23 or so

fluid basin
#

if you want a cheap host check pins

#

but free and good are mutually exclusive

charred geyser
#

can anyone help me with like hosting a website+bot combined and linking it to a domain

opal plank
#

wait what?

#

heroku shutting down?

#

๐Ÿ‘€

fluid basin
#

free dynos cant run 24/7

#

lol you misreading

opal plank
#

heroku dies at day 23 or so

#

misleading to say the least

#

prob meant 23h/24h

#

wait

#

what

#

its in days

charred geyser
opal plank
#

not even hours

#

wtf

fluid basin
#

bruh

#

you get a fixed number of hours a month

opal plank
fluid basin
#

more or less 600 hours iirc

#

might be even lesser

opal plank
#

yikes feels bad

charred geyser
#

erwin pls halp me

opal plank
#

with?

fluid basin
#

use google

charred geyser
#

google

#

mmm

opal plank
#
#

there

#

i helped with google

charred geyser
#

how did i not know about this โ€˜googleโ€™????

#

is this a new thing

opal plank
charred geyser
#

kek

#

i need help with

#

hosting my nodejs app which is my bot and my website combined and making it connected to my domain

opal plank
#

i saw the question, usually i ignore the ones i dont know, believe it or not i dont know everything like Tim

charred geyser
#

oh

#

๐Ÿ˜ญ

opal plank
#

cant help if i dont know the answermyself

charred geyser
#

i thought you were my lord and saviour

opal plank
#

havent played with domains or anything of the sort so i wouldnt even know how to use one properly

charred geyser
opal plank
charred geyser
#

maybe willi can help?

fluid basin
#

website: learn how to configure apache/nginx proxy
domain: go to your domain provider and add your server ip there

opal plank
#

i do use apache though

charred geyser
#

yeah

#

i have done that

#

i am just stuck on

#

nginx

#

i cant quite figure out how to set it up

opal plank
#

i'd assume there'd be tons of guides for ngix

fluid basin
#

literally theres like 38752 examples on google if you searched

#

sorry I'm just being rather mean today >.<

charred geyser
#

its ok

fluid basin
#

at least give us your config or something

#

then maybe someone could take a look and hopefully help you

charred geyser
#

config for what

fluid basin
#

nginx

charred geyser
#

ok one sec

#
server {
        listen 80;
        listen [::]:80;

        root /var/www/snailcorp.xyz/html;
        index index.html index.htm index.nginx-debian.html;

        server_name snailcorp.xyz;

        location / {
                try_files $uri $uri/ =404;
        }
}
opal plank
#

listening to port 80?

charred geyser
#

this is just what i pulled from one of the guides

opal plank
#

bold of you

#

๐Ÿ‘€

charred geyser
fluid basin
#

if you're using nginx and nodeje express

#

you need nginx proxy

charred geyser
#

nginx

#

this is what i was following

fluid basin
#

a "nginx nodejs proxy" in google should give you more than enough examples

charred geyser
#

maybe i am just a ๐Ÿคก

#

ok ill keep trying

faint prism
#

Anyone know how to find the 2's complement binary representation for -30 (which is in decimal)?

#

If I did it right, it's 11100001

charred geyser
#

if im gonna use something liike this

#
const http = require('http');

const hostname = '192.168.43.31';
const port = 5000;

const server = http.createServer((req, res) => {
    res.statusCode = 200;
      res.setHeader('Content-Type', 'text/plain');
      res.end('Sysmon App is Up and Running!\n');
});

server.listen(port, hostname, () => {
      console.log(`Server running at http://${hostname}:${port}/`);
});
#

would i set the hostname to my domain or my vps's ip

opal plank
#

i might try angular soon tbh

#

waiting on my keyboard to arrive first

#

coding on this shitty keyboard i got rn is a big nono

faint prism
#

coding on this shitty keyboard i got rn is a big nono
@opal plank You gonna rearrange the letters to DVORAK ?

opal plank
#

look at this layout

#

look at delete up there

charred geyser
#

lol

faint prism
#

smol

opal plank
#

it triggers me to have to go all the way up there to press DEL

#

that plus the space half way working and some keys kinda stuck

faint prism
opal plank
#

already triple checks, nothing underneath, its just the tile thats bad

glossy elk
#

best ide

#

someone tell me

pale vessel
#

there's no "best" ide

#

if you're comfortable with one then just keep using it

sudden geyser
#

Like flaz said, there's no "best" IDE, but one IDE may be better at something. For example, IntelliJ IDEA is the go-to for Java/Kotlin (then there's eclipse and vsc)

earnest phoenix
#

V!help

#

v!help

sudden geyser
dense nest
#
@client.event()
async def on_message(message):
  with open('users.json', 'r') as f:
    users = json.load(f)
    
  await update_data(users, message.author)
  await add_experience(users, message.author, 5)
  await level_up(users, message.author, message.channel)
    
  with open('users.json', 'w') as f:
    json.dump(users, f)
#

I get an error:

#
missing 1 positional argument: 'coro'

#

How do I fix?

sudden geyser
#

I don't think you're supposed to call .event()

dense nest
#

ohh

#

OMG

#

IM STUPID

#

Ive used python for a year and i forget thatlike omg im retarted

opaque hawk
#

Nobody has any clue as to how long my bot will be rate limited lmao

#

Just hope it ainโ€™t indefinite

sudden geyser
#

If you send an HTTP request to the /gateway/bot endpoint and look at the headers, you can see how long the rate limit lasts.

opaque hawk
#

Oh neat

#

Iโ€™ll need help with that just like everything here

sudden geyser
#

curl -I <url here>

opaque hawk
#

Ah

#

so for my repl would that be

#

curl -I https://Rick-Astley-Bot--archigan.repl.co/gateway/bot

#

Correct

sudden geyser
#

noop

opaque hawk
#

oh

#

Uhh

#

idk

#

What would it be then

sudden geyser
#

It should start with Discord's API base URL. In your case, https://discord.com/api/

opaque hawk
#

Then

#

Client ID?

#

or no

#

Or is this similar to the REST API

#

.

thick gull
#

-dottumpostum

opaque hawk
#

-dotpost

sudden geyser
#

It is rest. You send an API request to the endpoint and see what you get. In this case, it should be 429 since you got rate limited. The base URL is what I posted above, then append the /gateway/bot part as the endpoint.

opaque hawk
#

Ok

dense nest
#

@client.event
async def on_message(message):
  with open('users.json', 'r') as f:
    users = json.load(f)
    
  await update_data(users, message.author)
  await add_experience(users, message.author, 5)
  await level_up(users, message.author, message.channel)
    
  with open('users.json', 'w') as f:
    json.dump(users, f)

async def update_data(users, user):
  if not user.id in users:
    users[user.id] = {}
    users[user.id]['experience'] = 0
    users[user.id]['level'] = 1
    
async def add_experience(users, user, exp):
  users[user.id]['experience'] += exp

#

it just keeps updating the json to 5

opaque hawk
#

I donโ€™t Python

dense nest
#

i changed my level to 10 and it changed it back to 5

opaque hawk
#

I didnโ€™t know that you could use JSON with python

dense nest
#

really?

opaque hawk
#

JSON was made for JavaScript, no?

dense nest
#

Im not sure

opaque hawk
#

It has it in the name

dense nest
#

i dont use javascript

sudden geyser
#

JSON can be used for more than JS.

opaque hawk
#

I guess it is also used by C#

dense nest
#

JavaScript Object Notation

#

So it was made for js

#

Btw, anyone know python?

#

to help me lol

opaque hawk
#

My first language was python and now I know nothing of it lmao

dense nest
#

yea mine was lua

#

then C#

#

and now python

#

and im trying to learn js and java

opaque hawk
#

Actually, I know something is wrong, but i dont know where to put what

sudden geyser
#

When you say "keeps updating the json to 5" do you mean it always stays at 5 or it only updates by 5.

dense nest
#

stays at 5

sudden geyser
#

Yerrin remove the /bot part at the end (mistake of mine) and make sure you're running that on the project which got you rate limited (repl)

dense nest
#

like, i changed my level to 10 and i sent a message and it want back down to 5

opaque hawk
#

ah

dense nest
#

@sudden geyser

opaque hawk
#

my repl keeps running for some reason

sudden geyser
#

From my perspective, it looks correct. Unless update_data's if condition was always returning True, causing it to create a new entry for your user data, I don't see the issue (or level_up is doing something weird).

dense nest
#

Yea

#

Well how would i fix that

#

As i am quite new to the api

#

i have no idea how XD

sudden geyser
#

You should try debugging it to see what's causing it to always stay at 5. See what functions are being called and aren't being called (in update_data and add_experience). I also don't know if using JSON as a database is the best choice of design, especially since you're doing it on every sent message.

dense nest
#

@sudden geyser its update data returning true

sudden geyser
#

I think it's trying to invert user.id because you specify the not keyword before it. Try doing this instead: if ... not in ...

dense nest
#
if user.id not in users:

#

?

sudden geyser
#

yeah try it

dense nest
#

Not helping

earnest phoenix
#

Using JSON for this is suicidal

dense nest
#

lol

#

Idk what else to use lol

earnest phoenix
#

Then again, Postgres would be better

dense nest
#

Oh fuck me life

restive notch
#

when i try to run my discord bot running discord.py it will say 1. "syntax error" or 2. "module discord not found" 1. is running with python 2.7 2. is running with python 3.8 | this only started happening after i switched to Zorin OS

dense nest
#

SQlite and me dont get along

earnest phoenix
#

Why's that?

#

Either way, SQL is very easy & there's no reason why you shouldn't learn it

dense nest
#

ive never had good luck with it

restive notch
#

yeah SQL is fairly easy and very helpful once you learn it

earnest phoenix
#

@dense nest Try Postgres with asyncpg (the later is for if you are using Python), all you'll ever need in life

dense nest
#

oK

#

caps

#

lmao

restive notch
#

python 2.7 returns ```Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 163, in _run_module_as_main
mod_name, _Error)
File "/usr/lib/python2.7/runpy.py", line 114, in _get_module_details
return _get_module_details(pkg_main_name)
File "/usr/lib/python2.7/runpy.py", line 119, in _get_module_details
code = loader.get_code(mod_name)
File "/usr/lib/python2.7/pkgutil.py", line 281, in get_code
self.code = compile(source, self.filename, 'exec')
File "/home/juls07/Joke-Bot/main.py", line 8
async def on_ready():
^
SyntaxError: invalid syntax

#

and python 3.8 returns ```Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/juls07/Joke-Bot/main.py", line 1, in <module>
import discord
ModuleNotFoundError: No module named 'discord'

#

i was able to run this on fedora and once i switched to Zorin OS i started having this problem (Zorin is made off of ubuntu)

sudden geyser
#

The first one is because the syntax isn't in Python 2. discord.py requires Python 3 (3.5.x I think).

The second error means it couldn't find the module discord, which would mean it wasn't installed somehow, but you say it only happens on Zorin. Did you do anything different between the two

restive notch
#

i dont believe so as i legit just coppied the Joke-Bot folder and put it on a drive to move to zorin so if anything it would be a package thing

sudden geyser
#

and import discord is a module from a package

#

So you didn't install the package(s)

restive notch
#

oh right

slender thistle
#

The first one is because the syntax isn't in Python 2. discord.py requires Python 3 (3.5.x I think).
@sudden geyser 3.5.3 but that's because aiohttp requires it

restive notch
#

there i finally managed to install it because i havent needed to install any packages in a while

#

there it works now We have logged in as (j!) Jeff the Joker#6735

sudden geyser
#

nice

restive notch
#

now im going to completely change the library of my bot @upper bloom to discord.js because Eris just randomly crashes for no reason

sudden geyser
#

There's probably a reason to it.

restive notch
#

everysingle time it crashes it says it could not reach eris' library for more than 10 secs (i have reliable and fairly decent internet)

lament spruce
#

People who understand canvas, how do i rotate the text only without rotating the arc circle? i tried ctx.rotate and it spinned the whole canvas, if anyone could help me out i'd appreciate

pale vessel
#

@lament spruce
rotate it back to its original position (-20 * Math.PI / 180) after filling the text

lament spruce
#

@pale vessel That helped, thank you so much!

fringe axle
#

So I try to get random pictures from nekos.life but they don't wand to load. (discord.js v12)
Any other idea to get the images?

earnest phoenix
#

my repl keeps running for some reason
@opaque hawk something keeps pinging it every five minutes

#

So I try to get random pictures from nekos.life but they don't wand to load. (discord.js v12)
Any other idea to get the images?
@fringe axle show the code

#

and the output

#

then only we'll be able to help

fringe axle
#
  async run(message, { min, max }) {
    min = Math.ceil(1);
    max = Math.floor(300);
    const waifuEmbed = new MessageEmbed()
    .setColor(`RANDOM`)
    .setAuthor(`Waifus!1!1!`, message.author.displayAvatarURL())
    .setImage(`https://cdn.nekos.life/waifu/waifu_0${Math.floor(Math.random() * (max - min + 1)) + min}.png`)
    .setFooter(`A cute waifu for you ${message.author.tag}!`)
    .setTimestamp();

    message.channel.send(waifuEmbed)
  }
}
earnest phoenix
#

wut

fringe axle
earnest phoenix
#

smh

#

is that the actual way to get those NSFW pics

fringe axle
#

Nah...

#

But that worked in a other command

earnest phoenix
#
`https://cdn.nekos.life/waifu/waifu_0${Math.floor(Math.random() * (max - min + 1)) + min}.png`
#

But that worked in a other command
@fringe axle bruh

#

totally ignore me accidentally clicking shift enter

#

just cuz one part of the API works in a way doesn't necessarily mean the waifu thingy will also have the same method

#

imma go read the docs and see

fringe axle
earnest phoenix
#

wait no this is NSFW my mommma will kill me

#

That's what you get.
@fringe axle bruhmoment that's JSON

#

not a URL

#

you have to parse the URL out of it

fringe axle
#

Yea, but I don't know how to get the URL

earnest phoenix
#

one sec

gusty folio
#

:U

slender thistle
#

JSON.parse
returnedValue.url

restive notch
#

for some reason adding ```const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));

for (const file of commandFiles) {
const command = require(./commands/${file});
client.commands.set(command.name, command);
}will sayclient.commands.set(command.name, command);
^
TypeError: Cannot read property 'set' of undefined
at Object.<anonymous> (/app/echo.js:19:18)
at Module._compile (internal/modules/cjs/loader.js:759:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)
at Module.load (internal/modules/cjs/loader.js:628:32)
at Function.Module._load (internal/modules/cjs/loader.js:555:12)
at Function.Module.runMain (internal/modules/cjs/loader.js:826:10)
at internal/main/run_main_module.js:17:11
/app/echo.js:19
client.commands.set(command.name, command);```

earnest phoenix
#

he doesn't even know how to send an HTTP request

#

@slender thistle

gusty folio
#

I have a question

earnest phoenix
#

ask it

fringe axle
#

he doesn't even know how to send an HTTP request
@earnest phoenix ;_;

slender thistle
#

Am I here to judge or help

#

And are you

earnest phoenix
#

i'm here to help tho

vague wigeon
slender thistle
#

So why judge instead of helping them learn how to send HTTP requests

faint prism
#

I may have just found my first use for a cron job

fringe axle
#

Hm, I try to find it out but I don't get it

gusty folio
#

In what page you recommend host my bot?

faint prism
#

I want all my rasp pi security cameras to rsync their footage at 1PM to my main rasp pi server

earnest phoenix
slender thistle
#

@earnest phoenix contact Xignotic, one of our website moderators

earnest phoenix
#

Ok

fringe axle
#

Someone knows now how I can get random neko image links from it?

earnest phoenix
#

ik

restive notch
#

for some reason adding


for (const file of commandFiles) {
    const command = require(`./commands/${file}`);
    client.commands.set(command.name, command);
}```
 will say 
```client.commands.set(command.name, command);
                    ^
TypeError: Cannot read property 'set' of undefined
at Object.<anonymous> (/app/echo.js:19:18)
    at Module._compile (internal/modules/cjs/loader.js:759:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)
    at Module.load (internal/modules/cjs/loader.js:628:32)
    at Function.Module._load (internal/modules/cjs/loader.js:555:12)
    at Function.Module.runMain (internal/modules/cjs/loader.js:826:10)
    at internal/main/run_main_module.js:17:11
/app/echo.js:19
    client.commands.set(command.name, command);```
slender thistle
#

@gusty folio there are multiple choices for a VPS: SkySilk, GalaxyGate, DigitalOcean, Contabo, etc.

earnest phoenix
#

i am typing

vague wigeon
restive notch
#

ok

slender thistle
#

client doesn't have a property commands

gusty folio
#

@gusty folio there are multiple choices for a VPS: SkySilk, GalaxyGate, DigitalOcean, Contabo, etc.
@slender thistle oh thanks.

restive notch
#

now its saying client.commands[command.name]=command ^ TypeError: Cannot set property 'ping' of undefined at Object.<anonymous> (/app/echo.js:19:31) at Module._compile (internal/modules/cjs/loader.js:759:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10) at Module.load (internal/modules/cjs/loader.js:628:32) at Function.Module._load (internal/modules/cjs/loader.js:555:12) at Function.Module.runMain (internal/modules/cjs/loader.js:826:10) at internal/main/run_main_module.js:17:11

earnest phoenix
#
// I would recommend using the 'phin' package from npm for dealing with HTTP requests
// Install it through `npm install phin` in the CLI
const phin = require("phin"); // This will tell Node you want to 'require' the package

// inside the waifu command thingy
let response = phin({
  url: "the url nekos.life told ya for the API",  // this will send a GET http request to the nekos.life API
  method: "GET", // dunno wut this does
  parse: "JSON" // parse the JSON response which nekos.life API sends
});
// response is an object
// you can get the 'url' property from it
response.url; // returns the random waifu image URL
#

@fringe axle

fringe axle
#

Oh, okay

#

Thanks!

earnest phoenix
#

nope

fringe axle
#

Okay, I need the package phin

#

nope?

earnest phoenix
#

also this ain't spoonfeeding
this is teaching AF

fringe axle
#

xD

earnest phoenix
#

that's just smth i randomly said please ignore

#

also why are you adding NSFW commands

vague wigeon
#
client.commands=new Discord.Collection();
for (const file of commandFiles) {
    const command = require(`./commands/${file}`);
    client.commands[command.name]=command;
}```
thick gull
#

also why are you adding NSFW commands
@earnest phoenix why not

earnest phoenix
#

@fringe axle don't forget to restrict the NSFW commands to only NSFW channels. It's illegal to send NSFW shit in non-NSFW shit places.

slender thistle
#

d.js collections have keys and not indexes?

restive notch
#

oooh

earnest phoenix
fringe axle
#

Yea, already did that. xd

restive notch
#

its logged in

#

yay

#

ty

earnest phoenix
#

nope

vague wigeon
#

@restive notch ok?

earnest phoenix
#

gtg do some shit with canvas need help with javascript ping me like hell

fringe axle
earnest phoenix
#

@ivory jolt are you a snipe command or what

#

@earnest phoenix zoomeyes
@fringe axle not installed

#

did you install the dependencies of the phin package?

fringe axle
#

No

earnest phoenix
#

bruh

#

how will it work without the dependencies

#

everything on npm is a wrapper
bold statement ik

fringe axle
#

I did npm install phin

rare plume
#

Hey guys got a litte question. What do you do with custom prefixes, keep the default bot command and add the custom prefix (listen to two prefixes) or replace the default bot prefix with the custom prefix?