#development

1 messages Β· Page 1229 of 1

sharp thicket
#

yeah

#

whats a vps like uh $5 a month?

#

or 20

#

idk

lyric mountain
#

idk about the other ones

sharp thicket
lyric mountain
#

contabo is Β£3

sharp thicket
#

they said $2 0-0

earnest phoenix
#

Hi I'm new to this how can I get started

lyric mountain
#

they'll be at that price almost

sharp thicket
#

ok

#

so is it monthly?

lyric mountain
#

probably

sharp thicket
#

brb gnna steal my dads cc cuz mine not working for somme reason HEHE

#

aka beg him for it

#

lol

#

or shouldi get 8gb?

drifting wedge
#

tbh imma still use heroku

#

it works for me

#

the vps thing only helps with file storage

#

but i use mongo

lyric mountain
#

heroku is mostly fine for APIs and other lightweight services

#

it just isn't for bots

sweet ruin
#

because im getting an error

#

and i dont understand what im doing wrong in the above screen shot

near veldt
#

is it possible to hack a discord bot through the github if the github is connected to a webhook connected into the main support server?

#

(don't worry, i'm just asking)

dire obsidian
#

Hmmmm

faint prism
#

invite is undefined

dire obsidian
#

Uuu auger green name, congrats

faint prism
#

Ty ty πŸ˜ƒ

sweet ruin
#

but shouldnt the try catch define invite as null?

split hazel
#

@near veldt if the webhook URL is visible when you access the webhook page then yes (if someone with admin perms on the repo has malicious intent) other than that no

faint prism
#

That isn't defining it I don't think lol

sweet ruin
#

it typically does for me :/

#

odd

faint prism
#

Null IS undefined iirc

split hazel
#

but anyways its a webhook

near veldt
#

oh

split hazel
#

worse they can do is send some nasty messages or everyone mention

#

you can always revoke it

near veldt
#

as soon as i added my webhook on my public github, my bot got hacked and spam dmed everyone

split hazel
#

you probably did something else

near veldt
#

my token wasn't visible

split hazel
#

webhooks cannot dm anyone

near veldt
#

i even tested it

#

no token visible

split hazel
#

webhooks aren't even linked to bots

near veldt
#

no config either

heavy anchor
#

good deal?
@sharp thicket I get that except with unlimited bandwidth for $6 a month

#

Oh wait that has unlimited bandwidth

worthy glacier
#

how do i have settings take a variable so instead of settings.prefix for example i can do settings . (variable key)

opaque hawk
#

Does anybody else use repl.it to host their bots and has their bot up 24/7

#

If so, do you use runkit for it?

fallow steppe
#

What can I eval in djs to make the bot react to a specific message?

opaque hawk
#

Like react to a message with a certain word or phrase?

sudden geyser
#

@worthy glacier remove the dot

#

You're looking for bracket notation.

worthy glacier
#

no, usually i would do settings.prefix i want to replace prefix with any variable

sudden geyser
#

Bracket notation looks like this: obj["somekey"]. It's the equivalent of obj.somekey

fallow steppe
#

Like react to a message with a certain word or phrase?
@opaque hawk no, a certain message with the id

worthy glacier
#

ooh thank you

sudden geyser
#

Like it can't dynamically look at the name of the variable (not the value) and use that, but a string should be good enough.

sharp thicket
#

Hi

opaque hawk
#

@opaque hawk no, a certain message with the id
@fallow steppe Afaik, since every message has a unique ID, as with everything else in Discord, so the only way that you could really have the bot react to the message is it being like a verification/announcement message that wont move out of sight for a while, or userbot your bot, which is against ToS

fallow steppe
#

I dont think you got it

opaque hawk
#

elaborate

fallow steppe
#

I want to eval something that makes my bot react with "❀️" in a message I specify

opaque hawk
#

So you have the message link for the message you want to react to? I, personally, haven't dabbled with reactions, but the djs guidebook will have everything reactions

earnest phoenix
#

it's just a single PUT request to /:channelid/:messageid/reactions

fallow steppe
#

I have the id of that message

earnest phoenix
#

all you need is the channel id and the message id

opaque hawk
#

my message ID is this: 753407058375868417

fallow steppe
#

Yes

earnest phoenix
#

yes you also need the channel id, or the channel object

fallow steppe
#

That

opaque hawk
#

so that this full message ID would be something like 272764566411149314/753407232716177438

earnest phoenix
#

that's slightly incorrect

#

it isn't a "full message id"

opaque hawk
#

slightly

#

i guess

earnest phoenix
#

a message id is a message id, a channel id is a channel id

fallow steppe
#

So when I eval my bot to say something in a channel it's client.channels.cache.get("id").send("Hi")

#

I want to know what to eval so it reacts to a message I specify with id with a heart

opaque hawk
#

Id rather use an eval command or hook it up with a command, like so: message.channel.send("message");

fallow steppe
#

Ok

earnest phoenix
#

keep in mind that fetch is a promise

opaque hawk
#

I like an eval command, The code is simple (excuse the TypeScript): ```ts
import { Message } from "discord.js";
import { inspect } from "util";

export const name = "eval";
export const usage = "eval <expression>";
export const description =
"Evaluates a JavaScript expressions and returns the result";
export const permissions = "developer";
export const dev = true;
export async function execute(message: Message, args: string[]) {
const client = message.client;
try {
const result = await eval(message.content.slice(process.env.PREFIX!.length + 4));
message.channel.send("TRIPLE_BACKTICjs\n" + inspect(result) + "\nTRIPLE_BACKTIC");
} catch (e) {
message.channel.send("TRIPLE_BACKTIC" + e + "TRIPLE_BACKTIC");
}
}```

#

uhh

#

except replace the TRIPLE_BACKTICs with three backtics

#

So in my case, I could go "r!eval 1 + 1" and it would return the following: js 2

midnight blaze
#
  .then(messages => (message.author.id=="570646739145457685"&&message.content.startsWith("test"))?messages.size:console.log("null"))
  .catch(console.error)

what is wrong with this?

earnest phoenix
#

you tell me

opaque hawk
#

yeah lol

#

error message

#

?

midnight blaze
#

there is no error message

#

that is why I am asking

opaque hawk
#

then why is something wrong with it

midnight blaze
#

I dont know. Well, ok, the syntax is fine then

opaque hawk
#

ok

faint prism
#

Lack of spaces

#

Also you aren't passing in message

midnight blaze
#

that is a typo, It didnt work with messages

#

sry for that

#

when I write it down here pandasad

#

meh, I should have choosen a different variable

#

😦 I am eval it in the testing-1 and yeah, doesnt work πŸ€·β€β™‚οΈ well anyway

earnest phoenix
#

Considering getting into redis, but I have one question before doing so

#

Is data stored in redis persistent across restarts?

digital ibex
#

no

faint prism
#

It's in memory iirc

#

So ^

digital ibex
#

it stores the stuff in the cache

earnest phoenix
#

I figured so, alright thanks

#

i still dont get the point of using redis

#

sure, inter process data sharing

#

however

#

grpc and named pipes exist

#

so like??

digital ibex
#

idk man

earnest phoenix
#

@earnest phoenix IS THAT

digital ibex
#

i dont want to say anything wrong by accident and look stupid lol

#

i only know a little about redis anyways so

earnest phoenix
#

rEaLlY aDvAnCeD PyThOn dIcTiOnArIeS is how I see it @earnest phoenix

midnight blaze
#

πŸ€”

earnest phoenix
#

the ternary operation returned null for all of the fetched messages

midnight blaze
#

πŸ€” ok, I see

#

ah, thanks

clever vector
#

Hey guys

#

Is urban cmd NSFW

faint prism
#

What

clever vector
#

Urban command

faint prism
#

What is urban command

clever vector
#

the cmd that search for definition

faint prism
#

Oh urban dictionary

clever vector
#

Ye

earnest phoenix
#

@clever vector well

faint prism
#

I'd imagine NSFW is picture only, but I'm going to defer to someone else for this

earnest phoenix
#

If you filter out nsfw things, then no

#

But if you didnt, then yes

clever vector
#

i didnt

#

I applied the bot to Glenn

earnest phoenix
#

Lock it to nsfw channel only

clever vector
#

They Dicline

#

@earnest phoenix Better Delete

#

i have wikipedia

#

so

leaden shoal
earnest phoenix
#

Anything that search stuff from internet, should filter nsfw

#

Better safe than sorry

faint prism
#

Can't new up a RichEmbed

earnest phoenix
#

@leaden shoal MessageEmbed in v.12

leaden shoal
#

urm

earnest phoenix
#

@leaden shoal show me what did you define discord as

leaden shoal
earnest phoenix
#

V11 or V12

leaden shoal
#

12

earnest phoenix
#

MessageEmbed my guy

#

RichEmbed is long gone

leaden shoal
#

bett thanks boss

#

wait what would be the const for it please

earnest phoenix
#

Same as richembed

#

They renamed it to messageembed

#

@leaden shoal

leaden shoal
#

oh lol thanks

midnight blaze
#

@earnest phoenix I kinda solved it, but I kinda feel like it could be done more simpler πŸ‘€ w/o pushing the content into a list

tidal smelt
#

sorry but for script wich program you use?

midnight blaze
#

@tidal smelt ?

earnest phoenix
#

the channel id condition is useless

#

it's always going to be the same

tidal smelt
#

@midnight blaze i am new and my question is : which program you use to script ?

midnight blaze
#

ah ok

#

I was not sure about it

chilly mason
#

cane someone help, im tryna make a covid command, but im getting an error saying cannot read property utils of undefined, here is my code: https://srcb.in/4e2810aef2

tidal smelt
#

thanks

earnest phoenix
#

don't copypaste code @chilly mason

leaden shoal
#

can anyone help me with sub folder command handling please been stuck for a day lol

earnest phoenix
#

i told you what to do, haven't i?

#

what are you stuck on

leaden shoal
#

urm I couldn't figure out what you said do you think you can explain once more please as I just woke up so I wont be brain dead like last time

leaden shoal
#

bet thanks ❀️

drifting wedge
#

how can i make a on_message command which then updates a mongo db database async?

faint prism
#

tryna make a covid command
just return Math.floor(Math.random()) mmLol

#

how can i make a on_message command which then updates a mongo db database async?
@drifting wedge So on_message event you want to upserts a mongodb entity?

drifting wedge
#

@drifting wedge So on_message event you want to upserts a mongodb entity?
@faint prism yep!

#

just return Math.floor(Math.random()) mmLol
@faint prism lol

leaden shoal
#

this sub folder command handling shit is going to kill me

drifting wedge
#

just a question

#

how can i load cogs from a folder?

faint prism
drifting wedge
#

first im using python

#

second like load cog files

#

from a folder

leaden shoal
#

can somone please like add onto my code or send me like a direct guide or something please on how to make a sub folder command handler please Ive been stuck for a day

my code:

const fs = require('fs');

client.commands = new Discord.Collection();

const commandFiles = fs.readdirSync('./commands/').filter(file => file.endsWith('.js'));
for (const file of commandFiles) {
const command = require(./commands/${file});

client.commands.set(command.name, command);

}

earnest phoenix
#

no

faint prism
#

I just sent a link @leaden shoal above your question I think

leaden shoal
#

ohhh yes thanks Ive done it thanks

earnest phoenix
#

they want to loop through all folders in a folder

#

that's not what that does

#

and this is the third time im telling them to at least start and attempt to do it (which they haven't)

leaden shoal
#

I have never worked with command handling shit as I have never made a big bot

earnest phoenix
#

there's a first for everything

#

and i sent you over instructions

faint prism
#

oh, you'll need recursion for that probably

earnest phoenix
#

you haven't even attempted to do it yourself

leaden shoal
#

I have

#

since yesterday you sent it

earnest phoenix
#

and you don't know how to do it because you copypasted the snippet you currently have from somebody else

faint prism
#

I have
@leaden shoal What was your attempt?

#

Oh hey, Cry.
Did you see what I posted yday about the .NET Foundation?

earnest phoenix
#

your code doesn't have to work perfectly on each run

#

you run it, see what doesn't work, fix it

#

nope, what is it?

faint prism
#

oh it's sick, 1 sec

earnest phoenix
#

oh my

#

is that your project?

faint prism
#

mhm

earnest phoenix
#

oh wow

faint prism
#

-bots

gilded plankBOT
earnest phoenix
#

that's really cool, proud :p

faint prism
#

Pretty lucky find tbh. I only found it by googling a random referral link in my website stats that looked unusual

drifting wedge
earnest phoenix
#

are you inverting the colors somewhere

drifting wedge
#

no

#

its not even inverted

#

its just fucked up

#

i think it has to do wit hthe color

#

with the background 1 sec

leaden shoal
#

Hey how do I make it so when I do a command the command I did auto deletes please

earnest phoenix
#

call delete on your message object

leaden shoal
#

ok do I do a .then after the message

#

I mean command

barren brook
#

-bots

gilded plankBOT
pseudo wolf
#

hi huys, I tried to use .env file store token but errors shows discord.errors.HTTPException: 401 Unauthorized (error code: 0): 401: Unauthorized and discord.errors.LoginFailure: Improper token has been passed.

earnest phoenix
#

@pseudo wolf lang?

pseudo wolf
#

.env file: DISCORD_TOKEN = xxxxxxxxxxxxxxxxxxxxxx

earnest phoenix
#

No

#

Your lang

#

NodeJS?

pseudo wolf
#

no python

#

w(οΎŸΠ”οΎŸ)w

earnest phoenix
#

@trim saddle someone want u help

drifting wedge
#

how can i center text in a box:

trim saddle
#

uhh

#

@pseudo wolf use a json or an ini file compared to the environment

#

it's safer and it parses properly

pseudo wolf
#

ok i'll try them, thank you @trim saddle

#

πŸ‘

trim saddle
#

no prob

near ether
#

does anyone know how this could be the case? out of nowhere, my bot begins receiving a ridiculous amount of data and then somehow also starts sending a ridiculous ton of data. this leads to my bot getting ratelimited like immediately

i am logging and monitoring the command usage and there are no abnormal commands being run, and there arent any self bots spamming commands either. i have a lot of cooldowns in place to prevent command spam so i dont think its an issue with people spamming commands. pretty much everything looks completely normal from a usage standpoint; nobody is entering any suspicious commands or anything like that

this amount of bytes being received and sent is insane (went from sending 10k bytes/5 min to literally 3 million/5 min). does anyone have a hunch as to why this may be?

drifting wedge
#

how can i get a user's avatar?

#

like to put it in PILLOW

obtuse saffron
#

.env file: DISCORD_TOKEN = xxxxxxxxxxxxxxxxxxxxxx
@pseudo wolf try removing spaces between the = and token the env file saves the space too

hazy sparrow
#

how do i check if a person has sent more than 1 message in the span of x seconds?

pseudo wolf
#

@obtuse saffron I tried to, doest work and i tried to add "" doesnt work as well

near veldt
#

discord token leaked

#

confirmed

obtuse saffron
#

@pseudo wolf oh

wheat mesa
#
  const clowns = new Set()


    if(command == 'clown') {                                      //w!clown command
     clowns.add("313481150637277197")
     clowns.add("224363077318082561")
        if(!message.member.hasPermission('ADMINISTRATOR')) return message.reply('cant use this L')
        if(message.mentions.everyone || message.mentions.roles.size) {return message.reply('Improper mention.')}
        let person = message.mentions.users.first()
          if(person.bot) {return message.reply('You cannot clown bots.')}
          let newClown = message.mentions.users.first()
        if(!newClown) return message.reply('You need to mention the user you want to clown.')
        if(clowns.has(newClown.id)) {
            clowns.delete(newClown.id)
            message.reply('removed clown :(')
        } else {
            clowns.add(newClown.id)
            message.reply('new clown in town!')
        }
      }
      client.on('message', function(message) {
    if(clowns.has(message.author.id)) {
        message.react('🀑')
    }}


)})
``` everything works here except removing a clown. I'm not sure why, can anyone help?
#

This code originally all worked, but I changed it so I don't have to use a listener for every command now, and it stopped working

vale garden
#

hi

#
case 'daily':
       if (talkedRecently.has(message.author.id)) {
            message.reply("You can only collect your daily reward tomorrow");

    } else {bot.commands.get('daily').execute(message, args);

        talkedRecently.add(message.author.id);

        setTimeout(() => {
          talkedRecently.delete(message.author.id);
        }, 86400000);
    }
      break;
#

so in here i use this as a cooldown

#

is there any way i can restrict it to only the server

#

cuz the cooldown applies everywhere like even if he didnt collect the daily reward in another server

sudden geyser
#

If you want to make it simple, add to the talkedRecently set/collection/whatever the guild ID and the user ID. That way, you can restrict it to a guild by user.

#

For example: js talkedRecently.add(`${guildID}-${userID}`); // ... if (talkedRecently.has(`${guildID}-${userID}`)) { // do stuff }

earnest phoenix
#

is there any way i can restrict it to only the server
@vale garden by changing the way you store the cooldown

#

use discord.js collections not arrays

#

then follow what Lite said to store both the guild id and user id

sudden geyser
#

sets are fine

earnest phoenix
#

ok

#

this is how i do cooldowns: types

sudden geyser
#

explain pls

hazy sparrow
#
const taggedMember = message.mentions.members.first()
message.channel.send(`${taggedMember.id}`) // this works fine but

message.channel.send(`${taggedMember.username}`) // this doesesnt work
earnest phoenix
#

taggedMember is a member object

#

you need to go the user property of that member object to see username, tag etc

#

taggedMember.user.username

vale garden
#

thnxx

#

it worked

hazy sparrow
#

oh ok, ty

#

whats the best way to add a cooldown to a command?

earnest phoenix
#

Add the user to cooldown map

#

and settimeout for removing user from map

hazy sparrow
#

but how do i view how much time is left before removing it from the map?

#

like You can't claim your daily yet! you have to wait x how do i view x?

earnest phoenix
#

settimeout -> delete user from map -> cooldowntime

#

@hazy sparrow in that case

sudden geyser
#

Do you mean you want to see how much time (in ms) is left

earnest phoenix
#

store user id with the time that the cooldown will expire

sudden geyser
#

Because the timeout should still be started like starwoman said

earnest phoenix
#

For example

hazy sparrow
#

Do you mean you want to see how much time (in ms) is left
@sudden geyser yup

earnest phoenix
#

"28367282" : time24hourfromnow

#

And you can check if the time passed that

#

If passed or equal then cooldown ended

sudden geyser
#

Store when the user hit the ratelimit. To get the time since, minus the current date in ms by the time the user hit the rate limit.

earnest phoenix
#

And delete the user from data

hazy sparrow
#

wait will the cooldown reset if my bot stopped/gets a error for a sec?

earnest phoenix
#

Yes

#

Unless you store it in db

#

Which is not recommended

#

Unless its daily weekly command

hazy sparrow
#

yup im trying to make a daily command

earnest phoenix
#

Daily/weekly should be stored in db

hazy sparrow
#

with quick.db (for now)

earnest phoenix
#

Other than that just json data

hazy sparrow
#

kk

#

thanks!

arctic cape
hazy sparrow
#

badges?

arctic cape
#

yes

sudden geyser
#

What library are you using // what are you doing specifically

arctic cape
#

discord.js in userinfo command i want to list the badges if possible

sudden geyser
#

You can use <User>.fetchFlags() which returns a promise resolving to an instance of UserFlags.

#

You can't see all badges the user has (for example, nitro).

arctic cape
#

nitro there is seperate wait

#

this is for nitro

#

well thnx πŸ™‚

earnest phoenix
#

What's the rate limit on updating guild channels again?

#

it isn't static

#

refer to response headers

hazy sparrow
#

how do i check if args[0] is a number

#

henlo?

slender thistle
#

Which language

hazy sparrow
#

js

#

^ @slender thistle

sonic lodge
#

use isFinite

hazy sparrow
#

how? will it be like ```js
if (args[[0] == isFinite) {
// code
}
else {
// code
}

sonic lodge
#

isFinite is a function

#

isFinite(args[0])

hazy sparrow
#

ohh

#

got it

#

thanks

#

but

#

will it work for negative numbers?

sonic lodge
#

yes

#

it returns true if the value is a finite number

hazy sparrow
#

how to make it not work for negative numbers

sonic lodge
#

you could just use args[0] > 0, as js will implicitly convert args[0] to a number in that check

hazy sparrow
#

kk, thanks again!

#

so is it ```js
if(isFinite(args[0] > 0)) {
// code
}

sonic lodge
#

remove isFinite

hazy sparrow
#

oki, thanks again

worthy glacier
#

like if message was a string

earnest phoenix
#

!IsNaN

worthy glacier
#

?

earnest phoenix
#

so is it ```js
if(isFinite(args[0] > 0)) {
// code
}

worthy glacier
#

no i want to pass a string through the function

earnest phoenix
#

Talking to bow pro#8897

worthy glacier
#

o

hazy sparrow
#

Okay so ```js
const prefix = "bow".toLowerCase();

doesesnt work
hidden cedar
hazy sparrow
#
const mobile === "no"
#

mobile

hidden cedar
#

Why mobile No????

hazy sparrow
#

mobile is not recommended for coding

slender thistle
#

Could move module.exports to the bottom of the file

hidden cedar
#

@hazy sparrow Ik mobile not recommended but am on phone rn and not my PC, so Continue code.

#

@slender thistle Thanks for the tip but am leave them there

hazy sparrow
#

if not mobile then thats a really good way to organize but it takes more space

slender thistle
#

Just my preference but you could just use // get X module as comments instead of all that padding

earnest phoenix
#

@modern sable

nimble kiln
#

^yes keep the evidence before he deletes everything KEKW

earnest phoenix
#

Ty qt marco

near veldt
#

lol

hot plover
#

@hidden cedar Welcome

worthy glacier
#

mobile ytho

hot plover
#

What is his name?

#

or url this program

#

Acode?

low shard
#

Loll

#

Mobile

earnest phoenix
#

like if message was a string
@worthy glacier typescript

#

the best way is typescript

cinder patio
#

Just pass a string through the function... if you want to be able to pass only strings, check if the parameter is a string with typeof param === "string", if it returns true, then it's a string, otherwise, you can throw an error or just do nothing

earnest phoenix
#

but still

#

hail tahpscreeepttt

carmine summit
#
if (command == 'say'){
      var channel = args[0].toString()
      console.log(channel)
      var text = args.slice(1).join(" ")
      console.log(text)
      let channelID = client.channels.cache.find(channel => channel.name.toLowerCase() === channel);
      console.log(channelID)
      if (channelID) channelID.send(text);
    }

channelID returned undefined

earnest phoenix
#

ok?

carmine summit
#

how i maek it not return undefined?

#

help help help?

still merlin
#

just do
message.channel.send(text)

green kestrel
#

lets say i have a command that can take about 1.5 seconds to complete before it returns a response (a rank card). would you consider this long enough to have some kind of indicator that its working, and what would you use?

#

im thinking just a simple text only message 'Please wait...' thats deleted once it uploads the rank card

#

but im also on the fence, that 1.5 seconds isnt even long enough to need it

#

that 1.5 seconds includes lag and time taken to upload the image

#

from when i issue the command

#

i timed mee6's rank cards and they take 2.7 seconds, on average, but mee6 has a lot more servers to process requests for.

#

(it doesnt have any kind of progress indicator or 'im working' notice)

nimble kiln
#

For something like that you could use the typing indicator

green kestrel
#

hmm, great idea

tight plinth
#

that could be a bad idea as it could create infinite typing scenarios if it restarts

#

i would consider a please wait message

green kestrel
#

if what restarts?

#

the bot?

tight plinth
#

if the bot restarts while it's generating the card

green kestrel
#

but you dont turn typing indiactors off manually

#

they auto turn off after 30 secs?

tight plinth
#

hm

green kestrel
#

typing indicator works great, thanks @nimble kiln πŸ™‚

nimble kiln
#

Nice πŸ‘

green kestrel
#

hmm, actually, just realised it doesnt even matter if the bot restarts

#

rank cards are genered by my REST API with the API server itself sending the discord calls

#

so if the bot requests the tb-api make a rank card, it'll generally complete even if the bot crashes or restarts while waiting for it

nimble kiln
#

What about the typing indicator

#

Does it stop when the bot gets restarted

green kestrel
#

theyre auto cancelled after 30 secs it seems, i read that somewhere, or on delivery of the next message

nimble kiln
#

oh ok, then it shouldnt matter anyway πŸ˜„

fathom topaz
#

i got a

green kestrel
#

my bot is split into two parts, a backend http api and a frontend C++ bot, generally the frontend bot just passes commands to the backend api, so restarting the frontend would still complete the request

fathom topaz
#

nvm

green kestrel
#

the only thing that could break it is if the FPM dies

#

which would break the entire bot anyway

#

(and dashboard lol)

nimble kiln
#

ok πŸ˜„

green kestrel
#

if youre curious do t!!globalrank on #commands πŸ™‚

fathom topaz
#

uh

#
 <meata name="viewport" content="width=device-width, intial scale=1"/>```
#

i used this

#

but my website not getting mobile responsive

delicate shore
#

Is there any way to log

#

That why my bot Aborted

#

The process

slender thistle
#

meta, not meata

earnest phoenix
#

@carmine summit ```js
if (command == 'say'){
var channel = args[0].toString()
console.log(channel)
var text = args.slice(1).join(" ")
console.log(text)
let channelID = client.channels.cache.find(channel => channel.name.toLowerCase() === channel);
console.log(channelID)
if (channelID) channelID.send(text);
}

There are countless problems here
#
  1. channel has already been defined so you're literally passing the variable in client.channels.cache.find(); instead of a callback function parameter
#

Rename the first parameter inside client.channels.cache.find(); to smth like ch

tight plinth
#

also var -> let

earnest phoenix
#
  1. var channel = args[0].toString(); is a really terrible way to check if a channel is mentioned
slender thistle
#

Explicit variables gang

earnest phoenix
#
  1. var channel = args[0].toString(); is a really terrible way to check if a channel is mentioned
    You dunno if args[0].toString(); will always be a channel mention
#

Message.mentions.channels returns a Collection

#

You can do .first() on the collection to get the first mentioned channel (which will probably be the channel which the guy wants to send the message to)

#
  1. args[0].toString(); bruh String.split(); does not return an array inside an array so args[0] will probably be a string.
#
  1. client.channels.cache.find(channel => channel.name.toLowerCase() === channel) what the fuck are you even trying to do here
#

@carmine summit PLEASE learn programming before trying to make a bot.

#

Thonk I'm confused why didn't your text editor point out all this shit

#

idling here anyone needs help (with JavaScript only) ping me
don't even bother pinging me if you use https://giveawaybot.party for REQUIREMENT giveaways

plucky mist
#

How to install heroku module

drifting wedge
#

i have a question

earnest phoenix
#

How to install heroku module
@plucky mist waitWhatSpinwaitWhatSpinwaitWhatSpinwaitWhatSpin

#

i have a question
@drifting wedge ask it

drifting wedge
#

it takes a while to talk to mongo db, like its a couple seconds

#

if my prefix is mongo db customisable

#

then will it take a couple secs to respond??

earnest phoenix
#

yes

#

db communication shouldnt take that long though

#

if it does, you're doing something wrong

#

yeah

#

unless you're using mongodb atlas with a fucking terrible wifi connection

plucky mist
#

How to install heroku module

stable eagle
#
 message.channel.fetch(gid).then(newwinner => {
        const winner = newwinner.reactions.cache.get("🎊").users.cache.filter((b) => !b.bot).random();

TypeError: Cannot read property 'cache' of undefined```
huh?
plucky mist
#

discord.js version ?

drifting wedge
#

is heroku git good?

plucky mist
#

11 12 ??

drifting wedge
#

does it allow me to send mroe than 75 kbs?

stable eagle
#

12

earnest phoenix
#

@plucky mist are you trying to install discord.js on Heroku?

plucky mist
#

no

#

@stable eagle users undefined

earnest phoenix
#

@stable eagle try doing console.log(JSON.stringify(newwinner))

#

to check what type newwinner is

#

message.channel.fetch(gid) what's gid

#

pretty sure TextChannel.fetch() is not a function

#

hits up docs

sand condor
#

it is, returns a channel not a message tho

earnest phoenix
sand condor
earnest phoenix
#

bruh

#

he wants to get the message with id gid

#

TextChannel.message.fetch()?

sand condor
#

Channel.messages.fetch

earnest phoenix
#

yeah

#

lemme confirm

sand condor
#

ok

earnest phoenix
#

@stable eagle you'll need to do message.channel.messages.fetch(gid)

obtuse saffron
#

Is there any guide for making a web dashboard for the bot ?

earnest phoenix
#

Is there any guide for making a web dashboard for the bot ?
@obtuse saffron maybe

#
obtuse saffron
#

K.

earnest phoenix
#

there is no guide

#

in order to build a fully secure dashboard you need to be well met with full stack development

#

specifically focus on frontend and backend

obtuse saffron
#

Ohk

earnest phoenix
#

@quartz kindle how do I make it so instead of saying Cannot GET /path/to/invalid/file expressjs will do ServerResponse.sendFile("./404.html");?

#

basically it will send a 404.html file

quartz kindle
#

Put it in a * route

earnest phoenix
#

uhh what?

quartz kindle
#

.get("*", (req,res) => {

#

At the end of the file

faint prism
earnest phoenix
#
app.on("*", (request, response) => {
  response.sendFile(__dirname + "website/404.html");
});
#

lemme test it

drifting wedge
#

is on message blocking?

earnest phoenix
#

is on message blocking?
@drifting wedge uhh what?

quartz kindle
#

@earnest phoenix .get not .on

#

Fixed it

earnest phoenix
#

what about app.post can you return 404 errors in POST requestsmmLol

quartz kindle
#

You can

slender thistle
#

Any request can be responded with a 404, no?

earnest phoenix
#
Error: ENOENT: no such file or directory, stat '/home/runner/codeco-discord-botwebsite/404.html'

now it's just me passing the wrong path to the 404.html file

#

did you forget the "."?

#

code

#

im disappointed

#

lol

hazy sparrow
#

Guys i want to cretae a cooldown for my hourly command but how

quartz kindle
#

Database

hazy sparrow
#

Create*

quartz kindle
#

Thats how

earnest phoenix
#

Guys i want to cretae a cooldown for my hourly command but how
@hazy sparrow my way is that i make an array upon startup and just push and pop user IDS from it

#

done

#

Database
@quartz kindle fuck no

#

databases are permanent

hazy sparrow
#

Database
@quartz kindle i know that

#

But how

earnest phoenix
#
  1. get a map
  2. check if the user id who ran the command is in the map, if yes, return
  3. add the user id of the user who ran the command to the map
  4. set a timeout, which will delete the user id of the original runner from the map once expired
#

dont switch 2 and 3

#

else it will break

hazy sparrow
#

@earnest phoenix how do i get like how much time is remaining before it will remove it from the map?

#

Like you cant claim your hourly yet, you have to wait x

earnest phoenix
#
setTimeout(()=>{
// remove user from map
},delayInMs)
quartz kindle
#

Person uses command
Store timestamp in db
Person uses command again, check if exisys in db, if it does check how long ago the timestamp is from, if its too soon, dont run, else run and update the timestamp

earnest phoenix
#

figure some stuff out on your own

#

code it was one little snippet of js

#

with literally no function

hazy sparrow
#

Tim i know the process but i have no idea how to code it i just know the map part but not the time remaining part

quartz kindle
#

You know how to store and get data right?

hazy sparrow
#

Yup

quartz kindle
#

And yoi know how to check if data exists right?

hazy sparrow
#

Yup

#

But

#

Idk how to get the date/time when the timeout will expire

quartz kindle
#

So store the timestamp when the person used the command: Date.now()

#

Then when the person uses it again, get the stored timestamp and compare it with the current one

#

Date.now() - storedTimestamp

hazy sparrow
#

how do i add miliseconds to it?

quartz kindle
#

= time passed since

earnest phoenix
#

code it was one little snippet of js
@earnest phoenix no it's that bow pro almost NEVER tries to do anything on his own

hazy sparrow
#

Like date.now() + 5000 = date.now() + 5 seconds

earnest phoenix
#

lemme type the whole messy way i do cooldowns

quartz kindle
#

Yes, but you dont need to add time to it

hazy sparrow
#

So lemme type out hiw the whole thing will be and tell me if im wrong

#

Wait hold on

#

quik.db can store dates?

#

@earnest phoenix no it's that bow pro almost NEVER tries to do anything on his own
@earnest phoenix i made a hourly command wihout the actual hourly and they can use it without the hourly cooldown GWtloLaugh

earnest phoenix
#

dates always have their unix timestamp anyways

#

you can store that

#
// start of the bot-code.js
var cooldowns = {
  nameOfCommand: [] // initialized on startup so people don't get stuck in infinite cooldowns
}
// when the command happens
case "nameofcommand":
if (cooldowns // original object
    .nameOfCommand // returns an array
    .includes( // Array.includes()
      Message.author.id // Message is a discord.js class
    )) {return Message.reply("You're on cooldown man!");}
else if (!cooldowns.nameOfCommand.includes(Message.author.id)) {
    // do the command shit
    // finally put the user's ID in the array
    cooldowns.nameOfCommand.push(Message.author.id); // pushes the user id to the Array
    // remove the cooldown after X milliseconds
    setTimeout(() => {
      let index = cooldowns.nameOfCommand.indexOf(Message.author.id);
      cooldowns.nameOfCommand.splice(index, 1);
});
}
#

thats a nice template

#

@hazy sparrow i just typed a hell big blocck of code

#

now please learn to do some stuff on your own

hazy sparrow
#

ok thanks a lot thats enough

#

but

earnest phoenix
#

thats enough
wdym

hazy sparrow
#

Can quick.db store dates

earnest phoenix
#

yeah

hazy sparrow
#

Ok great

earnest phoenix
#

dates always have their unix timestamp anyways
@earnest phoenix

#

it literally stores data

#

that's it

#

and DON'T use databases for storing cooldowns

hazy sparrow
#

Wot

earnest phoenix
#

bot goes offline => the cooldown has not been reset in your database => bot comes back online => user is forever stuck on cooldown

#

while by using arrays inside the code if your bot goes down the whole cooldown array is removed from RAM

slender thistle
#

.save(timestampOrDateObject)

on(message, {
getDb(message.author.id)
if (date.now >= timestampIndb)
{
runCommand()
}
})

quartz kindle
#

Databases are required for long cooldowns, like hourly or daily commands

#

You dont need a db for a short cooldown like 5 seconds

earnest phoenix
#

in case of downtime, short term cooldowns are going to expire anyways by the time you boot back up, so losing the data isn't a big deal

queen osprey
#

you can use a Collection or a Map

earnest phoenix
#

@slender thistle @quartz kindle he still doesn't know how databases shit work so he'll probably mess up
that's why i recommended arrays

#

wait

quartz kindle
#

But he wants an hourly cooldown, he needs a db

thick gull
#

terrible idea

earnest phoenix
#

*cooldowns object with arrays for every command

thick gull
#

if you want array

#

your bot restarts = no more cooldown

earnest phoenix
#

quick.db takes more space to store stuff than normally storing stuff in RAM

thick gull
#

your ram will go really high

earnest phoenix
#

your bot restarts = no more cooldown
@thick gull that's perfectly fine bruh

quartz kindle
#

Not for hourly commabds

thick gull
#

not for like hourly or daily commands

earnest phoenix
#

k

thick gull
#

some bots restart hourly afaik

queen osprey
#

caching in Redis is a good option or a NoSQL database

earnest phoenix
#

i don't even have a daily or hourly command so mmLol

thick gull
#

it’s just better to store it somewhere

earnest phoenix
#

short term cooldowns are fine with just being stored in memory
long term cooldowns are to be stored in a database

thick gull
delicate shore
#

how can we see where was a uncaught expressio caught in node
like where it occured

earnest phoenix
#

uhhh

delicate shore
#

plz help because it said me node --trace-uncaught but it just says this

earnest phoenix
#

Error classes have some methods to check shit

delicate shore
#

How to check the Shit

earnest phoenix
#
quartz kindle
#

Show the full error

obtuse saffron
#

Can we Quote a text in a embed if yes then how?

delicate shore
#

I wanna get the More Information

#

but i can't figure how

queen osprey
#

use the unhandledRejection event in process

delicate shore
#

ok

#

then?

#

i console

quartz kindle
#

Cannot send messages to this user?

queen osprey
#

should give the full stack trace

delicate shore
#

Cannot send messages to this user?
maybe his dms are closed
But my bot restarts due to it

#

I just wanna stop it from restarting

quartz kindle
#

Add a catch to your dm commands

delicate shore
#

I do

quartz kindle
#

Youre missing one somewhere

#

Try catch only works if you await it

delicate shore
#
try{
}catch(err){
bot.channels.cache.find('id').then(channel =>{
channel.send(`Could not dm a person because`)
})
}```
#

oh

quartz kindle
#

Also you cant use .then on .find()

#

Its not a promise

delicate shore
#

Oh

#

ok

#

so

#

Try catch only works if you await it
It says await only available in async
even tho all the event is in async

quartz kindle
#

Did you remove the
Then?

delicate shore
#

no (coz i am dumb)

quartz kindle
#

Remove it

delicate shore
#

kk

#

i forgot

drifting wedge
#

does having invisible stuff fuck with PILLOW?

#

?

#

me?

quartz kindle
#

It shouldnt

#

Bht what kind of invisible stuff?

drifting wedge
#

like this is what it gives me

delicate shore
#

I just never read the word stuff

drifting wedge
#

just because of the invisible bar

delicate shore
#

so i thought it was off-topic

#

i thought u said does having invisible fuck with PILLOW?

drifting wedge
#

lol

quartz kindle
#

The exp bar is transparent?

drifting wedge
#

yes

#

i want to have a background

quartz kindle
#

And what is the issue

drifting wedge
#

but i mean this is just fucked up

#

cuz it gives me thos

quartz kindle
#

Im not understanding what the issue is

thick gull
#

the color is inverted

near ether
drifting wedge
#

and this is the base

#

basicly the bottom 2 are the base

#

the second one is it with the invisible bar

#

and it gives that wierd one

#

and the last one is it, with a normal bar

quartz kindle
#

So if you use the one with a transparent part, the colors get fucked up?

drifting wedge
#

yea

pale vessel
#

are you using canvacord's assets in PIL?

drifting wedge
#

wdym

pale vessel
#

never mind then

drifting wedge
#

i got the bar from a yt vid

#

that was canvacord

#

but i didnt get any code form it

pale vessel
#

yeah

drifting wedge
#

just the rank card

pale vessel
#

yes but you're using it in PIL right?

drifting wedge
#

PILLOW

pale vessel
#

a fork sure

drifting wedge
#

PIL is like 10 yrs old

pale vessel
#

that's genius

drifting wedge
#

?

quartz kindle
#

Are you using any kind of conversion in your code?

drifting wedge
#

no

quartz kindle
#

Try converting it to rgba

drifting wedge
#

so just add 255 as another parameter on the text?

#

is that it?

quartz kindle
#

No

#

When yoi open the image

#

Use .convert("RGBA")

#

On the image

drifting wedge
#

nothing else?

quartz kindle
#

Idk your full code and i dont even use python

#

Not much else i can say

drifting wedge
#

like i have text

#

like write text

#

should i add the rgba para?

quartz kindle
#

But you said your issue is the image, not the text

drifting wedge
#

yes

earnest phoenix
#

i didnt know eval whas build in but now i do

drifting wedge
#

so the text should be fine?

earnest phoenix
quartz kindle
#

Try fixing the image first

drifting wedge
#

ok

quartz kindle
#

Deal with the text later

drifting wedge
#

image = Image.open('rankcard12.png'.convert("RGBA"))

#

?

near ether
#

does top.gg's api ever end up excessively sending too many REST requests to your bots?

earnest phoenix
#

what

#

what you just said makes absolutely zero sense

quartz kindle
#

@drifting wedge thats literaly trying to convert the text "rankcard12.png" lol

drifting wedge
#

lol

#

fundo = Image.open('rankcard12.png'."RGBA")?

#

im not too good with PILLOW

near ether
#

sorry just woke up, im trying to ask if its possible that the voting webhook runs into an issue at some point that leads to it spamming the webhook with invalid votes or something

earnest phoenix
#

not really

delicate shore
earnest phoenix
#

there were recently some issues with the webhooks, not sure if that's what it was

near ether
#

one of my friends told me my bot can get temp-banned from webhook spam and the only one i use is top.gg's

earnest phoenix
#

how would that even happen lol

near ether
#

ah

#

i have no clue lmao thats why i asked

earnest phoenix
#

the communication is directly between you and top.gg

#

there's no discord involved

delicate shore
near ether
#

yes but upon receiving the vote my bot dms the user

delicate shore
#

one of my friends told me my bot can get temp-banned from webhook spam and the only one i use is top.gg's
@near ether
Your friend is probably stupid then

#

That wont happen

#

My bot also DMS a user

#

On receiving vote

near ether
#

lmfao gotcha ill let him know

delicate shore
#

K lmaoception

quartz kindle
#

@drifting wedge thats not even pillow, its just basic programming lol

drifting wedge
#

@drifting wedge thats not even pillow, its just basic programming lol
@quartz kindle ummmm

quartz kindle
#

"String"."String" makes no sense

drifting wedge
#

awkward chuckle

quartz kindle
#

Unless youre using php

#

You want to convert the image

#

Which means, you import it first

#

And then convert the result

#

Therefore

#

.open().convert()

earnest phoenix
#

any idea?

#

and yes i already make the .sh executable

dusky mason
#

I am getting an error when importing :
from cogs.utils.checks import embed_perms, cmd_prefix_len, hastebin
is anything wrong with it?

#

python

slender thistle
#

What's the error

dusky mason
#

unresolved reference

#

ive worked with it before

#

and the other red lines say unresolved reference

#

any idea?

#

do i need to pip install it?

hazy sparrow
#

everything works execpt the actual give and i dont have any errors;

const db = require("quick.db");

module.exports = {
    name: '8ball',
    description: "Ask the 8ball anything you want!",
    execute(message){
        
        const prefix = "bow"
        if (!message.content.toLowerCase().startsWith(prefix) || message.author.bot) return;

        const args = message.content.slice(prefix.length).trim().split(/ +/);
        const command = args.shift().toLowerCase();  
        const taggedMember = message.mentions.members.first()
        const bal = new db.table(`${message.author.id}mybal`) 
        

        
        if (!args.length) {
            return message.channel.send("Next time also tag a person and how much to give. Eg: `bow give @person 100.`");
        }
      if(args.length) {
         if(taggedMember){
         if(args[1] > 0) {
           if(!args[1] > db.get(`${message.author.id}mybal`)) {
            db.subtract(`${message.author.id}mybal`, args[1])
            db.add(`${taggedMember.id}mybal`, args[1])
         message.channel.send(`Gave ${taggedMember} **${args[1]}** bowbucks`)
           }
           if(args[1] > db.get(`${message.author.id}mybal`)) {
               message.channel.send("Don't fool me. You don't have that much to give!")
           }
          
         }
        if(!args[1] > 0) {
            message.channel.send("Next time enter a valid number above 0.")
        }
    
             
         }
         if(!taggedMember) {
             message.channel.send("Next time @mention the person who you want to give bowbucks to.")
         }
        
      }



    
    
        
}
     
    
    
    
}
restive furnace
#

no

drifting wedge
#

dont use pastebin

hazy sparrow
#

lmao

drifting wedge
#

i mean do use it

#

if u dont want to its ur problem

#

just that ppl wont like you

restive furnace
drifting wedge
#

hatebin?

restive furnace
#

(all forks of hastebin πŸ˜‚ (except hatebin))

drifting wedge
#

πŸ˜†

hazy sparrow
#

tf is hatebin

#

ok now someone help me pls

dapper garden
#

Hello ,Can you explain to me how to install translate smoogle ?

earnest phoenix
#

what

drifting wedge
#

how can i conver img to rgba?

#

using pillow?

fickle sapphire
#

@hazy sparrow try:
if (args[1] < 0)
instead of:
if (!args[0] > 0)

hazy sparrow
#

oki wait

#

didnt work

#

@fickle sapphire ^

fickle sapphire
#

ehm

restive furnace
#

or if (!args[0]) will just work lol

hazy sparrow
#

yea i thought both were same

restive furnace
#

no they aren't.

hazy sparrow
#

they do the same thing

drifting wedge
#

can i have like half cogs?

#

like a cog thing, but that acts like a main file thing?

hazy sparrow
#

also args[1] will be give right?

#

args[0]*

restive furnace
#

@hazy sparrow nope, !variable checks for every nullable value, while variable < 0 just checks if the value of the variable is less than zero.

#

not the length.

fickle sapphire
#

you can just remove the line if (!args > 0)

#

You already search for that

hazy sparrow
#

you can just remove the line if (!args > 0)
@fickle sapphire what

restive furnace
#

no if he doesn't want undefined behaviour

fickle sapphire
#

look some lines above

#

it already says: if( args > 0)

#

so if its not the command wont execute

hazy sparrow
#

what

fickle sapphire
#

it already checks if args[1] is bigger then 0

hazy sparrow
#

i want something else to be execute if that doesesnt execute?

restive furnace
#
let something = null;
if (!something) console.log("true");
something = "";
if (!something) console.log("true");
something = false;
if (!something) console.log("true");
something = 0;
if (!something) console.log("true");
something = "0";
if (!something) console.log("true");
// every case should return true.```
fickle sapphire
#

so there is no nead to do that again

#

then add the line: else {
}

restive furnace
#

and it is needed

hazy sparrow
#

if (args[1]) and if (!args[1]) are not the same

restive furnace
#

he checks if the user has not more than giving

#

otherwise just do nothing

fickle sapphire
#
const db = require("quick.db");

module.exports = {
    name: '8ball',
    description: "Ask the 8ball anything you want!",
    execute(message){
        
        const prefix = "bow"
        if (!message.content.toLowerCase().startsWith(prefix) || message.author.bot) return;

        const args = message.content.slice(prefix.length).trim().split(/ +/);
        const command = args.shift().toLowerCase();  
        const taggedMember = message.mentions.members.first()
        const bal = new db.table(`${message.author.id}mybal`) 
        

        
        if (!args.length) {
            return message.channel.send("Next time also tag a person and how much to give. Eg: `bow give @person 100.`");
        }
      if(args.length) {
         if(taggedMember){
         if(args[1] > 0) {
           if(!args[1] > db.get(`${message.author.id}mybal`)) {
            db.subtract(`${message.author.id}mybal`, args[1])
            db.add(`${taggedMember.id}mybal`, args[1])
         message.channel.send(`Gave ${taggedMember} **${args[1]}** bowbucks`)
           }
           if(args[1] > db.get(`${message.author.id}mybal`)) {
               message.channel.send("Don't fool me. You don't have that much to give!")
           }
          
        } else {
            message.channel.send("Next time enter a valid number above 0.")
        }
      
         } else {
            message.channel.send("Next time @mention the person who you want to give bowbucks to.")
         }
        
      }



    
    
        
}
#

@hazy sparrow

#

Test this

hazy sparrow
#

okay hold on

restive furnace
fickle sapphire
#

You first detect if something is there and then again detecting if something isn't its easier to use else

#

This is how that works:

#
if (something){
//code
} else {
//code
}
earnest phoenix
#

that's so many unnecessary database calls

restive furnace
#

^^

hazy sparrow
#

but isnt

if(thing){

}
if(second thing) {

}

also the same?

restive furnace
#

no

earnest phoenix
#

you should learn the language you're working with

#

hell, this isn't even language basics

#

it's logic gates

#

the basic of basic

fickle sapphire
#
if(something) {

} else if (something else) {

} else if (something else) {

}
#

Did you test what I sent?

hazy sparrow
#

oscar your code gives a Sytnaxerror: Unexpected end of input

earnest phoenix
#

stop copypasting it

fickle sapphire
#

Which line?

restive furnace
#

took me literally 3 secs to google

#

so its not hard to google problems

hazy sparrow
earnest phoenix
#

stop copypasting code

hazy sparrow
#

???

restive furnace
#

(and do the exercises thx)

earnest phoenix
#

what does nullable mean in javascreept

#

take a guess

#

???
@hazy sparrow you literally copy pasted his EXAMPLE TEMPLATE

#

the example on its own does not work

hazy sparrow
#

Which line?
@fickle sapphire ok apparently i had missed a } at the end while copying it and now its online but same thing is happening

earnest phoenix
#

dude

#

stop copypasting code

hazy sparrow
#

i jsut copypasted what he sent

earnest phoenix
#

the ONLY PLACE from which you should ever copy paste code is https://discordjs.guide because they ONLY give examples and you'll never be spoonfed

restive furnace
#

no

earnest phoenix
#

i jsut copypasted what he sent
@hazy sparrow we told you not to

restive furnace
#

dont copypaste ever

earnest phoenix
#

yeah but

hazy sparrow
#

k lemme ctrl z

earnest phoenix
#

also

#

learn javascript PLEASE most of your problems are solved by common sense

strong fractal
#

Guys

earnest phoenix
#

wut

restive furnace
strong fractal
#

Can we talk here about C# etc not about discord bots?

faint prism
#

Can we talk here about C# etc not about discord bots?
@strong fractal Hell yeah

restive furnace
#

read the channel desc

earnest phoenix
#

Guys
@strong fractal i'm an apple so i don't count as a guy

restive furnace
#

so yeah

faint prism
#

What's up

strong fractal
#

Guys

earnest phoenix
#

Can we talk here about C# etc not about discord bots?
@strong fractal as long as your topic is related to pogger programming it is allowed

strong fractal
#

I have a question

earnest phoenix
strong fractal
#

I am new to visual studio

faint prism
#

I have a question
@strong fractal -asktoask

strong fractal
#

And c#

faint prism
#

Out with it, man

earnest phoenix
#

just ask the question

faint prism
#

lmao

strong fractal
#

My cursor selects a letter

earnest phoenix
#

so

strong fractal
#

Not a space between them

earnest phoenix
#

BRUH

strong fractal
#

How I change it?

earnest phoenix
#

MOMENT

faint prism
#

l0l

earnest phoenix
strong fractal
#

Bruh

hazy sparrow
#

how do you select a space

faint prism
#

Not even C# related?

strong fractal
#

@hazy sparrow idk lmao

earnest phoenix
#

how do you select a space
@hazy sparrow you select it like normal text?

strong fractal
#

I said that I am new

earnest phoenix
#

huh

#

greenname

strong fractal
#

For example

earnest phoenix
#

@strong fractal you have bot developer role and you're saying you're new that can only mean you use BotGhost

hazy sparrow
#

also why do you need to select just the space

faint prism
#

Just highlight it, or click and drag, or SHIFT+ARROW to highlight

#

pick your poison

earnest phoenix
strong fractal
#

I can’t select space between letters

earnest phoenix
#

time to do another one of my idling sessions
takes deep breath

idling here need help with javascript ping me

faint prism
#

You're on discord, why did you take a picture of it instead of a screenshot

earnest phoenix
#

I can’t select space between letters
@strong fractal there is no fucking space you dumbass

hazy sparrow
#

there is no space there

strong fractal
#

@earnest phoenix are you toxic?

#

Shut up and listen bro

#

I said I am new

faint prism
#

@strong fractal there is no fucking space you dumbass
@earnest phoenix please don't attack beginners 😦

hazy sparrow
strong fractal
#

@faint prism he is just a kid

earnest phoenix
#

auto-correct on Grammarly extension is drunk

strong fractal
#

@earnest phoenix your Apple is drunk

hazy sparrow
#

I said I am new
@strong fractal you new to typing or something?

faint prism
earnest phoenix
strong fractal
#

Lmaoooo

#

A kid

hazy sparrow
#

does he seem to care @earnest phoenix

earnest phoenix
#

you pressed insert and went into insert mode which is used in unix systems

#

yeah

strong fractal
#

Lmaooo

earnest phoenix
#

you pressed insert and went into insert mode which is used in unix systems
@earnest phoenix wait insert button has a use

strong fractal
#

PLEASE DONT BLOCK MEEE ;(

faint prism
#

oh snap, insert. Yeah, that's it

strong fractal
#

I will give you anything

#

Money health

#

Your own galaxy

#

Pls ;(((

#

Don’t block meeee

#

epic sarcasm

earnest phoenix
#

PLEASE DONT BLOCK MEEE ;(
@strong fractal then don't act like we're gods and we don't have the right to say the f word and we're kids

faint prism
earnest phoenix
#

also

#

yuck wpf

strong fractal
#

How do I select between letters

earnest phoenix
#

read my message

hazy sparrow
#

bruh @strong fractal

#

ohh

earnest phoenix
#

also
yuck wpf
w hite
p oop
f uck

hazy sparrow
#

i get what you mean now

strong fractal
#

Finally :D

earnest phoenix
#

How do I select between letters
@strong fractal there is no space bruh

strong fractal
#

Is it possible?

hazy sparrow
#

just click on the dead center of it

earnest phoenix
#

why are you ignoring what i said

#

Is it possible?
@strong fractal only if there is a between the letters

drifting wedge
#

how can i later images with pillow?

#

layer*

#

like put one on top of another?

earnest phoenix
#

how can i later images with pillow?
@drifting wedge your pillow is a computer programokeh

strong fractal
hazy sparrow
#

or @strong fractal clikc the letter to the right of it and click the left arrow key

drifting wedge
#

@drifting wedge your pillow is a computer programokeh
@earnest phoenix pillow as in pil

earnest phoenix
#

again, why are you ignoring what i said

hazy sparrow
#

and read mine too

faint prism
#

you're literally in INSERT mode

earnest phoenix
#

yeah

strong fractal
#

What is insert mode?

faint prism
#

press the [Insert] key on your keyboard

strong fractal
#

Bruh

earnest phoenix
#

click the button again not gonna help you said i'm a kid

strong fractal
#

I am so dump

#

Thx

earnest phoenix
#

you don't have to tell us

strong fractal
#

i am so dump

hazy sparrow
#

XD

strong fractal
#

Thx guys

#

Btw

#

I still don’t understand

#

Why it doesn’t affect like visual studio code, browsers? This insert mode

faint prism
#

Consider an intro to computers class, maybe at a public library.
That should explain the behavior

strong fractal
#

It only affects my visual studio

earnest phoenix
#

@strong fractal now you're actually coming off as a cringe post

#

that's a dumb question

hazy sparrow
#

@strong fractal you can for example if you want to click on the center of bp just click on p and press the left arrow key

earnest phoenix
#

the same answer why the same key doesn't unlock all doors

#

different implementation

strong fractal
#

@earnest phoenix well visual studio code and visual studio are kinda same

hazy sparrow
#

@earnest phoenix stop aaaa

strong fractal
#

Well they are not

earnest phoenix
#

Consider an intro to computers class, maybe at a public library.
@faint prism libraries are terrible for programmers they tell us to stay shut and we sob like we're dying when linux sudo just doesn't want to work

strong fractal
#

They have different outcomings

drifting wedge
#

how can i layer images in PILLOW?

earnest phoenix
#

vsc and vs are two completely different software despite their naming

strong fractal
#

But still people write scripts in them

faint prism
#

@faint prism libraries are terrible for programmers they tell us to stay shut and we sob like we're dying when linux sudo just doesn't want to work
@earnest phoenix No I mean like learn how to send emails, use a keyboard, browse the web, manage files, etc