#development

1 messages ยท Page 1321 of 1

next flax
#

but why

earnest phoenix
#

no

next flax
#

i guess this is wrong

earnest phoenix
#

that's not the problem

next flax
#

k

#

so what should i do now

#

smh

tame kestrel
#

././commands doesnโ€™t look right unless i donโ€™t know something

#

Try reading from __dirname + โ€˜/commands

earnest phoenix
#

Bruh.

real sierra
#

yo.. i got problem again XD

#

the Terminal isnt responding

#

i need to run the command code

#

but i cant type in the terminal...

#

oh... nevermid

next flax
#

@real sierra i guess u have a low end pc

real sierra
#

no..

#

i forgot to end the terminal by pressing control C XD

tame kestrel
#

If you have a program hanging or something in the terminal you can press CTRL + C to end it

#

Yeah

real sierra
#

lmao XD

next flax
#

whats this

#
            .setColor("#FF0000")
            .setAuthor(`${message.guild.me.displayName} Help`, message.guild.iconURL())
            .setThumbnail(client.user.displayAvatarURL())

            const categories = readdirSync("./commands/")

            embed.setFooter(`${message.guild.me.displayName} | Total Commands - ${client.commands.size - 1}`, client.user.displayAvatarURL());
            categories.forEach(category => {
              client.commands = new discord.Collection()
                const dir = client.commands.filter(c => c.config.category === category)
                const capitalise = category.slice(0, 1).toUpperCase() + category.slice(1)
                try {
                    embed.addField(` ${capitalise} [${dir.size}] - `, dir.map(c => `\`${c.config.name}\``).join(" "))
                } catch (e) {
                    console.log(e)
                }
            })

            return message.channel.send(embed)
            let command = client.commands.get(client.aliases.get(args[0].toLowerCase()) || args[0].toLowerCase())
            if (!command) return message.channel.send(embed.setTitle("**Invalid Command!**").setDescription(`**Do \`tr!help\` For the List Of the Commands!**`))
            command = command.config

            embed.setDescription(stripIndents`**The Bot's Global Prefix Is \`tr!\`**\n
            **Server Prefix Is \`${prefix}\`**\n
            ** Command -** ${command.name.slice(0, 1).toUpperCase() + command.name.slice(1)}\n
            ** Description -** ${command.description || "No Description provided."}\n
            **Category -** ${command.category}\n
            `)
             embed.setFooter(message.guild.name, message.guild.iconURL())

            return message.channel.send(embed)
        }
};```
fickle sapphire
#

You have an emty field in your embed

cinder sandal
#

@next flax one of your embed fields are empty

whole knot
#

Hey together. Right now I am building a "hug" command. I am requesting the pictures from different websites. However they mostly do not load after executing the command. Is there a way to let the bot pick the pictures randomly from my PC? I have not found out a way to build this in.

#

I know how to let the bot randomly choose pictures:

num = randint(1, 52)
        try:
            await ctx.send(file=discord.File("C:/Users/Dominik/Pictures/MEMEs/{}.jpg".format(num)))

and I also would like to have this wit the GIFs for the command above

next flax
#

k

#
    at /home/runner/Thunder/commands/special/thelp.js:28:66
    at Map.filter (/home/runner/Thunder/node_modules/@discordjs/collection/dist/index.js:190:17)
    at /home/runner/Thunder/commands/special/thelp.js:28:45
    at Array.forEach (<anonymous>)
    at Object.run (/home/runner/Thunder/commands/special/thelp.js:27:24)
    at Client.<anonymous> (/home/runner/Thunder/server.js:101:17)```
#
            categories.forEach(category => {
                const dir = client.commands.filter(c => c.config.category === category)
                const capitalise = category.slice(0, 1).toUpperCase() + category.slice(1)
                try {
                    embed.addField(` ${capitalise} [${dir.size}] - `, dir.map(c => `\`${c.config.name}\``).join(" "))
                } catch (e) {
                    console.log(e)
                }
            })

            return message.channel.send(embed)

        }
};```
#

@cinder sandal u know?

#

@fickle sapphire or u

fickle sapphire
#
TypeError: Cannot read property 'category' of undefined
#

That is what it says

next flax
#

so what should i do

cinder sandal
#

is category defined

next flax
#

yes

opal plank
#

category OF undefined

#

its not category the issue

#

its likely this

next flax
#

so what should i do Erwin

opal plank
#

that doesnt exist

#

either define it or check if it exists

next flax
#

i m broke

opal plank
#

then unbreak it

#

when something doesnt exist in js you have to options

#

make it exist

#

or check if it exists

#

are you sure .config exists?

#

cuz it says it doesnt

#

it'll either be one that doesnt have it thats error'ing your code, which would likely mean you need to standartize your command format

#

OR config doesnt exist in ANY commands

next flax
#

ye it doesnt

opal plank
#

then dont use it

#

why put something there that doesnt exist?

next flax
#

hey erwin do u know how i can make

opal plank
#

@next flax in the guide they provide a dynamic help command example

#

lemme fetch it rq

crude merlin
#

How would i make my bot logo float on top.gg

next flax
#

@crude merlin html

opal plank
#

i believe its css

next flax
#

ok

crude merlin
#

Yeeeaaaa, i tried css and i dont get how to fetch the logo

opal plank
#

ctrl + shift + i

#

then inspect element

crude merlin
#

Yeah after

earnest phoenix
#

is someone know how to add to status in how many bot are on servers?

crude merlin
#

so what function to make it fload

pale vessel
#

ctrl + shift + c and click the logo, easier troll

crude merlin
#

no wait what @pale vessel

pale vessel
#

you still need to use the html <style> tag and css to style the logo

earnest phoenix
#

is someone know how to add to status in how many bot are on servers?

crude merlin
#

ok

next flax
#

@earnest phoenix client.guilds.cache.size

crude merlin
#

${client.users.cache.size} Members @earnest phoenix

earnest phoenix
#

no

next flax
#

add this to status message

earnest phoenix
#

this doesnt work

crude merlin
#

it should

next flax
#

use backticks

earnest phoenix
#

its still 0

crude merlin
#

Yeah

earnest phoenix
#

its dont change

crude merlin
#

is it in any servers?

earnest phoenix
#

yes

#

on 2

crude merlin
#

Ok

#

i dont get how to make this logo float in css uhh

next flax
#

@opal plank i dont want dynamic help

opal plank
#

pong

next flax
#

i just want help cmd of that type

opal plank
#

what do you want then?

#

huh?

next flax
#

its like mod bot

opal plank
#

map out the categories, then push an array on it

#

thats how i would do it at least, which is really not very performant

#

but it would work, just cuz i like complicated code

#

Map()

next flax
#

do u have a example code of help cmd like this?

opal plank
#

for category of categories set(category, {entries:[]})

#

then just spread it

#

and loop again

#

cuz fuck sanity

cinder sandal
#

how to do math

#

without eval()

opal plank
#

probably best to use string conotation tbh

#
let string = '';
for(category of categories) {
string += command + ':\n';
for(c of category(command)) {string += command}
}```
#

something like that should do the trick

tired radish
#

Hello

#

Bye

#

Hello

#

Bye

#

Hello

unique nimbus
#

okay

real sierra
#

another problem again...

#

my Bot doesnt respond to my command

#

--"

carmine summit
#

Have you put it inside a message event handler?

ionic dawn
#

is the msg.edit action rate limit high?

carmine summit
#

no, as long as you don't put it in a loop

#

is there something like process.restart() ???

pale vessel
#

no, you need a process manager like pm2 and use process.exit(). it'll restart the process for you

carmine summit
#

o

gentle lynx
#

how can I choose a random element from an array?

#

nevermind

carmine summit
#

array[Math.floor(Math.random() * array.length)]

gentle lynx
#

ye

real sierra
#

my brain gonna explode

hazy sparrow
#

How to edit a channel's topic in d.js?

#

my Bot doesnt respond to my command
@real sierra we'd be helpful for you if you provide some more information

gentle lynx
#

how can I round up 2.5 to 3?

#

not only 2.5

#

ah nvm

urban holly
hazy sparrow
#

@urban holly there are guides yk

urban holly
#

Oh well that proves my dumbness

hazy sparrow
#

Discord.js?

urban holly
#

I actually have no idea what im doing ๐Ÿ˜ƒ๐Ÿ‘Œ

quartz kindle
#

you also exposed your token

#

meaning anyone can control your bot

urban holly
#

Oop-

hazy sparrow
#

lol i didn't even realize

#

I actually have no idea what im doing ๐Ÿ˜ƒ๐Ÿ‘Œ
@urban holly well you should probably know what you are doing before creating a bot

urban holly
#

Not my fault im dumb

#

It's my first time actually creating a bot ;-;

hazy sparrow
#

dw you have you start somewhere

quartz kindle
#

creating a decent bot requires knowledge of programming and coding, so i'd suggest you start by learning how to code

urban holly
#

Welp-

hazy sparrow
urban holly
#

I don't have school today so im gonna learn

hazy sparrow
#

You cant learn it in a day

quartz kindle
#

if you dont want to, there are some tools that can do some stuff for you, like discord bot maker, botghost and bot designer, however these tools are much more limited than coding it yourself

hazy sparrow
#

^

smoky robin
#

hi

gentle lynx
#

how can I round any number to its next number? like for example, even if it is 2.25, it will be 3.
2.10 => 3
2.80 => 3
8.7 => 9
8.10 = 9
80.4 => 81

rose warren
#
Math.ceil(number)```
#

In javascript

gentle lynx
#

thanks!

rose warren
#

No problem! ๐Ÿ˜Š

gentle lynx
quartz kindle
#

for(let i = 0, i < tries, i++) {}

gentle lynx
#

ty

pale vessel
#

for(let i = 0; i < tries; i++) {}

gentle lynx
earnest phoenix
#

:NM_Kiss:
@gentle lynx eww what the fuck

marble seal
#

What is the owo's remittance order

gentle lynx
#

@earnest phoenix peepoCringe

tardy hornet
#
case 'members':
  const countmem = new Discord.MessageEmbed()
  .addField(`${what do i type here?} members.`)
  .setColor("RANDOM")
  message.channel.send(countmem)
  break;

what do i type in the ${}?

marble seal
#

What is the owo's remittance order

earnest phoenix
#

@gentle lynx any variable with the string or number or boolean data type

gentle lynx
#

client.members.cache.size

tardy hornet
#

not working ^

#

fix that

earnest phoenix
#

not working ^
@tardy hornet what is not working?

tardy hornet
#

found what i needed to do

#

nvm

#

i worked it out

#

ty anyways

#

client.members.cache.size
@gentle lynx
message.guild.memberCount

earnest phoenix
#

no

#

@tardy hornet that's completely wrong

tardy hornet
#

its working

earnest phoenix
tardy hornet
#

@tardy hornet that's completely wrong
@earnest phoenix its working

earnest phoenix
#

smh

#

it's not supposed to

tardy hornet
#

ik lol

#

but it does

earnest phoenix
#

smh

gentle lynx
#

@tardy hornet I thought you were talking about the members of the bot

#

not in the server

tardy hornet
#

its ok

#

sorry for not telling that

#

to install moment its: npm i moment

#

right?

real otter
#

Hello everyone, wanted to ask, has anyone worked with LavaLink? It's just that I'm completely rewriting the music now and I have such a problem ... If you restart the bot, or register the disconnect command and re-register play, the song will not play ... At least until the time that the previous song lasts , will not work

#

the bot leaves the voice channel with the dis command, using manager.leave(guild.id)

misty sigil
#

@real otter i don't know much, but are you destroying the player?

real otter
#

@misty sigil Ok(

earnest phoenix
#

to install moment its: npm i moment
@tardy hornet bruh moment

tardy hornet
#

?

#

i did and its still like that

earnest phoenix
#

smh

#

have you defined it in your code

tardy hornet
#

no

#

idk to what

#

want me to send the code?

earnest phoenix
#

const moment = require("moment")

#

of course....

#

d o t h i s

carmine summit
#

UH

#

im feeling genius today

#

anyone need help?

earnest phoenix
#

you

surreal sage
#

What is the run command for globally installed npm packages on linux? <package name> does not work.

whole knot
#

So I could need a little help. I want to display the duration of a YouTube video but do not really know how to define it. I already got some things but I am stuck at the duration. Does someone know how to define it?

earnest phoenix
#

npm install <package name>

surreal sage
#

no, no

earnest phoenix
#

@surreal sage

surreal sage
#

I already installed it

#

How do i run it on linux

earnest phoenix
#

What

surreal sage
#

i installed pm2 globally but how do i run pm2 then?

#

i did pm2 but no

tight plinth
#

whenever i run a msg.channel.send function with a eval commabdn, i get this error, anybody knows why? It doesnt break my bot as the message is sent, but its kinda annoying

surreal sage
#

@tight plinth It says the problem lmao

earnest phoenix
#

I don't know anything about pm2 sorry d:

tight plinth
#

i just dont know how to fix it

#

lol

#

my english is bad af

surreal sage
#

@earnest phoenix it isnt anything about pm2

#

How do i just run a global installed package

#

come in a vc if you want

#

testing #1

#

How do i run a npm globally installed package? on linux

vital thunder
surreal sage
#
case 'members':
  const countmem = new Discord.MessageEmbed()
  .addField(`${what do i type here?} members.`)
  .setColor("RANDOM")
  message.channel.send(countmem)
  break;

what do i type in the ${}?
@tardy hornet client.users.cache.size

quartz kindle
#

@surreal sage did you change node version after installing it?

tardy hornet
#

@surreal sage its ok it was like 30m ago

surreal sage
#

wdym, tim

#

oh lol

#

node is on v10.18.1

quartz kindle
#

If you change or update node.js version, you need to reinstall global packages

surreal sage
#

that wasnt the case

#

i just installed it

quartz kindle
#

Then try closing and reopening terminal

surreal sage
#

this is on a vpn somewhere in the netherlands

#

il restart

earnest phoenix
#

How do I change the file size limit for a pterodactyl panel

quartz kindle
#

You just need to reopen the ssh connection

#

No need to restart the machine

#

Use http instead of https

surreal sage
#

liam, quick question: what do you use to create a webhook?

quartz kindle
#

Are you using a dbl library or a plain webserver?

surreal sage
#

ok thx

loud geyser
#

hey all

blissful coral
#

No free VPS, pixel

loud geyser
#

damn

faint prism
#

lOL

loud geyser
#

hmm

blissful coral
#

Already knew the question

loud geyser
#

yeah

compact oriole
#

there might be some free vps but they are either scams or shit

#

like hardcore shit

blissful coral
#

Use galaxy gate best one

#

And itโ€™s cheap

loud geyser
#

thing is, i'm a child

quartz kindle
#

Still didnt work with plain http?

faint prism
#

At least he's honest

loud geyser
#

i dont have money everywhere that im allowed to spend

compact oriole
#

I got vps when I was 11

faint prism
#

Leave your PC on 24/7

compact oriole
loud geyser
#

nice

faint prism
#

Or do you have an spare Android phone by chance?

loud geyser
#

i guess that would be the only plausible solution

blissful coral
#

My vps lookin cleannnnnn

loud geyser
#

Or do you have an old Android phone by chance?
@faint prism i might, why?

faint prism
#

You can host from that

loud geyser
#

hmm interesting

#

how would i go about that

blissful coral
#

Pixel you are over the age of 13, right?

loud geyser
#

13 โ‰ฅ

blissful coral
#

So 13

loud geyser
#

maybe, maybe not cannot share

surreal sage
#

Spooky. You don't own these vps 99.9%

blissful coral
#

Nah that is galaxy gate racks

surreal sage
#

lmao lol

pearl trail
#

it's really your own vps?

#

oh

blissful coral
#

No

#

Well

pearl trail
blissful coral
#

Yes and no

#

My vps is on that rack

#

But not my datacenter

#

Itโ€™s galaxy gates lol

quartz kindle
#

Mine is probaby there too i guess

blissful coral
#

Haha

#

Looks hot

faint prism
loud geyser
#

thanks i will take a look

#

what language is the script in

faint prism
#

It's just a bash setup script. It will deploy a NodeJS template bot in Termux

loud geyser
#

k thanks mate

faint prism
#

Cheers

surreal sage
#

@quartz kindle I restarted my vps. Still doesn't give a valid reply. Only a error that the command doesn't exist

#

Do i have to run it with a prefix?

#

Like npm or node

faint prism
#

npm = node package manager

surreal sage
#

ik

faint prism
#

So, you don't run anything with that

surreal sage
#

I'm trying to run pm2 on my linux vps

faint prism
#

it just gets other libs

surreal sage
#

But it just doesnt reply

faint prism
#

pm2 start index.js --watch

surreal sage
#

Come to Testing #1

#

ik

blissful coral
#

pm2 start <file name>.extension

surreal sage
#

that aint the prob

blissful coral
#

Is what I do

surreal sage
#

i know how it works

blissful coral
#

Oh

faint prism
#

oh right pm2 can do it by itself

blissful coral
#

Whatโ€™s the problem

surreal sage
#

come to testing #1

blissful coral
#

Kk

surreal sage
#

vc

blissful coral
#

Canโ€™t vcIโ€™m in school

#

Lmao

surreal sage
#

not chat

#

i dont need voice

#

just i want to show whats goin on

faint prism
#

oh backwards whoops

surreal sage
#

doesnt work?

faint prism
#

well aparenlyt idk how to use npm lol

surreal sage
#

no i know

#

normally just execute the package name

#

it doesnt work here

faint prism
#

Did you see the part called "install"

surreal sage
#

wut

faint prism
#

npm i pm2 -g

pale vessel
#

he did do that?

surreal sage
#

yes

#

multiple times

faint prism
#

the -g should make it globally accessable

pale vessel
#

can you try npx?

#

no

#

just npx

#

try npx pm2

faint prism
#

does it not work now?

pale vessel
#

try npx pm2 start file.js

surreal sage
#

it just installs it?

#

i brb

pale vessel
#

npx is not npm

surreal sage
#

be back in ~30 min

#

im running npx pm2 and it installs pm2

#

not run

pale vessel
#

just npx pm2 start yourindex.js

#

try that

surreal sage
#

IT JUST INSTALLS

pale vessel
#

no

surreal sage
#

wait

pale vessel
#

it works

#

npx allows you to run packages

#

not install them

surreal sage
#

why does it have to 'install' ever time?

pale vessel
#

so npx pm2 start would be equivalent to pm2 start

surreal sage
#

ik

pale vessel
#

not sure

#

why didn't it work without npx anyway, you already used -g

#

idk man

#

but using npx seems to be working

vernal rivet
#

Npx technically caches. It's how it uses the packages, it makes a mini version of it, then runs it. Pm2 should be something you don't need npx to execute. If you make it global you should be able to access it. You might just have to save it in the directory. shrug J's pm is just wack tbh

spiral crag
#

@loud geyser just use repl.it i was in the same situation as you

vernal rivet
#

It's good, but can't exactly say it is amazing. There are some limitations to repl.it

stray bridge
#

Whaere list of bots

vernal rivet
#

On the website

misty sigil
vernal rivet
#

I mean it's better than self hosting by a long shot

#

But yes it isn't the best

pearl trail
#

ram goes brrrr

quartz kindle
#

jesus christ

#

how many guilds? 500k?

pearl trail
#

8 lol

#

idk what happen

umbral zealot
#

You broke it.

quartz kindle
#

do you have game servers running on it as well?

pearl trail
#

no,,

umbral zealot
#

You shouldn't pout your entire porn collection in memory, btw ๐Ÿ˜›

quartz kindle
#

lmao

tired panther
#

How to get cpu usage @pearl trail?

pearl trail
#

@tired panther wait, i forgot christmasthink

misty sigil
#

@tired panther i'd use the package 'os' for nodejs

quartz kindle
#

is it running linux?

abstract coyote
#

How do I check if a specific user that I set is being pinged? using discord.js

misty sigil
#

@abstract coyote check message.mentions

real otter
#

@real otter i don't know much, but are you destroying the player?
@misty sigil How?

misty sigil
#

<player>.destroy()

tired panther
#

@tired panther i'd use the package 'os' for nodejs
@misty sigil i know that, but I want my owns xD

misty sigil
#

heh

abstract coyote
#

yeah something like

if(message.mentions.users.first() === 'user id') {
  code here?
}
``` like that?
real otter
#

@misty sigil Hmmm, thx, i will try

misty sigil
#

@abstract coyote it returns a user object so it'd be .first().id

abstract coyote
#

oh!

#

yeah that would make sense c:

#

ty!

misty sigil
#

np!

pearl trail
#

you need os module, then
const core = os.cpus()[0];
and to get your cpu usage, use
core.speed

drifting wedge
#

How would I add sound effects to lavalink?

quartz kindle
#

@tired panther you want cpu usage or cpu speed?

tired panther
#

@quartz kindle cpu usage without any node module

quartz kindle
#

of the entire machine or the current process only?

real otter
#

@misty sigil
No, it didn't help (

tired panther
#

of the entire machine or the current process only?
@quartz kindle of the node file running , mean my bot

quartz kindle
misty sigil
#

no idea then

tired panther
#

thx

#

@misty sigil ur site is showing nothing

misty sigil
#

oh well

#

i forgot i changed subdomain KEK

real otter
tired panther
#

cute small server @mattthew#0001

pale vessel
tired panther
#

@pearl trail how many guilds does ur bot serve?

weary gazelle
#

ram goes brrrr
@pearl trail monke

#

Ram leaking

wispy wharf
#

Hey i had created music bot i want to do if someone use join command bot stay in that vc 24/7

tired panther
#

how do u mean?

earnest phoenix
#

how to stop all cmd from dm by discord guild

faint prism
#

blocking all DM msgs?

pale vessel
#

check the channel type?

#

or check whether guild exists or not

earnest phoenix
#

no my bot working on dm how to stop

#

from dm

faint prism
#

check if msg has a null guild or is of type DM

#

then return if true

pale vessel
#

return the code if the channel is a dm/the message does not belong to a guild

earnest phoenix
#

js code plz

faint prism
#

yeah you can do it in JS

pale vessel
#

if (condition) return; troll

earnest phoenix
#

not work

faint prism
#

what

#

show your code

pale vessel
#

don't tell me you copy pasted that

faint prism
#

lmaooo

#

||I bet he did||

earnest phoenix
#

don't tell me you copy pasted that
@pale vessel no

faint prism
#

then show code

tired panther
#

xD

earnest phoenix
#

const client = new Discord.Client();

var x;client.on('ready', () => {

 console.log(`Started bot ${client.user.tag}!`);

});
client.login("token remove lol")


client.on('message', message => {

 if (message.content === 'hstart') {

   message.reply('monitoring op');

   setInterval(function() {

     var links = [];

     for (x = 0; x < 1; x++) {

       var used = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

       var link = "happy.com/";

       for (var y = 0; y < 4; y++) {

         link += used.charAt(Math.floor(Math.random() * used.length));

       }

       links.push(link);

     }



     message.channel.send(links.join(" "));

   }, 5000);

 }
});```
tired panther
#

use command handler xD

earnest phoenix
#

@faint prism

tired panther
#

@earnest phoenix whats here the problem?

pale vessel
#

where did you put the check?

earnest phoenix
#

@earnest phoenix whats here the problem?
@tired panther problem is this bot working on dm+channel i stop from dm

#

i do?

#

where did you put the check?
@pale vessel i put but not w0rk

tired panther
#

If(message.guild === true) return;

#

@earnest phoenix

pale vessel
#

not quite

#

message.guild === true can never be true

willow mirage
#

How i can create channel

pale vessel
#

it's either an object or null

earnest phoenix
#

How Can I Verify My Bot

#

?

pale vessel
#

you mean discord verification?

willow mirage
#

how i can create a channel ?

tired panther
#

@earnest phoenix on discord over 75 guilds

earnest phoenix
#

you mean discord verification?
@pale vessel yes

pale vessel
#

check your library's documentation

earnest phoenix
#

If(message.guild === true) return;
@tired panther put on script lol

pale vessel
#

what's your library?

earnest phoenix
tired panther
#

u can apply

earnest phoenix
#

where

tired panther
#

i think node js is her /.him

pale vessel
#

@willow mirage

earnest phoenix
tired panther
#

u can apply
@tired panther on discord fot verfication

#

@earnest phoenix

willow mirage
#

How i can set channel's perms to private

pale vessel
willow mirage
#

ok ok

#

smh

pale vessel
#

am i a bother to you

willow mirage
#

no u are my docs

faint prism
#

He got you there

earnest phoenix
#

i need help with commands

pale vessel
#

go on...

earnest phoenix
#

@tired panther on discord fot verfication
@tired panther wut

tired panther
#

google ist ur best friend

earnest phoenix
#

@tired panther what i do

tired panther
#

ur bot is in 75 server, when yes then i will tell

earnest phoenix
#

If(message.guild === true) return;
@tired panther this

stable marsh
earnest phoenix
#

op man

willow mirage
#

HOw i can get a random's id ?

vague heart
#

Just updated my older bot from v11 to v12 finally, and now I can't seem to find out why this is happening:

Error with DBL: Error: 400 Bad Request
#

kinda confused cuz it doesnt seem to affect anything

restive furnace
#

please don't do object === boolean, this will always return false.

#

HOw i can get a random's id ?
@willow mirage Simply: Generate a random number with remainder of your bot's cached users count -> Get user from your bot's cache with index of the random number.

willow mirage
#

or

#
message.guild.channels.random()
restive furnace
#

Just updated my older bot from v11 to v12 finally, and now I can't seem to find out why this is happening:

Error with DBL: Error: 400 Bad Request

@vague heart Show your DBL post code with token removed.

willow mirage
restive furnace
#

Well go for that - if it really exists

vague heart
#
const DBL = require("dblapi.js");
const dbl = new DBL("token", client);

dbl.on('posted', () => {

    console.log(`Server Count Posted | ${client.guilds.size} Guilds`);

});
#

( @restive furnace ) ^

wispy wharf
#

can someone tell me how can we restrict bot not to leave vc

restive furnace
#

@vague heart did you update dblapi too?

#
// client is your Discord client.
const fetch = require('node-fetch');
const key = 'YOUR DBL KEY';

fetch(`https://top.gg/api/bots/${bot.user.id}/stats`, { method: 'POST', headers: { 'Authorization': key }, body: { server_count: client.guilds.cache.size }})
    .then(() => console.log(`Posted to dbl.`))
    .catch((e) => console.error(e));```
loud geyser
#

@loud geyser just use repl.it i was in the same situation as you
@spiral crag i love repl it

#

cant figure out how to host there though @spiral crag

#

@green kestrel i might host on repl it since i have experience with it, how would i go about hosting there

misty sigil
#

its client.guilds.cache.size

tired panther
#

Does someone has a bot check permisson code?

solemn latch
#

Bot check permission?

tired panther
#

yes @solemn latch

solemn latch
#

I dont understand, checking who's permission? The bots? The users? The file access?

tired panther
#

the client permisson its self in the guild

#

@solemn latch

solemn latch
#

What lib?

tired panther
#

discord,js

solemn latch
tired panther
#

ik how to do that

loud geyser
#

how can i host a discord py bot on repl it

tired panther
#

I was to lazy to code xD

solemn latch
#

We don't spoonfeed

tired panther
#

yes, Ik

solemn latch
#

You just create a repl that uses python @loud geyser

#

And then install the package for discord py

loud geyser
#

kk

peak osprey
#
 Something went wrong... TypeError [INVALID_TYPE]: Supplied options is not an object.```

```js
 else if (command === 'purge') {
    
    if(!message.member.hasPermission("MANAGE_CHANNELS")) {
      return message.reply("You cant delete messages.....").then(m => m.delete(5000));

}

if (isNaN(args[0]) || parseInt(args[0]) <= 0) {
  return message.reply("Thats not a number you thick shit").then(m => m.delete(5000));
}

if (!message.guild.me.hasPermission("MANAGE_CHANNESL")){
return message.reply("sorry i cant delete messages i need manage channesl perms").then(m => m.delete(5000));

}
let deleteAmount;

if(parseInt(args[0]) > 100) {
  deleteAmount = 100;
} else{
  deleteAmount = parseInt(args[0]);
}

message.channel.bulkDelete(deleteAmount, true)
  .then(deleted => message.channel.send(`i deleted \`${deleted.size}\` messages.`))
  .then(m => m.delete(5000))
  .catch(err => message.reply(`Something went wrong... ${err}`))

}```
loud geyser
#

@solemn latch is that all, will it just keep running once i run it once?

red hollow
#

@peak osprey im p sure its <message>.delete({ timeout: 5000 })

solemn latch
#

๐Ÿคทโ€โ™‚๏ธ never used replit

peak osprey
#

ok

#

thanks

#

Debugger attached.
Process exited with code 1
C:\Program Files\nodejs\node.exe .\Index.js
LightBot Is Online!
Index.js
Cmds are now working
Index.js
Activity set to lb!help | 69 servers!
Index.js
(node:24144) UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Message
at RequestHandler.execute (c:\Users\linds\Bot\Bump\giveaway-golang-bot-master\node_modules\discord.js\src\rest\RequestHandler.js:170:25)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
(Use node --trace-warnings ... to show where the warning was created)
<node_internals>/internal/process/warning.js
(node:24144) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
<node_internals>/internal/process/warning.js
(node:24144) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
<node_internals>/internal/process/warning.js

loud geyser
#

๐Ÿคทโ€โ™‚๏ธ never used replit
@solemn latch works man, thanks!

peak osprey
#

nope

#

@red hollow didnt work

#

well kinda

red hollow
#

unknown message

peak osprey
#
 else if (command === 'purge') {
    
    if(!message.member.hasPermission("MANAGE_CHANNELS")) {
      return message.reply("You cant delete messages.....").then(message.delete({ timeout: 5000 }))

}

if (isNaN(args[0]) || parseInt(args[0]) <= 0) {
  return message.reply("Thats not a number you thick shit").then(message.delete({ timeout: 5000 }))
}

if (!message.guild.me.hasPermission("MANAGE_CHANNESL")){
return message.reply("sorry i cant delete messages i need manage channesl perms").then(message.delete({ timeout: 5000 }))

}
let deleteAmount;

if(parseInt(args[0]) > 100) {
  deleteAmount = 100;
} else{
  deleteAmount = parseInt(args[0]);
}

message.channel.bulkDelete(deleteAmount, true)
  .then(deleted => message.channel.send(`i deleted \`${deleted.size}\` messages.`))
  .then(message.delete({ timeout: 5000 }))
  .catch(err => message.reply(`Something went wrong... ${err}`))

}```
red hollow
#

handle it

peak osprey
#

ok

shell crystal
#

YOUTUBE_API_KEY want to.

real otter
misty sigil
#

idk

real otter
#

Kk

tired panther
#

How to delete a guild which the bot created?ping me

solemn latch
#

Docs

quartz kindle
#

guild.delete()? lol

tired panther
#

does not work

#

@quartz kindle

sudden geyser
#

Why does it not work

tired panther
#

@sudden geyser

quartz kindle
#

well what is the error?

sudden geyser
tired panther
#

And how many guilds can u create with the bot? are not there any limits?

quartz kindle
#

guild.delete().catch(console.error)

#

oh wait

solemn latch
#

You can only create guilds until 10 or something as a bot iirc

quartz kindle
#

the error is that guild is not defined lmao

#

well of course, you need to specify which guild

tired panther
#

message?

quartz kindle
#

you use guild.delete() after you already got the correct guild

tired panther
#

yes iK

quartz kindle
#

you can get it from the message yes

#

message.guild

solemn latch
tired panther
#

okay done

#

thx

solemn latch
#

Yeah, you can only create guilds if you bot is in less than 10

tired panther
#

ah intereseting, why is there the guild create function?

solemn latch
#

Presumably for bots that need guilds for something, logging or something

loud geyser
#

will my discord bot go idle if i dont touch it for a while

#

on repl

tired panther
#

no

#

on replit may be

#

but your discord bot will not take the idle status, when u do not exectuted it @loud geyser

restive furnace
#

@loud geyser no

#

unless you put it yourself idle

loud geyser
#

ok cool

#

does anyone know about repl tho

restive furnace
#

repl is online ide

solemn latch
#

Repl, just like glitch and heroku are non standard platforms for hosting.
Much less people will know a lot about them

loud geyser
#

true

#

ive been using it for quite a while and it seems popular though

#

mainly using because it is free

#

but, do you think it will continue to stay online after i close it?

#

the tab

solemn latch
#

๐Ÿคทโ€โ™‚๏ธ I say get a basic bot together and try it

loud geyser
#

k thanks

tired panther
#

@loud geyser use heroku

solemn latch
#

Heroku is now a paid platform isnt it?

restive furnace
#

@solemn latch no

solemn latch
#

Oh

#

Then why did so many people move off it

restive furnace
#

24 days free per month tho

solemn latch
#

Ah

#

So they are making it lower was 27 before

restive furnace
#

Yeah iirc

solemn latch
#

So for a decent bot its practically paid now

restive furnace
#

yeah I guess

solemn latch
#

Repl will go the same direction imo

#

I said heroku would do something after glitch banned uptime robot and changed TOS

#

Now everyone will move to repl and repl will be forced to change

#

People hosting bots don't realize they are killing platforms practically

restive furnace
#

People hosting bots don't realize they are killing platforms practically
With their unoptimized code, yeah

solemn latch
#

Yes

#

Ty mod

restive furnace
misty sigil
#

check if the thing exists before using .id

scenic kelp
#

the error suggests otherwise

misty sigil
#

that error definitely suggests otherwise

quartz kindle
#

you're trying to use .id of something that doesnt exist

#

you need to figure out what is it thats missing

faint prism
#

Look at <whatever>.id
Make sure <whatever> is not null and has an .id property

loud geyser
#

guys

#

will my bot stay online during sleep mode

misty sigil
#

try it

loud geyser
#

ok

#

did not work

#

let me try heroku or something

misty sigil
#

nope

#

heroku is shit

#

so is like all free hosting

loud geyser
#

damn it i need somewhere to host for free

misty sigil
#

port forward it

#

@loud geyser you won't find anywhere

#

it fully depends on what router you have

loud geyser
#

f

misty sigil
#

i can't provide help

loud geyser
#

damn mate i need hosting

misty sigil
#

thats a network ip, yes.

left patrol
#

Yae gente

faint prism
#

I don't really recommend port forwarding unless you're serving a public service seperate from your home network

misty sigil
#

^^

faint prism
#

A safer alternative is hosting a vpn server and setting up firewall rules.
Another alternative is Ngrok

misty sigil
#

wtf is ngrok

faint prism
misty sigil
#

i got that by googling

faint prism
#

Pretty cool service tbh

misty sigil
#

ye it seems pog ngl

faint prism
#

I've used it for temporary websites and it's dope. It's paid plan is also really cheap is you want more than it's free

tired path
#

Guys

#

Do you want a free like bot online forever

restive furnace
#

PINS

tired path
#

just download pm2

#

e

restive furnace
misty sigil
#

thats wrong

faint prism
#

Oh shit they added oauth

misty sigil
#

pm2 still needs hardware

#

thats on 24/7

restive furnace
#

Yeah, and pm2 isn't native

#

Go use docker or systemctl or screen or any native program instead

tired path
#

One bot has been running for like 6m with mp2

#

m = months

restive furnace
#

Yeah?

tired path
#

dimden.dev

misty cedar
#

how do i code my bot

faint prism
#

In notepad

restive furnace
#

You actually don't even need process manager if your code isn't erroring and exiting all the time

tired path
#

how do i code my bot
@misty cedar https://discord.js.org/

restive furnace
#

@misty cedar https://discord.js.org/
@tired path How do you know he's using d.js?

#

Not everyone uses js

tired path
#

hmh

misty cedar
#

how do i

faint prism
#

It's probably the fastest to get started

#

how do i
@misty cedar that website tells you

quartz kindle
#

he sounds like he doesnt even know a programming language

faint prism
#

Yup

misty sigil
#

you do need to know js first

tired path
#

he sounds like he doesnt even know a programming language
@quartz kindle correct

restive furnace
#

@misty sigil or any other language

quartz kindle
#

@misty cedar have you ever coded anything before?

faint prism
#

What do you mean I have to know how to program before starting a programming project

misty sigil
#

im listening to some really fucking lit bagpipes rn like i had to fix some music shit but i got cool bagpipes for it

misty cedar
#

im slow as hell i dont understand

misty sigil
#

im slow as hell i dont understand
@misty cedar you need to program the bot to make it do what you want

#

do you know any programming languages?

misty cedar
#

no

restive furnace
misty sigil
#

I'd suggest javascript, as thats what most people here can help with.

opal plank
#

or if you dont value your life, go haskell

restive furnace
#

anidiots explains more, but yeah ^^

zenith knoll
#

Cannot send an empty message

opal plank
#

what could go wrong recommending haskell to someone new to programming?

zenith knoll
#

im tryna dm a user

misty sigil
#

well

#

i mean

opal plank
#

then your message is empty @zenith knoll

zenith knoll
#

uh

misty sigil
#

seems like your sending an empty message

zenith knoll
#

heres my code

opal plank
#

just log it before sending

#

it wouldnt error if it had content

misty cedar
#

why cant i be smart

tired path
#

@misty sigil Music boat is by you?

zenith knoll
#
const Discord = require('discord.js');
const client = new Discord.Client();
const msg = require('./msg.json');

client.on('message', (message) => {
    if (message.content.toLowerCase() != 'dmall' || message.author.id != '724066932701134979') return;
    message.reply(`Please reply with the content you want to DM all with`);
    const filter = (m) => m.author.id === message.author.id;
    message.channel.awaitMessages(filter, { max: 1 }).then((r) => {
        console.log(r.first().content)
        msg.c = r.first().content;

        message.author.send(msg.c).catch(e => console.error(`Couldn't DM member ${member.user.tag}`));

    }).then(() => {
        msg.c = ""

    })
})




#

i did log it

opal plank
#

YIKES

misty sigil
opal plank
#

token

#

token

zenith knoll
#

it logged the msg

opal plank
#

token

#

token

#

delete

zenith knoll
#

dc

#

lol

opal plank
#

go refresh that

zenith knoll
#

ok whatever

#

lol

misty sigil
#

@misty sigil Music boat is by you?
@tired path some of it, yes

zenith knoll
#

i mainly needa fix error

tired path
#

k

misty cedar
#

i dont understand at all sorry if im being a pain but

misty sigil
#

the main dev is misly

#

and starman does some too

misty cedar
#

i dont understand nun of this

zenith knoll
#

i mainly needa fix error
@opal plank

opal plank
#

log msg.c

#

before sending it

misty sigil
#

uh

#

dmall?

zenith knoll
#

mhm

#

?

misty sigil
zenith knoll
#

yea ik dmalls are not allowed but a guy said for me to make it to prove i can code

misty sigil
#

tos moment

opal plank
#

msg.c = r.first().content; this is likely undefined

zenith knoll
#

im getting it from a msg collecter

#

hmmmm

opal plank
#

wait

zenith knoll
#

i tried jhust sending it to the user

#

but it didnt work

opal plank
zenith knoll
#

so i made it into a string json

opal plank
#

you arent doing a mass dm command are you?

zenith knoll
#

no

#

thats y it says dm the autho

opal plank
#

it just now clicked the name of the command

zenith knoll
#

r

opal plank
#

Dm All

zenith knoll
#

mhm

#

it wont tho cxause it dms the author only

#

im tryn aprove to a guy i can actually code lol

clever thunder
#

module.exports.help = {
  name: 'say',
  description: "says a messages inputted",
  usage: "ping",
  execute(message, args) {
    const sayMessage = args.join(" ");
    message.delete().catch(err => console.log(err));
    message.channel.send(sayMessage);
  }
}
``` this works
misty cedar
#

i dont understand

opal plank
#

but if you are coming here to ask for help, isnt that against the bet?

misty cedar
#

...:(

zenith knoll
#

wel,llllllllllllllllllllllllllllllllllllllllllllllllllllll

clever thunder
#

bet?

zenith knoll
#

i meannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

#

maybeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee :thonl

opal plank
zenith knoll
misty cedar
#

can somebody help me

#

??

opal plank
#

@misty cedar you didnt say anything

zenith knoll
#

well backl to the drawing board

misty cedar
#

i need help ion understand any of it the guide is making my head hurt

zenith knoll
#

console.log(r.first().content)
returns 's' bc i sent a s

#

but i cant send it in discord..?

opal plank
#

log msg.c

zenith knoll
#

console.log(r.first().content)
returns 's' bc i sent a s
@zenith knoll

#

i did

#

console.log

#

o

#

ok

opal plank
#

@misty cedar we can provide help on what you DONT understand, i doubt many here will hold hands with you explaining the whole thing

misty sigil
#

@misty cedar You need to know a programming language.

The bot will do nothing when you have no code behind it.

The code interacts with the Discord API. This allows it to receive events and send data back to the API.

split hazel
#

hello i need some advice on ws comm with nodejs and c#, i'm looking for a nice data solution, will xml do fine?

opal plank
#

cant help with the c# department

#

cant you use json?

split hazel
#

thing is c# doesn't natively support json, you need to install an additional package

misty cedar
#

i dont understand nothing

split hazel
#

i'd rather do that nodejs side

misty sigil
#

then you don't make a bot Shrug

misty cedar
#

but i need this

opal plank
#

i guess it would be fine with xml, but like i said, i dont have experience with c#

misty sigil
#

what does it need to do

split hazel
#

eh not c# specifically lmao

misty cedar
#

or i get fired because my bosses server pays me 10k robux ever week and if i cant get the coding he gonna find out the bots dont work and fire me

split hazel
#

for now i'm just joining and splitting data into an array with strings but that's going to bite me in the ass

#

it already did

opal plank
#

the usual consensus is using json as the data format to talk between apps

misty sigil
#

10k robux each week

misty cedar
#

yes

split hazel
#

what a deal

misty cedar
#

thats what im saying

misty sigil
#

$99.99 every single week

misty cedar
#

i need this bot up and running i

#

yep

#

i got 5 bots i need up

misty sigil
#

learn to code then

opal plank
#

you got 3 options

  1. learn how to make a bot and get one done
  2. buy a bot/pay someone to make one
  3. use free templates of bots out there
misty sigil
#

its genuinely the best advice that i can give

deep tendon
#

ููŠู† ุงู„ุนุฑุจ

#

c

opal plank
#

@deep tendon english

misty sigil
#

i 100% guarantee that nobody here will hold your hand throughout making an entire bot

opal plank
#

^^^^^^^^^^^^^^

#

thats precisely why the guides are there

deep tendon
#

@opal plank arabs

opal plank
split hazel
#

is it just me or was stack overflow down for like 2 days now

opal plank
#

i dont use stackoverflow nearly as often to notice

#

actually i think i used it 2 days ago, lemme check

#

seems fine to me @split hazel

split hazel
#

wouldnt load for me from yesterday

opal plank
#

is it fine now?

misty sigil
#

stack overflow devs when stack overflow goes down

split hazel
#

unless my isp did some shit

misty sigil
#

look up this issue on stack overflow will you john

split hazel
#

it happened with a few sites before

opal plank
#

i assume its on ur end

#

i just checked and its fine

misty sigil
#

billy you fucking idiot its down

opal plank
#

also this is giving me cancer

faint prism
#

I heard C#

opal plank
split hazel
#

yeah works perfectly with a vpn

#

time to scream at support

opal plank
#

rete my 5IQ logger

restive furnace
#

\x1b = ?

opal plank
#

yup

#

escaping it

restive furnace
#

ah

#

ok

honest perch
#

is that lolcode?

opal plank
#

its working lolcode i made

quartz kindle
#

lmao

opal plank
#

thats all into 1 console log

honest perch
#

epic

quartz kindle
#

this is mine

opal plank
#

looks much more organized than mine

honest perch
#

my turn

#

which project

opal plank
#

imagine not putting everything under a single console.log()

honest perch
#

actually this

craggy agate
faint prism
#

Are we comparing loggers?

opal plank
#

shit ones, yes

honest perch
#

i dont have any

#

this is all i have

misty sigil
#

client.commands is a map?

honest perch
#

p sure yes

opal plank
#

not unles you me

#

actually

#

no

#

other way around

#

the guide recommends new Collection()

#

only hardcore users do Map()

craggy agate
honest perch
#

no

faint prism
honest perch
craggy agate
#

oof

honest perch
#

i found an issue

#

the footer

opal plank
#

has no one beaten me with a single one-massive-line

#

?

misty sigil
#

i wanna make a public paste service but database go brr

faint prism
restive furnace
#

my turn```ts
public log(type: ILogType, ...str: string[]): void {
const time: string = new Date().toISOString();

    let logStack = `${time}\t`;

    switch (type) {
        case ILogType.Info:
            logStack += `${chalk.blue("info")}\t`;
            break;

        case ILogType.Warn:
            logStack += `${chalk.yellow("warn")}\t`;
            break;

        case ILogType.Debug:
            logStack += `${chalk.magenta("debug")}\t`;
            break;

        case ILogType.Error:
            logStack += `${chalk.red("error")}\t`;
            break;

        case ILogType.Fatal:
            logStack += `${chalk.redBright("fatal")}\t`;
            break;
    }

    logStack += `${str.join(" ")}`;
}```
honest perch
#

@misty sigil thats why mines private

misty sigil
#

private paste doesnt seem bad actually

faint prism
#

Why not hare the logtype and the color in some object somewhere

#

And get rid of that switch/case

misty sigil
#

not that i have anything to paste in the first place

restive furnace
#

idk

faint prism
#

You should look into that ๐Ÿ˜›

restive furnace
#

thats my best logger tho

faint prism
#

make it better when you get a suggestion that allows it to be more maintainable

restive furnace
#

in other projects its just using some third-party logger or just logging straight to the console

soft pine
#

what bot shuld i make

honest perch
#

@misty sigil but my css is pretty jot

#

hot

restive furnace
#

make it better when you get a suggestion that allows it to be more maintainable
i will make it better

faint prism
#

I always implement my own logger

misty sigil
#

give me access to the pastes misly

honest perch
#

once i make logins

misty sigil
#

pog

honest perch
#

i havent actually

#

done that

#

yet

faint prism
#

What if i want to make a new logger that sends PushBullet notifications to my phone or something mmLol

craggy agate
restive furnace
#

I always implement my own logger
Well on JS I use that logger or console.log, on C++ I use third-party (spdlog or fmt). std::cout is hella slow

honest perch
#

its not defined

quartz kindle
misty sigil
#

@craggy agate what is command.commands

sweet ruin
#

Does anyone know how to use the vote webhook API? because I have absolutely no clue how to just make it so my bot sends a message to a user when they vote for my bot :/
JS btw

honest perch
#

read docs

faint prism
#

Maybe I'll make a brand new logger right here and now

opal plank
#

fuck i would show my actually decent logger

#

but VSC closed rn

misty sigil
#

Does anyone know how to use the vote webhook API? because I have absolutely no clue how to just make it so my bot sends a message to a user when they vote for my bot :/
JS btw
@sweet ruin it just sends a POST request

opal plank
#

YOOOOO legit

restive furnace
#

Well on JS I use that logger or console.log, on C++ I use third-party (spdlog or fmt). std::cout is hella slow
@restive furnace fmt isn't like "ready" to use, so I have to implement most of it tho, spdlog is.

opal plank
#

legit question

#

has anyone here done gmail webhook with cloud api?

sweet ruin
#

cause i've read the docs but its euhm all confusing even to me

quartz kindle
#

@sweet ruin top.gg's webhook is basically a POST request they send to the url you specify in your webhook settings, in your bot's edit page

sweet ruin
#

oh crap so I gotta make a website with it

quartz kindle
#

aka, you make a webserver, and top.gg will send data to you

sweet ruin
#

and code smth to read that?

quartz kindle
#

basically, yes, you dont need a full website, but a small webserver to receive the requests yes

sweet ruin
#

alright thank you! ill get to work on that

honest perch
sweet ruin
#

๐Ÿ˜„

craggy agate
#

@craggy agate what is command.commands
it's the name of the commands(i have named it commands)

honest perch
#

it isnt in the middle anymore

#

also tim

#

pls rate code

craggy agate
#

it's the name of the commands(i have named it commands)
like js commands: 'help', in a command file

faint prism
#
static class Factory
{
  ILogger GetLogger() => new Logger();
  ILogger GetLogger(Type type) => new Logger(type);
}
...
interface ILogger
{
  void Log(string msg);
  void Log(Exception e);
}
...
class Logger : ILogger
{
  string name = "NA";

  Logger() {}
  Logger(Type type) { _type = type.Name; }

  void Log(string msg) => Console.WriteLine($"[{DateTime.Now}] ({name}) - {msg}");

  void Log(Exception e) => Log($"Error! Exception: {e.Message}");
}
honest perch
#

c#?

faint prism
#

5m for an abstract logger

#

Ye

#

Don't think I made any syntax errors either
Whoops, didn't allow the factory to pass in a type param overload

#

I omitted the privacy modifiers because, meh

craggy agate
#

My turn?

faint prism
#

Sure. Implement a logger

craggy agate
#

logger?

faint prism
#

yeah, a object that displays logs

#

Or manages logs

craggy agate
#

ok?

#

How can I implement it?

earnest phoenix
#

lol

craggy agate
#

lol

faint prism
#

I could also add a var _logs = new ConcurrentQueue<string>(); if I want to dump to a file at some point

#

I learned my lesson using non-threadsafe collections

craggy agate
#

ok but how can i fix the error?

faint prism
#

commands is undefined

craggy agate
#

?

faint prism
craggy agate
#

oh

trim saddle
#

say auger with a p at the beginning and an s at the end

wind kayak
craggy agate
#

๐Ÿ‘€

wind kayak
#

๐Ÿ‘€

trim saddle
#

but yeah, make sure commands is defined

craggy agate
#

say auger with a p at the beginning and an s at the end
lmao