#development

1 messages · Page 638 of 1

earnest phoenix
#

Edited

#

WHY not anyone not helping me!

#

Why?

slender thistle
#

Do you mind sending your DBL token in my DMs

earnest phoenix
#

ok

slender thistle
#

Token works fine on my side /shrug

earnest phoenix
#

not working :(

#

same samee

#

same same

slender thistle
#

Check carefully how you are entering it in your code

earnest phoenix
#

Worked :/

#

but

#

Hoh

#

thanks @slender thistle <3

slender thistle
earnest phoenix
#

Ohh..

#

Same error !!

#

What error

#

I can't fix this

#

Send the error qt

mossy vine
#

maybe you are using the token wrong?

earnest phoenix
#

401 Unauthorized

#

True token

mossy vine
#

are you sure you are using the DBL token with the DBL api

earnest phoenix
#

yes

lofty hamlet
#

Hi, i have a command for show the profil of personne ?profile @craggy sirenx#0000
But i do mention user for this how i can make just : ?profile Userx

earnest phoenix
#

@lofty hamlet yes

#

You can

#

Oh wtf i'm stupid

lofty hamlet
#

Ok, so how i can make this ? :d

earnest phoenix
#

find the first user in the guild matching the input

#

Yes

lofty hamlet
#

🤔

#

How ?

earnest phoenix
#

:/

#

with magic

#

you have docs

lofty hamlet
#

Lmao

earnest phoenix
#


            let total = matches.map(u => '`' + u.tag + '`').join(", ")``` taken from google
#

though generally, if there's two or more people with the same username you should error with the command

#

its not exactly what do you want, but it can help you

lofty hamlet
#

Hum okay

earnest phoenix
#

matches.first()

#

😢401

#

just delete let total

#

and it should be work

#

@earnest phoenix show ur code

#

without dbl token

#

the token is what's wrong

#

401 is forbidden, meaning wrong token

lofty hamlet
#

matches.first().id show the user of matched ?

mossy vine
#

a mod used it

#

its rightz toen

earnest phoenix
#

matches.first().id show the id of the user

lofty hamlet
#

Ok ok yes

earnest phoenix
#
const api = ayarlar.dbltoken;

snekfetch.post(`https://discordbots.org/api/bots/${client.user.id}/stats`)
  .set('Authorization', api)
  .send({ server_count: client.guilds.size })
  .then(() => console.log('discordbots.org Istatikleri güncellendi!'))
  .catch(err => message.channel.send(`Bir hata var: ${err.body}`));```
#
      message.guild.members.get(matches.id).send('Test')
        ```
#

@lofty hamlet

#

it should be work

#

now

#

i have remplaced users.filter by message.guild.members.filter

#

@earnest phoenix

#

djs ?

lofty hamlet
#

Member with s no ?

earnest phoenix
#

yes

#

?

#

My code is

lofty hamlet
#

You say member without s

earnest phoenix
#

yes i'm dumb

lofty hamlet
#

Ok ok

earnest phoenix
#

I have edited the code

#
const api = ayarlar.dbltoken;

snekfetch.post(`https://discordbots.org/api/bots/${client.user.id}/stats`)
  .set('Authorization', api)
  .send({ server_count: client.guilds.size })
  .then(() => console.log('discordbots.org Istatikleri güncellendi!'))
  .catch(err => message.channel.send(`Bir hata var: ${err.body}`));

This wrong?

#

Why ignoring me :/

#

snekfetch is deprecated

#

what i use

#

it's suggested to use node-fetch

#

code?

#

wat

#

no spoonfeed

lofty hamlet
#

@earnest phoenix toLowerCase of not defined

earnest phoenix
#

ah yeah

#

searchTerm not defined

lofty hamlet
#

OPh yeah

#

And searchTerm is what ?

earnest phoenix
#

let searchTerm = args[0] ? args[0] : message.author.username

#

here

lofty hamlet
#

Ok thx

#

args[0] is ?

#

args is ?

earnest phoenix
#

what

lofty hamlet
#

In your code

#

args is what

#

But i use a different args

earnest phoenix
#

args is all after the prefix

lofty hamlet
#

Ok ok

earnest phoenix
#

after a command*

lofty hamlet
#

M

#

m

earnest phoenix
#

like -test args[0] args[1]

#

I cant fix lol

#

@lofty hamlet its good ?

lofty hamlet
#

Hum wait in your code args is what ?

#

All after the prefix ?

earnest phoenix
#
let args = messageArray.slice(1);```
#

that

lofty hamlet
#

Ok thx

#
let matches = message.guild.members.filter(u => u.tag.toLowerCase().startsWith(searchTerm.toLowerCase()))```

`toLowerCase of undefined`
#

@earnest phoenix

earnest phoenix
#

what

#

delete [0]

lofty hamlet
#

Oh yes my bad

#

Lmao

#

Without [0] the same error

earnest phoenix
#

oh uh

#

try to console.log

#

searchTerm

lofty hamlet
#

Ok

#

If i write : ?poke Oura

The console return [ 'Oura' ]

earnest phoenix
#

with [ ' ' ] ??

lofty hamlet
#

Yes

earnest phoenix
#

console return an array meowthonkang

lofty hamlet
earnest phoenix
#

@lofty hamlet do you have a testing server ?

lofty hamlet
#

Yes

earnest phoenix
#

invite me

#

dm

lofty hamlet
#

My support server

#

:/

#

Of my bot

earnest phoenix
#

yes invite

weak parrot
#

So I have an interesting question. I currently have a machine with Windows Server 2019 Essentials and Jetbrains Rider. It seems to work just fine with .Net Framework projects but whenever I load in my main bot (which is in .Net Core) Rider crashes and the entire machine reboots. Anyone have any idea what might be causing this? (to be clear I so far haven't loaded up any other .Net Core projects and it might very well be related to this one project but it seems very odd to me as it loads just fine in Visual Studio)

pale marsh
#

It might be Raider itself. Maybe it assumes it's running on Windows and tries to access a function that's only available there and not Windows Server which causes it to crash?

#

Try creating a .Net Core project in Raider and see what happens

weak parrot
#

That's what I have been thinking as well but I'd have no idea what that'd be as idk where to find the logs related to this. To be fair I haven't looked too much into the issue myself but as it's my first and probably only machine I'll actually be using Rider on I thought I'd ask here in case there are people whom have had it before or know something about it

#

And yeah I'll try that

#

Also seems to be taking quite a while for it to even load Rider up. Everything is a fresh install since I only just got the server.

#

Regular .Net Core 2.0 project does seem to build

pale marsh
#

I can't find anything on google regarding both Rider and Windows Server

weak parrot
#

Same

#

Anyone have any other ideas about light weight IDEs which support C#, Framework and Core and don't take up much space? I'd use Visual Studio again but the current drive is only 64GB so rather use something smaller

prime cliff
#

@weak parrot have you taken a look at windows event logs?

weak parrot
#

The system has rebooted without cleanly shutting down first. This error could be caused if the system stopped responding, crashed, or lost power unexpectedly. Regular Kernel-Power error

prime cliff
#

Clear all your logs and try to crash it again and see if anything pops up

weak parrot
#

I already uninstalled Rider. I could always try it again but I somewhat doubt something will popup. It's a clean system and already stress tested it for hardware related issues and such. Then again it could always be something entirely different.

#

Eh fuck it I'll try it

dapper glade
#

How would I do the votes role thing with dbl? So if they vote my bot they get the role: Voted on my bot’s support server?

earnest phoenix
#

You have already a vote system?

#

If not look dbl api docs

dapper glade
#

Ok

weak parrot
#

@prime cliff still Kernel Power critical error

#

Ugh fuck it I'll just install Visual Studio

dapper glade
#

@earnest phoenix Where do I find them?

earnest phoenix
#

Here

dapper glade
#

Thanks

dapper glade
#

Is there a video explaining what to do?

quartz kindle
#

anyone good at cpp bindings for node 12? im using a native addon which works on node 11 and im trying to get it to work with node 12...
one of the errors is no matching function for call to ‘v8::Value::NumberValue()’
the suggested candidate is candidate: v8::Maybe<double> v8::Value::NumberValue(v8::Local<v8::Context>) const
the code in question is info [0]->NumberValue ()

#

info is an object and i need to get the value 0 as a number, i dont really understand what its telling me to do

earnest phoenix
#
CryptoToday at 12:34 AM
Is there a video explaining what to do?```

https://stopbeingabad.dev/#general-yt-tutorials
ocean ore
#

Hot to add a bot to my server

amber fractal
#

Wrong place to ask that

earnest phoenix
amber fractal
#

(He meant inviting it to his server)

open hornet
#

where the channel i post

#

apply

#

for my bot?

grim aspen
pale marsh
#

]]faq 1 --clean

covert turtleBOT
grim aspen
#

if you mean where to add your bot

open hornet
#

ty

#

but i didnt get it

#

where i have to put my apply

warm flame
#

click the link that coffee sent

#

and then click the link in that message and fill out the application

#

also further questions go to #general not here

earnest phoenix
#

Anyone know how to make a afk command, like when you type >afk, it will change your name to [AFK] [Your Username] then when you type it will remove your afk, and when someone pings you it will tell them you're afk.

bitter night
#

^
Does anyone have a suggestion on an afk command. I used a json file to store users who are afk but I cant get it to remove the user from the list. Is there a better way to do this?

#

Maybe an enmap? Or a collection

warm marsh
#

Find a way of storing who's afk e.g. database or JSON file. Then try change users nickname to [AFK] Username then when type it again get entry from file check if it exists then if so change their name.

bitter night
#

I did do that but how would I remove them from the list

loud salmon
#

im sure there is a function to remove an object from a list

warm marsh
#

splice

bitter night
#

That would remove it?

warm marsh
#

If you're using JavaScript

bitter night
#

Yes

warm marsh
#

discord.js?

bitter night
#

Yes

warm marsh
#

nvm

loud salmon
#

your language docs will also help

warm marsh
#

Doesn't matter

#

You're using JSON?

loud salmon
#

not even discordjs docs

bitter night
#

I havent see a way to remove an item from a JSON file

warm marsh
#

Then set the json file after removing the user

bitter night
#

Ih I see

#

So could I just replace the user with a blank value?

#

So if I do afklist.splice(); it would remove the object

warm marsh
#

You could have your JSON file be an object then


// SET AFK
let JSON_OBJECT = {} // GET OBJECT FROM FILE;
Object.defineProperty(JSON_OBJECT, message.member.user.username,  {
    value: true,
    writeable: false
});

// REMOVE AFK
delete JSON_OBJECT[message.member.user.username];
// SET USERNAME:
 ...
// SET JSON FILE:
bitter night
#

Oh alright thanks

#

So I ca. Just delete

warm marsh
#

Then you'll have to use fs or something to write the file again

bitter night
#

Yes

#

I feel like there is a simpler way to do this but that will work

#

Ima try out an enmap too

zealous veldt
digital sparrow
#

guy s help me c++

zealous veldt
#

]]moreinfo

covert turtleBOT
#

Please provide as much information as possible to get the most efficient assistance as soon as possible; state the library, language, the specific part of the code in question, and what you are trying to do and/or what you think may be causing the error.

fiery stream
#
21:17:37.152 - Stack Begin
21:17:37.154 - Script 'Model.MainModule', Line 1 (x2)
21:17:37.154 - Stack End
21:17:37.155 - Requested module experienced an error while loading
21:17:37.155 - Stack Begin
21:17:37.156 - Script 'Model.MainModule', Line 2 (x2)
21:17:37.157 - Stack End
21:17:37.157 - Requested module experienced an error while loading
21:17:37.158 - Stack Begin
21:17:37.158 - Script 'Model.MainModule', Line 12
21:17:37.159 - Script 'Model.MainModule', Line 12 - field ?
21:17:37.160 - Script 'Plugin_3323713717.LoadCharacter.Functions', Line 1 (x2)
21:17:37.160 - Stack End
21:17:37.161 - OnServerEvent can only be used on the server
21:17:37.161 - Stack Begin
21:17:37.162 - Script 'Model.MainModule', Line 2 (x2)
21:17:37.163 - Stack End``` help me idk lua neither roblox studio
#

plsss help me

#

i have an idea of lua but not professional please help me

#

ty

lavish forge
#

want people actually use discord.lua still? Holy shit I thought it was just a meme.

#

Why are you trying to use something you know nothing about and expecting people to help without you trying to figure it out on your own?

earnest phoenix
#

can you make the bot give someone a role by answering dm's from the bot? (I haven't tested it yet, just want to ask if its possible)

zealous veldt
#

yes, but also

#

]]moreinfo

covert turtleBOT
#

Please provide as much information as possible to get the most efficient assistance as soon as possible; state the library, language, the specific part of the code in question, and what you are trying to do and/or what you think may be causing the error.

floral bloom
#

Discord.js/json Help Needed

So, I'm programming a Discord bot, but got an error I don't understand.
I'm trying to send an embed.

The error is:

- (node:13176) UnhandledPromiseRejectionWarning: TypeError: Converting circular structure to JSON
```And my embed is:
```js
{embed: {
      color: green,
      title: "Message Deleted",
      description: message,
      fields: [
        {
          name: "Channel",
          value: "<#" + message.channel.id + ">"
        },
        {
          name: "User",
          value: message.author.mention + ", `" + message.author.tag + "` (`" + message.author.id + "`)" 
        }
      ],
      footer: {
        text: "Entry date: " + date
      }
    }}
#

Ping with response please

nocturne hazel
warm marsh
#

@floral bloom message.author.tag not message.author.mention

sinful lotus
#

install node bindings

nocturne hazel
#

Is there a command to do so?

sinful lotus
#

I forgot the command Im afaik

floral bloom
#

@warm marsh Nope, didn't work...

nocturne hazel
#

It's giving the same error when trying to install anything

sinful lotus
#

not sure then probably you can ask on the coding then node.js section

pale marsh
#

@earnest phoenix ask your question here. People here might be able to help you out

#

Ugh phone angeryBOYE

#

@earnest phoenix

warm marsh
#

@floral bloom

{embed: {
    color: green,
    title: 'Message Deleted',
    description: message.content,
    fields: [
        {
            name: 'Channel',
            value: `<#${message.channel.id}>`
        },
        {
            name: "User",
            value: `<@${message.author.id}>, \`${message.author.tag}\` (${message.author.id})`
        },
        footer: `Entry Date: ${date}`
    ]
}}```
late hill
#

That embed looks fine @floral bloom are you sure that's what the error is originating from

warm marsh
#

Yes it is.

#

If message is the variable defined inside of the event

#

then it's the embed.

late hill
#

Maybe show some more code

earnest phoenix
#

Closing bracket?

late hill
#

^

earnest phoenix
#

I only see one at the end but there should be two

warm marsh
#

Yeah

fallow steppe
#

JavaScript welcoming message?

warm marsh
#

I forgot one

late hill
#

👀

warm marsh
#

His code has two things inside that could be causing the error.

#

message.author.mention doesn't exist

#

and if message is variable defined from client.on('message', async(message) => {}) then that's the reason for circular to json

earnest phoenix
#

I think someone should offer paid code cleanup services... he will be as rich as Bezos in a month

warm marsh
#

lmao

late hill
#

Those would just be undefined if they don't exist

#

@floral bloom you're most likely using some json method on your embed which you don't have to

#

Show the code you use to send the embed

warm marsh
#

I'll show you where his error is coming from.

    private async run(message:Message, args:string[]) {
        return message.channel.send({
            embed: {
                title: "**PONG!**",
                color: this.client.color,
                description: `Client Ping: ${ms(this.client.ping, { verbose: true, secondsDecimalDigits: 0})}`,
                footer: {
                    text: message
                },
                timestamp: new Date().toISOString()
            }
        });
    }
#

message

#

If the variable called message in his embed is the one passed from the event.

#

otherwise he should name his variables something a lot more meaningful.

late hill
#

oh

#

It's a logger

#

So he wants message.content

warm marsh
#

yeah

late hill
#

or ${message}

floral bloom
#

@warm marsh Thanks! That worked! 😄

warm marsh
#

np

real helm
#

Hello

#

Who have osu api key?

fluid sphinx
#

just get one yourself

real helm
#

I don't have osu acc

slender thistle
#

Create one

spring ember
#

osu api keys should be private afaik

warm sail
#

They are not only private, they are specific to an application (e.g. your bot). You need an osu account to apply for one.

earnest phoenix
#

the osu api standalone is very poor anyways

verbal nacelle
#

Hello! I am trying make numbers of servers choosed bot handling. I am using next code:

#

var usr = client.users.get(${user_data.client_id}); var guilds = usr.client.guilds;

#

But i got only guilds for my client

#

How can i count number of servers for any bot?

earnest phoenix
#

you need to use the oauth2 process to get access to a list of guilds the user is in

verbal nacelle
#

I need oauth2 of bot client?

earnest phoenix
#

what

verbal nacelle
#

*oauth2 token of bot client

earnest phoenix
#

you can't get a list of guilds of another bot except for the one you're logged in, however you can get a list of guilds a user is in by using the oauth2 process

#

an oauth2 token doesn't exist, an access token does

verbal nacelle
#

One min

earnest phoenix
verbal nacelle
unique nimbus
#

yes

#

dbl api

earnest phoenix
#

because it's manually posted to dbl's api

#

anyone can spoof the server count

verbal nacelle
#

So can i use dbl's api to count any bot servers?

earnest phoenix
#

no

verbal nacelle
#

Why?

earnest phoenix
#

because dbl is a bot list, it only provides the server count if the bot is on the list and if it posted a server count, even then it's unreliable because once again you can spoof the server count

verbal nacelle
#

Thank you. I will look for widgets

pallid zinc
#

how to send random image

#

from any wesite

grave pilot
#

Any easy way to get a emoji from a message on master using discord.js?

grim aspen
#

@pallid zinc can you be more specific?

#

what library are you using?

pallid zinc
#

js

#

11.4.2

#

mean stable

grim aspen
#

thought so

#

use an api

pallid zinc
#

ok thanks

royal fog
#

hi

earnest phoenix
#

Hi

#

Do you need help?

royal fog
#

yes me need help

grim aspen
#

explain what you need help with please

royal fog
#

can give website this server?

earnest phoenix
#

yes

grim aspen
#

if that's what you mean

royal fog
#

tysm

grim aspen
#

you're welcome

earnest phoenix
#

Hey guys, I have a question about my prefix. Can I use 2 prefixes? Like "V" and "v"

grim aspen
#

i mean i guess

loud salmon
#

like, for bot rules on the site? or just convention

grim aspen
#

some bots have h! as their prefix

earnest phoenix
#

I wanna use 2 languages, and one should be with V and the other with v

grim aspen
loud salmon
#

please explain more

earnest phoenix
#

Well, for example: if you use Vban, the bot will say "The user has been banned" and if you use vban, the bot will say "Utilizatorul a fost banat" (in romanian)

#

And so on for other commands

agile vine
#

that's pretty cool tbh

loud salmon
#

hm, I guess that could work out

#

its an interesting way of doing things

#

thought most people have the same prefix and then have a command to swap the language of the bot

grim aspen
#

that would work tbh

earnest phoenix
#

Thanks for the approval

agile vine
#

a translation api could make that alot easier too

#

if there is such a thing

late hill
#

I chose not to have multiple languages, not because I'm too lazy but because I want to give people the opportunity to learn English kannaHeart

earnest phoenix
#
a translation api could make that alot easier too
if there is such a thing```

google translate contradicts that statement
#

manual translation is always better

opaque eagle
#

Google Translate sucks

earnest phoenix
#

A way to put a link in the end of a embed? In footer it doesn't work, i'm talking about that [Link](https://)

#

And i dont want to put a field for this, its ugly

unique nimbus
#

like me

earnest phoenix
#

no and nvm i have found

#

i'm just tired

unique nimbus
#

same

#

I also want die

earnest phoenix
#

Hmm, is a program attempting to change locally contained root CAs normal?

rugged kelp
#

How add Discord.js in github ? because have 100+ files : (

earnest phoenix
#

learn git

rugged kelp
#

...

earnest phoenix
#

you don't manually add a file one by one

#

lol

rugged kelp
#

where ?

earnest phoenix
earnest phoenix
#
if(!message.guild.member(user).hasPermission("MANAGE_MESSAGES")) return;```

Cannot read hasPermissions or null
#

how can i do ?

#

permission with S

#

I think

#

Ah no

#

@earnest phoenix message.guild.members.get(user.id).hasPermission('')

copper cradle
#

@earnest phoenix don't add (user)

earnest phoenix
#

Edited

#

I think he define user @copper cradle

#

And he need it

slender thistle
#

guild.member pikaPuke

copper cradle
#

I mean

earnest phoenix
#

no its guild.members

#

uwu

#

now, I have

#
if(message.member.hasPermission("MANAGE_MESSAGES")) return;```
#

@earnest phoenix

#

same error

#

lol

#

what ?

#

do you have defined user?

#

yeah

#

to

#

message.author

#

okay

#

look

#

uh ?

#

message.guild.members.get(message.author.id).hasPermission('')

#

and ?

#

i put this ?

amber fractal
#

uh

earnest phoenix
#

or just message.guild.member.hasPermission('')

amber fractal
#

why are you complicating it tho

#

ye

#

that way

earnest phoenix
#

yeaah

#

bc im stupid tarpergon

amber fractal
#

here, lets make it even bigger

client.guilds.get(message.guild.id).members.get(message.member.user.id).hasPermission('')
earnest phoenix
#

is not an function

#

i see this

amber fractal
#

dont use what I just posted

earnest phoenix
#

i know

amber fractal
#

if you have message defined and the message in in a guild what he posted should work

earnest phoenix
#

i have this man

slender thistle
#

Since when do js libraries have guild.member

amber fractal
#

oh shit

#

@earnest phoenix you make me look dumb

slender thistle
#

Let's also refrain from spoonfeeding

amber fractal
#

message.member

earnest phoenix
#

yes ik

#
bot.on('message', message => {
  if(message.channel.type === "dm") return;
  if(message.author.bot) return;
  let server = message.guild.id;
  const user = message.author;
if(message.guild.member.hasPermission("MANAGE_MESSAGES")) return;```
#

member with s

slender thistle
#

Just use user then

earnest phoenix
#

uh ok

amber fractal
#

user wouldnt work

#

it's a user not a guild member

earnest phoenix
#

yes

amber fractal
#

message.member returns a guild member

slender thistle
#

(That's why I didn't like d.js in the first place :^))

amber fractal
#

dont most libs separate users and guild members?

earnest phoenix
#

same error @earnest phoenix

#

What error

#

Cannot read..

#

and put a !

amber fractal
#
earnest phoenix
#

Its that the error

slender thistle
#

In d.py, msg.author is User if the msg is in DMs, otherwise it's Member

earnest phoenix
#

@earnest phoenix bot.on('message', message => { if(message.channel.type === "dm") return; if(message.author.bot) return; let server = message.guild.id; const user = message.author; if(!message.guild.members.hasPermission("MANAGE_MESSAGES")) return;

amber fractal
#

bro

#

that wouldnt work either

earnest phoenix
#
bot.on('message', message => {
  if(message.channel.type === "dm") return;
  if(message.author.bot) return;
  let server = message.guild.id;
  const user = message.author;
if(message.guild.members.hasPermission("MANAGE_MESSAGES")) return;```
rugged kelp
#

Why ?

#

Because im adding ms folder

amber fractal
#

message.guild.members.hasPermission

#

what is that

earnest phoenix
#

lol i'm dumb

#

i succ.. say me this

amber fractal
#

@rugged kelp you need to install ms

#

also I think that's heroku

#

so idk how

#

I think you add it to your package.json

earnest phoenix
#

if(!message.member.hasPermission('MANAGE_MESSAGES'));

#

done

amber fractal
#

but not sure

earnest phoenix
#

uuh

#

Test it

#

@earnest phoenix

#

okay

#

it should be work

#

ok

rugged kelp
#

@amber fractal yes it;s heroku and how to download ms ?

amber fractal
#

idk how

earnest phoenix
#
botdiscord/index.js:197                                    if(message.members.hasPermission("MANAGE_MESSAGES")) return;                   ^                                        TypeError: Cannot read property 'hasPermission' of undefined    at Client.bot.on.message (/botdiscord/index.js:197:20)      at emitOne (events.js:121:20)                               at Client.emit (events.js:211:7)                            at MessageCreateHandler.handle (/botdiscord/node_modules/discord.js/src/client/websocket/packets/handlers/MessageCreate.js:9:34)                                                    at WebSocketPacketManager.handle (/botdiscord/node_modules/discord.js/src/client/websocket/packets/WebSocketPacketManager.js:105:65)                                                at WebSocketConnection.onPacket (/botdiscord/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:333:35)                                                            at WebSocketConnection.onMessage (/botdiscord/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:296:17)                                                           at WebSocket.onMessage (/botdiscord/node_modules/ws/lib/event-target.js:120:16)
    at emitOne (events.js:116:13)
    at WebSocket.emit (events.js:211:7)```

 @earnest phoenix
#

Without s

#

i put s

#

Yes

#

Remove

#

The s

#

if(! message.member.hasPermission('MANAGE_MESSAGES'));

#

Just copy paste

#

why !

#

I do not want the negation, precisely, if the user has permission, he can make the command

#

! if its the member doesn't have manage message permission

#

Oh okay

#

Nice avatar

rugged kelp
languid dragon
#

npm install ms

rugged kelp
#

yes

#

:/

earnest phoenix
#

npm i ms@latest

languid dragon
#

then youre doing it in the wrong directory

rugged kelp
earnest phoenix
#

Delete it

#

And re-add it

rugged kelp
#

Oke

#

@earnest phoenix Nope :/

earnest phoenix
#

oh god

#

is that node modules i see on github?

opaque eagle
#

^

#

Weirdly ppl do that often

rugged kelp
earnest phoenix
#

maybe you should use the actual token

opaque eagle
#

How can I generate a bitfield from an array of permisssions?

#

Specifically I'm trying to generate an invite link given a set of permissions, in code.

#

It'd be calculated during runtime based on the requirements of each command

amber fractal
#

@opaque eagle lib?

opaque eagle
#

Nvm, I figured it out... eris tho

amber fractal
#

oh

#

idk shit about eris lol

#

or bitfields all I know is that you can do some stuff in discord.js with an array of permissions

twilit rapids
opaque eagle
#

shard.status doesn't exist

#

I think you're looking for WebSocketShard.status, in which case try ws.shards.map(e => e.status)

cursive dagger
#

Any way to set per shard status?

twilit rapids
#

I've ran ws.shards.map(e => e.status) and it returns this: TypeError: Cannot read property 'status' of undefined

earnest phoenix
#

because shards is a collection of the Shard object

twilit rapids
#

How would I do it then

earnest phoenix
#

magic

#

docs exist

#

bot can fetch audit logs ?

#

in djs

#

nvm its good

rugged kelp
#

How to fix ?

mossy vine
#

make the RichEmbed field not empty

#

oh god

#

message.channel is a huge channel object

rugged kelp
#

What line ?

#

22 and 23 ?

mossy vine
#

what line do you use message.channel by itself on weirdsip

rugged kelp
#

oh

#

It's good ?

#

Im beginer : )

#

wait

mossy vine
#

i wasnt talking about those lines..

rugged kelp
#

idk

latent coyote
#

.addfield("Kicked In", message.channel)

rugged kelp
#

.name ?

mossy vine
#

yes

rugged kelp
#

Nope :/

earnest phoenix
#

step over each variable you use in the embed and see which one doesn't have a value

#

one of the main possibilities is the reason

rugged kelp
split lantern
#

args.join(" ").slice(22) lets me belive you are doing bad stuff

warm marsh
#

also your .find property takes a function not 'name', 'nameThatWasGiven'

#

so

message.guild.channels.find(channel => channel.name == 'nameYouWant');
split lantern
#

the way with 'name', ... is the deprecated one

#

@rugged kelp When you are copying / writing code down from s viedo you might aswell contact the original creator

The best way to learn d.js https://discordjs.guide/

#

Its OpenSource so many people keep it up to date and decide what the best way of doing it is

rugged kelp
#

Loool ❤ Thanls ❤

rugged kelp
#

Why ?

copper cradle
#

what if you install canvas?

#

run: npm i canvas

rugged kelp
#

yes xD

#

Sorry

copper cradle
#

do u speak Spanish?

rugged kelp
#

No

copper cradle
#

k

rugged kelp
#

Why ?

copper cradle
#

do node index.js

#

or whatever you called your bot

loud salmon
#

maybe google the error first?

copper cradle
#

idk

#

^

loud salmon
#

all of these issues are easily solvable by just searching around on the internet for a bit

copper cradle
#

@rugged kelp there is literally something called "Error"

#

I'll give u a hint, if you read it maybe idk you could find the solution

quartz kindle
#

canvas has a few dependencies you need to install before

copper cradle
earnest phoenix
#

Hmm, did anyone else notice a change in spambots?

west spoke
#

NSFW porn links

earnest phoenix
#

They now pretend to link to Google main page

west spoke
#

yeah the usual

earnest phoenix
#

But still link to NSFW

slender thistle
#

Off topic content

earnest phoenix
#

Oh, sorry

west spoke
#

^

earnest phoenix
#

if(!message.channel.nsfw) return; next time ask in #development

#

Sorry and thx

slender thistle
#

Assuming they're using js

earnest phoenix
#

Yep

balmy lantern
#

how would you divide a message by its letters?

amber fractal
#

wym

#

like an array of characters?

balmy lantern
#

L i k e t h i s

earnest phoenix
#

split by an empty string, join by space

west spoke
#

message.content.split("") for py

#

Ye what cry said

balmy lantern
#

oof js

#

ok

amber fractal
#

it's the same

#

<String>.split('')

balmy lantern
#

Ok

#

idk if its possible, but can you combine the
.split("")
with
.split(/ +/)
?
Because, otherwise, it counts the spaces too which doesnt work for the command im tryin to make

earnest phoenix
#

just... remove the existing spaces beforehand?

balmy lantern
#

With splice..?

earnest phoenix
#

why would you want to splice the string

#

you'd want to replace (hint hint) every space in the string

balmy lantern
#

Ok lol

#

hmmm

#

ill look into it more, it only works for the first space for some reason

#

Got it

west spoke
#

Bad idea but loop through all server channels then send

grim aspen
#
  1. pretty sure some servers wouldn't want it
west spoke
#

^

#

Make it opt in

grim aspen
#
  1. what lazyneko said
west spoke
#

Ye

grim aspen
#

yes

west spoke
#

What you could do is use a .txt or db and stor--

#

Ok I ain't helping anymore

grim aspen
#

interesting...

#

no finish your sentence

west spoke
#

store the IDs of the selected channels from the opt-in

#

And for each newline send the next id

#

like

#
channel-id-1
channel-id-2
#

Since it's a newline

#

You can split by the newline

#

And send by file[1], and so on

#

I'm working on a sort of thing when you create a text channel name nb-posts it will send the post feed

grim aspen
#

talk with some of the servers though

#

since some of them i'm pretty sure wouldn't want that though

west spoke
#

It will have a second opt in to put it as true

opaque eagle
#

Also for those of you who were tryna split the string into letters, here's a really simple solution: js Array.from("Hello, world!") // ["H", "e", "l", "l", "o", ",", " ", "w", "o", "r", "l", "d", "!"]

amber fractal
#

but isnt js "Hi".split('') easier Thonk

hushed berry
#

I think Array.from is clearer

sinful lotus
#

for someone that is wellversed with regexp, why this isn't working sad

loud salmon
#

uwu

eternal mesa
#

already on it chief

#

uwu

#

i got a match

sinful lotus
#

fixed uwu

#

just a bit of confusion with java

eternal mesa
#

@sinful lotus good job uwu

earnest phoenix
#

a little dumb q since i can't think correctly
let commandFile = require(`./commands/${command}.js`); seraches /commands folder
Can I made it search folder that are in /commands folder?

#

like a /*/ ?

warm marsh
#

Yeah you will just have to tell it that's what you want.

quasi forge
warm marsh
#

Do you have express installed?

mossy vine
#

yes, otherwise it would throw a different error

#

according to the docs that is perfectly correct Thonk

mossy vine
#

what are the best NoSQL databases for python?

sinful lotus
#

mongodb is fine, as for best or not best idk

mossy vine
#

hmm, i already have some experience with mongo and have it set up locally and on my server, so i guess thats an option

sinful lotus
#

mongodb is on fair to me not shabby not the very best
redis is kinda in memory db but havent used that so Im not sure how that works

#

but redis is fast because its in memory

#

but since its in memory

#

that could be your limitation

mossy vine
#

yeah, thats why i dont really want to use redis

sinful lotus
#

me myself uses sql db so nothing much in store in what is the best nosql for me

mossy vine
#

mongo definitely seems like the best option for now

peak quail
#
if(message.content == 'M!serverinfo'){
    let embed = {
        title: "Server Info",
        icon_url: message.guild.iconURL,
        color: 0x55ba53,
        fields: [
            {
                name: "Owner",
                value: message.guild.owner.user.tag 
            },
            {
                name: 'User',
                value: message.guild.memberCount 
            },
            {
                name: 'servername',
                value: message.guild.name
            }
        ]
    }
    
    message.channel.send({embed})
}``` why the picture dosent work....
peak quail
#

😮

pallid zinc
#

U try this

#

message.channel.send({embed: {

//Embed here
}})

mossy vine
#

that is literally what he is doing

warm marsh
#

He missed the js thumbnail: { url: message.guild.iconURL }

pallid zinc
#

Which is best api for image

#

??

quartz kindle
#

what kind of image?

pallid zinc
#

Nsfw

quartz kindle
#

no idea

pallid zinc
#

And what about memes,kick, slap

quartz kindle
#

just google "memes api" or "nsfw api"

pallid zinc
#

Ok

earnest phoenix
quasi forge
indigo geyser
#

if I go on the computer terminal and I run $ cd <my source bot> it tells me ** Permission denied**

unique nimbus
#

Where is it stored

indigo geyser
#

on Visual Studio

earnest phoenix
#

is it on a free server

#

or is it local, your pc

indigo geyser
#

free

tulip solar
#

hello, how can I add a background to my server page?

#

I have 0 knowledge of coding and don't know how to use markdown.

warm marsh
#

Server page?

#

On discord bot list?

tulip solar
#

yeah

#

like it says edit server page and it says I can use markdown but I don't know how to + other server pages look cool

warm marsh
#

use css

#

at the top of your description add <style></style> and inside the tags style your body.

#

so e.g.

<style>
    body {
        background-color: #910840;
    }
</style>

Rest of description...
#

Would make your background some shade of purple.

tulip solar
#

alright thaks

#

and how to add an image to the background?

warm marsh
#

That link will take you to css tutorial on w3schools.

tulip solar
#

thank you so much!

warm marsh
#

What?

tulip solar
#

oof

warm marsh
#

yeah

tulip solar
#

why doesn't it work?

warm marsh
#

you added it inside of the description?

tulip solar
warm marsh
#

yeah

tulip solar
#

it's not working for some reason

warm marsh
#

try a different image

pallid zinc
#

Does it take time

warm marsh
#

Nah

quartz kindle
#

its written right there

warm marsh
#

Oh

#

Yeah

pallid zinc
#

I try color

warm marsh
#

not yet supported

quartz kindle
#

hes doing a server description, not a bot description

tulip solar
#

oh, so what can I use?

warm marsh
#

Ah yeah my bad

tulip solar
#

I saw other ones have backgrounds

#

it's all good Paradox.

quartz kindle
#

can you dm me the servers which have backgrounds?

#

i can check how they did it

tulip solar
#

yeah

pallid zinc
#

Work in my case

#

But ugly

warm marsh
#

That's a bot

tulip solar
#

that's a bot

pallid zinc
#

I know

quartz kindle
#

@tulip solar they are not using description

#

i think thats the actual guild banner from server boosting

tulip solar
#

ohh alright

#

Ima set mine then

#

thanks

#

It worked @quartz kindle thank you

earnest phoenix
#

mk lets do this

amber fractal
#

It's finna be something simple

earnest phoenix
#

EventLoader.js (unoriginal everyone uses this lmao)

const reqEvent = (event) => require(`../events/${event}`);
module.exports = bot => {
  bot.on('ready', () => reqEvent('ready')(bot));
  bot.on('message', () => reqEvent('message')(bot));
  bot.on('reconnecting', () => reqEvent('reconnecting')(bot));
  bot.on('disconnect', () => reqEvent('disconnect')(bot));
  bot.on('guildCreate', reqEvent('guildCreate'));
  bot.on('guildDelete', reqEvent('guildDelete'));
  bot.on('guildMemberAdd', reqEvent('guildMemberAdd'));
  bot.on('guildMemberRemove', reqEvent('guildMemberRemove'));
  bot.on('guildBanAdd', reqEvent('guildBanAdd'));
  bot.on('guildBanRemove', reqEvent('guildBanRemove'));
};

/event/message.js

const config = require('../config.json');
module.exports = msg => {
  console.log(msg);
  //if (!msg.author) return;
  if (msg.author.bot) return;
  if (msg.channel.type !== "text") return;
  if (!msg.content.startsWith(config.prefix)) return;

  let command = msg.content.split(' ')[0].slice(config.prefix.length);
  let args = msg.content.split(" ").slice(1);

  try {
    let commandFile = require(`./commands/${command}.js`);
    commandFile.run(bot, msg, args);
    console.log(`${msg.author.tag} has used the ${command} command in ${msg.guild.name}.`)
  } catch (err) {
    return;
  }
};
#

so the message.js doesn't see msg.author

#

and if i log the "msg" it outputs the channels thinkEyes

#

well not only the channels but

pale marsh
#

What do the d.js docs say?

earnest phoenix
#

what should they say

#

i don't even know what to look for lmao

#

this is the first time it happened

#

it works perfectly in index.js

sinful lotus
#

then you are probably running it wrong

earnest phoenix
#

but it doesn't with the loader

#

probably am, but how

sinful lotus
#

if message logs channel

#

it means

  1. wrong event
  2. you are passing the event variable wrong
#

but Im certain you are on number 2

#
bot.on('message', () => reqEvent('message')(bot));

you didnt pass anything

#

probably you are even passing the bot variable which is wrong

pale marsh
#

Yup

sinful lotus
#

as far as I can see your code is not classbased

pale marsh
#

Maybe bot.on('message', (msg) => reqEvent('message')(bot)); would do it

sinful lotus
#

that would be still wrong

earnest phoenix
#

thinkEyes am i dumb

sinful lotus
#

since the bot variable will be the message on message.js

pale marsh
#

Hm

#

Idk js. Listen to saya GWmythiBlobLUL

sinful lotus
#
bot.on('message', (message) => reqEvent('message')(bot, message))
// message.js
module.exports = (bot, message) => {}

will probably fix it

earnest phoenix
#

finally 😠

#

already got it

#

but thanks

sinful lotus
#

where in the first variable is your client, then the second is the message

earnest phoenix
#

it had to be ``` bot.on('message', reqEvent('message'));

#

for some reason

sinful lotus
#

yeah but that wont have the client on the message.js

earnest phoenix
sinful lotus
#

commandFile.run(bot, msg, args); causing this to throw error

#

since bot is not defined

#

the fix I proposed on top

  1. Defines your bot properly
  2. Defines the variable message properly
earnest phoenix
#

yeah

#

uhm

#

one minute

sinful lotus
#
bot.on('message', reqEvent('message'));

this will work because
reqevent('message')
is literally the same function on
client.on('message', () => {})
with the exception it is exported

#

basically you just replaced the () => {} with the required js file which is the same () => {}

pale marsh
#

That makes sense

sinful lotus
#

newbies confuse the exports.stuff usually so the keyword on that is literally think of it as the same function but exported only.

stark beacon
#

not sure if I read past it or what, but what is the difference between bot-hell and the testing channels?

Can I test my bot in one or any of those?

sinful lotus
#

yeah but bot hell is literal hell

#

so better test on testing

pale marsh
#

Yup a lot of bots keep spewing weird stuff down there

quartz kindle
#

why does bot hell even exist? lmao

stark beacon
#

ah okay, and it sounds like my bot was muted as it was responding to other bots... which is odd.. 🤔

#

I guess I can just add a check to ignore messages from BOTs, yea?

pale marsh
#

Yup that's all you need

sinful lotus
#

I mean its not weird if you didnt put a check to ignore bot

stark beacon
#

if(message.author.bot) return; dis?

#

yea I didnt really think of that I guess haha

sinful lotus
#

if you know about discord bot guidelines

#

that rule is listed there

earnest phoenix
#
bot.on('message', (message) => reqEvent('message')(bot, message))
// message.js
module.exports = (bot, message) => {}``` didn't work, it went thru without error, but command wasn't executed
sinful lotus
#

console.log your message.js

stark beacon
#

ah gotcha, yes it isn't supposed to do anything with a bot, but I guess it could if they mimic stuff

sinful lotus
#

and see where it stops

stark beacon
#

ill go update my code a second

earnest phoenix
#

and the error. is

#

one period

sinful lotus
#

also another thing I noticed

earnest phoenix
#

../commands

#

i did ./

sinful lotus
#
  try {
    let commandFile = require(`./commands/${command}.js`);
    commandFile.run(bot, msg, args);
    console.log(`${msg.author.tag} has used the ${command} command in ${msg.guild.name}.`)
  } catch (err) {
    return;
  }

you will have a hard time debugging this

earnest phoenix
#

why

sinful lotus
#
  } catch (err) {
    return;
  }

because you dont do anything in error nor log it

earnest phoenix
#

ye already done with it

sinful lotus
#

you should at least do console.error() there

#

so that you know when an error happens

earnest phoenix
#

yea but it's annoying sometimes

#

cause some errors are dumb

#

and don't crash it

sinful lotus
#

yeah I believe it throws error when a command doesnt exist?

earnest phoenix
#

yup

#

also i had a question

sinful lotus
#

then I recommend to you to rewrite that and cache it in a map

earnest phoenix
#

is there some way to require(../commands/any_folder/${command}.js);

sinful lotus
#

yeah, fs module of node.js

earnest phoenix
#

any folder as in it would go thru every folder looking for it

sinful lotus
earnest phoenix
#

wait fs can look through every folder in a folder?

#

oh

earnest phoenix
#

ty

sinful lotus
#

np

stark beacon
#

Okay, I believe that is fixed now. Will it eventually get un-muted on its own or do I need to go do something?

amber fractal
#

Mention a mod

stark beacon
#
client.on('message', async message => {
    if (message.author.bot) {
        return;
    }
....
amber fractal
#

Tell them you fixed it

sinful lotus
#

Bot Id?

stark beacon
#

585957147175813121

#

PUBG Leaderboard

hexed wadi
#

do people make discord bots in c or just js?

sinful lotus
#

Xig Did it already

#

I do bots in Javascript and Java

stark beacon
#

coolio, so now I can go try and test it in one of the bot channels? 😃

sinful lotus
#

yes'

stark beacon
#

😃

rugged kelp
#

Why ?

sinful lotus
#

Bot ID please

rugged kelp
#

When I add files to github this message is automatically given

#

Ok

#

591346441453305856

amber fractal
#

@hexed wadi you can use literally any lang that can make http requests

stark beacon
#

ah oops, nvm that wont work

amber fractal
#

It would

#

Returning on message.author.bot

rugged kelp
#

@sinful lotus 591346441453305856 this is Bot ID

sinful lotus
#

Yes I know.

rugged kelp
#

Why ? 😭

quartz kindle
#

is it your bot?

rugged kelp
#

Yes

quartz kindle
#

... you made it look like you received a spam message, so weeb asked you for its id because spam bots are banned

sinful lotus
#

Its a leaked token

quartz kindle
#

ah figures

rugged kelp
#

No

#

And how to add private files in github ?

sinful lotus
#

git ignore it

earnest phoenix
#

.ignore

#

Something like this

sinful lotus
#

@rugged kelp Just resubmit and regenerate your token

crisp turtle
#

.gitignore

sinful lotus
#

since I highly believe thats a leaked token

rugged kelp
#

Yes

#

botconfig.json.gitignore ?

#

it's ok ?

crisp turtle
#

no

amber fractal
#

Or private the repo

sinful lotus
#

private the repo

#

much more easier if you dont plan to open source

crisp turtle
#

make another file .gitignore ```
botconfig.json

amber fractal
rugged kelp
#

@crisp turtle Accept my friend requiest

crisp turtle
#

?

rugged kelp
#

It's ok ?

sinful lotus
#

yeah but you need to delete the botconfig from git first

rugged kelp
#

Ok

#

I delete botconfig.json

sinful lotus
#

then add gitignore

#

then sync your local git

rugged kelp
#

Ok

#

Im noob xD

#

Wait xD

#

Now ?

#

@sinful lotus

#

Sorry for tag :/

earnest phoenix
#

QDont ping

sinful lotus
#

where are you stuck?

rugged kelp
#

Here

#

Now ?

#

it's ok ?

earnest phoenix
#

Or delete your token from the file

#

it will show up in history

amber fractal
#

^

#

Regen the token

earnest phoenix
#

which is why you delete and then place in gitignore

#

Yes

rugged kelp
trail dagger
#

How in discord.py could i use ctx. something to check if the user is a bot

pale marsh
#

Something like ctx.message.author.bot

#

I don't remember. Check the docs

slender thistle
#

If you are on rewrite+, you can use ctx.author

earnest phoenix
#

ctx.author.bot i think

slender thistle
#

And yeah, that would be correct, Kef

pale marsh
#

I don't even think bot commands would get past the command parser to begin with

#

So that won't even be true afaik

#

@slender thistle can you confirm that?

slender thistle
#

Past the command parser?

pale marsh
#

Does the commands extension trigger on other bots' inputs?

slender thistle
#

By default no iirc

#

But you can disable the bot checking

pale marsh
#

I'm checking the docs and I can't find anything about that

warm flame
#

please don't randomly mention people

earnest phoenix
#

It stay a random ping

#

Okay, do you need help?

#

Pls

slender thistle
opaque eagle
#

If you add node_modules to .gitignore, but then make a .gitkeep file in it, will it work or no

earnest phoenix
#

how do u fix bot token accessible

#

Regen the token @earnest phoenix

warm flame
#

chill, there was a small raid, it will be ok

gusty tartan
#

Did it finish ?

coral trellis
#

Yes, Keep this channel on the topic of bot development

undone carbon
#

Morning devs

coral trellis
#

@undone carbon Read my message

pastel tapir
#

10 min in slow mode is much tbh

slender thistle
#

Not really

warm flame
viral shell
#

What chnnel is img channel

warm flame
trail dagger
#
        await ctx.send('You cannot kick a this user')``` idk anymore

i want it to check if the user has the permission and if the user that was mentioned has the permissions they cannot be kicked
slender thistle
#

Why are you comparing a Member/User to a boolean

trail dagger
#

member: discord.Member=None

sage bobcat
#

One message removed from a suspended account.

#

One message removed from a suspended account.

trail dagger
#

that is the member part

#

but i wanted it to check if the MEMBER has those permissons

#

that was mentioned in the kick message

unique nimbus
#

@commands.has_permissions(kick_member=True)

trail dagger
#

no

unique nimbus
#

That should be the command which will check if they have permission automatically

trail dagger
#
        await ctx.send('You cannot kick a this user ')```

@unique nimbus idk if you know what i mean
unique nimbus
#

That's automatic

#

It sends an error message

#

To terminal

trail dagger
#

🤦 🤦 🤦 🤦 🤦

unique nimbus
#

You are making an error message if they can't kick the member yes

trail dagger
#

i want it to check if the mentioned user !kick @randommmm is a moderator / have kick perms in that guild

#

and if that user do the ctx.message.author cannot kick that user by using the bot

unique nimbus
#

So you want a kick command

#

Which only people with kick perms can ise

slender thistle
#

@trail dagger You don't need to compare anything

unique nimbus
#

Use

#

Yes

trail dagger
#

NO

#

i have that

slender thistle
#

Also, guild_permissions is a property of Member instance.

trail dagger
#

i give up asking you guys

#

btw happy bday @unique nimbus

slender thistle
#

I'm giving you the answer and you're not accepting it

trail dagger
#

because i dont think you understand what i asked for

unique nimbus
#

Thanks

trail dagger
#

😃

slender thistle
#

You want your kick command to be usable by a moderator or anyone who has kick permission. Is that correct?

earnest phoenix
#

No he wants the kick command to check if the person that is about to be kicked is a moderator

trail dagger
#

YES

unique nimbus
#

Then you need to store the moderators role id

trail dagger
#

NO

slender thistle
earnest phoenix
#

Or you can place the bot below the moderator role

sinful lotus
#

If you want to check for kick permissions, would it not make sense to check for the actual permissions than role?

trail dagger
#

i guess

#

but if i knew how to check that i wouldnt be here rn

earnest phoenix
#

what library do you use

trail dagger
#

and i came back and dont remember that part

proper inlet
#

Hi all! Can you help me? How can i get last N messages form channel to array? (N is arbitrary number)

slender thistle
#

(However, you don't need to use == in your case.)

earnest phoenix
#

@proper inlet hey there what programming language

proper inlet
#

js

#

discord.js

earnest phoenix
#

the 2nd stackoverflow question seems good

proper inlet
#

thank you

stark beacon
#

How do I get my BOT's image to update on the discord bot website? Does it only update every so often I guess?

It is already changed on the discordapi site and on my bot's actual image in the discord servers.

hushed berry
#

It may take a bit to update on the site

stark beacon
#

awesome, thanks!

rugged kelp
#

How to add .gitignore file ? i need help :"(

#

I don't know

earnest phoenix
rugged kelp
#

Haha

#

:/

earnest phoenix
#

This is not github support server, look on google if you have issue with github

slim heart
rugged kelp
#

i do not understand :/

loud salmon
#

the docs show how to use it

earnest phoenix
#

Translate the page

rugged kelp
#

Better do not do anyhing

#

Because im very noob xD