#development

1 messages · Page 1622 of 1

wide wharf
#
  if (message.content.toLowerCase().startsWith(prefix + "avatar")) {
            const user = message.mentions.users.first() || message.author;
            const avatarEmbed = new Discord.RichEmbed()
            .setColor(0x333333)
            .setAuthor(user.username)
            .setImage(user.avatarURL());
        message.channel.send(avatarEmbed);
}
``` like this?
latent heron
#

Reading the docs on something really is helpful

lusty quest
#

someone should write a bot that just sends in the matching Lib docs for a question someone ask here.

#

and then apply to get it added next round

sage bobcat
earnest phoenix
#

just invite danny r 😉

crimson vapor
#

is danny R some knock off Tim?

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

latent heron
#

Danny R. doesn't do too much

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

earnest phoenix
#

Danny R. does more than any other bot i have seen

#

so that is false

modest maple
#

R daddy the bot does alot, but you cant get it mmLol

latent heron
#

you can

modest maple
#

its not verified

#

its only in the servers its in

latent heron
#

it's open-sourced

modest maple
#

unless you self host

latent heron
#

correct

earnest phoenix
#

cant you just invite it

latent heron
#

it's not verified

earnest phoenix
#

ok and

cinder patio
#

what the hell is R daddy

earnest phoenix
#

you can still invite it

latent heron
#

which means its either at the guild limit

#

or it uses privileges that require verification

#

which means you can't invite it.

pale vessel
#

danny simply didn't want to verify

earnest phoenix
#

if it was at limit or close it would hve stopped working

modest maple
#

no...

latent heron
#

no?

#

that's not how it works

modest maple
#

it would just not be able to be invited anymore

latent heron
#

invite limit w/out verification =/= bot turns off

modest maple
earnest phoenix
#

o

#

my bad

latent heron
#

emphasis on generic for mod capabilities

earnest phoenix
#

well i only reaced 67 only so far

#

so yet to find out LOL

latent heron
#

R. Danny's strongsuit is utilities in every way

latent heron
#

there can be people reading this chat and will take your words for granted with something like that, and think that their bots will suddenly fail to work when they reach 75 servers

lusty quest
#

would be quite a dick move to just kill bots if someone invites the bot while you are at the verification limit, so many people would abuse it

earnest phoenix
#

my bad

earnest phoenix
#

?

earnest phoenix
#

    console.log(`Ready on ${client.guilds.cache.size} servers, for a total of ${client.guilds.cache.reduce((a, b) => a + b.memberCount, 0).toLocaleString()} users`);
    client.on("ready", () => {
    client.user.setPresence({
        game: { 
            name: '~help',
            type: 'LISTENING'
        },
        status: 'idle'
    })
})```
issue 
SyntaxError: Unexpected end of input
#

what i do

#

async

#

?

cinder patio
#

Probably a missing bracket / parentheses

#

You don't close the exported function

earnest phoenix
#

}

#

},

cinder patio
#

You don't know basic js syntax? Yikes. Also, your IDE should tell you for syntax errors

earnest phoenix
#

i know

cinder patio
#

unless you're using notepad++ or something

pale vessel
#

notepad++ good

earnest phoenix
#

lol

#

yup same here

#

little little

crystal wigeon
#

mindfuck

#

i still cant figure put why shit redis isnt connecting

#

TT

earnest phoenix
#

my bot is online but Presence not work wtf

#

client.on("ready", () => {
client.user.setPresence({
game: {
name: '~help',
type: 'LISTENING'
},
status: 'idle'
})
})

#

what i do

pale vessel
#

change game to activity

#

Read docs

earnest phoenix
#

oh my brain

crystal wigeon
#

anyone there?

#

for some reason in redis Auth its passing info as command

#

command: { name: 'info', args: [] }

#

with no args

#

ReplyError: NOAUTH Authentication required.
at parseError (/home/rm6305639/discord-bot/izzi-bot/node_modules/redis-parser/lib/parser.js:179:12)
at parseType (/home/rm6305639/discord-bot/izzi-bot/node_modules/redis-parser/lib/parser.js:302:14) {
command: { name: 'info', args: [] }

#

this the whole error

latent heron
#

it's asking for authentication

crystal wigeon
#

yeah

latent heron
#

probably means you may have written the command setup wrong, but i'm not too exactly sure about it sicne it's dJS

crimson vapor
#

That’s redis tho

crystal wigeon
#
const client = redis.createClient(REDIS_PORT, REDIS_HOST, { no_ready_check: true });
client.auth(pwd);```
#

im literally setting the auth pass

#

im not sure why its trying to execute a info command with no args

lyric mountain
#

Don't u need to pass auth during creation?

crystal wigeon
#

i'am

#

see the client.auth?

lyric mountain
#

No, i mean

#

You're calling a separate method

#

I mean passing as actual args

crystal wigeon
#

same thing tho

#

same error if i put password in the createClient

#

there are 3 methods

#

to auth

#

passing in the createClient options directly

#

or setting the .auth on client

lyric mountain
#

Idk then

crystal wigeon
#

mindfk man

#

like wth

#

even their official docs

#

have same thing

#

;-;

#

;_;

wide wharf
#

What do I have to change to make it work

pale vessel
earnest phoenix
#

dont work why i am sooooo confused message.guild.owner.user.username

inland spear
#

Like how Dank Memer sends out a message whenever you vote for it, I want to do the same with my bot. Does anyone know how to program this in discord.py?

lean mango
gray coral
#

im pr sure the bot needs some sort of intents to use message.guild.owner

#

acc idk

inland spear
gray coral
#

hm

solemn latch
#

i thought its just the guild intent?

zenith terrace
#

from what I believe, one of the intents help to get the guild owner

gray coral
#

i think u can still do message.guild.owner_id tho

lyric mountain
#

It'll not be always cached

gray coral
#

rip

lean mango
#

well not js, could be other ones just realised

lament rock
#

Guild.owner is a getter for Guild.members.cache.get(Guild.ownerID)

You need the presence intent for the guild owner to be there guaranteed. Otherwise, they'd need to be fetched, send a message, be mentioned or join a voice channel

cinder patio
#

You need the presence intent for guild owners? That makes no sense

quartz kindle
#

im pretty sure the intent does not guarantee the owner will be cached, only if they are online

lament rock
#

the gateway sends the owner_id only for GUILD_CREATE

quartz kindle
#

yes

earnest phoenix
#

Can someone help me how to use css for my Page on Top.gg?

quartz kindle
#

and the presence intent sends online members

#

doesnt guarantee the owner will be among them

lament rock
#

thought it sent offline as well. Oh well

lyric mountain
#

Owner is never guaranteed to be cached, no matter what intents u have

lament rock
#

I think it doesn't send offline if the guild is large only

quartz kindle
#

it used to be that way

#

not sure if its still like that

#

you can set what you consider to be "large" at identify as well

#

although you can only set between 50 and 250

opal plank
#

wait what?

quartz kindle
#

what what

opal plank
#

i could've sworn you could get owner

#

hmmm apparently not

snow portal
#

Heyo

sterile lantern
#

how would i make the User Tags field go to the section i boxed

#

i tried inline false/true, doesnt work with either

solemn latch
#

inline true for inventory and user tags

sterile lantern
#

doesnt work

quartz kindle
#

i dont think you can do 2 per line

#

either 1 or 3

dusky harness
#

where am i wrong

sterile lantern
#

o

#

oof

solemn latch
#

empty field inbetween

#

right?

quartz kindle
#

yes you can do that

sterile lantern
#

embed.addField("", "", true)

#

that?

quartz kindle
#

you need to use zero-width spaces

earnest phoenix
#

here

dusky harness
#

client.on('message', message => {
if (message.content.toLowerCase() === 'espiri') {
var Espiri1 = [
'Çalar saatin çalmasına 30 saniye mi var, çeker yorganımı uyurum. Ben prensipleri olan birisiyim',
'Ulan Muhittin diye bebek ismi mi olur 2 aylık çocuğun elini öpesim geliyor'
];
var Espiri2 = [
'Millet uyurken sevdiğini düşünüyor, ben eve hırsız girse ne yaparım diye taktik geliştiriyorum. Yalnızlık damarlarıma işlemiş.'
'Birde sabah uyanınca sevdiğin insandan gelen uzun mesajın verdiği mutluluk var. Varmış yani ben bilmiyorum da duydum.'
];
var espiri1 = Math.floor(Math.random()*Espiri1.length);
var espiri2 = Math.floor(Math.random()*Espiri2.length);
cont embed = new MessageEmbed()
.setTitle('komik espiriler')
.addField('komik espiri1',eniyiespiri1)
.addField('komik espiri2',eniyiespiri2)
message.channel.send(embed);
}
});

sterile lantern
#

o

quartz kindle
#

"\u200B"

pale vessel
#

It used to only show two inline fields when a thumbnail is set but they fucked it up

sterile lantern
#

huh

#

the user tag section went far off

earnest phoenix
#

you need to have 6 addFields in total

#

3 per row

pale vessel
#

add an empty one between balance and job occupation

sterile lantern
#

oh

earnest phoenix
#
left  \u200b  right
left  \u200b  right
slender hamlet
sterile lantern
#

yea i messed

#

something up

pale vessel
#

i would never those though. they don't look good on mobile, unless you don't care since discord is shit on mobile anyway

sterile lantern
#
  aembed.addField('Balance', "![wallet](https://cdn.discordapp.com/emojis/815305165287981097.webp?size=128 "wallet") Wallet: " + userbal + "\n:bank: Bank: " + userbank, true)
    aembed.addField("\u200B", "\u200B", true)
    aembed.addField('Job Occupation', job, true)
    aembed.addField("\u200B", "\u200B", true)
      aembed.addField('Inventory', inventory, true)
  if(userbadges) aembed.addField('User Tags', userbadges, true)```
earnest phoenix
#
addField(left)
addField(\u200b)
addField(right)
#

this is all a single row

#

which means you need to repeat that block of code to get the same effect on the second row

sterile lantern
#

oh

#

i misplaced

#

oops

#

ayy

#

works now

#

ty

slender hamlet
sterile lantern
#

whats 1 hr 30 min in ms

#

1000 * 120 * 60 is 2 hours

#

idk about 1 hr 30 min

dusky harness
#

client.on('message', message => {
if (message.content.toLowerCase() === 'espiri') {
var Espiri1 = [
'Çalar saatin çalmasına 30 saniye mi var, çeker yorganımı uyurum. Ben prensipleri olan birisiyim',
'Ulan Muhittin diye bebek ismi mi olur 2 aylık çocuğun elini öpesim geliyor'
];
var Espiri2 = [
'Millet uyurken sevdiğini düşünüyor, ben eve hırsız girse ne yaparım diye taktik geliştiriyorum. Yalnızlık damarlarıma işlemiş.'
'Birde sabah uyanınca sevdiğin insandan gelen uzun mesajın verdiği mutluluk var. Varmış yani ben bilmiyorum da duydum.'
];
var espiri1 = Math.floor(Math.random()*Espiri1.length);
var espiri2 = Math.floor(Math.random()*Espiri2.length);
const embed = new MessageEmbed()
.setTitle('komik espiriler')
.addField('komik espiri1',eniyiespiri1)
.addField('komik espiri2',eniyiespiri2)
message.channel.send(embed);
}
});

I fixed it, brother did not work

crimson vapor
#

please use code blocks

solemn latch
#

and give the error

crimson vapor
#

// code here

cinder patio
pale vessel
#

Brother did not work?

sterile lantern
#

would 1000 * 90 * 60

#

alr

slender hamlet
crimson vapor
#

just do 1000 * 60 * 60 * 2

slender hamlet
#

not even sure what the math.floor is doing here

cinder patio
#

That's 2 hours

#

not one and a half

crimson vapor
#

then

#
  • 1.5
#

kekw

slender hamlet
#

lol

cinder patio
#

that would work

sterile lantern
#
if (author !== null && timeout - (Date.now() - author) > 0) {

        let time = ms(timeout - (Date.now() - author));
    
        let timeEmbed = new Discord.MessageEmbed()
        .setColor("#FFFFFF")
        .setDescription(`:Cross: You have already worked recently\n\nTry again in ${time.hours}h ${time.minutes}m ${time.seconds}s `);
        message.channel.send(timeEmbed)
      }```

so basically this prevents regular non-premium users from working from another two hours
#

now, i want it so if the user is premium, to make the cooldown a bit less

#

1 hr 30 min for premium, 2 h for non premium

#

i tried setting premiumtimeout to 1 hr 30 min, checking if the user is premium, then sending an embed with premiumtimeout - date.now but that doesnt work

crimson vapor
#

thats the code for sending tho

#

whats the code for setting the timeout

sterile lantern
#
 let timeout = 1000 * 120 * 60; //
    let premiumtimeout = 90 * 60 * 1000
    let premium = db.fetch(`premium_${user.id}`)
    let premiumauthor = await db.fetch(`premiumwork_${user.id}`)```
#

when they work a job

#

db.set(`premiumwork_${user.id}`, Date.now())

#

now timeout broke completely it lets me work w out timeout

crimson vapor
#

thats async

#

premium is a promise

#

promises are truthy

sterile lantern
#

huh?

#

i am checking if premium is true

#

if(premium === true)

solemn latch
#

its a promise though

#

not a bool

sterile lantern
#

o

cinder patio
#

is that quickdb?

sterile lantern
#

better-sqlite

umbral zealot
#

I don't recall better-sqlite3 having a fetch method.

#

Are you sure that's not quick.db

sterile lantern
#

wait wha

umbral zealot
#

because it sure as hell looks like quick.db

cinder patio
#

if it's quick.db then it doesn't return a promise, afaik

sterile lantern
#

oh wait, im using both

solemn latch
#

weird

cinder patio
#

yeah cause quick.db uses better-sqlite3

sterile lantern
#

i should remove the better sqlite 3

#

yea

cinder patio
#

no

#

quick.db needs it

umbral zealot
#

quick.db does not returns promises, it`s sync.

#

So is better-sqlite3 itself.

#

That's the entire selling point of that module.

sterile lantern
#

well,
if(premium === true) does work

umbral zealot
#

ok so what`s the problem because you're talking about a timeout

#

but there's no timeout here

sterile lantern
#

what?

#

yes

umbral zealot
#

you're not using any setTimeout

sterile lantern
#
let timeout = 1000 * 120 * 60; //
    let premiumtimeout = 90 * 60 * 1000```
#

uh

#

im using ms

umbral zealot
#

Those are just numbers.

#

They don't do anything.

sterile lantern
#

its a cool down

#
  let premtime = ms(timeout - (Date.now() - premiumauthor));```
umbral zealot
#

Ok so when are you using it

sterile lantern
#
if (premiumauthor !== null && premium === true && premiumtimeout - (Date.now() - premiumauthor) > 0) {

        let premtime = ms(timeout - (Date.now() - premiumauthor));
    
        let atimeEmbed = new Discord.MessageEmbed()
        .setColor("#FFFFFF")
        .setDescription(`:Cross: You have already worked recently\n\nTry again in ${premtime.hours}h ${premtime.minutes}m ${premtime.seconds}s `);
        message.channel.send(atimeEmbed)```
pale vessel
#

premiumauthor !== null && premium === true MegaThonk

#

Ah

#

Thought they're the same variable

sterile lantern
#

well, both cooldowns dont work

#

regular cooldown;

#
  if (author !== null && timeout - (Date.now() - author) > 0) {

        let time = ms(timeout - (Date.now() - author));
    
        let timeEmbed = new Discord.MessageEmbed()
        .setColor("#FFFFFF")
        .setDescription(`:Cross: You have already worked recently\n\nTry again in ${time.hours}h ${time.minutes}m ${time.seconds}s `);
        message.channel.send(timeEmbed)```
opal plank
#

what is ms()?

sterile lantern
#

parse-ms

umbral zealot
#

a package that generates milliseconds

opal plank
#

then theres no timeout

umbral zealot
#

Have you tried actually logging those values to know what they are?

opal plank
#

setTimeout() is the function to make a timeout happen

sterile lantern
#

it works

#

the cooldown well

#

used to work

#

now it doesnt

cinder patio
#

🤨

sterile lantern
umbral zealot
#

Just basic debugging

opal plank
#

oh i see whats going on

#

what is author?

sterile lantern
#
1614542218764
true
#

is what it prints

opal plank
#

thats a discord id?

sterile lantern
#
 let author = await db.fetch(`work_${user.id}`)```
#

no time

#

Date.now

opal plank
#

hmmm

sterile lantern
#
 db.set(`work_${user.id}`, Date.now())```
#

this is what work is being set as

#

and its basically doing Date.now - the time out to find out how long theyhave left for cooldown

#

and if its > 0, send time out embed, if not, let them work

opal plank
#

i assume its smart enough to be passing a string

#

actually, nvm, date isnt bigint

#

even precision wouldnt be an issue

cinder patio
#

Your variables are very confusing, so is premiumauthor the milliseconds?

sterile lantern
#
    let premiumauthor = await db.fetch(`premiumwork_${user.id}`)```
#

premiumwork in the DB is Date.now

solemn latch
#

it might be easier to make it one variable, then multiply/divide by the standard time

#

or tenary it

sterile lantern
#

how would tenary work in this case

#

all i want to do is set a different cooldown for premium users

solemn latch
#

const delay = premium ? premium delay time : standard delay time;

#

i havent looked at how your cooldown system works, but you can do this before or after creation of the cooldown depending on how your cooldowns work

sterile lantern
#

hm

#

i think i have to incorp it in here

#
   if (author !== null && timeout - (Date.now() - author) > 0) {```
#

not sure how exactly itd work

heavy marsh
#

How to use the reply feature through the bot [.js v12.5]

cinder patio
#

Did you try using message.reply

opal plank
#

does d.js even support replies?

#

you might need to send raw api requests for it

heavy marsh
cinder patio
#

It does but I don't exactly remember which version

heavy marsh
cinder patio
#

Make sure you're using the latest version

heavy marsh
#

That is not what I am looking for

#

I am looking for this feature

cinder patio
#

make sure you're using the latest verison

#

version*

#

Maybe it's not implemented yet

#

I forgot I'm using master

opal plank
#
client.api.channels(message.channel.id).messages.post({
    data: {
        embed: {description: "test"}, message_reference: { message_id: message.id }
    }
});```@heavy marsh @cinder patio
#

this should work

#

SHOULD

cinder patio
#

It's implemented in master but not on the latest stable

opal plank
#

i would personally turn that into a method

heavy marsh
#

Works lol

#

Should I use this or wait for its relese

#

release*

cinder patio
#

You can use master

heavy marsh
#

Na I use 12.5.1

opal plank
#
 message.prototype.reply = (data:Discord.Message) => {
  this.client.api.channels(this.channel.id).messages.post({
    data: {
       data
    }
  });
}

#

you could do some janky ass shit like that

#

or just extend the class and override reply()

#

or add your own function onto message

cinder patio
opal plank
#

that works too

feral skiff
#

Does mee6 have tons of expenses for being in over 10m servers?

rustic nova
#

probably

cinder patio
#

definitely

misty sigil
#

yea I don’t think 1 small vps would quite fit the job

earnest phoenix
#

How to get bot inviter author

#

Means who invited my bot

umbral zealot
#

That's not information that's given to you by the API, unfortunately.

umbral zealot
#

not really no

earnest phoenix
#

Ohk thx bro

sudden geyser
#

You can check audit logs.

#

I think it's in the public API

rustic nova
#

you need audit log permissions though

sudden geyser
#

Add audit logs permission and hope the user accepts, optionally adding cookies if granted

cosmic forum
#

anyone know if theres a nodejs package that can render a custom page based on what is in the url? Like if someone where to go to https://example.com/something, it would render a custom page, taking that "something" text and replacing text in the page with it. (the actual file to go to that page doesn't exist, it should be rendered using some nodejs code)

warm obsidian
#

I never try to make pages with js, i usually use css or html

earnest phoenix
#

express for sure but for web pages you could use anything such as angular or even plain

quartz kindle
#

yes, any webserver can do that

#

its basic routing

onyx hare
#

Anyone know where I can get cowsay >:|\ I tried everywhere but it failed to work

umbral zealot
#

what did you try?

#

we need a lot more details

onyx hare
#

The cowsay.js from the npm three random errors when I tried it a while back I wanna get back to attempting it

#

Throwing*

quartz kindle
#

yeah try again and show what happens

solemn latch
#

what in the world is this library

#

👀

#

it looks like it just adds text to text.

cosmic forum
solemn latch
#

i get that, but like, why 👀

cosmic forum
#

Idk

cosmic forum
# quartz kindle yes, any webserver can do that

Hmm, idk if I explained it correctly. I know how to do something similar using url parameters, and I know how to render specific webpages that are defined in the index.js file, but I want to make something so that someone could replace that something text with anything they wanted, and it would display a webpage that says whatever they put for the something text

solemn latch
#

from the url parameters?

#

or like, user settings from a users page?

#

or something else

cosmic forum
#

Yeah

#

Like let’s say I wanted to get someone discord tag by their username

#

And it would display their tag using the Id provided

#

As an example

solemn latch
#

in js(in the actual page) you can get the path with window.location.pathname

#

so just discordid

#

then you can place that value anywhere

cosmic forum
#

Ah, thx.

quartz kindle
#

you can use parameter urls in express, you said you know how to use them, well they do exactly what you want

urban heath
#

hi, my bot of youtube is not notifier my uploads

solemn latch
#

do you have an error? and/or what code are you using?

urban heath
#

i use a youtube bot and this bot is not notifier my uploads in youtube

quartz kindle
#

wrong server

urban heath
#

is a error for a bot

solemn latch
#

we do not provide support for bots

#

you should get on the bots support server, or contact the developer of the bot

urban heath
#

this is de suport server in the webpage

solemn latch
earnest phoenix
#

Well, I've had this error many months ago, although I forgot how I resolved it.

root@vmi486668:~/SaveMoney# pm2 log main
[TAILING] Tailing last 15 lines for [main] process (change the value with --lines option)
/root/.pm2/logs/main-out.log last 15 lines:
/root/.pm2/logs/main-error.log last 15 lines:
1|main     | /root/SaveMoney/node_modules/discord.js/src/client/Client.js:42
1|main     |     } catch {
1|main     |             ^
1|main     |
1|main     | SyntaxError: Unexpected token {
1|main     |     at createScript (vm.js:80:10)
1|main     |     at Object.runInThisContext (vm.js:139:10)
1|main     |     at Module._compile (module.js:616:28)
1|main     |     at Object.Module._extensions..js (module.js:663:10)
1|main     |     at Module.load (module.js:565:32)
1|main     |     at tryModuleLoad (module.js:505:12)
1|main     |     at Function.Module._load (module.js:497:3)
1|main     |     at Module.require (module.js:596:17)
1|main     |     at Module.Hook._require.Module.require (/usr/local/lib/node_modules/pm2/node_modules/require-in-the-middle/index.js:80:39)
1|main     |     at require (internal/module.js:11:18)```
#

This is inside a dependency, I can't add a simple (e) between the catch and {

#

lmk if you guys have anything

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

earnest phoenix
#

oh

#

well shit

#

it worked

#

i hate my life, ty

#

or alternatively

#

update node

#

you're running on a version that's 3+ years old

lyric mountain
#

well, if that doesn't work idk what will

earnest phoenix
#

it will work

#

but again

lyric mountain
#

she said it's inside a lib

earnest phoenix
#

i know

#

optional catch binding has been a feature since 2018

misty sigil
#

what node version could they be using

lyric mountain
#

14 prob

earnest phoenix
#

false

#

<= 10

misty sigil
#

yea i thought 14 was newer than 2018

#

it was 2020

earnest phoenix
#

so you can use it in node 10

#

so their version is earlier than node 10

earnest phoenix
#

just cded in to the discord.js dir and nanoed the (e) into it.

earnest phoenix
fierce ether
#

Object object happens when converting an object to string correct?

earnest phoenix
#

well it obviously isn't using v15 if it's erroring on that 👁️ 👄 👁️

#

sure..

#

you're fucking something up, probably with pm2 🤷‍♂️

lyric mountain
earnest phoenix
#

what

#

or I didnt restart my vps

sage bobcat
earnest phoenix
#

well I said it was in a lib

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

earnest phoenix
#

just always use they/them and ur good

misty sigil
#

i mean they're not wrong

onyx hare
# quartz kindle yeah try again and show what happens

my error trying to do cowsay
DiscordAPIError: Cannot send an empty message
heres the code i used

const request = require('node-superfetch');

exports.run = async (client, message, args) => { 
  try {
    if (!args.length) {
        return message.reply("Command Usage: `cowsay <Text>`")
    }
    const { body } = await request
        .get('http://cowsay.morecode.org/say')
        .query({
            message: args.join(' '),
            format: 'json'
        });
    return message.channel.send(null, body.cow);
} catch (err) {
    return message.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`);
}
}
misty sigil
#

yea because you're trying to send null

unreal kiln
#

someone help me i ogt an error with this code and the code says that load_dir is not defined

#

const fs = require('fs');

module.exports = (client, Discord) =>{
const load_dir = (dirs) =>{
const event_files = fs.readdirSync(./events${dirs}).filter(file => file.endsWith('.js'));

for(const file of event_files);
const event = require(`../events/${dirs}/${file}`);
const event_name = file.split('.')[0];
client.on(event_name, event.bind(null, Discord, client));
}

}

['client', 'guild'].forEach(e => load_dir(e));

sudden geyser
#

I think your issue is JavaScript placing semicolons for you and missing braces.

#

Firstly, you should add braces with your event files loop (for (const file of event_files) {...}).

Secondly, try adding a semicolon after the last brace in the load_dir function you defined.

lofty geyser
#

Hi everyone, I need help. How to import file.json in repl.it?

static trench
#

hey devs! this is a question fowarded from: <#general message>. can someone walk me through adding CSS to my bots page. its so confusing

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

static trench
#

ya

#

thats the thing

#

ik its easy

#

my dumb ass cant figure it out lol

#

i have this:

#
body{
    background-color: rgb(50, 101, 134);
}
</style>```
#

am i being dumb?

#

@sage bobcat do i put in in a <head>?

#

i think i do but im not sure

misty sigil
#

no

#

you dont

static trench
#

huh

#

what do i do lol

#

im being dumb arent I?

hoary lance
#

hey guys can someone help me?

#

I wanna set the number of guilds my bot is in in as his LISTENING status so it says "Listening to # servers"

pale vessel
#

Read your library docs

boreal iron
#

Tip: search for presence

hoary lance
#

client.on("ready", () => {
console.log(${client.user.username} ready!);
client.user.setActivity(for music requests!, { type: "LISTENING" });
});

#

i have this

#

do i do "to ${client.guild.size} servers!"

#

nah that doesnt work

rustic nova
#

You would have to put that on guildCreate and guildDelete events

boreal iron
#

Nope guild actually isn’t an existing method of the client

rustic nova
#

To update it accurately

#

Though I don't code in js, just know how to read the docs

boreal iron
#

Wasn’t for you

granite crest
#

I want to learn how to make a bot, where can i start?

pale vessel
boreal iron
#

Well picking your language and reading the docs if you wanna use a library for example

hoary lance
#

for anyone wondering it is ${client.guilds.cache.size} to get number of servers the bot is in

#

though it probably wont update

#

if I dont restart

solemn latch
#

in djs*

#

there are many libraries, not just discordjs

#

also, i would suggest updating it on the guildadd event

boreal iron
#

As Hope said already

#

Don’t forget the delete event

earnest phoenix
cosmic forum
#

Hi, so I have the following js code:

let txt = "no";
let json = JSON.parse(`{"title":${txt}}`);
console.log(json);

It should turn a string into a json array, yet it'll say something like this:

Error: Unexpected token h in JSON at position 10

Anyone know what's wrong with it?

pale vessel
#

"${txt}"

cosmic forum
#

hmm, let me try that

pale vessel
#

JSON array?

#

That's just a normal JSON object

cosmic forum
#

ah, it works

pale vessel
#

You can just use { title: txt }, no?

cosmic forum
trail carbon
#

Guys I have a problem and #support said not to ask and they said it's fixed but it's not so I don't know what to do

pale vessel
#

It's not fixed, you'll have to wait and there is no ETA

trail carbon
#

do you even know the problem?

solemn latch
#

whats the problem 👀

pale vessel
#

Life

trail carbon
#

lol

solemn latch
#

because the problems are ever changing

trail carbon
#

i'll briefly explain in hopes of not getting banned.

pale vessel
#

Why would you get banned for that

trail carbon
solemn latch
#

lol

pale vessel
#

Makes sense

solemn latch
#

i mean if it says its fixed, and its not we need to know

#

if its listed as not fixed and your asking about it though

trail carbon
#

Ok

#

Here it is: 🤞

olive pilot
#

Hey

#

How many days does it take for your bot to get added on top.gg

solemn latch
#

we dont know

#

atleast a few weeks

trail carbon
#

@solemn latch Is it my browser? is it my device?

solemn latch
#

one sec

olive pilot
grim shoal
#

I recently added a bot, but it doesn't appear in my list of bots, that is, I can't access it ...

solemn latch
#

and your sure that site works?

#

votetracker isnt made by us, and ive never seen that specific url used before.

trail carbon
#

it does

#

I joined their discord and asked them.

#

They said that topgg was currently experiencing problems.

solemn latch
#

well, test webhooks seem to work

trail carbon
#

wait

#

hold on.. I think this link is total failure

static trench
#

First. Delete the image. That info is dangerous in the wrong hands. Also I think it is a webhook problem. Maybe try again?

trail carbon
#

@static trench Ok

#

Done.

#

I'll try again shall I?

#

I don't mind screen sharing too

static trench
#

It’s ok

#

If it works cool if not maybe get help in the support server

#

I think unless it’s a DBL thing it is a bot problem

#

The

#

Tbh

static trench
#

Is ur bot in the queue?

#

If it is than webhooks won’t work until it’s accepted

trail carbon
#

huh?

#

Vote Tracker is the bot I'm using

static trench
#

Yes

trail carbon
#

When I click the webhooks button, nothing happens, no reload, no nothing no confirmation.

static trench
#

Is the bot your adding the webhook to in the top.gg queue?

trail carbon
static trench
#

Ok

#

One sec

#

Lemme see something

#

Hold on

trail carbon
#

no

static trench
#

That’s why it’s not working

trail carbon
#

i want a server

static trench
#

Oh crap

#

Lol my B

#

Ok

trail carbon
#

I'm trying to add a webhook to a server

static trench
#

Ok

#

So...

#

What’s happening?

#

Did you put everything in properly?

trail carbon
#

i did

#

can I screenshare?

empty vault
#

hmm

static trench
trail carbon
#

All good

#

Why is the webhook test button almost like it's unresponsive?

#

I'll re read chat, see if anything helps, thanks for your time @static trench

static trench
#

np

#

@trail carbon what bot r u using?

#

ok

trail carbon
#

Idk if this is something you'd want to look into

#

but I followed all the setup steps and it didn't work shrugcat

static trench
trail carbon
#

I joined thier discord and the owner actually told me that topgg had a problem

static trench
#

its good

#

ya

#

so top is prob the problem

trail carbon
#

oh okay, is that another bot for me to try?

static trench
#

yes

#

its a good one

trail carbon
#

perfect, I'll give it a spin

static trench
#

k cool

#

ping me if u run into a problem

trail carbon
#

Uhh

#

this is the link you sent

static trench
#

wait

trail carbon
#

lol

static trench
#

lol

#

there we go

trail carbon
#

whaa

static trench
#

ping me if u need help

trail carbon
#

is this a different bot?
or the same one?

static trench
#

different

trail carbon
#

Lol why do they look so similar lol

static trench
#

bc they all do th same thing

trail carbon
#

i see

static trench
#

imo this is the best one

#

its easy to use

#

also there support server is fire

#

ping me if u need help

trail carbon
#

Okay thanks. I'll set it up right now

static trench
#

kk cool

#

im going to bed. ping me if u need help. ill respond in morning if u have issues

#

bc if it doesnt work its u. it works fine with me

river panther
#

umm

#

guys

#

which is the best server

#

for hosting an app

#

size is like 6tb

solemn latch
#

6tb, wow

#

might wanna go with a dedi at that point

solemn latch
# trail carbon i see

turns out its just the test webhook thats broken, the proper webhooks do infact work.

river panther
solemn latch
#

dedicated machine

river panther
#

so, you mean, self host the app?

solemn latch
#

no, I personally would co locate something with storage requirements like that.

trail carbon
lyric mountain
#

are you self-hosting the internet?

solemn latch
#

lol

#

all of wikipedia can fix in 100gb or so(without full images)

river panther
lyric mountain
#

bruh, still 6TB is unrealistic af

river panther
#

idk, i said the same thing

lyric mountain
#

I bet Reddit weights less

river panther
#

well, what if its 600 gb

#

maybe he is bad with computers

lyric mountain
#

in fact, it does weight less

river panther
#

oh, ok ok

#

bruh you tell me where to host it

#

he was hosting it on vmeo

#

or whatever it is

lyric mountain
#

first of all, what are you going to host?

river panther
#

but they ask many money

lyric mountain
#

static sites? video content?

river panther
#

yes, it has video

#

and pdfs

#

and other shit

lyric mountain
#

what kind of app? android? iOS? react?

river panther
#

android

earnest phoenix
#

cloud hosting is not for you if your content is that size

lyric mountain
#

ok, your android app weights 600gb?

river panther
#

ig

lyric mountain
#

or that's the total size of the site + files?

river panther
#

yes

earnest phoenix
#

this conversation is an oxymoron

lyric mountain
#

well, I gotta assert the scenario

river panther
#

vmeo is asking 600k inr for 4 months

#

thats going to be a long message

lyric mountain
#

so let me see if I got it right:

You want a server to host a site and server static content (app installer, images, videos, etc), without needing to use a database (no user login, dynamic content or other non-static stuff).
The site needs to have a high bandwidth capacity and high storage, not necessarily requiring fast I/O (data reads and writes).

#

right?

river panther
#

we need a database too

#

because the people who will buy the course

#

their data and stuff

#

and login id and details

lyric mountain
#

ok, so user login

river panther
#

yes

#

...

lyric mountain
#

both galaxy gate or contabo would suffice for your needs

#

galaxy gate has somewhat faster download and upload times, and generally people say good about it

river panther
#

oh, ok ok, will tell this to my father

#

thank

lyric mountain
#

contabo has very large storage plans, and is generally cheaper

river panther
#

but on our app, the traffic per minute was something like 500-1000

lyric mountain
#

500-1000 what?

#

users?

river panther
#

no, clicks and stuff

#

80k something people have downloaded it

lyric mountain
#

I'd say contabo will be cheaper depending on what plan you need

#

galaxy gate uses nvme as storage, idk if they have hdd plans

river panther
#

oh, okok okok ok

lyric mountain
#

do give both a check

river panther
#

mhm, oak

solemn latch
#

generally speaking when you reach a size like this custom hardware is cheaper then VPS's or premade dedicated machines.

lyric mountain
#

well, as long as he doesn't try to host a 6TB app everything will be fine ¯_(ツ)_/¯

rocky hearth
#

does ts has any shortcut for declare a type like this?
type Nums = 1 | 2 | 3 | ..... | 99;

lyric mountain
#

Hmmm, may I ask why?

rocky hearth
#

So I dont hv to write this long declaration, type Nums = 1 - 99

dusky sundial
#

An array with a loop perhaps? I don't do TS but- might be helpful shrug

solemn latch
#

array.from?

#

thats in ts right?

#
const N = 5;
const arr = Array.from({length: N}, (_, index) => index + 1);
console.log(arr);

/*
    Output: [ 1, 2, 3, 4, 5 ]
#

@rocky hearth

rocky hearth
#

🤦‍♂️

#

I want to declare a type, not generate n numbers

solemn latch
#

so a type of specifically 1-99?

rocky hearth
#

yes, I want to create a type that has numbers from 1 to 99

solemn latch
#

seems suggested method is use classes

lime grotto
#

Hi, can I ask my top.gg description html related query here?

dusky sundial
#

Sure ^^

lime grotto
#
<a herf="https://cartero.cf/commands.html" target="_blank">click here</a>

This is what I've written, but it isn't taking me to the link when I click on it.

dusky sundial
#

herf

#

It's supposed to be href

lime grotto
#

Oh shit

#

Thanks

#

Such a silly mistake

dusky sundial
#

No worries, sometimes you just don't see it :)

lime grotto
#

Yeah

rocky hearth
#

doesnt ur ide complains about typos??

lime grotto
#

I didn't use ide just for writing a description

slate oyster
#

Who else here loves that rare, beautiful feeling when you write some new code, go to run it, and it just works without any debugging?

latent heron
#

I think you misspelled "rare" for impossible

lime grotto
#

How do I check my bot queue?

latent heron
#

You can't

rocky hearth
#

if it runs perfectly in first try. I still suspect, that y it is running fine. 😆

earnest phoenix
#

anyone else’s d.api being buggy

#

I have some guild where the guild.me object is returning null and crashing the bot

river panther
#

umm, for now the bot is only taking the emoji in the guild, how do i make it search for the emoji in all the guilds it is in

earnest phoenix
#

Well let see

#

Let me read docs real quick

cinder patio
#

bot.emojis is a collection of all emojis across guilds

river panther
cinder patio
#

If there are 2 emojis with the same name, find is going to return the first one it finds

river panther
cinder patio
#

to get all, use filter

river panther
#

oh, ok ok

earnest phoenix
#

Oh you mean that

river panther
#

nah, filter is not working nicely

#

it just sends [object] {Object]

cinder patio
#

Yeah because it returns a collection

#

a list of all the emojis it found

river panther
#

ooooooooooh,

#

so my command is like,
you do .poor :the animated emoji:
the bot will send that emoji

cinder patio
#

Do you want your bot to not send emojis from the guild in which you're doing the command

river panther
#

i mean, for example there are 2 guilds, 69 and 420
the bot is in both the guilds,
420 has an emoji named :polishbop:
and the command run in 69 is .poor :polishbop:
so the bot takes the emoji from 420 and sends it in 69

#

you get what i mean?

cinder patio
#

yeah

#

you don't really have to use filter for that, though? I don't understand how find doesn't do what you want here

river panther
#

do i show the whole code?

earnest phoenix
#

First of all is the emoji cached

river panther
#

mhm

cinder patio
#

All emojis are cached

earnest phoenix
#

I see

#

.find would work fine

river panther
#

there you go

#

doesn't work

earnest phoenix
#

Did you uh

river panther
#

i was always using .find

earnest phoenix
#

<:emojiname:emojiID:>

#

Wait i am confused brb

river panther
#

ok

earnest phoenix
#

@cinder patio yo quick question

cinder patio
#

ye

earnest phoenix
#

Does emoji object return <:thing:id>

river panther
#

yes

#

ig

pale vessel
#

If you use .toString() or `${object}` yes

cinder patio
#

ъеа

#

yes*

earnest phoenix
#

Then it should work

river panther
#

no it isn't

earnest phoenix
#

Show me your code

river panther
#

and everything else is just replacing the emoji in the message

#

this is the only main emoji part

earnest phoenix
#

Try change m with emoji

#

how do i votelock command

river panther
#

oh, okok

earnest phoenix
#

Wait so

#

Can you show me the part where you replace the text to emoji

pale vessel
river panther
earnest phoenix
#

@pale vessel oh yeah

#

Right

pale vessel
#

Because that's :<:id:name>:

river panther
#
if(emoji && !msg.split(" ").find(x => x === emoji.toString()) && !msg.includes(`<a${replace}${emoji.id}>`)) msg = msg.replace(rexreplace, emoji.toString());
#

this is where i replce

earnest phoenix
#

In this pic

#

Change from m to m.name like flazepe said

river panther
#

there are 2 m's

#

which one?

earnest phoenix
#

Both of em

river panther
#

ok

earnest phoenix
#

I assume that m is an emoji right?

#

Or is it emoji name only

pale vessel
#

Keep x.name === m and change `:${m}` to `:${emoji.name}:`

river panther
earnest phoenix
#

Wait flax

river panther
#

done

earnest phoenix
#

Flax

#

Flaz**

river panther
#

oh

pale vessel
#

wait idk

#

this is confusing

earnest phoenix
#

Post it on like pastebin or smth

river panther
#

oh

#

eh

#

ok ok

#

@earnest phoenix there you go

pale vessel
#

what is this supposed to do again?

river panther
#

umm, it is supposed to send animated emoji

pale vessel
#

msg = msg.replace(rexreplace, emoji.toString());? You mean msg.content?

#

ah

#

msg is content

earnest phoenix
#

Theres one thing that we can do rn

#

debug and see whats wrong

river panther
#

no, it can send the emoji from the same guild right now

#

but not from other guilds it is in

#

do we have the developer of NQN here?

#

what you think?

earnest phoenix
#

I have a feeling that something is wrong with m

#

Could ya do console.log(m);

river panther
#

ok

#

it said m is not defined

earnest phoenix
#

where did you put m

#

Consolelog*

#

Actually

#

Just do console.log(replace);

#

Put it below replace

#

AttributeError: 'DBLClient' object has no attribute 'get_bot_votes' uh

river panther
#

ko

#

ok

earnest phoenix
#

??????

#

Js right?

pale vessel
#

python

earnest phoenix
#

fuck

river panther
#

ergh, its confusing

#

nvm

#

i will watch some youtube or read the docs again

earnest phoenix
#

Ight good luck man

river panther
#

thank you :')

earnest phoenix
latent heron
#

Finally holy shit

#

I've literally needed this so many times before in Atom instead of having to hunt down the code manually in my project files

pale vessel
#

finally a clean python code

latent heron
#

hey my python code is usually clean angryrage

pale vessel
#

was pointing to someone else

latent heron
#

who lmao

earnest phoenix
#

me

#

kekw probably rovi

pale vessel
#

yes

#

how'd you know

earnest phoenix
#

you've talked about it back then lol

river panther
#

😂

small tangle
#

Im programming in Java with the JDA API, does anyone know a way to send a bufferedimage in an embed without having to save it as a file first? FeelsSmartMan

latent heron
#

I have a few messy parts in my bot

earnest phoenix
#

tbh I don't feel bad as I don't give a shit about it KEKW

latent heron
#

alphabet soup variables PogDisgust

#

you know how to make people feel pain

earnest phoenix
#

by doing some 1liner shit lol

latent heron
#

OH MY GOD

#

ITS A FUCKING NESTED ANON FUNCTION

#

WHY

latent heron
earnest phoenix
#

It was, but I applied black autoformatting

#

so it became that lol

latent heron
#

people who write 1liners drive me mentally insane

earnest phoenix
#

It was like table = [a for i in [zip_longest(*[get_chunks(str(x), 16) for x in (_id, textwrap.shorten(message, width=65, placeholder="..."), human_timedelta(expires))], fillvalue=None) for _id, expires, message in records] for a in i ]

latent heron
#

i don't get the hype

#

i rarely do anon functions as-is blobpain

earnest phoenix
#

anon? lambda?

latent heron
#

lambda and anon functions are the same thing

#

lambda is just looking for a value or set of values from a specified function range

#

anonymous functions are functions created within an instance or variable

#

here is one of the very few anonymous functions i wrote for my bot

earnest phoenix
#

wait what? how is that an anonymous function? am I misunderstanding of what an anonymous function is?

latent heron
#

anonymous functions are functions created within an instance or variable so

earnest phoenix
#

But you're not creating a function there

latent heron
#

there are two ways i could have went doing this:

Anonymous function:

options = "".join(f"&{opt[0]}={opt[1]}" for opt in types)
print(options)

Or the other method:

_list = []
for opt in types:
  _list.append(f"&{opt[0]}={opt[1]}")

print("".join(_list))```
#

Well, the programming lingo is a "function" because it functions outside of context of an instance/var

#

you can program anonymous functions in python either with or without lambda usage. Lambda is just supposed to act as the arguments filter if you think about it that way, while in this case it lacks args.

earnest phoenix
#

isn't (f"&{opt[0]}={opt[1]}" for opt in types) just a generator

#

which eventually will be casted as list by join function

latent heron
#

i mean technically yes

#

you can argue that any loop that's recursive is a generator

rocky hearth
#

What should I do to avoid doing this.
I've a this code in index.ts, I want to export some classes from other file as well as use them in current file too.

#

or is it ok, to do so

eternal osprey
#

2021-03-01T08:24:04.844555+00:00 app[Worker.1]: TopGGAPIError [Top.GG API Error]: 401 Unauthorized (You need a token for this endpoint) 2021-03-01T08:24:04.844574+00:00 app[Worker.1]: at Api._request (/app/node_modules/@top-gg/sdk/dist/structs/Api.js:74:19) 2021-03-01T08:24:04.844575+00:00 app[Worker.1]: at runMicrotasks (<anonymous>) 2021-03-01T08:24:04.844575+00:00 app[Worker.1]: at processTicksAndRejections (internal/process/task_queues.js:93:5) 2021-03-01T08:24:04.844576+00:00 app[Worker.1]: at async Api.postStats (/app/node_modules/@top-gg/sdk/dist/structs/Api.js:94:9) { 2021-03-01T08:24:04.844576+00:00 app[Worker.1]: response: { error: 'Unauthorized' } 2021-03-01T08:24:04.844577+00:00 app[Worker.1]: } 2021-03-01T08:24:05.025634+00:00 app[Worker.1]: Posted stats to Top.gg! why is this happening?

#

pretty sure my token is in there

river panther
gilded swallow
eternal osprey
#

yup

#

well, it is posting stats btw

#

but idk, still shows that error

gilded swallow
#

so it works but says it doesn't

#

i woudn't have a clue then, maybe ask the devs

cinder patio
#

The site is broken right now so maybe that's why

raven heart
#

uh im not sure if this is the right channel for this but

#

one of top.gg's requirements for a bot to be accepted is Your bot is tested using permissions=0, you should ensure that your bot functions without permissions., but my bot HAS to have permissions for certain commands

#

do I submit it without permissions

#

and say which one is the one with perms?

#

like 2 links, one real and one no perms

craggy pine
earnest phoenix
#
2021-03-01T09:19:26.206030+00:00 app[worker.1]:                   ^
2021-03-01T09:19:26.206031+00:00 app[worker.1]: 
2021-03-01T09:19:26.206031+00:00 app[worker.1]: ReferenceError: Discord is not defined
craggy pine
#

If you require admin, dont or youll be declined immediately

river panther
raven heart
#

ah

#

so what if I have like a ban command

craggy pine
#

No commands NEEDS admin

raven heart
#

oh ight

zenith terrace
#

smh

craggy pine
#

Ty 😂

raven heart
#

ight so then another question

#

I have a prefixset command, how do I get the owner of the server

#

so only he can use it

#

or would that

craggy pine
#

What language

raven heart
#

still fall into admin

#

js, discord.js

craggy pine
#

Pretty certain you can grab the owner of a server.

earnest phoenix
river panther
#

show me your code

#

and the error

zenith terrace
raven heart
#

ight thanks

earnest phoenix
#

Hey please tell me why this code is not working for me

 if(message.content.startsWith("5!edit")) {
    let editm = args.slice(18).join(" ")
    if(!editm) return message.channel.send("Correct usage is `<MESSAGE_ID> <NEW_MESSAGE>`")
    message.channel.edit(editm)
  }```
river panther
#

bruh, how can a bot edit message?

earnest phoenix
river panther
#

no?

dusky sundial
#

Bots can edit messages, but only their own

river panther
#

^

earnest phoenix
#

oh

river panther
#

ooye hemanth, tu itna jaldi verify kaise ho gaya?

earnest phoenix
#

Nhi yaar

dusky sundial
earnest phoenix
#

ok

#

msg.author
Cannot read property 'author' of undefined

dusky sundial
#

msg is undefined. Please show how you get the msg variable

river panther
#

show your code

earnest phoenix
#

module.exports.run = async (bot, message, args) => {
    const msg = bot.snipes.get(message.channel.id)
    const embed = new Discord.MessageEmbed()
    .setAuthor(msg.author.id, msg.member.user.displayAvatarURL())
    .setDescription(msg.content)
    .setFooter('Get Sniped lol')
    .setTimestamp();
    message.channel.send(embed);
}

module.exports.config = {
    name: "snipe",
    aliases: []
}```
#

(node:4) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'author' of undefined

dusky sundial
#

What does it say if you log the value of msg?

earnest phoenix
#

error

#

TypeError: Cannot read property 'author' of undefined

#

when run cmd

river panther
#

not msg

#

wait

#

nvm

dusky sundial
#

is bot.snipes a thing?

river panther
#

yes ig

#

let me go check mine

earnest phoenix
#

module.exports.run = async (bot, message, args) => {

river panther
earnest phoenix
#

client.snipes = new Map();

dusky sundial
#

Well, somehow bot.snipes.get(message.channel.id) is returning undefined.
I don't have enough experience with js to help you any further. Someone else is gonna have to take it

river panther
#

umm

#

thats not the main thing

#

@earnest phoenix did you write the code on your own?

tawny cosmos
#

Yes I'm still up

river panther
#

say the truth

earnest phoenix
river panther
#

bro, understand the code first

earnest phoenix
#

but code is right

#

accurate

#

what ever

river panther
earnest phoenix
#

got it

#

@earnest phoenix fixed it right?

river panther
#

@earnest phoenix i need help

earnest phoenix
#

Please kindly explain the issue, Please note that i only do Javascript and Java.

river panther
#

quick db wouldn't come in my code

earnest phoenix
#

Have you install & import it in your code?

river panther
#

want to see what happens when i do it?

earnest phoenix
#

Ah

river panther
#

i can screenshare and show you the shower of errors

earnest phoenix
river panther
#

ok ok

#

he looks good ngl

#

but ok

#

we need his brain

earnest phoenix
#

Let not get off-topic and focus on solving your problem.

river panther