#development

1 messages · Page 1260 of 1

uncut void
#

Sorry

quartz kindle
uncut void
#

Ok

silver lintel
#

{ "name1": { "price": 10 }, "name2": { "price": 20 } }
how do i get the price if i know the name

sudden geyser
#

What language

#

@silver lintel

silver lintel
#

node.js

sudden geyser
#

Use dot notation (obj.keyNameHere.price). If you can't because it contains a special character, use bracket notation (obj["keyNameHere"].price)

silver lintel
#
let item = args.join(' ');
    
   message.channel.send(items.item.price)
#

UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'price' of undefined

sudden geyser
#

The item variable would be a string which is from user input, so you should use bracket notation.

silver lintel
#
let item = args.join(' ');
    
   message.channel.send(items[item].price)
#

same error

sudden geyser
#

You may want to log what fields items has and what item is, as it should work.

vague sentinel
#

do u guys use djs v12 ?

karmic compass
#

is there a way to hard define a parameter?

#

like typing it in an ide will say like (name: String)

sonic lodge
#

items[item] is undefined, so of course the program won't be able to "read one of its properties"

cerulean ingot
#

whats the best ssh client, other than termius

meager hound
#

! Play yang terlupakan

#

!play yg terlupakan

earnest phoenix
#

do i need to include discord.py into my directories of something?

crystal socket
#

?? lemme guess you're new to py and you're coming from js/php

earnest phoenix
#

no new to py coming from C++

#

never done a discord bot

crystal socket
#

python as a built in package manager

#

just do pip install discord.py

earnest phoenix
#

already did

crystal socket
#

do pip3 then

earnest phoenix
#

ok that worked thx lol

#

i would of done C# dev but my friends all do python so

crystal socket
#

yeah ngl python paths are pretty shitty

#

sometimes you got to do pip3.x.x or python3 -m pip

#

cause pypy competes with homebrew which competes with pyenv

earnest phoenix
#

idk just am following a video on it and was like wtf

crystal socket
#

btw they removed the badge. just letting you know

earnest phoenix
#

badge?

#

idk what you talking about legit never done any bots before so

crystal socket
#

dev badge

earnest phoenix
#

oh for discord

#

does that even matter?

crystal socket
#

it doesn't

earnest phoenix
#

bam

crystal socket
#

its just we get a lot of people coming to this discord just for the badge so we let everyone know to fuck off

earnest phoenix
#

lmfao

crystal socket
#

it seems like you dont care about the badge which is great

#

have fun learning python!

earnest phoenix
#

no now i care give lmfao

crystal socket
#

ask here if you need any help

#

but have fun continuing your guide

earnest phoenix
#

na to much work bro im already burning to much calories by typing so

#

its just gonna be me learning discord api and that is all

warm prairie
#

is there an api to fetch all available emojis (custom and non)

wanton aurora
#

Fuck it what’s easier

#

Java or Python

sonic lodge
#

arguably python

#

generally beginners find it easier to read and understand than java, especially since its syntax can at times be "english-like"

earnest phoenix
#

my bot never comes online at all

#

when i run the cmd just instant closes

crystal socket
#

client/run shouldn't be tabbed

#

also delete that screenshot

#

it has your token in it

#

the token = the bots password

earnest phoenix
#

oh lol idc

crystal socket
#

client.run shouldn't be tabbed

#

that should fix it

earnest phoenix
#

wtf

#

tabs actually mess with python

#

wtf if i spam spacebar does that mess it up to

misty sigil
#

oh lol idc
@earnest phoenix doesn’t care about a token leak, I can see how cut out you are for bot development

earnest phoenix
#

well when its just a server with me then idc

#

i can regen a token

misty sigil
#

your bots just gonna end up like one of those "Hacked" bots mass dming everyone nitro scams

earnest phoenix
#

ok idc

#

lol ban my bot

#

already had 2 of my discord accounts ban they don't ban ip's so

sonic lodge
#

it's like you giving me your discord email and password

earnest phoenix
#

ahh dang well

#

that might suck

sonic lodge
#

it will suck

earnest phoenix
#

maybe idk

#

just make a new discord

#

its k i already reloaded a new one so

sonic lodge
#

or you know, keep your token safe and don't waste more time having to make a new account each time you get banned lol

earnest phoenix
#

who cares man

#

people are assholes sometimes

sonic lodge
#

eh, i'm not your dad

#

you do you

crystal mountain
#

is it possible to adjust thumbnail size in embed

wanton aurora
#

My bot is online

#

It just doesn’t do anything

carmine summit
#

i need help with a command. That if someone stickies a message id, it will then go to database, then if someone sends a message to the same channel the sticky message is in, the original message will get deleted then a new message with the same message is being sent collecting the message id then replacing the one in the database then sending the message but i dont know where to start

#

or

#

gets the args[0] of the command then put the data in the database then if someone sends a message in the same channel, the message will get deleted then replaced by the data in the database

wanton aurora
#

There’s about 2000+ devs on hopefully you get something out of this

carmine summit
#

whats the best way to set it as a database?

#

create a for loop?

#

hm

#

.length?

#

hmm

#

db.push yes

#

hmm

#

db.push(channelid, data)

#

it sends

#

ok ok ok

harsh plinth
#

.

carmine summit
#

ok then

#

i got the channel id that the command is executed

#

and sends the message

#

so db.set(channelid, data)

#

is now set

#

next is to check if something

#

if the channel id is in the data base everytime a message is sent

#

there

#

then send it

#

but we havent deleted the old message

#

hmm think

#
if (db.get(message.channel.id)){
    message.channel.send(db.get(message.channel.id))
  }

command:

if (command == 'sticky') {
    if (!message.member.hasPermission('ADMINISTRATOR', { checkAdmin: false, checkOwner: false })) return message.channel.send('You don\' have permission to run this command.')
    let data = args.slice(0).join(' ')
    m = await message.channel.send(data)
    console.log(`${m.channel.id} / ${data}`)
  }
#

hmm

#

welp it aint sending the messages

#

troubleshootin it rn

#

then split it with comma???

#

then .split(', ')[0]

#

i think that is the way to do this

#

oh wait im an idiot

#

wait lemme fix it

wanton aurora
#

Bruh I literally made my bot into a testing phase and they took it out

wanton aurora
#

RIGHT AS I PUT CODE FOR MY BOT THEY TAKE IT OUT

#

sad

fast trench
#

PING ME WITH ANY POSSIBLE IDEAS
is there a way to get the error to print out just the line\character number, instead of the entire thing? js Cannot read property 'prefix' of undefined at Client.<anonymous> (C:\wildcat\src\wildcat.js:68:54) at processTicksAndRejections (internal/process/task_queues.js:93:5) I found a way to get just the error itself but not the file/line/character

carmine summit
#

uh help

#

how do i delete a message by id?

fluid basin
#

fetch the message and then delete it

carmine summit
#

Here is the final code. Its goddamn messy but who cares, I'm not gonna touch it again anyways

if (command == 'sticky') {
    if (!message.member.hasPermission('ADMINISTRATOR', {
        checkAdmin: false,
        checkOwner: false
      })) return message.channel.send('You don\' have permission to run this command.')
    if (!args.length) return message.channel.send(`Usage: \`${prefix}sticky <message>\``)
    if (args[0] == 'off') {
      db.delete(message.channel.id)
      message.channel.send(`Sticky has been turned off`)
      return
    }
    let data = args.slice(0).join(' ')
    let m = await message.channel.send(data)
    db.set(`${m.channel.id}`, `${data},${m.id}`)
  }
  if (db.get(message.channel.id) && !message.content.startsWith(`${prefix}sticky`)) {
    console.log(db.get(message.channel.id))
    let id = db.get(message.channel.id).split(',')[1]
    client.channels.cache.get(message.channel.id).messages.fetch(id).then(message => message.delete())
    let oldID = await message.channel.send(db.get(message.channel.id).split(',')[0])
    db.set(message.channel.id, `${db.get(message.channel.id).split(',')[0]},${oldID.id}`)
  }
#

ps: can someone clean that up for me plz?

obtuse niche
#

Tf

earnest phoenix
#

.....

#

Jeeus

ionic shard
#

dafuq this channel is for 'help'

golden condor
#

@carmine summit use vscode autoformatter

delicate shore
#

{
bot: '716985864512864328',
user: '699849763365060608',
type: 'upvote',
query: undefined,
isWeekend: false
}

TypeError: vote.user.send is not a function

#

I got this error for first time

#

From many days it's working perfectly

cinder patio
#

"user" is a string, so I am not sure how it worked correctly before

earnest phoenix
#

@delicate shore maybe you did User.send() of discord.js NOT of top.gg API

modern sphinx
#

yo

#

i think i need some help on makin a bot

#

trying to have it reply to a message (without prefix) with a ping

#

i already got the ping part

#

but how do you reply to a message without a prefix?

#

(first time dev)

carmine summit
#

help

#

if the array has no content, will the array.length be 0 or -1???

dusky marsh
#

0 in js

#

not sure why it would be -1

#

thatd be super redundant

modern sphinx
#

how to make bot reply to a message without prefix?

misty sigil
#

{
bot: '716985864512864328',
user: '699849763365060608',
type: 'upvote',
query: undefined,
isWeekend: false
}

TypeError: vote.user.send is not a function
@delicate shore vote isn’t a user object

#

it’s a user ID

#

what even made you think that’d work

hazy sparrow
#

Can i make my own server to host my bot 24/7?

delicate shore
#

Oh

#

but

misty sigil
#

in theory yes but it’ll probably be quite expensive

delicate shore
#

It worked 2 days back

hazy sparrow
#

kk

misty sigil
#

me thinks you just didn’t get any votes

restive pebble
slender thistle
#

Me thinks you are drunk

crystal mountain
#

how do i split msg inside code block

slender thistle
#

split by what

crystal mountain
#

{ split: true }

#

my msg contenttext is more than 2000

#

everytime i use that

#

it prints my message without code blocks

#

``'` this gets printed like it's normal text not code block

pale vessel
#

did you use { split: true, code: "js" }

crystal mountain
#

lemme try

pale vessel
#

and don't add any ` in the text

#

discord.js adds it for you

crystal mountain
#

this will add clode block

#

for the whole msg like this?

pale vessel
#

yes

crystal mountain
#

okey will try it

#

IT worked!

#

thanks bro 🙂

opal plank
#

@slender thistle Did u call me?

slender thistle
opal plank
#

lol, cannot believe its another drunk night coding more cache related tasks

modern sphinx
#

how to make bot reply to a message without prefix?

#

like this

#

"something something word that triggers bot something something"

pale vessel
#

check for those words before defining prefixes and such

slender thistle
#

message.content.includes("lalala")

#

unless that's not how you use .includes GWahreeGrarr

pale vessel
#

nah that code is poggers

silver lintel
#

if i have a string like "hello world", how would i remove the space so it becomes "helloworld"

vernal root
#

discord bot list

pale vessel
#

if i have a string like "hello world", how would i remove the space so it becomes "helloworld"
@silver lintel you can use regex (or string.split("").filter(x => x != " ").join("") mmLol )

#

if you use regex, you can use string.replace(/\s+/g, ""), which removes spaces and newlines

silver lintel
#

how to capitlize a letter? like "hello", capitilize 3 so it becomes "helLo"

hollow remnant
#

write it in Capital

#

😐

pale vessel
#

you can split the text and uppercase the letter via index

hollow remnant
#

¯\_(ツ)_/¯

pale vessel
#

for example js const text = "hello world".split(""); text[3] = text[3].toUpperCase(); text.join(""); // "helLo world"

silver lintel
#

oooo

#

thanks

crystal depot
#

halp

#

for some rsn

wet dove
#

Check errors

#

in console

woeful pike
wet dove
#

Oh yeah ^

crystal depot
#

C:\Users\Ryan\Desktop\Bot\node_modules\discord.js\src\structures\MessageEmbed.js:432
if (!value) throw new RangeError('EMBED_FIELD_VALUE');
^

RangeError [EMBED_FIELD_VALUE]: MessageEmbed field values may not be empty.
at Function.normalizeField (C:\Users\Ryan\Desktop\Bot\node_modules\discord.js\src\structures\MessageEmbed.js:432:23)
at C:\Users\Ryan\Desktop\Bot\node_modules\discord.js\src\structures\MessageEmbed.js:452:14
at Array.map (<anonymous>)
at Function.normalizeFields (C:\Users\Ryan\Desktop\Bot\node_modules\discord.js\src\structures\MessageEmbed.js:451:8)
at MessageEmbed.addFields (C:\Users\Ryan\Desktop\Bot\node_modules\discord.js\src\structures\MessageEmbed.js:266:42)
at MessageEmbed.addField (C:\Users\Ryan\Desktop\Bot\node_modules\discord.js\src\structures\MessageEmbed.js:257:17)
at Object.execute (C:\Users\Ryan\Desktop\Bot\commands\kick.js:81:10)
at Client.<anonymous> (C:\Users\Ryan\Desktop\Bot\main.js:67:37)
at Client.emit (events.js:315:20)
at MessageCreateAction.handle (C:\Users\Ryan\Desktop\Bot\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14) {
[Symbol(code)]: 'EMBED_FIELD_VALUE'
}

#

oh

#

k ill use haste next time

summer torrent
#

can you read error

#

"MessageEmbed field values may not be empty."

crystal depot
#

yh

#

i acnt find any

summer torrent
#

kick.js 81th line

crystal depot
#

k

#

``
const kickembed = new Discord.MessageEmbed()
.setAuthor('Kick Success')
.setColor('#e098b6')
.addField('User Kicked:', member)
.addField('Kicked by:', message.author)
.addField('Reason:', reason)
.setFooter('Time kicked')
.setTimestamp()

    message.channel.send(kickembed);

}``
#

idk whats wrong

earnest phoenix
#

@crystal depot are you sure message.author , member and reason aren't falsy values?

zenith terrace
soft eagle
#

nvm i figured it out on the docs

earnest phoenix
#

nvm i figured it out on the docs
@soft eagle imagine asking your question in #topgg-api then coming over to #development to say you fixed it KEK

soft eagle
#

well that issue isnt fixed yet

#

should be 210 with 2 shards

#

for some reason its not posting

earnest phoenix
soft eagle
#

there we go now its working

#

ig there was a lag spike

earnest phoenix
#

hi i have a question

#

this code not working another server

#

can u help pls?

#

i dont know why not working another server

#

my message deleted?

drowsy sentinel
crystal depot
#

lol

earnest phoenix
#

why my code not working

#

@crystal depot hey

#

can u help?

crystal depot
#

wot

carmine magnet
crystal depot
#

no

#

im trying to fix

#

my own problemso

earnest phoenix
#

@carmine magnet helppp

#

why my code not working

carmine magnet
#

Whats your error

earnest phoenix
#

only 1 server working

#

if i am create another server and create roles

#

this code not working

carmine magnet
#

Sorry i dont use quick.db but jSoN

#

I cant help u

earnest phoenix
#

ok. 😦

carmine magnet
#

Do you understand ur code ?

earnest phoenix
#

yes

carmine magnet
#

Ok so you can fix it alone

earnest phoenix
#

my problem is

#

id

#

role id

#

my role cant same id another server

#

how to fix it

zenith terrace
#

If you made the command a role specific only command by ID then you cannot use it in another server

earnest phoenix
#

@zenith terrace uhm ok

#

how to direcctly rol name

#

role*

#

import code

#

i wanna to

#

not id

#

how to import role name

#

@earnest phoenix what the fuck are you trying to say

#

@earnest phoenix i say to

#

this code how to fix it

#

i wanna uninstall id

#

and i wanna use names

#

a example

#

491749174917494 example id

#

your English seems bad

#

@earnest phoenix yes

#

can you speak another language?

#

ok

#

Şi

marsh patrol
#

how can i solve my bot lagging so much

earnest phoenix
#

@earnest phoenix how to change role id to role name in discord.js

#

selamlar botum kayıt botu. şimdi kayıt olması için rol id lerini yazdım fakat başka serverda çalışmıyor. ben id yerine isim ile nasıl değiştirebilirim??

Kod: https://hastebin.com/cecoxejuda.js

opal plank
#

@earnest phoenix english only here

earnest phoenix
#

what the fuck

#

i said man

#

this person said to all langues allowed here

#

@scarlet dragon

#

what the hell bro

scarlet dragon
#

I dont say this :D

#

Lol

earnest phoenix
#

ha?

scarlet dragon
#

Are you sure you read correctly?

earnest phoenix
#

@earnest phoenix how to change role id to role name in discord.js
@earnest phoenix you can't convert an ID to a role name KEK

#

you can search and find which role matches the name

open rune
#

smplapslmqpazqazpmq? <- my language

earnest phoenix
open rune
#

Ads

#

jk

obtuse niche
#

@earnest phoenix what the fuck are you trying to say
Hahah thinking the same thing

#

@earnest phoenix best thing is to learn js first before making a disc bot

earnest phoenix
#

@earnest phoenix best thing is to learn js first before making a disc bot
@obtuse niche IT IS A FUCKING NECESSITY

obtuse niche
earnest phoenix
#

Of course

#

bot dev in 2020

  • “i should make a bot”
  • “what language should i pick? hmmmm. Either python, c#, c, java, go, kotlin or the language everyone told me to ignore, node.js. Ima go with node.js”
  • “I dont get this, lets ask on discord.gg/dbl how to make a bot”
  • “Man they tell me to learn node.js, but idk how it works. rude.”
  • depression
obtuse niche
#

AHHAHAH

#

exactly like that

#

I prefer python 😊

slender thistle
#

I learned Python by making a Discord bot

earnest phoenix
#

i learned js by making a bot

obtuse niche
#

Well python is a pretty easy language so its possible to do that

slender thistle
#

So is JS

earnest phoenix
#

i learned c fully by making a discord bot

#

how

obtuse niche
#

Nice

fierce wolf
#

hi i'm using discord.js and idk why is there an error and idk how to fix it if u do know please ping me!

elfin adder
#

I'm doing it on the phone and bot desinger for discord Can someone who knows me if they need codes to turn on music and come to the audio room in the app

opal plank
#

@fierce wolf it would help if we could actually SEE what comes before the split mmulu

earnest phoenix
#

what the fuck

opal plank
#

ads?

earnest phoenix
#

no

#

a very long message

opal plank
#

split

#

¯_(ツ)_/¯

earnest phoenix
#

fuckkkkkkk you luca

zenith terrace
#

. S p l i t

#
. s p l i t ( " " )```
open rune
#

. S p i t

opal plank
#

wait what?

#

why has my message been deleted?

zenith terrace
#

Yes

earnest phoenix
#

@Hylke#5900 Bro

#

I wanna say

#

Look this code

#

Yo're see ID's

#

I wanna delete ID's

#

And place Role Name

#

How I do It?

#

This ID

#

I wanna delete ID's

#

And place Role Names

#

Can u understand now?

tight plinth
#

@earnest phoenix learn js

#

copy paste is bad

earnest phoenix
#

Bro I WRITED

#

With my brother

tight plinth
#

try without him

#

without any example

earnest phoenix
#

He is professional but i croock

tight plinth
#

well

earnest phoenix
#

@earnest phoenix i like how your excuse is "I suck at coding", Go learn JS.

#

OMG

#

I fix it

#

@earnest phoenix thanks

carmine summit
#

i have all my commands, listed in an array

#

how can i convert my array into a help command

tight plinth
#

show code

carmine summit
#

```let skyblock = [' ah', ' bazaar', ' ign', ' price', ' stats', ' timers', ' update', ' uuid']
let fun = [' meme', ' say']
let moderation = [' ban', ' kick']
let util = [' clear', ' ping', ' setprefix', ' supportserver']
let help = **Skyblock**\n${skyblock}\n**Fun**\n${fun}\n**Moderation**\n${moderation}\n**Util**\n${util}

tight plinth
#

you don't need to

carmine summit
#

so im just gonna skyblock = ['command', 'command', 'command']

tight plinth
#

just do ${arrayName.join(", ")}

carmine summit
#

?

#

this is output btw

#

@tight plinth

tight plinth
#

that's what u want, don't you?

ionic shard
#

dont push command names holy

#

use readdirSync read all files from commands folder

carmine summit
#

hm

ionic shard
#

put em in array

#

and push it

#

boom u never have to update the file ever again

carmine summit
#

i dont have advanced command handler

#

keeps saying that client is not defined

#

so i fucked my advance command handler

ionic shard
#

command.execute(client, message, args)

#

¯_(ツ)_/¯

carmine summit
#

hm?

#

alright

#

how do i make functions.js

ionic shard
#

what does functions file do

carmine summit
#

functions inside them

#

so i dont have to copy past

ionic shard
opal plank
#

eeew

#

require() and vars

#

use ES6 import/export sytanx

carmine summit
#

HOw

opal plank
#

use named exports for your functions or simply export all default

carmine summit
#

and how

#

and how

opal plank
#

By reading the documentation on how import/export works

carmine summit
#

im here because i read the docs and i didnt understand

ionic shard
#

eeew
@opal plank why not

carmine summit
#

is there a way to module.exports all

opal plank
#

cuz you will have to create a big ass object to be passed around, also vars is just yourself setting up for a shot in the foot

#

named exports

#

exports is technically all

carmine summit
#

hm?

#

module.exports ={exports}

#

??

opal plank
#

export function a() {}
export function b() {}

better than

module.exports = {
a: a() {},
b: b() {},
}

carmine summit
#

so remove module.exports

ionic shard
#

function.js
export function myFunc() {}

the file
import { myFunc } from './function.js';

carmine summit
#

and put export before all of my functiosn

#

??

opal plank
#

instead of that znix

#

used named imports

#

import * as myFunctions from './function.js'

ionic shard
#
import {User} from ...    
opal plank
#

what is that suppose to be...?

ionic shard
#

its from the docs

opal plank
#

im aware

#

though why mention it?

ionic shard
#

ur talking about that right?

opal plank
#

no

#

first {} is importing a property/class

#

so {User} is importing the exported class User

#

the way im explaining is importing all

#

which uses * as its syntax

carmine summit
#
export function (time) {
    let date = new Date(time);
    let hr = date.getHours();
    let min = date.getMinutes();
    let sec = date.getSeconds();
    hr = (hr < 10) ? "0" + hr : hr;
    min = (min < 10) ? "0" + min : min;
    sec = (sec < 10) ? "0" + sec : sec;
    return hr + ':' + min + ":" + sec;
}
#

like this>

opal plank
#

**import ***(all) as(alias) functions from(file) './filename.ts'

ionic shard
#

meh i like importing what i need

opal plank
#

import everything and use what is needed

#

functions.a()

#

or functions.b()

ionic shard
#

so i have like 100 functions and i only need 1

#

would it slow it down?

carmine summit
#

const client = new Discord.client();TypeError: Discord.client() is not a constructor

ionic shard
#

C

carmine summit
#

im an edot

opal plank
#

rather than

import {a, b} from '/file.js'

you may very well do

import * as Functions from './file.ts'
Functions.a()
Functions.b()

The one good side of passing all is that you can dynamically provide all functions in your code.
Say on your handler, you pass execute(message, Functions)

Boom, now all your files have access to all functions without you having to declare them individually

carmine summit
#

what

ionic shard
#

oh i see what u mean

carmine summit
#

how

#

wtf

#

why lag

#

no

#

my wifi fast

#

how

#

rather than

import {a, b} from '/file.js'

you may very well do

import * as Functions from './file.ts'
Functions.a()
Functions.b()

The one good side of passing all is that you can dynamically provide all functions in your code.
Say on your handler, you pass execute(message, Functions)

Boom, now all your files have access to all functions without you having to declare them individually
@opal plank how

opal plank
#

Learning Js

carmine summit
#

how

opal plank
#

By reading the documentation

#

like everyone else

carmine summit
#

where

earnest phoenix
#

if (message.member.roles.find(role => role.name === 'role')

opal plank
earnest phoenix
#

this code always error

#

how to fix it?

#

my thlink its true

carmine summit
#

@earnest phoenix whats the error

earnest phoenix
#

pls wait

#

`const Discord = require('discord.js');

exports.run = (client, message, params) => {

if (message.member.roles.find(role => role.name === 'role'));

    message.channel.send('🔢 **Creating all roles for Epix Bot...**');
    
   message.guild.createRole({ name: '💮 | Register Admin', position: 50, permissions: ['MANAGE_ROLES'], color: 'GREEN'})
  
  message.guild.createRole({ name: '🌃 | Boy', position: 20,  color: 'BLUE'})
  
  message.guild.createRole({ name: '🌌 | Girl', position: 30, color: 'PINK'})

  message.guild.createRole({ name: '🥚 | Crock', position: 30, color: 'LIGHT_BLUE'})

 message.guild.deleteRole({ name: 'role'})

} else {
    message.reply('❌ **Please first crate role with `role` name.**');
}

};

exports.conf = {
enabled: true,
guildOnly: false,
aliases: [],
permLevel: 3
};

exports.help = {
name: 'role-init',
description: 'All roles initsall',
usage: 'role-init'
};`

opal plank
#

omg

earnest phoenix
#

this code always error

#

my think its true

tight plinth
#

@earnest phoenix don't ; at the end of the if lol

earnest phoenix
#

hm wait

tight plinth
#

and LEARN JS

opal plank
#

also module.exports prob good case use in here

earnest phoenix
#

error

#

wait

#

} else {
^^^^
SyntaxError: Unexpected token else

carmine summit
#

how do I export my functions?

tight plinth
#

@earnest phoenix learn js

earnest phoenix
#

@tight plinth I KNOW IT

tight plinth
#

NO

earnest phoenix
#

@earnest phoenix you dont know it

carmine summit
#

if ();

earnest phoenix
#

are u serious

opal plank
#

Dude, for real, this isnt google. We here to help but you should really stop coming here as if this is a search engine. Do your research, if you get stuck, come here to ask for help. @carmine summit

tight plinth
#

yes

#

you don't know js

carmine summit
#

im stuck

#

please help

tight plinth
#

smh

opal plank
#

you arent, i gave you the instructions you needed

earnest phoenix
#

@carmine summit what do you want bro

#

Alrught

#

FIRST of AL

#

ALL*

opal plank
#

you didnt even bother looking for documentation on import/export es6

earnest phoenix
#

@earnest phoenix @carmine summit go learn JS or smthing.

carmine summit
#

send me da link

opal plank
#

you just coming here expecting spoonfed code

carmine summit
#

ima read

opal plank
#

Stop being a vampire dude

earnest phoenix
#

Second of all,

you just coming here expecting spoonfed code

opal plank
#

thats exactly what i said

#

google it

#

dont treat this channel as your search engine

tight plinth
#

^

carmine summit
#

Hey google, can I have the link for the docs?

earnest phoenix
#

@carmine summit no

carmine summit
#

bad google

earnest phoenix
#

Go fucking search yourself

opal plank
earnest phoenix
#

You dumb fuck

tight plinth
#

@split hazel we need help

earnest phoenix
#

Yoy treat us like we are your slave

opal plank
#

getting too heated and offtopic

tight plinth
#

@earnest phoenix calm down bud

carmine summit
#

what is es6??

earnest phoenix
#

@carmine summit search

#

Google

carmine summit
#

I searched what is es6 then google presented me with results on how to use es6

#

how convinient

tight plinth
#

can't u just fucking READ what you find smh

earnest phoenix
#

Hes just dumb

opal plank
#

Ngl a couple minutes ago i forgot why i had them blocked. Funnily enough, i just remembered mmulu

earnest phoenix
#

I gonna block him too

#

I have enough with this guy

#

Treated us like a slave, awaiting spoonfeeding.

tight plinth
#

same ngl

#

gonna block the two guys

earnest phoenix
#

@tight plinth another one is fine

#

Hes new

tight plinth
#

he's acting like a dick

#

so

carmine summit
#

Do I look like im experienced?

#

holy cow

earnest phoenix
#

i cant see you

silver lintel
#
const roles = message.guild.roles.cache.sort((a, b) => b.position - a.position).map(role => role.toString());

    let roleString = roles.join(", ")
#

if there are moe than 10 roles, i want to cut it, how

earnest phoenix
#

why not take the first 10 roles instead

silver lintel
#

how

#

wait

#

roles.length

#

right?

opal plank
#

fuck there was a thing

#

wlel yeah you can use that

#

but there was a syntax special for cutting stuff

#

fuuuck i cant remember

#

it was some fancy af shit

silver lintel
#

but how do i only get the top 10 roles?

earnest phoenix
#

slice

opal plank
#

not slice

#

it wasnt part of anything

earnest phoenix
#

slice is used to get n elements from an array

opal plank
#

it wasnt break

#

there was a handy thing for this but im not finding it

#

AH YEAH

#

it WAS break

#

for push break

#

slice works nicely as well

earnest phoenix
#

for is going to be faster

#

but yeah

opal plank
#

i remember needing something like that for something with an odd shape

#

for(let a in thing) {
if(size>=max) break;
//insert element here
}

#

i believe it was something along those lines iirc

#

This is infuriating not gonna lie

balmy anchor
#

Hi, I have a question
How do I get a Channel in a guild?

opal plank
balmy anchor
#

let mainChannel = message.guild.channels.cache.find("name", "talking 1#")
I tried this.

opal plank
#

@balmy anchor Which lang? Which lib?

balmy anchor
#

JS

opal plank
#

d.js i see

balmy anchor
#

yep

opal plank
#

find takes a function

#

or filter

#

actually

#

lemme double check

#

i think find is a filter()

balmy anchor
#

ok

#

so what should i do?

opal plank
#

knew it

#

it takes a function

#

just like filter

#

i should've thrown w3 tbh, its easier to read when you new

balmy anchor
#

I used

let mainChannel = message.member.guild.channels.cache.find(c => c.name === "talking 1#");

And it worked thank you very much!

opal plank
balmy anchor
earnest phoenix
#

Do I look like im experienced?
@carmine summit yes you do like you are experienced in being a dick

carmine summit
#

require is not defined

earnest phoenix
#

@earnest phoenix damn that hurt hard

carmine summit
earnest phoenix
#

sarcasm right

#

@carmine summit GOD IF WE'RE UNWILLING TO HELP JUST GOTO SOME PLACE LIKE PLEXIDEV OT STACKOVERFLOW

#

@earnest phoenix bud calm down, just block him

#

ok

#

done

#

Nice.

#

i don't block people much because people think i have a very low tolerance level

carmine summit
#

ppl damn mean

earnest phoenix
#

ppl damn mean
@carmine summit welcome to the programming community where we don't treat new people as babies we treat them the way everyone deserves

umbral zealot
#

geeze buddy are you even in a nodejs app

earnest phoenix
#

he is

#

said smth aboit es6 shit

umbral zealot
#

how the hell is require not defined then

earnest phoenix
#

maybe his compiler is drunk

#

require should be an instance of NodeRequire

#

Or hes on older ES

#

maybe his compiler is drunk
@earnest phoenix javascript needs no compiler...does it?

umbral zealot
#

It's a JIT compiler.

sudden geyser
#

interpreted/jit

umbral zealot
#

aka "compilers to memory" if you want. also call an interpreter

#

@carmine summit I don't know what you did to poor ol' nodejs to make it not accept require() but you dun fucked up massively.

sudden geyser
#

How are you running the app CWickks

carmine magnet
#

Try to update ur nodejs

thin turret
#

Reinstall the modules

sudden geyser
#

There are cases where require and other stuff could be gone

earnest phoenix
#

@thin turret wont hellp lol

umbral zealot
#

how do you even run a node app without nodejs or with nodejs that doesn't have a require() 😕

carmine summit
#

ok

#

ill explain

#

pls no block

#

so import convert from '../functions.js' results a SyntaxError: Cannot use import statement outside module

#

then i searchd on stackoverflow

#

how to deal with it

umbral zealot
#

why are you trying to use import

carmine summit
#

functions

umbral zealot
#

you're in nodejs, nodejs uses require()

carmine summit
#

-_-

#

so i went in to type "type": "modules" in package.json i got from stackoveflow

umbral zealot
#

so you want to use ESM and have to change every import/export in your app?

carmine summit
#

that results to require being undefined

#

so you want to use ESM and have to change every import/export in your app?
?

earnest phoenix
#

Hi

#

Where can I get confirmation if my bot is approved?

umbral zealot
#

@earnest phoenix it'll appear in #logs . the wait time is over 6 weeks (almost 2 months)

carmine summit
#

Where can I get confirmation if my bot is approved?
@earnest phoenix DM by Luca

umbral zealot
#

@carmine summit just revert what you did, go back to using core nodejs without ESM, and since your google-fu sucks ass, look at https://js.evie.dev/modules

earnest phoenix
#

Ok

carmine summit
#

Finally 😩

#

thanks @umbral zealot

umbral zealot
#

You really should seriously consider going through a javascript/nodejs course though >.<

silver lintel
#

How to tell if a user copied and pasted a message like Dankmemer does

umbral zealot
#

Probably it has a list of copy/pastas, because there's absolutely no way to know where the text of a message comes from or if it was copied.

carmine summit
#

i just didnt know that that code will ruin my app

#

exports.convert = convert;

#

how do i export multiple by curly braces

umbral zealot
#

I dunno man maybe if you actually read shit instead of skimming it and then asking questions that have been answered, people would actually want to help you more

obtuse niche
#

True

peak osprey
sacred cypress
#

Because you have a semicolon ; on line 118.

thin turret
#

You have a semicolon

#

Just gotta look sometimes

peak osprey
#

lol i just say it

ripe grotto
#

Hey there
I would like to know if there's a way to find a category by a part of his name
For example:
Command = -select "Texts"

And the real category's name is "Channels Texts", but it includes "Texts", so the bot find it.

faint prism
#

@ripe grotto So, you want to find a part of text within a string?

ripe grotto
#

Yes :x

faint prism
ripe grotto
#

Thanks

earnest phoenix
#

whoever ghost pinged me is gay

astral matrix
#

how to fix

sand condor
#

install the chalk module ?

astral matrix
#

how

#

im new

#

i dont know it

sand condor
#

npm i chalk

#

if you don't know how to install packages with npm i suggest your reading some guides or docs

astral matrix
#

im dowloading now

#

i have so many not dowloaded modules how can i download all

#

@sand condor

sand condor
#

pretty sure it's just npm i

cinder patio
#

just do npm i

pale vessel
#

if you have a package.json file with all the modules you can run npm i

thick gull
#

wait so you used a module without installing it

astral matrix
#

İM NEW

thick gull
#

fair enough goodbye

earnest phoenix
#

hey new, im constanin. I recommend learning the most basic node.js functions before downloading a discord bot template @astral matrix

#

just a little suggestion of mine.

astral matrix
#

-.-

earnest phoenix
#

no im serious

#

if you dont know how to fix a "module missing" error, you need help

pale vessel
#

are you though

earnest phoenix
#

@thick gull why u adding reactions and removing them instantly lol

carmine summit
#
//index.js
const functions = require('../functions.js')
var uptime = functions.convert(client.uptime)
//functions.js
module.exports = function convert(time) {
    let date = new Date(time);
    let hr = date.getHours();
    let min = date.getMinutes();
    let sec = date.getSeconds();
    hr = (hr < 10) ? "0" + hr : hr;
    min = (min < 10) ? "0" + min : min;
    sec = (sec < 10) ? "0" + sec : sec;
    return hr + ':' + min + ":" + sec;
}
```why no work???
thick gull
#

error?

carmine summit
#

functions.convert is not a function

cinder patio
#

Your whole module.exports is just one function

#

you need to module.convert

earnest phoenix
#

Oh yeah, your module.exports is a function

#

remove .convert

#

just functions(some timestamp)

carmine summit
#

ok

#

ok

#

what if i have multiple functions?

cinder patio
#

That won't fix it either. module.exports is still going to be a function

earnest phoenix
#

but he will call that function, then

cinder patio
#
exports.functionName = function() {

}```
carmine summit
#

hm

pale vessel
#

you should just have an object of functions

earnest phoenix
#

what if i have multiple functions?
@carmine summit you can do it like this: ```js
module.exports.functionName = function() {return "a"}
module.exports.functionName2 = function() {return "b"}

#

functions.functionName() will return "a", functions.functionName2() will return "b"

carmine summit
#

oh ok

astral matrix
cinder patio
#

I don't think module.exports is an object by default

pale vessel
#

your code has syntax error

earnest phoenix
#

syntax error @astral matrix

pale vessel
#

try looking

earnest phoenix
#

aka code dumb

astral matrix
#

then

#

how to fix it bruh

pale vessel
#

look for syntax error

#

you're missing a parenthesis

carmine summit
#

how to fix it bruh
@astral matrix revert it and try not to copy paste code if you dont know what oyu are doing

earnest phoenix
#

^

#

learn js before copy pasting a discord bot template

astral matrix
#

Can you tell like you would tell a child

#

bruh

carmine summit
#

im 14 yr/ old

astral matrix
#

im 17

carmine summit
#

😄

earnest phoenix
#

hey little farchioN, here are some steps how YOU can become a bot dev

  • dont use a template from github
  • learn the language you want to make a bot in
  • dont ask for the dumbest questions in the dev channel
  • succeed
astral matrix
#

oh

#

im so lazy to learn js

sacred cypress
#

dont ask for the dumbest questions in the dev channel
No question is a dumb question, but I would suggest googling your question first before resorting to discord!

earnest phoenix
#

"how to fix 'module missing' error" is a dumb question

sacred cypress
#

I wouldn't say so, he's new to this.

astral matrix
#

DUDE STOP BEING IDIOT I SAID YOU I DONT KNOW ANYTHING

pale vessel
#

sigh

sacred cypress
#

No need to scream

#

D:

carmine summit
#

send me your code

#

ill find the error

inner wharf
#

Anyone know of a good way to streamline message deletion in discord.py?
I'm currently looping through a list and deleting them that way but there appears to be some lag (not sure if it is a Discord thing or not.)
Code I'm currently using:

messages = []
        if count != 0:
            messages = await ctx.channel.history(limit=count + 1).flatten()
        else:
            messages = await ctx.channel.history().flatten()

        for message in messages:
            await message.delete()

Like I said, this works, but pretty slowly. I've seen other bots do something like this in a matter of seconds, but I've got some lag. No errors or anything, just wondering if I can make it faster.

astral matrix
#

send me your code
@carmine summit code?

fickle arch
#

Just make a command that shown random dogs pic, work well but shown this, I think it's okay 🤔

pale vessel
#

isn't there an endpoint to bulk delete messages?

sacred cypress
#

@inner wharf There is a bulk delete function, only works if messages aren't older then 14 days though.

inner wharf
#

Hmm ok I'll go look in the docs for that thanks

sacred cypress
carmine summit
#

@inner wharf There is a bulk delete function, only works if messages aren't older then 14 days though.
@sacred cypress only exception if you have the message id ??

sacred cypress
#

If messages are older then 14 days, you need to manually fetch x amount of messages and map through them and delete them with a separate API call per message, if that is what you're asking... ?

pale vessel
#

and that could lead to potential api abuse, i wouldn't recommend doing that

earnest phoenix
#

^

faint prism
#

token

inner wharf
#

Ah got it, its delete_messages(), must've completely missed that the first time around. Thanks

faint prism
#

leak

earnest phoenix
#

TOKEN LEAK

#

ALERT

open rune
#

leak

fickle arch
#

LEAK

carmine summit
#

wtf

fickle arch
#

NANI

earnest phoenix
#

How i get moderator?

faint prism
#

lol not by asking

fickle arch
#

By being moderator 😆

earnest phoenix
#

.

carmine summit
#

now

#

now

open rune
#

How i get moderator?
@earnest phoenix /plsmakememoderator

carmine summit
#

now

sacred cypress
#

@earnest phoenix Go to the discord development panel and request a new token.

fickle arch
#

/op me 😆

carmine summit
pale vessel
#

can't bots read this channel?

fickle arch
#

wdym

pale vessel
#

if so there's bots that post tokens to github

sacred cypress
#

Spamming won't speed up the process @carmine summit

fickle arch
#

like token snipers 🤔

carmine summit
#

ok

pale vessel
#

oof

carmine summit
#

just sending the link

sacred cypress
#

Appreciated MochaSalute

carmine summit
#

is it recommended to have separate folders for separate command categories?

#

or just stack them up in /commands

faint prism
#

up to you

sacred cypress
#

Categorizing is always a good idea!

pale vessel
#

how about one file with all commands

#

amazing

faint prism
#

I have a giant business logic class, but breaking it down per command is more organized

tight plinth
#

how about one file with all commands
@pale vessel so you've chosen hell...

carmine summit
#

how about one file with all commands
@pale vessel yes. and it is over 1.5k lines

#

i rewrote and became 400

pale vessel
#

pog

#

mine got around 1.5k too before i switched

carmine summit
#

and that is only 1 month of js experience

#

lol

open rune
#

i rewrote and became 400
@carmine summit you'll not get world record

carmine summit
#

when i first discorvered the badge. i went to learn straight to bot development

#

with no knowledge about js at all

earnest phoenix
#

I don’t find 😦

faint prism
#

A lot of people do that, unfortunately

#

They stopped doing the badge for that reason

carmine summit
#

but i learn by experience 👀

tight plinth
#

yezh

faint prism
#

I mean, learning to code is great

tight plinth
#

personally I wanted to be 1 coder since km like 6 or 7

#

then I discovered that py is shit

faint prism
#

I was writing Windows batch scripts since elementry

tight plinth
#

then I discovered js

#

last year

carmine summit
#

im 14, am i too early for learning javascript??

tight plinth
#

no

faint prism
#

No

tight plinth
#

age dont matter

inner wharf
#

never to early

carmine summit
#

uwu

sacred cypress
#

Man just said uwu.

carmine summit
#

first bot ^

tight plinth
#

@sacred cypress uwu

sacred cypress
faint prism
#

My programming language timeline:

High: Bourne-again shell script
College: C#, Java, Python, JS, SQL```
inner wharf
#

I spent an hour yesterday trying to figure out how to interpret java script timestamps into python datetime just to realize that I could use the discord created_at function and now I'm sad

sacred cypress
#

I don't code, I tickle my keyboard

tight plinth
#

by myself: js, py, html5, c, golang
thx to school: sql

earnest phoenix
#

Anyone able to join VC and let me screenshare my code, I legit don't understand what's wrong with it

#

JavaScript btw

faint prism
#

Forgot about SQL 🙂 ty

open rune
#

@faint prism
My programming language timeline:

Elementary: Pawno
High: Pawno
College: Pawno

;-;

faint prism
#

I wouldn't consider html a prog language.
But golang, interesting!

earnest phoenix
#

Ok

tight plinth
#

I need to improve at go

#

i suck

sand condor
#

@tight plinth wow your school teaches sql?

open rune
#

Go also C

tight plinth
#

yep

carmine summit
#
HIGH: JS, Python, Java(lil)
COLLEGE: IM 14!!!```
sand condor
#

my school will teach the basics of html and css and that's it

#

lucky

faint prism
#

I've got a bit of ASM under my belt. Not enough to include

earnest phoenix
#

x86 assembly pepowot

carmine summit
#

x86 assembly pepowot
@earnest phoenix plz no

inner wharf
#

do you actually know anyone who can program in whitespace

earnest phoenix
#

what the fuck is whitespace

faint prism
#

Well LMC ig. Not really asm at this point! lo

open rune
#

whITEspAcE

earnest phoenix
#

please no

inner wharf
#

exactly what it sounds like constantin

earnest phoenix
#

a programming language DESIGNED OF WHITESPACES

fickle arch
earnest phoenix
#

you cant read shit

carmine summit
#

PLEASE NO

inner wharf
#

I mean, in theory, you could contain an entire white space program inside of a completely different program except for indent dependent like python

faint prism
#

Brainfuck, but it's whitespace characters mmLol

midnight blaze
#

@native canyon O:

carmine summit
#
            }
          }
        }
      }
    }
```is there any way to prevent this? is this bad practice?
sacred cypress
#

You have too many scopes

open rune
#

not so good.

sacred cypress
#

break it down.

open rune
#

yes

carmine summit
#

theyre all an if statement lol

faint prism
#

}}}}}}

sacred cypress
#

Break it up in seperate if statements.

open rune
carmine summit
#

yes i know && and ||

#

but

#

it will cause error

faint prism
#

Do this mmLol

sacred cypress
#

ig ```js

if (!err) {
if (success) {
}
}

// instea do
if (err) {
return
}

#

as example ^

faint prism
#

I love posting this

#
using System                            ;
namespace WhiteSpaceDoesntMatter        {
    public interface IA                 {
        string Prop                     {
            get                         ;}}

    public class A                      :
        IA                              { 
        public string Prop              {
            get                         ; 
            set                         ;}=
            "Test"                      ;}

    public static class ExampleClass    {
        public static void Main         (){
            IA a                        =
                new A                   ();
            Console.WriteLine           (
                a.Prop                  );}}}
thick gull
#

j a v a

faint prism
#

C#, but close

thick gull
#

oh

#

submitting something that looks like that for my java class goodbye

faint prism
#

The naming convention is the difference here

earnest phoenix
#

Can someone please help me via screen share?

faint prism
#

PascalCase, not camelCase

stable eagle
#

message.guild.members.cache.find(u => u.username.toLowerCase() === args.slice(0).join(" ").toLowerCase())

TypeError: Cannot read property 'toLowerCase' of undefined
trying to find a user by name?

thick gull
#

Can someone please help me via screen share?
@earnest phoenix justask

faint prism
#

yeah

pale vessel
#

it's not a user, it's a member. u.user.username

midnight blaze
#

@faint prism is it possible to programm a big application in pascal

carmine summit
#

is 200/20 rule really worth paining for?

#

you know

#

excert pain

faint prism
#

@faint prism is it possible to programm a big application in pascal
@midnight blaze PascalCase? I don't see why not...

carmine summit
#

to smaller the code

midnight blaze
#

no

#

just Pascal

pale vessel
#

WhyNot

faint prism
#

What

carmine summit
#

👀

faint prism
#

oh

carmine summit
#

200lines / 20 functions limitation

faint prism
#

Pascal is an imperative and procedural programming language, designed by Niklaus Wirth as a small, efficient language intended to encourage good programming practices using structured programming and data structuring. It is named in honour of the French mathematician, philosopher and physicist Blaise Pascal.

stable eagle
#

I guess using a guild members name doesn’t display avatar url...

faint prism
#

eehh

midnight blaze
#

it looks terrible

faint prism
#

Probably with api calls ig. Never used it

#

If it even implements net sockets lmao

open rune
#

some1 suggest me logic to make restriction command for roles, so I can restrict some commands only for some roles

carmine summit
#

is using github branches a good practice

#

or it makes things more messier

stable eagle
#

if(!message.author.roles.has(ROLE))

umbral zealot
#

@open rune "if member does not have role, stop the command"

#

¯_(ツ)_/¯

#

@carmine summit github branches are extremely useful when you use them for what they're meant - different development branches that you eventually (probably) merge together.

sacred cypress
#

Every new feature = a new bernch - merge that to dev, PR to master

open rune
#

it's actually like we can choose which role will be restricted for
like: /restrict -command -roles

faint prism
#

I usually keep a production and a dev or feature branch

carmine summit
#
stable eagle
#

```.setAuthor(${user.tag}'s balance, user.displayAvatarURL())
^

TypeError: user.displayAvatarURL is not a function```
This happens for some reason when I put a username in the arguments...

umbral zealot
#

looks like that's not a user object

faint prism
#

Every new feature = a new bernch - merge that to dev, PR to master
@sacred cypress Should I delete the branch after? I have a pipeline run for commits to dev ...

stable eagle
#

const user = message.guild.members.cache.find(u => u.user.username.toLowerCase() === args.slice(0).join(" ").toLowerCase())

#

this is what i have for usernames

sacred cypress
#

Squash and merge to dev, delete branch that contains the new feature. PR to master but never delete the dev branch

faint prism
#

sounds good to me

carmine summit
#

async execute(message, args, client, Discord) {

umbral zealot
#

@stable eagle could be that you spelled the name wrong, or maybe they have a space or a special character in their name, or something? Getting people by username is generally a bad idea anyway. You should provide an ID or a mention instead.

carmine summit
#

^ is this a thing ????

stable eagle
#

@umbral zealot nope, I didnt

umbral zealot
#

well, either way, use the ID.

stable eagle
#

welp, ok

carmine summit
#

yes use the id

umbral zealot
#

you can have 10,000 people named "John", so who is gonna be affected when you use their name?

stable eagle
#

uh

carmine summit
#

client.users.cache.get('id of the guy')

umbral zealot
#

god no

stable eagle
#

@carmine summit its users actually

carmine summit
#

eh?

umbral zealot
#

client.users.get

carmine summit
#

yes

#

yes

stable eagle
#

message.client.users.cache.get(args[0])

umbral zealot
#

yeah that would work.

carmine summit
#

yes

umbral zealot
#

or use mentions.

carmine summit
#

i forgot

#

sorry

#

my brain gai

carmine summit
#

i dont need that grrrr

#

my first bot is in 25 guilds now

#

because i still have to wait 2 or 3 days

faint prism
#

But are any bot farms?

umbral zealot
#

probably 95% if their bot follow the trend. 😛

carmine summit
#

idk

#

bleh

#

lemme check

faint prism
carmine summit
#

send me

#

the

#

code

#

plz

faint prism
#

what part of it do you need...?

#

The idea is right there in the pic

carmine summit
#

yes

pale vessel
#

you need to meth

faint prism
#

yeah, meth

pale vessel
#

yes, meth

faint prism
#

What part exactly are you wanting?

carmine summit
#

I have an admin command for that 🙂
@faint prism this

#

please

faint prism
#

well I mean my bot is open source

carmine summit
#

cool

#

ur github isnt in ur profile

earnest phoenix
#

hi

faint prism
umbral zealot
#

"gimme code nao I can't write anything myself!" MarioFP