#development

1 messages · Page 1781 of 1

lyric mountain
#

what language?

prisma lion
#

py

devout flicker
#

Can I know

lyric mountain
slender thistle
#

discord.utils.get

#

rtfd

prisma lion
slender thistle
#

Read the fucking docs

prisma lion
#

wtf

slender thistle
#

That's what rtfd stands for

prisma lion
#

dude if u want to help or stfu

#

i arld went searching in docs

#

but head hurts

slender thistle
prisma lion
#

ik that

slender thistle
#

Soooo

prisma lion
#

im using the rewrite

slender thistle
#

Me too

lyric mountain
#

well...the link I sent shows the solution

slender thistle
#

Yup

#

It's just that some people here really are inept

prisma lion
sudden geyser
#

All I see is the custom search API, which I don't think is the same as Google search's API

drifting wedge
#

me need help with js dicts

#

how do i make them worky worky

#

like for instance how do i find a value with its key?

#

how do i get all of its keys:

#

google no help

sudden geyser
#

object.key or object[key] to find the value associated with a key

#

Object.keys(object) for all keys in an object

drifting wedge
#

hold on

#

so object is the dict

#

Object is a key word

sudden geyser
#

In JavaScript, everything is an object.

drifting wedge
#

yeah

slender thistle
#

Object.keys(MYDICT)

sudden geyser
#

You can think of objects as a dictionary.

drifting wedge
#

shiv thanks

#

thats what i was askin

#

g

#

alright

#

got it

#

thanks

slender thistle
#

yw but thank Lite instead g

drifting wedge
#

yeah

#

thanks both

#

i tried this stuff

#

it didnt work tho

#

lemme try it again

#

ty gamers

#

if i dont know the key, can i use [0]?

slender thistle
#

Yeah, you can do it like that

drifting wedge
#

alright ty

#

cuz it returns undefined

#

like dict[0]

#

gives undefined

slender thistle
#

Are you trying to get a key 0

drifting wedge
#

wdym

#

im trying to get the first one

slender thistle
#

You mean Object.keys(dict)[0]?

drifting wedge
#

yeah that

#

ty

slender thistle
#

Because you don't get indexes of keys by themselves I believe

#

In Python starting from like 3.6 or 3.8 (I don't fucking remember) dicts are sorted

#

ordered, not sorted

drifting wedge
#

python is way simpler lmao

#

js is cool and all

#

but python mAKES SENSE

lyric mountain
#

I swear I see the inverse

sudden geyser
#

JavaScript makes sense when it makes sense.

slender thistle
#

So never

lyric mountain
#

imo python is only easier for IO stuff

drifting wedge
#

python is way clearer

#

like its just SIMPLER

slender thistle
#

I'm just used to Python's syntax KEKW

drifting wedge
#

id never use js but im only doing it cuz of stupid web dev

sudden geyser
#

Try using tkinter to write a GUI 🙃

slender thistle
#

PyQt5 ty

drifting wedge
#

I DID THIS

#

POGGERTS

slender thistle
#

O POG

drifting wedge
#

its totally in the box lmfao

lyric mountain
#

ah, yes, 25% pink 75% purple

drifting wedge
#

give me other colors and id be happy to use the

#

its like a gradient

#

but id be happy to use other colors but i just dont have any lmfao

lyric mountain
#

I'm just kidding lul

#

that scheme is fine

drifting wedge
#

i have these?

#

these look any better?

lyric mountain
#

ye

#

help help help help help

#

what did you do to that graph?

drifting wedge
#

oh nothing it was manual

#

it was just like a base

#

its not actual data

#

there

#

new colors

silk wadi
lyric mountain
#

you might want to add more contrast between tones tbh

#

because colorblind people

boreal iron
#

because colorblind people

lmao
Don’t forget to add ring tones for “fully” blind people
And speech to command for armless people

#

There you go… a color blind version

prisma lion
#

nvm

zenith terrace
#

@sinful belfry

sinful belfry
#

ty

zenith terrace
#

yw

prisma lion
#

well

humble rock
#

hey, i need help, i'm doing a command that change a module to enable/disable, the command works as well but in when i try to disable that module, there's a problem:

Example:

Command On/Off

*active = true*

if(args[0] === 'off') {
   active = false;
}

Database Changed that true (default) to false

Events

if(active === false) {
  return message.channel.send('hei, it\'s disable!')
} else {
  event stuff...
}

It sent event stuff, but the active in the database was *false*, why?
vivid fulcrum
#

did you confirm that it's actually false

#

also

#

if you plan on having a lot of modules

#

you might want to consider using bit flags so you can store everything in one value

#

instead of a bunch of bools

humble rock
#

i checked out now, it's false

spare badger
#

Is it 'false' or is it actually false

humble rock
#

is it

spare badger
#

Well something is not right then because if that is actually false then the if statement you send would not do 'event stuff'.

humble rock
#

it's actually false

lyric mountain
#

tbf you don't even need to do something === false

spare badger
humble rock
#

it's undefinied -_-

#

ooooh, i did an import error

#

i did an import mistake

#

i imported another schema

spare badger
#

Fixed the issue now?

humble rock
#

let's checking out it

#

it's work

#

i did an import error

proven lantern
#

I figured out how to use dynamodb to solve my problem. just need to change the data structure a bit

split hazel
#

is that even a database

#

how many databases does the world need

zenith terrace
#

yes

split hazel
#

sqlite3, mysql, postgresql, mongodb, couchdb, some 100+ graphql databases, rethinkdb AGH

sudden geyser
#

a lot of them are good for their own things

#

especially SQLite

lyric mountain
#

the first 3 alone would solve all the possible scenarios

#

skip mysql, that aint a db

split hazel
#

bruh

#

you just offended me

#

as a proud mysql user

#

mysql has better performance than mongo will ever achieve

sudden geyser
#

have you done a test

split hazel
#

I have actually ages ago

#

mysql requires you to define types everywhere, mongo doesn't have a schema structure

#

mongo is basically a json database that doesn't corrupt as easily

sudden geyser
#

all I get when I search comparisons is "eh they're the same / mongodb is slightly faster"

lyric mountain
#

all non-relationals are basically json

sudden geyser
#

but all speed tests suck

#

they can all burn

lyric mountain
#

the issue isnt about mysql speed

#

it's about its frequent seizures

split hazel
#

i mean it all completely depends on the hardware and how you set the database up

#

both databases are good for their own purposes

#

and yes all test results are most likely bias due to a misconfiguration or complete bias

#

just to get some article clicks

sudden geyser
#

No, benchmarking is just difficult in general.

lyric mountain
#

the perfect benchmark would be done in 2 identical and isolated systems

split hazel
#

That's also true

lyric mountain
#

even the dust would have to be identical

split hazel
#

throw both machines into space

#

oh also make sure it isn't influenced by gravity

errant hornet
#

How would I send the message to a user just using the user's UserId.
Discord.js 12.5.3

sudden geyser
#

Is it possible to use Deno with plain JavaScript and no TypeScript.

split hazel
#

that is if you're used to nodejs

#

they have a special namespace for things and shit

lyric mountain
round cove
#

Hey guys, trying to install the aegis.cpp lib to do some cpp bot dev. However having issues buildingg the lib because of of the nlohmann json_fwd error, I have nlohmann build, make and isntalled correctly AFAIK so any clues on what it may be would be great.

I am dumb and found the cmake flag for it.

hearty palm
#

i have a kinda problem

#

i'm using

if(message.member.roles.cache.find(r => r.name === "Members")) {
#

but when i change the role name (Members) to anything else

#

there is some roles that the bot can't find

#

but i have the both roles

#

any help?

#

@lyric mountain?

pale vessel
#

Don't ping random members for help.

hearty palm
prime mist
hearty palm
#

not in the server

#

i'm searching for another role

#

that i have on my server

prime mist
#

console.log the entire list of roles before the if statement, to make sure your bot can see it first.

quiet pawn
#

lol

quiet pawn
#

why dont u grab by role id

#

so even if u change role ename you wont have to worry about changing in code

hearty palm
quiet pawn
#

rip

#
if(message.member.roles.cache.find(r => r.id === "role id")) {
#

you tried that?

fierce ether
#
<form action="/app/register/" method="get">
<input type="text" pattern="[^\s]+" id="username" autocomplete="on" placeholder="Username" name="username" required="" value="">
                                    </form>``` this sends a user to `app/register?username=theirusername
#

how can i get their username to show up as an alert?

lyric mountain
#

get the url param

fierce ether
#

how u do that?

hearty palm
lyric mountain
hearty palm
lyric mountain
#

caching prob

hearty palm
lyric mountain
#

you cant?

hearty palm
lyric mountain
#

I mean, you could fetch all the guild roles

#

but you have a limit on how frequently you can do it

#

and that effectively means adding a bunch of roles to memory

hearty palm
lyric mountain
#

the major question is: why would you want to do such thing?

prime mist
#

I'm not sure if this is true or not, so you will need to check.

fresh verge
#

Can a role have the same id as another role in a different server? If so, how can I check if a user has a specific role by id in a specific server?

boreal iron
#

All the snowflakes should be unique

#

Aka. IDs

vivid fulcrum
#

theoretically it's possible

#

in practice it's impossible

fresh verge
#

Also, I have an issue with my quote command where it will quote the message above the attended message, also if the specific message id has anything interfering with it such as a space after the id without saying anything after the space, or if something is in the middle, beginning, or end of the message id it just gives me a big old error.

round cove
#

Installing C++ libs is the only way to grow hairs on yo chest

boreal iron
frozen topaz
drifting wedge
#

im making a modal

#

how do i make it darken the page

#

like except for the modal

#

or blur the page?

lyric mountain
#

Make a black div with 50% opacity

#

And make it appear together with ur modal

drifting wedge
#

yep

#

ty

#

ur a genius

#

but how do i make the modal not have it?

#

like if im adding the class to the body tag

#

how do i make the modal not get it?

lyric mountain
#

Add the modal inside that div

#

Use the div as the actual modal

drifting wedge
#

wdym

lyric mountain
#

Or use absolute position + z index

drifting wedge
#

what div?

lyric mountain
#

The darken div

#

Like, imagine a page-sized modal

drifting wedge
#

ohhhh

#

i see

#

go on

lyric mountain
#

Then create a smaller box inside it to be the actual prompt

drifting wedge
#

i get what u mean

#

but im a little confused

lyric mountain
#

Im bad at explaining

drifting wedge
#

so basically i create a invisible div that is full page size

#

then when u open the modal

#

the div becomes visible

#

and its dark?

lyric mountain
#

Yep

drifting wedge
#

lemme try

#

ty

lyric mountain
#

Thats probably how most sites do it

drifting wedge
#

mhm

#

how can i make the div the entire page

#

i forgot lmao

#

got it

#

tysm @lyric mountain

lyric mountain
#

Yw

drifting wedge
#

also @lyric mountain any ideas on how to make the modal close if i click off it?

lyric mountain
#

Add an onClick event to the dark div

#

Even if you don't want to darken, just have an invisible div below it

#

That way you can listen to "off clicks"

drifting wedge
#

yep

#

tysm

#

for everything

earnest phoenix
#

hi

errant hornet
#

This is my code

#
var server_owner = client.users.cache.find(user => user.id === `${commandrunner}`)
server_owner.send(botaddedEmbed)```
lyric mountain
#

First of all, change var to let

#

Don't use var

#

Never

errant hornet
#

Okay, anything else?

#

The output is server_owner is undefined

lyric mountain
#

Owner is not guaranteed to be cached

#

You need to fetch it

#

Just beware of ratelimits

earnest phoenix
#

I wrote the code it works on the replit moved the content to the git hub, saved it, started Heroku and after writing the command here is the error pops up here is the code:

let config = require('./index.json');
  if (message.author.bot) return;
  if (message.channel.type == "dm") return;

  if (message.content.endsWith("p!botinfo")) {
    var embed = new Discord.MessageEmbed()
      .setTimestamp()
      .setAuthor("Информация о боте")
      .setDescription(`Это только бета-тест этой команды`)
      .setColor("#1E90FF")
      .setTimestamp()
      .addField("• ОЗУ использовано", `${(process.memoryUsage().heapUsed / (1000 * 1000)).toFixed(2)} MB`)
      .addField("• Серверов:", `${client.guilds.cache.size}`)
      .addField("• Ваш пинг:", `${Date.now() - message.createdTimestamp}`)
      .addField("• Префикс:", "m!")
      .addField("• Discord.js:", "12.5.3")
      .addField("• Версия бота:", `${config.version}`, true)
      .addField("• Название бота:", "Flame")
      .addField("Ссылки", `[Пригласить](${config.invite})\n [Дискорд](${config.supportserver})`, true)
      .addField("Разработчики", `Люцифер Денница#8566\n spring#1337\n Ilya#7545\n Nubovik#4541`, true)
      .addField("Команды бота", "`m!help`", true)
      .addField("Статистика команд", "`В процессе реализации.`", true)
      .addField("Префикс", "`m!`", true)

    message.channel.send(embed)
  }
});```
lyric mountain
#

Use ``` code ```

#

Your json has a dangling }

earnest phoenix
lyric mountain
#

No, unless you properly send that code

#

It's literally unreadable on mobile

earnest phoenix
#

And how do I send it to you properly?

pale vessel
#

"dangling }" lmao

lyric mountain
#

Or use a bin like hatebin

earnest phoenix
earnest phoenix
errant hornet
pale vessel
#

It's automatically cached.

#

You can always use fetch(). If it's not in cache, it'll fetch it. Otherwise, it'll use the cache.

errant hornet
#

Okay

earnest phoenix
errant hornet
lyric mountain
#

How did you fetch without the id?

errant hornet
#

wait, not id

errant hornet
lyric mountain
#

Just like you'd do for any other user

errant hornet
lyric mountain
#

You need to open the private channel before

errant hornet
#

Wait, let me try something

lyric mountain
#

Show how you're doing it

errant hornet
#

Yep, got it now. Thank you. Figured out I did something wrong with fetch.

drifting wedge
#

ty

#

@lyric mountain ur genius brain helped me make this

#

in reality the colors are darker

#

but whatever

lyric mountain
#

Oh, nice

drifting wedge
#

and it works

#

!

#

like the outside click

#

or whatever

#

so tyvm

lyric mountain
#

Cool color scheme tbh

drifting wedge
#

these arent the colors tho

#

its darker

#

like its due to the opacity

lyric mountain
#

Still cool

drifting wedge
#

yeah

#

alright tho tysm!

hearty palm
#

just i want the bot to give the message author a role

#

and its not doing that

#

when i use

#
Cannot read property 'add' of undefined
#

thats what i get

proper bolt
#

read the error

ember dragon
#

require('dotenv').config();

const { Client } = require('discord.js');
const client = new Client();
const PREFIX = "~";

client.on('ready', () => {
console.log(${client.user.tag} has logged in.);
});

client.on('message', (message) => {
if (message.author.bot) return;
if (message.content.startsWith(PREFIX)) {
const [CMD_NAME, ...args] = message.content
.trim()
.substring(PREFIX.length)
.split(/\s+/);
if (CMD_NAME === 'kick') {
if (!message.member.hasPermission('KICK_MEMBERS'))
return message.reply('You do not have permissions to use that command!');
if (args.length === 0)
return message.reply('Please provide and ID');
const member = message.guild.members.fetch(args[0]);
if (member) {
member
.kick()
.then((member) => message.channel.send(${member} was kicked.))
.catch((err) => message.channel.send('I can not kick that user :('));
} else {
message.channel.send('That member was not found');
}
}
}
});

client.login(process.env.TOKEN)

#

What did i do wrong here

proper bolt
#

thank you for not saying whats wrong and just posting code !

earnest phoenix
#

First of all

#

It's not .substring it's .slice

#

and its permissions.has

#

if(!args[0]) return ....

#

member.send should be before
await member.kick()

#

const member = message.mentions.members.first()
await member.ban()

#

Yes

#

For unban you would have to fetch all bans

ember dragon
lyric mountain
#

Not that

#

Use a database

#

If user is in blacklist then just return before processing anything

earnest phoenix
#

Ohh

#

Shit sorry

#

Yea

#

You get user. I'd into your dB

#

And check to see if the message author id === to the one in db

#

If it is then return the promise

#

Sure as long as it stored data , and the bot can use it after it reboots

ember dragon
earnest phoenix
#

member.send('you got whacked')
await member.kick()

ember dragon
#

i know that but which line of code does this go on

earnest phoenix
#

Which line

ember dragon
#

like the line of code which line

earnest phoenix
#

the message to be sent to the user must be before you kick them

stable nimbus
#

I still need help with this

clear marlin
#

signal: killed stop/kills the running process. I guess its something with repl.it

#

also, refrain for sending the same thing over and over again. It seems annoying.

thorny flume
#

Can someone help me? I'll give you an example

app.get('/exemple/token', (req, res) => {})

How can I receive the "token"?

cinder patio
thorny flume
thorny flume
cinder patio
cinder patio
# thorny flume Yes

Make the client make an HTTP request to the server to get the data it needs, you can also have a websocket, but websockets are usually used for data that needs to be updated or changes very frequently

thorny flume
cinder patio
#

what data are you sending?

thorny flume
cinder patio
#

Okay but give an example of the data that you're sending

thorny flume
cinder patio
#

Hmm in that case I'd go with a websocket

thorny flume
cinder patio
#

commands as in, you will send when a person uses a command?

thorny flume
thorny flume
cinder patio
#

Hmm then I'd go with HTTP requests, though honestly it doesn't matter that much

thorny flume
#

Ok

cinder patio
#

@ripe prairie scam^

rocky hearth
#

what are the benefits does axios gives over fetch?

spare badger
#

I think its whatever you prefer. As far as I know you can pretty much do the same things. I use node-fetch myself.

near stratus
#

I use axios

spare badger
#

😂

rocky hearth
#

is that joke funny?

#

who tells it in better way?

near stratus
#

and ?

cinder patio
near stratus
#

like was there any errors or something ?
and you're asking for help about it

#

Help about what ?
That thing should work fine

#

Check if id is in DB
if id in DB
//No you can't do it
if not
//Execute command

rocky hearth
near stratus
#

Like this ?

const banned = [
    '696969696969696969'
]
//Client on message
    if(banned.indexOf(message.author.id) === -1){
        return message.channel.send('Go home loser')
    }
    //The  Command handler
//End of on message
#

do that yourself
I won't spoonfeed you

earnest phoenix
#

Can anyone help me with setting up of vote rewards to my bot verified on top.gg

cinder patio
#

axios is bloated

woeful pike
#

it's literally 4kb gzipped lmfao

#

you guys love throwing the term bloat around don't u

cinder patio
#

I wasn't talking about the size of it. Axios has features which I don't need like interceptions and instances, so I stick to node-fetch, which is also nicely compatible with the native fetch function

humble rock
#

how can i fetch a link from a message?

Ex:

" Hei what's up? join server with this link <link> "
How can i fetch the <link> ?

near stratus
#

when someone says "I won't do that for you"
s/he literally means "I won't help you"
So I already told you I won't help you
cya

boreal iron
#

Your answer is regex
Match if your content includes a link and return it using regex

snow urchin
#

is there any way to make discord.js types global? so I would not need to import them, just like types from a .d.ts file

stiff lynx
#

Why while I'm trying to install something with the terminal command 'npm install xyz' it gives me error?

#

npm : Termine 'npm' non riconosciuto come nome di cmdlet, funzione, programma eseguibile o file script. Controllare l'ortografia del nome o verificare che il
percorso sia incluso e corretto, quindi riprovare.
In riga:1 car:1

  • npm install discord.js
  •   + CategoryInfo          : ObjectNotFound: (npm:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
humble rock
#

i never used regex before

humble rock
#

on ur pc

stiff lynx
#

this?

#

I've installed the 16.something node.js version

humble rock
#

yes

stiff lynx
#

maybe is the other one

#

because there were 2 different

#

bcs I've recently changed Personal Computer

humble rock
#

are you using the terminal of ur coding program?

stiff lynx
#

coding program, I've always made it this way

#

I'm using Visual Studio Code

humble rock
#

ok, did you used the terminal of it

#

if yes, it's because you have to install npm extension on your program

#

ok

humble rock
#

go dm

solemn elk
#

The balance in this code gets updated :

new_bal = data["balance"] - price
users.update_one(data, {"$set": {"balance": new_bal}})
    data1 = users.find_one({"_id": user_id})
    users.update_one(data1, {"$set": {"level": new_lvl}})

While here it does not :

new_bal = data["balance"] - price

            users.update_one(data, {"$set": {"balance": new_bal}})
            data1 = users.find_one({"_id": user_id})
            users.update_one(data1, {"$set": {"employees": ems}})

I don't get any errors and when I tried to add a print function under the second one that prints "updated bal" it prints, while it does not update. I also made it return after it updates the bal, it passes it and does not update it. While also the employees get updated.

humble rock
boreal iron
#

Google will provide the regex by searching it
You have to do a little research yourself, too instead of letting anyone else do the job for you

near stratus
near stratus
spare badger
#

@near stratus What is your learning source?

near stratus
spare badger
#

I've always seen regex as something I will never understand

stiff lynx
#

UnhandledPromiseRejectionWarning: Error: Error: Cannot find module '@discordjs/opus'
What is this

tawdry oracle
#

hello, i have this string 8:::::test and i want it to only say test in js, does someone know?

cinder patio
#

Is the length of the string always the same?

tawdry oracle
#

probably not

cinder patio
#

You could use regex for this, then

tawdry oracle
#

how

stiff lynx
#

idk what is going on

#

npm ERR! /usr/bin/git ls-remote -h -t ssh://git@github.com/discordjs/opus.git

lethal trout
#
module.exports = async (client, message, args) => {
     function timeout(msgToDelete, time) {
        if (!message) throw new ReferenceError('firedragon, "message" is not defined')
        if (typeof time !== "number") throw new SyntaxError('firedragon, typeof "time" must be number')
        if (!message.guild.me.hasPermission('MANAGE_MESSAGES')) return console.log(`firedagon error: Discord Client need "MANAGE_MESSAGES"`)
        msgToDelete.react('🗑')
        const filter = (reaction, user) => {
            return reaction.emoji.name === '🗑' && user.id === message.author.id;
        };

        msgToDelete.awaitReactions(filter, { max: 1, time: time, errors: ['time'] })
            .then(collected => {
                msgToDelete.delete()
            })
            .catch(err => {
                msgToDelete.reactions.removeAll()
            });
    }
}```
```js
const { chatbot, timeout } = require('firedragon')

const { Client, Message, MessageEmbed } = require('discord.js');

module.exports = {
    name: 'chatbot',
    aliases: [''],
    description: '',
    usage: '',
    /** 
     * @param {Client} client 
     * @param {Message} message 
     * @param {String[]} args 
     */
    run: async (client, message, args) => {
        const messageToDelete = await message.channel.send("Hello There 👋");
        timeout(message, messageToDelete, 5000);
        chatbot(client, message, args.slice(0).join(" "));
    }
}```

I am making a package
so when a person sends a message it should react to the message
and when i click it, it should delete
no err
rocky hearth
#

do we also hv input fields in future?

rocky hearth
dusky geode
#

how do i clean the url, someone send me the command

lusty quest
#

what does not work?

earnest phoenix
#

when i give mute command

#

bot gives a message @(member) muted

#

but that member does not get mute

lusty quest
#

so it doesnt give the role?

earnest phoenix
#

yaa

lusty quest
#

did you made sure that the role gets picked up by the code?

#

if you want to make it more reliable i would fetch by id not by name

#

wait you already does this, just having the name as backup

#

one sec

#

mutee.roles.set([muterole.id]).then(() => { why did you pass in an array?

#

also why did you set it inside a catch?

#
  db.set(`muteeid_${message.guild.id}_${mutee.id}`, userRoles)
            mutee.roles.set(muterole.id).then(() => {
                mutee.send(`**Hello, You Have Been Muted In ${message.guild.name} for - ${reason || "No Reason"}`).catch((e) => console.log(e)
            })                        
           ``` with this you will properly handle the error if setting the role fails -edit there is no need to wrap a catch block around it if you already void the error
#

wait it can be made better

#

pls learn how to use codeblocks

#

also what did you want?

#

your catch block will probably never fire bcs you void the error it could catch

#

also why did you try to use an Array for the roles set?

#

lol and why did you remove now all messages?

earnest phoenix
#

just like that

lyric mountain
dusky geode
lyric mountain
#

could you show me an example?

ocean yew
#

How do i read a fs stream?

charred shuttle
#

I'm currently trying to code my discordjs bot to dm a specific user. The code right now is

const user = client.users.fetch('someUserId')
user.send('test')

but I get a TypeError and when I console.log(user) it returns Promise {<pending>}

lyric mountain
#

because fetch returns a promise

#

not the actual user

charred shuttle
#

oh

#

how do i get the actual user lol

lyric mountain
#

either await it or handle inside a .then()

charred shuttle
#

sorry i have no clue what awaiting something means

lyric mountain
#

let abc = await <some Promise>

#

promises are something that will happen but haven't yet

charred shuttle
#

oh

#

i see

#

so would the code be like

const user = await client.users.fetch('someUserId')
user.send('test')
lyric mountain
#

ye

#

also do note that you need to handle errors when they happen

#

so .catch() it

charred shuttle
#

It works!

#

Thank you :)

lyric mountain
#

yw

charred shuttle
#

and also do i just put .catch() at the end or do i have to put somemthing inside the catch

lyric mountain
#

do you know how arrow functions work?

charred shuttle
#

yeah it's like

() => {
  something
}

i think

lyric mountain
#

yeah, that

#
<Promise>.catch(err => {
  // Do something with err
});
charred shuttle
#

ok cool

#

thanks again

lofty cedar
#
cursor.execute("UPDATE users SET money = '?' WHERE tag = '?'", (row[2] + plusmoney, ctx.author.id))

Incorrect number of bindings supplied. The current statement uses 0, and there are 2 supplied.
How could i solve that?

lyric mountain
#

you quoted the params

lofty cedar
#

ty

thorn light
#

Hmms

rocky pulsar
#

||We are no strangers to love you know the rules and so do I..... GET RICKROLLED WHOEVER READ THIS LMFAO||

cinder patio
#

are you 9

rocky pulsar
#

No.

#

I'm 8

quartz kindle
#

underage

#

ban

stable eagle
#

wow

#

@rustic nova

static trench
rustic nova
static trench
#

lol

rocky pulsar
static trench
#

‼️

#

@rustic nova

#

ban

rustic nova
#

move on thanks

quartz kindle
#

lmao, was he really not trolling?

static trench
#

lol

rustic nova
#

shrug well gave them a chance if that was a joke

quartz kindle
#

i was sure he was trolling lmfao jesus

#

his website says hes been a dev for 2 years

static trench
#

wow

slender thistle
#

I-

#

what

#

ok

static trench
#

lol

stable eagle
slender thistle
static trench
#

ok t

slender thistle
#

idk if this works well

static trench
#

ty

slender thistle
#

oh it says to use another package

static trench
#

will they be a part of the official docs?

slender thistle
#

Doubt

static trench
#

y not?

#

buttons are cool

slender thistle
#

One thing is having a popular library maintained by a team of proficient developers with a stable library

#

the other is some random module which quite literally states that it's under-development

static trench
#

ya

slender thistle
#

I mean, it could get a shoutout. Just probably not in its current state

static trench
#

ok

#

are they apart of the discord.js lib?

slender thistle
static trench
#

no

#

are buttons on the d.js library?

slender thistle
#

As a separate unofficial package iirc

static trench
#

ok

slender thistle
#

unless they added them in v13

static trench
#

ill look in docs

#

not sure

slender thistle
#

aye

hearty palm
hearty palm
#

its just dont work with the message.author idk why

#

anyhelp guys ?

lyric mountain
#

not only that, but you didn't show what roles even is

lyric mountain
proper bolt
remote cedar
#

Its a help command not working on my main bot but i tried on my other bot that working what could be problem

sudden geyser
#

You're trying to send a message with no content.

wheat mesa
#

You’re trying to send an empty message

remote cedar
#

When i click reactions im getting this error

#

But i tried on another bot

#

That was working

sudden geyser
#

Check in your source code for your reaction to a button click

wheat mesa
#

^^

sudden geyser
#

And see where you're trying to send/edit a message.

wheat mesa
#

Send the code here if you can’t figure out what’s wrong

remote cedar
#

Ok wait a sec

sudden geyser
#

Also, for interest, why do you have 4.4k mentions/notifications?

grand perch
#

how to setup a join message?

sudden geyser
#

Are you developing a bot or using one?

grand perch
#

invite tracker

sudden geyser
#

You may want to see if the bot has a support server to assist you.

grand perch
#

okay

remote cedar
sudden geyser
#

The first argument of .send/.edit doesn't take an embed.

#

The second argument does.

remote cedar
#

So what should i do i dont know so much

wheat mesa
#

{ embed: myEmbed }

sudden geyser
#

You could try passing an empty string as the first argument then your message embed (e.g. message.channel.send("", ...) where ... is your embed).

wheat mesa
remote cedar
#

Idk i got it from a server

#

Ok i will try

pale vessel
#

The first argument could be an object

coarse topaz
#

Hi there, I need some help at developing one command for my bot...

So my bot looks for the members that have a certain role and it divides the amount by 2... The problem is that I don't want the amount of people that have the role to contain decimal digits, so if the amount has decimals (example: 6**.5**), I would like the bot to add +0.5 to the total amount so that it's no longer decimal.

pale vessel
#

Aka round the number?

coarse topaz
#

yes lol

sudden geyser
#

Round up, down, or to a certain degree?

coarse topaz
wheat mesa
#

Math.floor and Math.ceil are gonna be your best friends here

sudden geyser
#

Math.ceil for up

pale vessel
#

If you want to get rid of the decimal use Math.trunc

coarse topaz
#

Thanks, I'll look into it

fierce ether
#
var { verificationCode, username } = req.body

return res.redirect('/account', { verificationCode, username })```
#

how can i do this correctly?

sudden geyser
#

What's wrong?

fierce ether
#

i want to pass verificationCode and username to account

#

bc account is return res.render('account/mainaccount', { username: username})

#

i need to pass the username into that file

drifting wedge
#

ok so ive been having this problem for like 4 days now

#

so basicallt

#

i have a list of all my bot's prefixes

#

i want to get the top 10 most used ones

#

so like the list has one element for each guild

#

so there are repeated ones

#

and idk how to sort it, and put it like organized

slender thistle
#

I wouldn't say that doing a simple guessing game in Rust is something I'd like to be proud of, but it's the small things that matter

coarse topaz
sudden geyser
#

Rust projects are interesting

drifting wedge
#

anyone have any ideas?

sudden geyser
#

Your question is a bit difficult for me to understand. Do you have an array like prefixes as an array of strings, guilds as an array of guilds and want to, somehow, sort the prefixes array by most used?

#

Is there more to the guilds array? Like a prefix property?

drifting wedge
#

ok well i can get the prefixes in any form i want

#

i have a db with all the prefixes

#

so i can get them however needed

slender thistle
#

How do you want to sort them

drifting wedge
#

most to least used

#

and get the top 10

#

or whatever

slender thistle
#

Where do you store that

drifting wedge
#

the prefixes

#

in my db

sudden geyser
#

Are you using an SQL database?

drifting wedge
#

no, im using mongo

#

i can get the prefixes tho

sudden geyser
#

aw fuck

drifting wedge
#

the db itself isnt the issue

#

wdym?

sudden geyser
#

I don't have experience with MongoDB

drifting wedge
#

it doesnt matter

#

the problem has nothing to do with mongo

#

i have the prefixes

#

right

slender thistle
#

Where do you have the numbers of times each prefix is used?

drifting wedge
#

i dont

#

thats the thing

#

i have all the prefixes

#

for instance i can make an array of all the prefixes so like ["!", ">", "-", "!"]

slender thistle
#

That's a problem in your case. Unless you cache that somehow

drifting wedge
#

how so?

slender thistle
#

Ideally you want a dictionary attached to either the guild or your bot object with the prefix as a key and times it was used as the value

drifting wedge
#

thats not what i mean by times used

#

i mean like how many guilds use that prefix

slender thistle
#

Oh

#

Oh fuck's sake hold on

earnest phoenix
#
var intervall = setInterval (function () {
            client.guilds.cache.forEach(guild => {
                 let checkif = db.fetch(`voiceactivity_${guild.id}`) 
                 if(checkif === true) {
                  let voicegain = db.fetch(`voicegain_${guild.id}`)
            const voiceChannels = guild.channels.cache.filter(c => c.type === 'voice');
            let idUser = [];
        for (const [id, voiceChannel] of voiceChannels){
            voiceChannel.members.forEach(member => {
                idUser.push(member.user.id)
            });
            let membercount = idUser.length;
            for (var i = 0; i < membercount; i++) {
                  let member = client.users.cache.get(idUser[i]);
                  let verif = db.fetch(`balance_${guild.id}_${member.id}`) 
                       if(verif === null) return
                  if(member.bot) return;
                        console.log(member.id + member.tag + ` ${voicegain}`)
                       
                        db.add(`balance_${guild.id}_${member.id}`, voicegain) 
                        let lchannel = db.fetch(`lchannel_${guild.id}`) 
                        if(lchannel === null) return;
                       let asend = guild.channels.cache.get(lchannel)
                       if(asend){
  const color = db.fetch(`embedcolor_${guild.id}_${member.id}`)
asend.send({embed:{ description: `${member} vient de gagner \`${voicegain} coins\``, color: color, author: { name:`⏰ 15 minutes de vocal` }, footer: { text: `🕙 ${getNow().time}` } }})
                       }
            }}
           
        }
      })
          }, 90000);```

Why its spamming x5 messages ?
This should add a sum of money to the voice person every 15 minutes
sudden geyser
#

That interval runs every 10 seconds

earnest phoenix
#

Its bot here

#

Its not here

#

I write 10 to test

drifting wedge
#

oh i know why

#

u prob have multiple instances

earnest phoenix
#

Yes

drifting wedge
#

u prob didnt stop the bot when u restarted it

earnest phoenix
#

-_-

#

He spam X5 every Time

#

Same if i reste 3 times

drifting wedge
#

so i need to basically get how many each one is used

#

which can be used with couunt

#

and a forloop

#

but tthen i need to sort it

slender thistle
# drifting wedge i mean like how many guilds use that prefix
>>> l
[10, 24, 3, 15, 2, 21, 22, 13, 26, 5, 16, 27, 19, 29, 25, 4, 18, 1, 1, 1, 14, 17, 23, 8, 28, 11, 6, 20, 7, 12, 1, 9]
>>> sorted(l, key=lambda x: l.count(x), reverse=True)
[1, 1, 1, 1, 10, 24, 3, 15, 2, 21, 22, 13, 26, 5, 16, 27, 19, 29, 25, 4, 18, 14, 17, 23, 8, 28, 11, 6, 20, 7, 12, 9]

I mean...

drifting wedge
#

hold up

#

this isnt sorted?

#

ohhh

slender thistle
#

wdym

drifting wedge
#

im dumb

#

nothing

slender thistle
earnest phoenix
#
var intervall = setInterval (function () {
            client.guilds.cache.forEach(guild => {
                 let checkif = db.fetch(`voiceactivity_${guild.id}`) 
                 if(checkif === true) {
                  let voicegain = db.fetch(`voicegain_${guild.id}`)
            const voiceChannels = guild.channels.cache.filter(c => c.type === 'voice');
            let idUser = [];
        for (const [id, voiceChannel] of voiceChannels){
            voiceChannel.members.forEach(member => {
                idUser.push(member.user.id)
            });
            let membercount = idUser.length;
            for (var i = 0; i < membercount; i++) {
                  let member = client.users.cache.get(idUser[i]);
                  let verif = db.fetch(`balance_${guild.id}_${member.id}`) 
                       if(verif === null) return
                  if(member.bot) return;
                        console.log(member.id + member.tag + ` ${voicegain}`)
                       
                        db.add(`balance_${guild.id}_${member.id}`, voicegain) 
                        let lchannel = db.fetch(`lchannel_${guild.id}`) 
                        if(lchannel === null) return;
                       let asend = guild.channels.cache.get(lchannel)
                       if(asend){
  const color = db.fetch(`embedcolor_${guild.id}_${member.id}`)
asend.send({embed:{ description: `${member} vient de gagner \`${voicegain} coins\``, color: color, author: { name:`⏰ 15 minutes de vocal` }, footer: { text: `🕙 ${getNow().time}` } }})
                       }
            }}
           
        }
      })
          }, 90000);```

Why its spamming x5 messages ?
This should add a sum of money to the voice person every 15 minutes
slender thistle
#

@sudden geyser You're more or less familiar with Rust, right?

sudden geyser
#

Yes.

slender thistle
#

Let's say I want to do something like stdin().read(), meaning the program will only exit once the user actually presses any key (I presume?). What's the best approach about this?

sudden geyser
#

io::stdin().read_line(...) will only proceed when the user enters a newline character (aka enter).

slender thistle
#

Hm. Maybe exiting on Enter does sound like a better idea.

Still, I would have to create an empty buffer to read into, right?

#
io::stdin().read_line(&mut String::new());

Would this be appropriate?

sudden geyser
#

No, because it'll write to the mutable buffer. You'd need to store it as a variable then pass a mutable reference.

let mut input = String::new();
io::stdin().read_line(&mut input)
  .expect("Oh, no!");

println!("Content: {}", input);
slender thistle
#

I see

#

Thanks

#

Rust is looking quite fun so far

prime mist
#

Rust is really nice, especially for a system's level language.

#

The async stuff has been done really well too.

slender thistle
#

I've only been hearing good news about Rust so that's why I decided to give it a try. Their guide is quite simple, even though my tired ass can't really comprehend much of it

prime mist
#

Yeah, the memory management / borrow checking takes a bit of getting used to.

sudden geyser
#

Rust is even nice to use as a high-level programming language.

quasi elbow
#

With the Python wrapper for the Top.gg API, can I register a d.py Cog listener on for "on_dbl_vote"?

#

or would i need to decorate it to be an event

slender thistle
#

Listener is fine

quasi elbow
#

Alright

#

What type is the first positional argument?

slender thistle
#

dict, DataDict, depending on which version you have

quasi elbow
#

DataDict, then. Isn't it a subclass of DataDict? I'm not familiar with this library's design.

slender thistle
#

DataDict simply saying you can access keys via attrs and keys

#

It's a subclass of dict, yeah

#

The topggpy docs should be mentioning what inherits what

earnest phoenix
#

@junior musk stink

junior musk
#

ty

prime mist
wanton pebble
#

helpp

split hazel
#

droff?

#

i see

#

looks interesting

sudden geyser
#

I'm going to try it out

#

The reactive paradigm is my drive to survive

woeful pike
#

currying is cool but sadly typescript kinda dies when it has to pass generics between curried functions

prime mist
#

Yeah, it depends where you define the generic type in the chain.

woeful pike
#

big sad

#

if you have a function that returns a generic function that generic gets set to the default value it's so frustrating I couldn't set up a cool middleware system I was working on because of that

const partiallyCurriedFunction = withSomething(whatever)
// if `withSomething` returns Func<T = Something> it's set to Func<Something>
prime mist
#

Ah yep. You would have to somehow move the generic:

const withSomething = (thing: any) => <T = Something>(...) => ...;
woeful pike
#

oh I wonder if that's what was limiting me

#

ah, could be

// Unfortunately this doesn't wokr due to typescript's type inference limitations with generic values
export function makeMiddleware<T extends BaseContext, K>(
  middlewareHandler: MiddlewareHandler<T, K>
) {
  return (f: Middleware<T & K>): Middleware<T> => async (req, res, ctx) => {
    try {
      const data = await middlewareHandler(req, res, ctx);
      return f(req, res, { ...ctx, ...data });
    } catch (handlerOrErr) {
      if (typeof handlerOrErr === "function") {
        return handlerOrErr();
      }
      throw handlerOrErr;
    }
  };
}
prime mist
# woeful pike ah, could be ```ts // Unfortunately this doesn't wokr due to typescript's type i...

You could move the generics kinda like this:

type Middleware<T> = (req: any, res: any, ctx: any) => Promise<T>;
type MiddlewareHandler = <T, K>(req: any, res: any, ctx: K) => Promise<T>;

export function makeMiddleware(middlewareHandler: MiddlewareHandler) {
  return <T, K>(f: Middleware<T & K>): Middleware<T> =>
    async (req, res, ctx) => {
      try {
        const data = await middlewareHandler<T, K>(req, res, ctx);
        return f(req, res, { ...ctx, ...data });
      } catch (handlerOrErr) {
        if (typeof handlerOrErr === "function") {
          return handlerOrErr();
        }

        throw handlerOrErr;
      }
    };
}
woeful pike
#

yeah

#

this was a long time ago tho lol I'm using graphql now so much better

prime mist
#

Nice.

quasi elbow
#

Does the WebhookManager check that the secret matches when a request is recieved?

stiff lynx
#

guys how I install ffmpeg on a vps?

quasi elbow
#

same way you would install it anywhere else

#

either install it in your dockerfile or just {package_manager} install ffmpeg

stiff lynx
#

idk if ffmpeg works this way

quasi elbow
#

(it does)

stiff lynx
#

I have to upload the fffmpeg files? right?

quasi elbow
#

no

quasi elbow
#

what?

#

yeah

stiff lynx
quasi elbow
#

apt-get install ffmpeg, yum install ffmpeg, pacman install ffmpeg

stiff lynx
quasi elbow
#

what else would you be talking about

stiff lynx
#

No match for argument: ffmpeg
Error: Unable to find a match: ffmpeg

quasi elbow
#

did you update first

#

going to provide an example for apt

#
apt-get update
apt-get install ffmpeg```
#

just like any other package man

stiff lynx
#

[root@NOVABOT novabotdrop]# apt-get install ffmpeg
-bash: apt-get: command not found
[root@NOVABOT novabotdrop]# apt-get install ffmpeg
-bash: apt-get: command not found
[root@NOVABOT novabotdrop]# yum install ffmpeg
Last metadata expiration check: 2:24:43 ago on Mon 14 Jun 2021 10:13:00 PM UTC.
No match for argument: ffmpeg
Error: Unable to find a match: ffmpeg
[root@NOVABOT novabotdrop]# apt-get update
-bash: apt-get: command not found
[root@NOVABOT novabotdrop]# apt-get install ffmpeg
-bash: apt-get: command not found
[root@NOVABOT novabotdrop]#

quasi elbow
#

...

stiff lynx
quasi elbow
#

just install it like ANY OTHER PACKAGE

#

im providing an example as if you are using debian or a fork

stiff lynx
#

but how can I install it like any other package if I put ffmbeg as path variable on my pc

sudden geyser
#

@prime mist I haven't used Node.js in a while and I'm having a few issues installing the repository.

  • I'm installing with npm install git+https://github.com/tim-smart/droff.git. Is yarn required? (I see it's mentioned in the readme)
  • If I do install with npm, it fails.
npm ERR! npm ERR! code 2
...
npm ERR! npm ERR! command sh -c rm -rf dist && tsc
npm ERR! npm ERR! src/mod.ts(1,24): error TS2307: Cannot find module 'droff' or its corresponding type declarations.
npm ERR! npm ERR! src/mod.ts(2,32): error TS2307: Cannot find module 'droff/dist/types' or its corresponding type declarations.
npm ERR! npm ERR! src/mod.ts(56,12): error TS7006: Parameter 'o' implicitly has an 'any' type.
npm ERR! npm ERR! src/mod.ts(78,11): error TS2698: Spread types may only be created from object types.
npm ERR! npm ERR! src/mod.ts(79,32): error TS2571: Object is of type 'unknown'.
quasi elbow
sudden geyser
#

Also, is TypeScript required? I have it installed on my system, but I'm not using it in the project.

stiff lynx
#

but I need centOS commands?

sudden geyser
#

I fixed my issue, somehow.

prime mist
drifting wedge
#

in js now, how do i order an array by how many times each value shows up

#

so like [4, 5, 6, 4, 5, 4] becomes [4, 4, 4, 5, 5, 6]

sudden geyser
#

You could use a .sort() and count the number of occurrences a number appears in the array each time, but this is slow (O(N^2) I believe). Instead, you could create an object that stores the number of frequencies for each element and sort by that property.

Tutorialsport has an example on this.

const arr = [1, 1, 2, 2, 2, 3];
const sort = (arr) => {
   const map = {};

   for (const number of arr) {
      map[number] = (map[number] || 0) + 1;
   };

   return arr.sort((a, b) => map[b] - map[a]);
};

sort(arr);
console.log(arr); // => [2, 2, 2, 1, 1, 3]
#

Usually your answers are one Google search away (this was the second result for "JS order array by frequency")

faint breach
#

How can i do this in my server like how do i set this up

lyric mountain
#

What language you know?

#

Don't say english

faint breach
#

english

#

spanish

#

french

sudden geyser
#

jack of all trades

lyric mountain
#

Sigh topggLikeThis

#

What programming language you know?

sudden geyser
#

Are you developing a bot or using some existing bot

faint breach
#

ohhh ok

sudden geyser
#

e.g. carl

faint breach
#

python

#

why?

lyric mountain
#

Ok, do you know how to use twitch/youtube/tiktok/whatever service you want to listen to's API?

#

Like, how to fetch data or use a websocket for it?

faint breach
#

yeah

lyric mountain
#

Do you know how to use a database?

faint breach
#

yeah

errant flax
#

client.guild.fetch fetches a guild right noobthonk

lyric mountain
#

That's it then, merge all 3 knowledges together

errant flax
lyric mountain
#

Create a bot, connect to the service's API and store users who click the reaction (with collector) in the database

young rune
#

speak english

lyric mountain
#

Whenever the websocket fire a "new video" event just DM the users

young rune
#

plz

errant flax
#

buttons r much more easier than reactions tbh

#

u dont need a db for buttons

lyric mountain
lyric mountain
errant flax
#

i just do it via id Thqnkqng

lyric mountain
#

Bruh

#

He'll be storing users for notifications

#

You can't do that without a db

errant flax
#

wait wdym notifications

lyric mountain
#

Exactly

#

You're out of context

errant flax
#

my bad lmaoCry

tender raft
#

Ok I have a question

#

I code on replit just because using a WSGI server to host my bot is easy

young rune
#

i code on replit too lol

tender raft
#

And I code in python why does client.run(Token) or client.login("Token") not work

lyric mountain
#

Using a wsgi server...on replit?

tender raft
#

If anyone can help me I'd really appreciate it

lyric mountain
#

You need to give actual errors

#

What are you getting?

tender raft
#

That's the thing I dont get any errors

#

The console just goes blank and my bot is not online

lyric mountain
#

Then it's not even running

tender raft
#

I hit run tho I am confused with it

lyric mountain
#

It's impossible to have an empty console if the code is running

tender raft
#

Ok let me give further detail I kinda left you on like a cliffhanger

#

So when I run it I get the installing dependencies and installing discord.py and libraries the my console goes blank and the repl is still running

young rune
#

thats not possible

#

add a print note when the bot is ready

#

so you know it is running or not

lyric mountain
#

That's not the issue

tender raft
#

I have I will screenshot the sample code real quick

#

Just to help you out dont try to snatch the token it's in my development server and it is an old token

young rune
#

to small

#

can't seee

deep mantle
#

Bad indentation

#

It's indented inside the command

tender raft
prime mist
tender raft
#

If someone will join a VC in Dms or in this server I can screen share the console

deep mantle
#

So it only runs when the command is run

prime mist
tender raft
prime mist
tender raft
#

@deep mantle if you'll call me in DMs you dont have to talk I'll screen share the whole thing and show you

lyric mountain
#

Even if it's a dev token

drifting wedge
#

I googled it and came across this very example

#

And I didn't understand it

#

And I tried it and it didn't seem to work

#

Thanks tho

tender raft
lyric mountain
#

As I said

lyric mountain
#

Don't underestimate it

#

The bot's still linked to your account

#

It just takes a malicious code to get you flagged for api abuse

#

Or worse

tender raft
#

And it doesnt even work

young rune
#

someone else can use ur token

lyric mountain
#

But whoever gets ur token can take full control of the bot

young rune
#

yes

lyric mountain
#

It doesn't matter what your code is

young rune
#

tbh

lyric mountain
#

It matters WHO will use the token

young rune
#

i didn't store my token in an .env file

#

:<

lyric mountain
#

Reset that one asap

tender raft
#

Woops didnt mean to reply to that one

young rune
#

chat moves too fast

#

agreed?

lyric mountain
#

Anyway, could you show the console?

tender raft
tender raft
lyric mountain
#

Nah, I prefer screenshots

tender raft
young rune
#

yes

#

so stupid

lyric mountain
#

Did it?

young rune
#

i have to move my stuff to a local server soon

#

they suspended creation

#

eeee

lyric mountain
#

I'm pretty sure replit still have a way to create private files

young rune
#

maybe i'll use glitch

lyric mountain
young rune
young rune
#

glitch-

lyric mountain
#

I don't mean private projecy

#

I mean private file

opal nymph
#

you can make a private project

lyric mountain
#

As in key file

opal nymph
#

if u pay

young rune
#

not possible

young rune
#

i poor

opal nymph
#

rip

tender raft
lyric mountain
tender raft
#

It's not easy but possible

lyric mountain
#

I knew it had a way to

#

It's just dumb not to have a private keys file

opal nymph
#

u can use heroku and they have free env files

opal nymph
#

and auto deploy

#

which is pretty nice

tender raft
lyric mountain
tender raft
#

Cant

young rune
#

...

#

what

opal nymph
#

oh wow

young rune
#

what "can't"

opal nymph
#

i use discord.js

wheat mesa
#

What-

young rune
opal nymph
#

instead of .py

young rune
opal nymph
#

oh

tender raft
opal nymph
#

i have no experience with .py at all

young rune
#

lol

opal nymph
wheat mesa
#

You can still deploy a python application to heroku...

lyric mountain
#

Can we just get back on topic then?

tender raft
#

And I have a program someone made for me that auto regenerates my token every 30 minutes

lyric mountain
#

Replit, glitch and heroku all have pros and cons

wheat mesa
#

Why?

lyric mountain
#

There's no reason to start comparing wood to log to stump

tender raft
young rune
#

but glitch stays always on now

wheat mesa
young rune
#

lol

#

agreed

tender raft
young rune
#

glitch is simple*

#

but

#

PROJECT HOURS

#

JEEZ

errant flax
#

then why use replit noobthonk

tender raft
lyric mountain
#

Glitch OPENLY COUNTERS bot hosting

young rune
lyric mountain
#

They explicitly stated that they don't want bots there

young rune
#

terminated from roblox twice so not suprised

lyric mountain
#

Now, can we get back to topic?

wheat mesa
tender raft
young rune
#

i no want court

lyric mountain
#

Sigh, I'm out

tender raft
young rune
#

hmm

errant flax
tender raft
#

It is in one server which is my test server

wheat mesa
#

Okay, that’s good and all, but there’s no need to regenerate your token that often, especially if it causes problems

errant flax
#

its still illegal no matter what but lets go back to the topic

young rune
#

what is the topic?

tender raft
lyric mountain
tender raft
#

@young rune if you can call in DMs and help me that would be great

lyric mountain
#

And cloudflare bans ain't no joke also

young rune
#

doing hw

tender raft
young rune
tender raft
#

GMT its 9:27 for me rn

young rune
tender raft
#

You

young rune
#

its 10.28 fer me rn

#

*am

tender raft
#

Dang

young rune
#

im GMT+8

#

k

#

we got time

tender raft
#

Wait is 10:28 for you?

young rune
#

am

tender raft
#

Am!

young rune
#

ues

tender raft
#

WTF

#

You must be in Australia or sum

young rune
#

8 hours ahead boi!

tender raft
#

WHHHHHYYYYYYYY

young rune
#

@tender raft ur in 6/14/21 right

tender raft