#development

1 messages · Page 1489 of 1

pale vessel
#

I don't think ctx.message.author.voice.channel is a thing in dpy It is (voicestate)

gilded olive
#

on_command_error or on_message ?

#

In your code^

#

It seems like error silencing

sacred trout
#

umm

#

idk

pale vessel
#

bruh

sacred trout
#

not getting any error that's the thing

gilded olive
#

I forgot i cant .

rocky hearth
#

does python gives errors, if we try to use function on null or undefined??

gilded olive
sacred trout
#

nop3

gilded olive
sacred trout
sacred trout
#

ik

#

ik

rocky hearth
#

I'm asking..... havn't used python for a long time

pale vessel
#

Like None.channel

sacred trout
#

???????????????????????????????//

pale vessel
#

Of course it would, no?

#

Since voicestate is optional

sacred trout
#
async def play(ctx, url):
    if not ctx.message.author.voice:
        await ctx.send("You are not connected to a voice channel")
        return
    
    else:
        channel = ctx.message.guild.voice_client
        await voice_channel.connect()```
rocky hearth
#

y u hv 2 variables??

delicate shore
#
let object = client.users.fetch('683307434894164016')

object returns a promise?

pale vessel
delicate shore
#

right?

delicate shore
#

kk

rocky hearth
#

fetch always returns a promise

pale vessel
#

cORouTiNe

sacred trout
#
async def play(ctx):
    if not ctx.message.author.voice:
        await ctx.send("You are not connected to a voice channel")
        return
    
    else:
        channel = ctx.message.guild.voice_client
        await channel.connect()```
#

still doesn't work

delicate shore
#

I tried using .then

rocky hearth
#

try to print, channel and see what is it actually..

delicate shore
#

Didn't work

sacred trout
#

k

pale vessel
delicate shore
#
 let object = client.users.fetch('683307434894164016').then(b => b.username)```
rocky hearth
#

@delicate shore using then wont work, u hv to await it

pale vessel
#

Ah, you still have to await it

delicate shore
#

ah
can't use await in eval

pale vessel
#

OR continue your code inside that .then()

delicate shore
#

;-;

gilded olive
#

ctx.author.voice.channel instead of ctx.message.guild.voice_client

delicate shore
earnest phoenix
#

Personally I just use find instead of fetch

rocky hearth
delicate shore
#
let object = client.users.fetch('683307434894164016').then(b => {})```
like this?
pale vessel
#
(async () => {
code
})();```
delicate shore
#

ah k

#

thanks

rocky hearth
pale vessel
#

Your bot still can't get the value since it can't resolve the promise

#

You can just change your code to await eval(code)

earnest phoenix
#

what's a getter and a setter in objects

delicate shore
#

Okk

earnest phoenix
rocky hearth
#

getter is function that doesn't require () to call it

earnest phoenix
#

what's it's purpose

pale vessel
#

Like in canvas, ctx.font = "a";. That's a setter, it actually does more than that and like author.tag which is a getter. It takes author.username + "#" + author.discriminator from the parent object

delicate shore
#
        let evaled = await eval(code);
pale vessel
#

For conveniency

rocky hearth
#

and getter is always, readonly

delicate shore
#

Just this will work?

#

then

pale vessel
delicate shore
#

Kk

pale vessel
#

You need to return the value inside that self calling function

#

Otherwise you will receive undefined

delicate shore
#

OH

earnest phoenix
#

so getter and setters are read only functions that "get" or "set" stuff?

gilded olive
earnest phoenix
#

What is the Best Theme you guys use for VS code?

sacred trout
#

lmao

odd stratus
#

Anyone know how I can stop this from occurring randomly? Like the host has enough memory, but I've been told pm2 has some sort of memory limit before it crashes and restarts?

rocky hearth
earnest phoenix
#

Noice

sacred trout
#

`` server = ctx.message.guild
voice_channel = server.voice_client

    async with ctx.typing()
        player = await YTDLSource.from_url(url, client.loop)
        voice_channel.play(player, aft)`` doing this now lol
delicate shore
earnest phoenix
#

@delicate shore fetch is a promise

#

Is it necessary to close mongoose connection ?

delicate shore
#

frickk

pale vessel
#

I don't

earnest phoenix
#

Any disadvantages?

pale vessel
delicate shore
#

It doesn't

#

It just gives error

rocky hearth
#

I dont think u can resolve promises, in eval command. Unless ur eval command function is async function.

pale vessel
#

He awaited it using await eval()

earnest phoenix
#

asynchronous programming is awesome

#

tho i like callback hell more

pale vessel
rocky hearth
#

haha lol

earnest phoenix
#

eww

#

id use a regex

#

in my eval command

#

with fs

#

fuck cli

delicate shore
#

So if I use .then with async in my eval code

#

sgould it work

pale vessel
#

Yes

delicate shore
#

I tried

earnest phoenix
#

didn't work?

delicate shore
#
let object = client.users.fetch('683307434894164016').then(async (a) => {
await a.username })
)```
If this is what you mean
earnest phoenix
#

await a.username

delicate shore
#

wait

#

Wait

earnest phoenix
#

and a random paranthesis at the end

#

wtf

pale vessel
#
eval members.fetch(); // works
eval members.fetch().then(x => x.user.username); // works
eval members.fetch().then(x => { x.user.username }); // doesn't work, you need to return the value if you use brackets

// works
eval (async () => {
    const member = await members.fetch(id);
    return member.user.username;
})();```
delicate shore
#

here

#

I didn't use it during eval

#

you know what

sacred trout
#

`` server = ctx.message.guild
voice_channel = server.voice_client

    async with ctx.typing():
        player = await YTDLSource.from_url(url, loop=client.loop)
        voice_channel.play(player, after=lambda e: print("Player error: %s" %e) if e else None)
    
    await ctx.send(f"**Now playing: {player.title}**" )
``
#

anyone help

#

xD

pale vessel
#

Like I said, either eval client.users.fetch('683307434894164016').then(a => { return a.username; }) or eval client.users.fetch('683307434894164016').then(a => a.username)

#

Notice the return if you use {}

delicate shore
#

ohh ok

sacred trout
delicate shore
#

or I can just do this

const object  = await client.users.fetch('683307434894164016')
const username = object.username
const discriminator = object.discriminator
console.log(username + discriminator)
pale vessel
#

Otherwise you will receive undefined since the function returns nothing

delicate shore
#

as a command

pale vessel
#

Sure

sacred aurora
#

can i send file larger than 8m with bot?

sacred trout
#

idk

rustic nova
#

no you cant

sacred aurora
#

hmm

pale vessel
#

It's 8mb max

rustic nova
#

unless the server has a boost status that allows higher uploads

pale vessel
#

So no

#

oh

sacred trout
sacred aurora
#

is there any other way??

sacred aurora
rustic nova
#

Uploading it on a file server yourself

pale vessel
#

I don't think it applies to bots?

sacred trout
#

send ur self lol

earnest phoenix
#

Bots can't get nitro so

rustic nova
#

It does apply to bots

sacred trout
rustic nova
#

If the server has a higher boost status with higher upload limits, then they can do that

pale vessel
sacred aurora
#

u use ytdl?

sacred trout
#

yes

#

plox help me

sacred aurora
#

make a filestream first for the audio

#

then play it

sacred trout
#

wtf?

#

can you tell error in the code:

#

?

earnest phoenix
#

ytdl plays audio from a stream

#

streams are awesome

sacred trout
#

no

#

lololol

#

`` await channel.connect()
server = ctx.message.guild
voice_channel = server.voice_client

    async with ctx.typing():
        player = await YTDLSource.from_url(url, loop=client.loop)
        voice_channel.play(player, after=lambda e: print("Player error: %s" %e) if e else None)
    
    await ctx.send(f"**Now playing: {player.title}**" )``
#

see from here

earnest phoenix
#

idk python but you should first create a ReadableStream of the data and pass it to ytdl

pale vessel
#

Yeah, ReadableStream on python

#

i'm not sure I don't think it's called that

sacred trout
#

nop3

sacred aurora
#

oof i dont use python

sacred trout
#

js?

sacred aurora
#

yeah

sacred trout
#

lol

earnest phoenix
#

js is awesome

pale vessel
#

I love python bro

earnest phoenix
#

nah

#

weebs cant fall in love with snakes

pale vessel
#

Woah, what do you have against weebs! 😠

sacred aurora
zenith terrace
#

anyone know why Audit Logs does this as the reason https://tinyurl.com/y7dky2l4 this is what I use for the reason

let reason = args.join(" ") if(!reason) { reason = "No reason provided" }

and code other code is kickedUser.kick({ reason: reason })

pale vessel
#

Reason should be a string

#

You can shorten your code, use args.join(" ") || "No reason provided"

#

and kickedUser.kick(reason);

#

oh hey Night lmao

zenith terrace
#

m oki

#

hello lol

earnest phoenix
zenith terrace
#

in that case ima head off to bed and try it out later

zenith terrace
pale vessel
#

ShareX?

zenith terrace
#

yes

pale vessel
#

Upload to GD -> Shorten

#

I guess

rocky hearth
#

is there !instanceof a thing?? (not instance of)

earnest phoenix
#

why dont people upload files normally

#

┬─┬ ノ( ゜-゜ノ)

zenith terrace
#

I upload the files to google drive incase I need them again so I use a shorten url to make the link look better

pale vessel
#

I'm pretty sure you have to use !(x instanceof y)

rocky hearth
#

But my ide is not complaining for using that

lusty quest
#

some websites / apps have a max length for URLs and some websites go ham and give you urls that exceed 2048 chars

zenith terrace
#

anyway gnight flaz ❤️

pale vessel
pale vessel
zenith terrace
#

I wont its 5:53am

#

but gnight anyway

pale vessel
#

LOL

#

Ay it do be like that sometimes

zenith terrace
#

yea, cya ❤️

pale vessel
#

See ya 👋

earnest phoenix
lusty quest
#

yea

lost stone
#

Code :

let modules = ["Config", "Music", "Other", "moderation"]; modules.forEach(function(module) { fs.readdir(`./commands/${module}`, function(error, files) { if (error) return new Error(`${error}`); files.forEach(function(file) { if (!file.endsWith(".js")) throw new Error(`A File Does Not End With .js!`); let command = require(`./commands/${module}/${file}`); console.log(`${command.name} Has Been Loaded - ✅`); if (command.name) client.commands.set(command.name, command); if (command.aliases) { command.aliases.forEach(alias => client.aliases.set(alias, command.name) ); } if (command.aliases.length === 0) command.aliases = null; }); });});```

error :
lusty quest
#

does every command exports the allias property? bcs its undefined

lost stone
#

yes

#

like every commands should have
aliases:

lusty quest
#

where did you define command.alliases? your snipped is not that easy to read tbh

lost stone
#
client.aliases = new Discord.Collection();```
lusty quest
#

where did you reference your aliases to commands? otherwise your probably want to use client.aliases instead of command.aliases

lost stone
#

nvm i don't get it

#

thx

odd stratus
#

Does anyone know any sort of website or API that can track the amount of users use my bot commands per day

lusty quest
#

you could do it yourself with using a Time Series Database and something like Grafana

stuck pike
#

Any decent free hosting

#

Not replit don't want my files stolen

lusty quest
#

you get what you pay

stuck pike
#

It should get the work done

lusty quest
#

but if you have a credit card Google and AWS offer 1 free year

stuck pike
#

Oh

#

Is that good @lusty quest

lusty quest
#

they are alright

#

can run a Bot

stuck pike
#

Till 80 ish server ?

umbral zealot
#

There's no hard limit on any hosting

#

it depends what your bot does

lusty quest
#

if you dont throw around with resources you can easy run 500 Servers

umbral zealot
#

Is 80 a lot? For a small bot with a few moderation commands, no. For a music bot, yes it's too much

#

Technology is a lot closer to art and magic than it is to science, and too many times the only answer is "IT DEPENDS"

stuck pike
#

O

odd stratus
#

My music bot would probably crash an AWS instantly lmao

lusty quest
#

depends

odd stratus
#

It's in 2k+ so

lusty quest
#

if you pay you can run it

odd stratus
#

I don't think a 1 GB AWS could handle that

umbral zealot
#

I've had 4 bots and 2 websites all running on a $3/month VPS, whereas some people can't even host one music bot anywhere because music bots take soo many resources.

lament rock
#

Mine is in 3k and barely runs on less than 100MB

odd stratus
#

O mines pretty low rn too

lusty quest
#

yea this is why i make a large Circle around Music bots. they are Annoying to deal with. also your probably get more problems if google decides to ban your IP

lament rock
#

There are public proxy networks

odd stratus
#

YouTube usually bans my IP but I used cookies to try and prevent it

lament rock
#

Invidious is pretty good

odd stratus
#

A VPN on your host could work too

lament rock
#

Depending on where the proxy or VPN provider you're connecting to is, though, you will get region blocked depending on the track you're trying to load

lusty quest
#

also yea if you want to run a large Music bot your probably need a large wallet to scale your hardware

lament rock
#

Not particularly. You can get by with a few low tier VMs. I source some VMs through OVH in different parts of the world like France and Singapore and that covers audio for those regions through LavaLink. The main VM is the one you might have to put some money into. Even then, Contabo offers some cheap US-East VMs

lusty quest
#

im done with OVH had my issues with them in the past. if i want a OVH server ive probably go to a OVH reseller they are sometimes cheaper than OVH.

#

but yea

#

its possible but gives you headache

lament rock
#

I haven't had too many issues. The portal is pretty slow, but not that big of a deal if everything is over SSH. The CPUs could be better is my only complaint. 2GB of ram for $3 and some change is good

lusty quest
#

i guess the Difference is that ive rented a Root Server on OVH for a while, and had some Game servers running on it

twilit rapids
old cliff
#

hey guys whats the alternative for ctx.filter for node canvas ?

ionic dawn
#

can I look for line breaks on a message?, like... lets say I want the bot to clone the last message from someone with the exact same line breaks

#

something like this:
User message:
Bla
bla

Bot message (replacing the words):
Ble
Ble

old cliff
#

hey guys whats the alternative for ctx.filter for node canvas ?

old cliff
#

-_-

ionic dawn
sacred aurora
#

u mean split it?

ionic dawn
#

let me show you an example from another bot

near stratus
#

huh ?

ionic dawn
#

okay nvm I think I got it

near stratus
ionic dawn
#

why would I split it

#

what I was looking for is to copy a message and replace some stuff but preserve the break lines

#

I was breaking my mind with no reason

#

.replace()

sacred aurora
#

hmmmm

cinder patio
#

I mean, splitting, doing your replacing and then joining with a breakline is a way of doing it. But yes .replace is the way to go

sacred aurora
#

i thought u want to replace every last character from every line break

old cliff
#

wait is there a COMPETING status ?

pale vessel
#

Yes

gilded olive
#

should website be in a diff repo

#

or just in a folder

#

thonk moments

old cliff
#

what other statuses are there ?

gilded olive
#

listening watching playing streaming

old cliff
#

watching playing streaming listening competing ?

pale vessel
#

They removed watching in docs, but that exists

old cliff
#

custom ?

#

can I set custom ?

pale vessel
#

Nope, only for users

old cliff
#

ok

#

is there an invisible option ?

pale vessel
#

For statuses?

old cliff
#

yes

pale vessel
#

Yes

old cliff
#

online dnd idle

#

invisible?

pale vessel
#

it's offline in discord.js

old cliff
#

ok

#

but still it shows my bot online

pale vessel
#

How did you set it?

old cliff
#
    client.user.setPresence({
        status: status,  
        activity: {
            name: status_text,
            type: game,
        }
    });
    setTimeout(function(){
        client.user.setPresence({
            status: status,  
            activity: {
                name: status_alt.replace("{{guilds}}", client.guilds.cache.size).replace("{{members}}", client.users.cache.size),
                type: game_alt,
            }
        });
    }, 5 * 1000);
    }, 10*1000);```
pale vessel
#

It could be a bug with discord.js

solid bough
old cliff
#

maybe

#

idk

abstract iron
#

is it possible to make a custom command name? just like custom command prefix in discord.py

old cliff
#

100% possible

abstract iron
#

how?

old cliff
#

you want to make a command ?

#

with a custom name ?

abstract iron
#

I mean, custom command name per guild

#

is there a way for users to change a command name?

old cliff
#

yes

#

per guild alias ?

delicate shore
#
s!eval const listedChannels = []; 
client.guilds.cache.get('317068464215031818').then(async (guild) => {
guild.channels.forEach(channel => { 
    if(channel.permissionsFor(guild.member.me).has('VIEW_CHANNEL')) listedChannels.push(channel.name);
});
})
message.channel.send(`You have access to: ${listedChannels.join(',')}`)
lusty quest
#

thats not this easy tho, since you load all commands on startup you need to hot reload all your commands each time someone updates the custom prefix

delicate shore
#

TypeError: client.guilds.cache.get(...).then is not a function

lusty quest
#

-> causing lag

abstract iron
#

hmm...

lusty quest
#

you still need to hotreload or atleast push the new commands into a collection

#

yea in js is possible

#

but idk in py

delicate shore
#
s!eval const listedChannels = []; 
let guild = client.guilds.cache.get('317068464215031818')
guild.channels.cache.forEach(channel => { 
    if(channel.permissionsFor(guild.member.me).has('VIEW_CHANNEL')) listedChannels.push(channel.name);
});

message.channel.send(`You have access to: ${listedChannels.join(',')}`);```
lusty quest
#

probably yes

delicate shore
#

Nvm

#

Previous code was weong

#

this is code I am using

#

and this is the error

lusty quest
#

nice, finnaly got an idea how to handle the WS stuff but now im stuck somewhere else, exporting an Object async since its generated when the Websocket connects. Probably there is a easy fix but rn im stuck somewhere

delicate shore
#

Ok so

#
 const listedChannels = []; 
let guild = client.guilds.cache.get('317068464215031818')
guild.channels.cache.forEach(channel => { 
if(channel.permissionsFor(guild.me).has('VIEW_CHANNEL'))
listedChannels.push(channel.name);
});

message.channel.send(`I have access to: ${listedChannels.join(',')}`, { split: true });```
#

RangeError [SPLIT_MAX_LEN]: Chunk exceeds the max length and contains no split characters.

earnest phoenix
# abstract iron is it possible to make a custom command name? just like custom command prefix in...

What I could think of is to make a dict that has server ids as keys and another dict as value which has key (the custom name) and the value (the real command name).

custom_commands = {some_server_id: {'asdas': 'ping'}}

then patch the get_context method of the bot. This is a snippet of get_context method, you can do something like, ```py

some code

guild_id = getattr(message.guild, 'id', None)
actual_command = custom_commands.get(guild_id, {}).get(invoker, invoker)
ctx.command = self.all_commands.get(actual_command)
return ctx

Though I'm pretty sure there's an easier way to achieve this, it's just how I would do, I guess. I'm not sure either if this is gonna work with group commands
earnest phoenix
#

const guildDB = await handler.useGuildDB(client, message.guild.id) guildDB is undefined on console.log

#

any clue?

lusty quest
#

what database did you use?

earnest phoenix
#

mongo

old cliff
#

problem with handler.useGuildDB

lusty quest
#

and you want to create a new Collection for each guild?

earnest phoenix
#

no

lusty quest
#

hmm

deft lark
#

hi

abstract iron
earnest phoenix
#

Its creating db but cannot fetch data from database

earnest phoenix
#

any help

pale vessel
#

Since your separator is a ,, not a newline

silver lintel
#

how can you define an object in js like

let obj = {
  thing1: 69
  thing2: -
}
//how do i make thing2 the value of thing1? or do i have to do
let obj = { thing1: 69 }
obj.thing2 = obj.thing1
```?
delicate shore
earnest phoenix
#

const guildDB = await handler.useGuildDB(client, message.guild.id) guildDB is undefined on console.log

#

data is saved in db

#

but cannot fetch it

#

@pale vessel any help. ?

pale vessel
#

I'm not sure what handler.useGuildDB is

earnest phoenix
#

const handler = require(''./model/db")

#

data is saved in db

#

but cannot fetch it to use.

pale vessel
#

you're not actually returning the value

#

it's inside the then()

#

try adding return before await client.mongo()

#

so that it would actually return the data from that then() cb

earnest phoenix
#

client.mongo() is connection to db

pale vessel
#

yeah

#

again, you need the data that is returned inside that .then()

earnest phoenix
#

return await client.mongo()

#

?

pale vessel
#

Yes

earnest phoenix
#

ok

earnest phoenix
pale vessel
#

p.s. return await is redundant, since you'll need to await it either way when calling the function so you can remove that await (return client.mongo())

earnest phoenix
#

👍

silver lintel
#

is there another way to do

let obj = {
  thing1: 69
  thing2: function() {
    return this.thing1
  }
}
``` without using a function? i mean it doesnt really matter if there isnt but is there?
lusty quest
#

just call the key in the object?

earnest phoenix
#

You can make thing2 a getter at least

#

Without a function using this keyword wouldn't help since it's locked to the window

#
let obj = {
   bruh: "Test",
   moment: get function() {
       return this.bruh;
   }
};

obj.moment; // Test```
silver lintel
#

when i do that it says unexpected token function

abstract iron
#

I think get doesn't work on anonymous functions

silver lintel
#

o

abstract iron
#
let obj = {
   bruh: "Test",
   get moment() {
       return this.bruh;
   }
};

this works

silver lintel
#

thanks

#

ahh yes thanks

tribal siren
#

if message.guild.members.cache.random() gets 1 random member from the server

#

how to take 2 random users from the server?

#

like so im 100% sure that both of them aren't the same person

earnest phoenix
#

random(<number>)

tribal siren
#

like

#

message.guild.members.cache.random(2)?

earnest phoenix
#

Yes

tribal siren
#

oh

#

thanks

lament rock
#

Collection.random is an actual method?

tribal siren
#

it works for me

earnest phoenix
#

Yes it's

#

Collection is just a class extending Map with additional helpful methods

lament rock
#

I know what Collection is lol

earnest phoenix
#

Loggers

#
    at NativeTopology.close (E:\DiscordBot\node_modules\mongodb\lib\core\sdam\topology.js:333:38)
    at E:\DiscordBot\node_modules\mongodb\lib\mongo_client.js:269:21```
#

getting this err

lusty quest
#

When that line is taken out, the function works.``` https://stackoverflow.com/questions/59942238/mongoerror-topology-is-closed-please-connect-despite-established-database-conn
earnest phoenix
lusty quest
#

read what the solution is.

earnest phoenix
swift cloak
#

bro dont make fun of me for this cause i dont understand regex much but will this regex filter it only so it will show a valid channel?

like if it doesnt have # or <#id> it will return a message

const regex = / [ <#> ] /gm```
and i made it an array thingy cause if i removed it it would only look for <#> not < and # and > and # and <#>

but its probably not

if its wrong dont roast the fuck out of me. i just thought of it 10min ago
earnest phoenix
#

should i remove it?

earnest phoenix
earnest phoenix
sacred trout
#

hey

#
    voice_client = client.voice_client_in(server)
    player = await voice_client.creat_ytdl_player(url)
    players[server.id] = player
    player.start()```
#

can someone help?

#

bot not playing the audio

sacred aurora
#

hmm

#

but is it joining the voice channel?

lament rock
#

you spelled create wrong

#

If some kind of handler is silently blocking errors from reaching you, you should remove that

lament rock
#

Idk. I don't code in Python

sacred trout
#

what did i do wrong?

lament rock
sacred trout
#

lol

#
async def on_member_join(member):

    await ctx.send(f"welcome {member} to {ctx.guild}")```
#

is this code wrong?

lament rock
sacred trout
#

btw still not working

#

@lament rock

lament rock
#

is typing

#

at

#

bruh

sacred trout
#

``@client.command(pass_context = True)
async def play(ctx, url):
if not ctx.message.author.voice:
await ctx.send("You are not connected to a voice channel")
return

else:
    channel = ctx.author.voice.channel
    await channel.connect()
server = ctx.message.server
voice_client = client.voice_client_in(server)
player = await voice_client.create_ytdl_player(url)
players[server.id] = player
player.start(``
#

)

lament rock
#

Like I mentioned, I don't code in python. You should probably read Discord.py docs for voice

sacred trout
#

loal

lament rock
#

This is just me as well, but I would advise against trying to make a music bot unless you really have the money and know-how

pale vessel
#

Shouldn't the rest of the code be indented?

sacred trout
#

umm

#

copied it wrong

#

it just doesn't wanna work

#

@pale vessel

earnest phoenix
#

ctx isn't even defined

sacred trout
#

line

#

??

#

@earnest phoenix

earnest phoenix
#

events don't have ctx passed except on_command-ish events

sacred trout
#

i want help with the music thing rn

earnest phoenix
#

if you don't get any error, you probably have on_command_error event which suppressed the error like Papi said

sacred trout
#

wait

#

nop3

#

i don't thin

#

k

#
Traceback (most recent call last):
  File "C:\Users\schwt\AppData\Local\Programs\Python\Python37\lib\site-packages\discord\ext\commands\core.py", line 85, in wrapped
    ret = await coro(*args, **kwargs)
  File "c:\Users\schwt\OneDrive\Desktop\Projects\py projects\bot\bot.py", line 164, in play
    server = ctx.message.server
AttributeError: 'Message' object has no attribute 'server'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\schwt\AppData\Local\Programs\Python\Python37\lib\site-packages\discord\ext\commands\bot.py", line 903, in invoke
    await ctx.command.invoke(ctx)
  File "C:\Users\schwt\AppData\Local\Programs\Python\Python37\lib\site-packages\discord\ext\commands\core.py", line 859, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "C:\Users\schwt\AppData\Local\Programs\Python\Python37\lib\site-packages\discord\ext\commands\core.py", line 94, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'Message' object has no attribute 'server'```
#

loal

#

?????????????????????????????????????????????/

sacred trout
#

lmao

#

AttributeError: 'Bot' object has no attribute 'voice_client_in'

#

haha

sacred aurora
#

change ctx.message.server to ctx.message.guild.id

#

oh wait

#

:v

earnest phoenix
#

Are you following an old tutorial

sacred trout
#

yes ik i can fix it

#

i will fix it on my own(or atleast try to)

earnest phoenix
#

That's meant for async branch, not gonna work on rewrite branch without making changes, I'd just make new one instead of porting it kekw

#

hello quick.db i can't install
I'm getting an error

sacred trout
#

yo wtg

#

lol

sacred aurora
#

check the docs

lament rock
#

@earnest phoenix do you have windows-build-tools installed?

earnest phoenix
#

yes

#

Try rebuilding better-sqlite3

stable eagle
#

I had quick.db once, it deleted itself lol

#

I can’t reinstall it, as my operating system rejects the download

summer torrent
#

imagine using quick.db

stable eagle
#

Im using 2 databases

#

MongoDB and quickdb

earnest phoenix
#

is it necessary to close mongoose connection?

#

any clue?

lusty quest
#

i dont close connections

#

and it runs fine for me

lament rock
#

Mongoose should handle connection closes whether they were graceful or not

#

Pretty sure it connects over ws

lusty quest
#

there are people who close the connection after a query but i dont think its necessary

lament rock
#

If you pool your connections, you can

stuck pike
#

is there member requirement for bot verifying

#

like 100 server

lusty quest
#

only that your bot is in 75 Guilds IIRC

#

also dont make now 75 Guilds yourself this will flag you

lament rock
#

Well, they also check for if your bot has experienced artificial growth such as if you create a bunch of guilds

old latch
lament rock
#

Pretty sure they also don't count guilds the bot owns

lusty quest
#

adding the bot to DBL can also cause your bot to get flagged

#

(if the bot suddenly get to 100 Guilds in 2 days)

lament rock
#

We don't know for a fact if there is a member requirement or not. For the sake of answering and logical thinking, I would say yes because only having 1 person in each guild your bot is in excluding your client is suspicious

stuck pike
old latch
#

yeah ur bot can't 1) not be in to many guilds from the same owner(s) and 2) not get too much servers too fast

lusty quest
#

if you bot grows normally its fine

stuck pike
#

like my bot is 22 servers rn and 5000 members

#

and i even havent hosted it

lament rock
#

That's perfectly reasonable, I'd say

#

You shouldn't be worrying about verification, though

lusty quest
#

or end up like me with a lot of small guilds

#

275 Guilds ~40k members

stuck pike
lament rock
#

I can't check exact numbers because no presence intent

#

cached 2970 guilds at 169k users

lusty quest
#

well this are only cached members

stuck pike
#

Nais

#

BTW I have to still host my bot

#

And I don't even have a penny

lusty quest
#

now i have to figure out what the best way would be to export an Object created by a Websocket connection into another file to use it there. Database would be possible but could cause laggs if i get more guilds.

lament rock
#

json :)

lusty quest
#

well its a json object

stuck pike
#

Quick.db is why hated

#

I only use it for my warn system

lusty quest
#

and writing it to a file would be stupid. since it gets hammered with 275 writes

lament rock
#

Honestly though, I'd get a redis instance or make your own worker which syncs to disk periodically and implements a K, V storage system. Redis is really good for storing predictable key items

stuck pike
lusty quest
#

yea would be the next idea. but it doesnt really needs to be stored. initial the idea where to just keep the stuff in memory of the same process.

lament rock
#

What exactly are you storing?

lusty quest
#

guild ids

#

i just need to load them into an express endpoint

lament rock
#

Oh. strings really take up a minimal amount of memory

lusty quest
#

yea

#

also it doesnt need to be persistent since i get the list anyways every time the WS connects.

lament rock
#

Yeah. That reminds me. I need to start storing guilds in memory again.

stuck pike
#

@lament rock good av

lament rock
#

Thanks, I suppose

stuck pike
lament rock
#

I also need to start storing voice states in memory as well. Those are volatile data which is returned to you after every identify. Doesn't make sense to store persist

stuck pike
#

Any server which needs boost

#

Decent enough

#

;-;

lusty quest
#

this is getting annoying. i would like to not use Redis but i guess i have to. or does someone here knows a nice way to export an Json object async ? (the object recives data after a Websocket connection where made)

lament rock
#

?

noble zephyr
#

Türk. Varmı

earnest phoenix
#

yo

#

@noble zephyr var

noble zephyr
#

Tamam

clear arch
#

Hey, anyone can help me real quick with an issue on my discord.py code? 🙂

pale vessel
#

No because we can't see your code

clear arch
#

Bot A post an embed and edit it.
Bot B (mine) takes that embed and duplicates it.
But my bot only duplicates the original message not the edited version.

I can post code if someone might have an idea.

pale vessel
#

You should have done that earlier

#

Post it here

clear arch
#
msg_bot = await client.wait_for('message', check=is_bot, timeout=2)
try:
_embeds = msg_bot.embeds[0]
except IndexError:
return
 msg = await client.wait_for('message', check=is_correct, timeout=15)
msg_content = msg.content.lower()
if msg_content in ['a', 'b', 'c', 'd', 'e']:
msg_new = await ctx.channel.fetch_message(msg_bot.id)
_embeds_edited = msg_new.embeds[0]
# msg_content_bot = _embed.description
footer = _embeds_edited.footer.text
image = _embeds_edited.image.url
author = _embeds_edited.author
author_name = _embeds_edited.author.name
author_image = _embeds_edited.author.icon_url
color = _embeds_edited.color
timestamp = _embeds_edited.timestamp
                        
embed_duplicate = discord.Embed(color = color)
embed_duplicate.description = re.sub('<[^>]+>', '', msg_content_bot)
embed_duplicate.set_author(name = author_name, icon_url = author_image)
embed_duplicate.set_footer(text = footer)
embed_duplicate.timestamp = timestamp
embed_duplicate.set_thumbnail(url=image)
await msg_bot.delete()
await ctx.send(embed=embed_duplicate)
await msg.delete()
#
if msg_content in ['a', 'b', 'c', 'd', 'e']:

After that, the original message gets edited.
Than i take the ID and try to duplicate that embed.

earnest phoenix
#

Oops my bad

#

Uh can you guys help me?

#

That HERE!

#

And then it shows a link how do I do that?

quartz kindle
#

[HERE](google.com)

earnest phoenix
#

[HERE] (server link)

#

Right?

#

@quartz kindle

boreal iron
#

Obviously yes

earnest phoenix
#

Alr! Thanks guys :)!

#

Uh tf

#

Didn’t work

#

@boreal iron

pale vessel
#

you can't use it for field names

earnest phoenix
#

Hm

pale vessel
#

only in description and field values

earnest phoenix
#

Oh

#

Alr

#

Thanks

#

:)!

pale vessel
#

:)

earnest phoenix
#

Looking good?

#

I know it’s a bit dry LOL

pale vessel
#

I think you should reduce the newline

#

that looks a bit spaced

earnest phoenix
#

HM so

#

Does 2 spaces Sound good?

pale vessel
#

Reduce the \n that you put between the fields

earnest phoenix
#

@pale vessel better?

pale vessel
#

more

#

actually that's not bad

earnest phoenix
#

Hm, then their would only be 1 space lol

#

That looks good yea lol

pale vessel
#

but I think one space would look more compact and nicer

earnest phoenix
#

Lemme try :)!

#

What’s your bot btw?

pale vessel
#

ah, just some multipurpose

#

by the way, you can set the title url

#

set it to your support server invite

earnest phoenix
#

I did

pale vessel
#

you can't set it like title

earnest phoenix
#

But it just said

pale vessel
#

what's your bot library?

earnest phoenix
#

Wdym? Sorry I’m kinda new to coding

pale vessel
earnest phoenix
#

Discord.js

#

You?

pale vessel
#

the same I guess

#

are you using MessageEmbed?

earnest phoenix
#

Yes

#

Better?

pale vessel
#

you can add .setURL(invite)

#

yeah that looks nice

earnest phoenix
#

Alr lemme try

#

Uh

pale vessel
#

Like setTitle("helping commands").setURL("https://discord.gg....")

earnest phoenix
#

Alr

#

@pale vessel shows error s

pale vessel
#

you can remove that thing you added earlier

#

it's causing that error

earnest phoenix
#

Which?

pale vessel
#

Can you show me your embed code

earnest phoenix
#

hello when i made a bot and i added a music command to it, but it stopped working today while it was working yesterday, it does not give an error in cmd, what can i do?

pale vessel
#

have you tried putting it in rice

earnest phoenix
#

@pale vessel it’s very long tho

pale vessel
#

only the top portion

earnest phoenix
#

I tried restarting a lot but it didn't work

pale vessel
#

Remove that setTitle() inside that

earnest phoenix
#

the interesting part is that it does not give an error in cmd

pale vessel
#

the one with red underline

near stratus
earnest phoenix
#

can I send from direct messages?

near stratus
#

no

#

I already have 250 DM from bots

#

I can't clear them

earnest phoenix
#

Still showing error

#

ok

#

@pale vessel

near stratus
#

@earnest phoenix it should be showing error Fix that Damn .setTitle line

earnest phoenix
#

What do I need to do there?

#

Like

#

Remove the period?

pale vessel
#

remove what you added earlier

near stratus
#

@earnest phoenix please delete the file you sent

pale vessel
#

let me guess, token?

earnest phoenix
near stratus
pale vessel
#

remove that setTitle and the rest

earnest phoenix
#

why

near stratus
#

why is the .setURL inside that shit

near stratus
earnest phoenix
#

Idfk

#

ok

#

should i delete

pale vessel
#

you can add it in your description

earnest phoenix
#

Fine I’ll try that

near stratus
#

@earnest phoenix gimme a moment I'm watching it right now

earnest phoenix
near stratus
#

@earnest phoenix use the description as MD

earnest phoenix
#

ok

#

let me study that message too

#

@near stratus alr I’ma try

near stratus
#

@earnest phoenix Nothing personal but which country are you from.
(The names are kinda ..... ummm..... you know ..... wei..rd ..... )

pale vessel
#

@near stratus like what

earnest phoenix
#

im from turkey

#

Uh aGananna(anahhahabahhayabaga not working

#

yes I know the letters in Turkish language are a bit complicated compared to other countries

#

@near stratus

earnest phoenix
#

anyway I'm going to study a little while you're looking so I might not be able to answer

near stratus
pale vessel
#

Inside description

near stratus
near stratus
#

@earnest phoenix

#

you there

earnest phoenix
#

Yes

near stratus
#

does it frigging work ?

earnest phoenix
#

Checking

#

@near stratus ayyyy yes tsym!

near stratus
#

😊

#

finally

earnest phoenix
#

DM’s :)?

#

What is the node version?

#

Why is it not working lol?

inner roost
#

If u run the code it puts why normally if its sintax error :>

#

idk ab js HC_VibeCat

earnest phoenix
#

Lol

inner roost
cinder patio
#

why is there a dot between message and return

#

also did you copy this code

earnest phoenix
#

My original one didn’t work so someone so suggested this code

misty sigil
#

Maybe try learning JS and it’s syntax before making a bot

#

Before you make a Discord Bot, you should have a good understanding of JavaScript. This means you should have a basic understanding of the following topics:

  • proper syntax
  • debuging code
  • basic features (vars, arrays, objects, functions)
  • read and understand docs
  • nodejs module system

As much as we d like to assist everyone with making their bots, we rarely have the time and/or patience to handhold beginners through learning javascript. We highly recommend understanding the basics before trying to make bots, which use advanced programming concepts.

Here are good resources to learn both Javascript and NodeJS:

Javascriptinfo: https://javascript.info/
Codecademy: https://www.codecademy.com/learn/javascript
FreeCodeCamp: https://www.freecodecamp.org/
Udemy: https://www.udemy.com/javascript-essentials/
Eloquent JavaScript, free book: http://eloquentjavascript.net/
You-Dont-Know-JS: https://github.com/getify/You-Dont-Know-JS
NodeSchool: https://nodeschool.io/
CodeSchool: https://www.codeschool.com/courses/real-time-web-with-node-js
Evie s Accelerated JS: https://js.evie.dev/

Please take a couple of weeks/months to get acquainted with the language before trying to make bots!

scarlet stratus
#

Can anyone help me out with autoroles and reactroles

misty sigil
#

Sure

scarlet stratus
#

Python 3.8*

misty sigil
#

@earnest phoenix ^^^

#

oh right.

stuck pike
#

Lmfao

misty sigil
#

sorry I don’t do python

stuck pike
#

Remove dot from return

#

#Js4life

misty sigil
#

I can give you a basic idea of how it works

stuck pike
scarlet stratus
#

Oh damn

#

Why is eberyone js

#

:(

#

Lonely af on Python

stuck pike
#

Python is easier

misty sigil
#

ok so I assume you have a database?

scarlet stratus
#

I know

stuck pike
#

Must have

#

Anyone with a good support server?

#

To help me test my bot ;-;

scarlet stratus
#

Welp

#

I dont want nukes :(

stuck pike
#

Lmao

stuck pike
scarlet stratus
#

Dude

stuck pike
#

My server has anti raid command hehe boi

scarlet stratus
#

Like every server i got ove 5k members git nuked

earnest phoenix
#

Bruh

scarlet stratus
#

Already 7

stuck pike
#

My one 2k server got nuked

scarlet stratus
#

I want a small comunity for this reason

stuck pike
#

One admin did it lawl

scarlet stratus
#

Yeh same

stuck pike
#

People don't know the pain of getting server nuked

#

Anyways my bot is rn in 23 servers and 4k members

#

And it ain't even hosted

scarlet stratus
#

Check this iut

#

Out

lusty quest
#

then get a Host

scarlet stratus
#

:)

stuck pike
#

Pro or wot

lusty quest
#

or get something that can run it at your home

scarlet stratus
stuck pike
#

Rn no need hosting bot for me = 60 serves ez

#

@scarlet stratus Send application then

scarlet stratus
#

Umm where?

lusty quest
#

who invites a Bot who is not aviable 24/7?

stuck pike
#

A 2k member server

scarlet stratus
#

Mine is running on android root with linux raspbian Touchscreen mod

stuck pike
#

Lawl

scarlet stratus
#

24/7

stuck pike
#

Nais

earnest phoenix
#

@scarlet stratus lmao

stuck pike
#

Anyone share his good support server

scarlet stratus
#

But its good

earnest phoenix
#

Why r u not verified?

stuck pike
#

@earnest phoenix lawl

earnest phoenix
#

Huh?

scarlet stratus
#

It has battery like my Internet so it wont be emmidiately down

#

1000iq

earnest phoenix
stuck pike
#

Waah

#

U looks like a knowledgeble person @scarlet stratus

#

Which I don't find these days

scarlet stratus
#

Lol

scarlet stratus
#

I am sure there are a lot of genius people here

misty sigil
#

BOTGHOST

stuck pike
#

Ik

misty sigil
#

BAHAHAHHAAAAAAA

stuck pike
#

I asked which language he said swedish I was like waw wtf

scarlet stratus
#

I am just a 16 year old that started coding with 13

stuck pike
#

I m 14

scarlet stratus
#

Oh nice

misty sigil
lusty quest
stuck pike
#

Lawl

misty sigil
#

I wanna make a bot in rust but I need to get more of the basics down

earnest phoenix
#

there's worse answers

#

"what is language"

stuck pike
#

Lawl

#

Lmfao

misty sigil
#

"what is library"

scarlet stratus
#

What is a bot creator?

stuck pike
#

What is discord and bot?

#

Best

misty sigil
#

shit, it’s shit.

earnest phoenix
#

+1

stuck pike
#

Lawl

lusty quest
#

the i want to code a bot but not learn any language are the best

misty sigil
#

I tried making a bot without learning a language

#

it went alright

earnest phoenix
#

kekw same.

stuck pike
#

i dont want my files to get stolen xd

earnest phoenix
#

@near stratus im come

lusty quest
still merlin
#

I'm trying to get a message and a embed in the same message, Like when you post a image and message, You have the text then the image, I want to do this with a embed, I checked the docs (discord.js) and I can't find it, but i did it with a webhook a year ago though, and i forgot how to do it, is it webhook only?

#

it*

midnight blaze
#

vps @stuck pike

lusty quest
#

or like i said yesterday look into the 1 year free credits AWS or Google Offers

midnight blaze
#

vultr gives you free credit

earnest phoenix
#

also look into github student pack

earnest phoenix
#

an embed is a part of a message

still merlin
#

right so I just send a embed and a message in the same message?

earnest phoenix
#

an embed is a part of a message

#

you attach an embed to a message

still merlin
#

I meant that

earnest phoenix
still merlin
#

Oh I didn't see the bottom bit

earnest phoenix
still merlin
#

So it would be message.channel.send('hello', embed)?

earnest phoenix
#

correct

still merlin
#

Alr, thanks

earnest phoenix
#

if you don't want to send text you can completely omit the first param

#

does anyone knows best host for discord bot

#

because heroku don't host discord bot 24/7h Exactly

tardy rover
#

Yes i know

lusty quest
#

depends

#

but most competent VPS host will work

earnest phoenix
#

rent a vps from galaxygate/digitalocean/any other trusted provider

#

hmm does it free?

#

no

#

the resources your bot uses have to be paid for, someone has to pay for the power your bot uses

#

and it's going to be you when renting the vps

#

there any free hosting because i don't have creadit card

#

or paypal

lusty quest
#

bank transfer works for some hosts too

earnest phoenix
#

seems like a you problem 🤷‍♂️ you won't find any quality host for free

#

look into creating a debit card

earnest phoenix
smoky herald
#

Amazon has pretty good free plan, but requires credit card link for activation

earnest phoenix
#

look into creating a debit card with your parents, you can't go in debt and you can only use money that's on the card

#

this is also possible with a giro account

#

ok

hushed vale
#

can someone help me with this

cinder patio
#

stats.json doesn't contain valid json

hushed vale
#

wdym?

#

@cinder patio

smoky herald
# hushed vale wdym?

send stats.json screen (careful not to leak credentials like tokens and passwords)
you don't have valid json format in that file

hushed vale
#

ok wait

#

here

#

@smoky herald

earnest phoenix
#

Anyone that would like to work as a staff team for my bot?

smoky herald
#

I'd say you're trying to write a wrong format into that file then (line 68 in your index.js)

JSON format looks like
`
{
"value1": 30,
"value2": "string",
"value3": 3,

"object": {
    "objectValue1": "string",
    "objectValue2": 15,
    "objectValue3": 180,
}

}
`

quartz kindle
#

a json file cannot be fully empty

cinder patio
#

I'm pretty sure an empty string is not valid json

quartz kindle
#

an empty valid json still needs to have {}

hushed vale
#

so what should i exactly do @smoky herald @quartz kindle @cinder patio

quartz kindle
#

write {} in it

#

and save it

hushed vale
#

ok lemme try

#

it worked tysm @quartz kindle

stuck pike
#

i need a decent free one

#

for now

sudden geyser
#

You likely won't find one.

stuck pike
#

rip

fringe pendant
#

could use AWS free tier

#

I think it lasts a year but the low-power EC2 instances after that are super cheap, like 20 bucks a year or something

grave mist
#

@karmic merlin fetch the user with client.users.fetch('id') which returns a promise, resolve it and then send the message to the user using send() method

karmic merlin
#
let member = client.users.fetch(req.vote.user);
member.send('something')```
#

? @grave mist

#

and this

#
let member = client.users.fetch(req.vote.user);
member.send('something')```
#

in this

#
app.post('/dblwebhook', webhook.middleware(), (req, res) => {
  // req.vote is your vote object e.g
  console.log(req.vote.user) // 221221226561929217
}) // attach the middleware```
grave mist
#

Well yes but you gotta resolve the promise

#

Using .then or async/await

karmic merlin
#

what do you mean ?

#

and I didn't understand that

cyan cape
#

Im a biggus noobus in bot building so how do you verify your bot?

karmic merlin
grave mist
#

Do you know about JS promises? @karmic merlin

karmic merlin
#

not a lot

cyan cape
#

Im a biggus noobus in bot building so how do you verify your bot?

karmic merlin
#

what do you mean ?

cyan cape
#

WHAT DO YOU mean "WHAT DO YOU mean? how do you verify your bot?

karmic merlin
#

yes but how do i check my bot by testing it

cyan cape
#

Ohhh

grave mist
#

Well then, to make it simple for you, I can spoon feed but you'll have to learn about how to resolve JS promises eventually

client.users.fetch(req.vote.user).then(user => user.send('something')).catch(error => console.error(error))

or

try {
    const user = await client.users.fetch(req.vote.user);
    user.send('something');
} catch (error) {
    console.error(error);
}

That's how you resolve promises using .then or await with catching the error (if it happens) and throwing it in the console

lament rock
#

await is only valid in async functions.

karmic merlin
grave mist
#

No, I've already said where you'll do that in #topgg-api

karmic merlin
#

yes I no

karmic merlin
#

but

#

the webhooks must be put in the event ready? @grave mist

grave mist
#

Well, that's your choice to put wherever you want, personally, I wouldn't put it there

undone rose
#

Anybody else here on Eris and have their bot lose connection to Discord every single time?

#

Eris should auto reconnect byt it doesnt

#

After a few mins or hours the bot will just shit itself and not reconnect

lusty quest
#

did you get errors?

undone rose
#

Yeah hold on

earnest phoenix
undone rose
lusty quest
undone rose
#

Happens regardless of what hardware its running on

lusty quest
#

yea your bot is not sending Heartbeats properly

undone rose
#

Hmmmm mayhe my eris is out of date?

#

Lemme look

lusty quest
#

if you miss to many Discord thinks the connection is dead and cancle the connection

earnest phoenix
#

it's heartbeat stopped and it literally died

undone rose
#

Poor bot

lusty quest
#

websocket is fun, if you understand how it works.

earnest phoenix
#

Press F to pay respects for the bot

sudden geyser
cyan cape
lusty quest
#

this code is fine just inefficent

earnest phoenix
#

people be like: i dont know how to code stuff so i suck and i can never be better

that's the definition of n o o b

pale vessel
#

Nub

lusty quest
#

ive worked on the past few days on making a Dashboard for my bot. the Landing page is a White page with a button in the top left corner saying login

sudden geyser
#

If any of the results are null the entire process crashes

lusty quest
#

sure the entire backend works but i suck

lusty quest
#

i would make a Loop and then push the results into an array

odd stratus
#

What is this error

type: 'error', message: 'WebSocket was closed before the connection was established',

#

It keeps happening randomly and idk how to prevent this

lusty quest
#

if something errors out you can then just handle the error properly

sudden geyser
#

Yeah the author could've just use Promise.all and convert all the callbacks to return promises instead and work from there while handling cases for when the weather info couldn't be found

#

but still so many requests for that

lusty quest
#

well he makes a freaking check for every country. just make an array with the countrys you want to check and then use a loop and use the countries as query item

#

will clean up the entire code a lot

#

also he will probably get Rate limited by the API

#

bcs he makes 25 API calls each time this code runs

earnest phoenix
pale vessel
#

Lmao isn't that Awsome

#

Could've sworn it's them

earnest phoenix
#

weather.find({search: "Germany

lusty quest
#

well after this it searches for like 6 States, Disneyland and the Big Ben

earnest phoenix
#

disneyland

#

callback nightmare

#

why

earnest phoenix
lusty quest
#

i think the entire bot is a meme that maybe works

earnest phoenix
#

i have seen hell

#

the entire internet is a copyright infringement hell of memes

#

that screenshot terrifies me more than hell

lusty quest
#

dont open the pastebin then

#

and see how he handles the results

earnest phoenix
#

well thanks to lite we did open it

odd stratus
#

Anyone know what this is WebSocket was closed before the connection was established

lusty quest
#

your Websocket connection failed. did you get an Error Code?

misty sigil
#

lmao i've fallen in love with netdata

marble juniper
misty sigil
#

the funny dials go brr

marble juniper
#

im going back to general this chat is stupid

odd stratus
marble juniper
#

what are you using

#

as a lib

earnest phoenix
odd stratus
#

discord.js

earnest phoenix
#

uhh

marble juniper
#

does ur anti virus block anything and make the websocket close

earnest phoenix
#

which version of discord.js

marble juniper
#

lol

#

also which version

odd stratus
#

Not that I know of

#

12.5.1

marble juniper
#

hmm