#development

1 messages Ā· Page 2005 of 1

wheat mesa
#

but that's tripping me up

lyric mountain
#

I always create a snake game everytime I start a new lang

#

I'd give a search, but am on mobile data

wheat mesa
#

I found a tutorial, I'm gonna see how they do it

#

I usually don't like going through video tutorials because they just give you all the answers without needing you to think about it

#

but I'll make an exception for this one

lyric mountain
#

A great thing is that video tutorials from 1990 are still valid today

wheat mesa
#

lol not wrong

lyric mountain
#

Cuz java is fully backward compatible unless using JNI or obscure sun packages

wheat mesa
#

not to mention swing probably hasn't changed all that much since then anyways

lyric mountain
#

Ye kekw

#

You can notice for how it still use Graphics instead of Graphics2D

#

Btw

#

Use fillRect instead of drawRect

#

So u get a filled rect instead of outline

wheat mesa
#

Yeah I got that down

lyric mountain
#

Since it's a game, u can also set rendering to fast

#

So u get faster rendering by sacrificing quality

#

But it's a blocky game, so u can afford it without issue

#

setRenderingHint

wheat mesa
#

so turns out this guy is doing it vastly different than I am

#

I think he's about to add a keylistener to the actual frame/panel

lyric mountain
#

U can add it to the paddle too probably

wheat mesa
#

he's got a proper game loop

#

I probably should've put more thought into this initially but I didn't expect it to be too much of an issue lol

lyric mountain
#

Go easy

#

Make it work, then optimize

#

For game loop u can probably use a ScheduledExecutor

wheat mesa
#

this guy kinda pains me though

lyric mountain
#

Set to loop every 200ms or so

wheat mesa
#

he manually types out his imports every time

#

instead of just using the intellij suggestion

lyric mountain
#

Ah, caveman method

#

Common among old devs

#

My teacher used to force us to use np++/sublime so we had to type it all manually

#

He said becoming dependant on IDEs is bad

wheat mesa
#

we're forced to use replit/JCreator

#

it's terrible

lyric mountain
#

No wonder everyone finish college hating java

wheat mesa
#

neither of them are lightweight, but neither of them actually provide useful features

#

I'd be fine with one or the other

sudden geyser
#

no one takes java in college and likes it

lyric mountain
#

Any lang gets ruined by college kekw

#

I remember our C classes

wheat mesa
#

I installed intellij idea on one of the school computers and I could tell my teacher was internally proud

lyric mountain
#

Had to use DevC++

#

That shitty compiler made our work harder than necessary

sudden geyser
#

been using sublime for java more recently

wheat mesa
#

idk why schools decide to use the most obscure IDEs for languages where a good IDE can make a world of difference

#

I take autocomplete for granted until I don't have it

sudden geyser
#

at first I was just building the project to get it to spit out errors

#

then a linter

lyric mountain
#

EOP best method

sudden geyser
#

then gave up from there

lyric mountain
#

Error Oriented Programming

sudden geyser
#

how about guardrail driven development

wheat mesa
#

my current CS class starts off assuming you know nothing about programming previously

#

which to be honest it's done a pretty good job for those who didn't know much

sudden geyser
#

but they're teaching you java?

wheat mesa
#

yup

#

a different high school in a neighboring city has to learn swift KEKW

sudden geyser
#

would rather do that

#

plus creative

lyric mountain
#

Isn't swift ios?

sudden geyser
#

it's not restricted to ios

#

that's just it's main market

wheat mesa
#

I'd say java is one of the best languages to learn whether you like it or not at this point

elder wolf
#

python

lyric mountain
#

Heard apple puts out breaking changes all the time

elder wolf
#

python is good tho

wheat mesa
#

I'm not talking about good or bad

#

I'm talking about usefulness

sudden geyser
#

I haven't seen Apple put out one

wheat mesa
#

Java is universal to pretty much every platform

#

if it has a jvm, it can run java

elder wolf
#

ah ok

wheat mesa
#

Not to mention it's great at teaching OOP

#

and data structures

lyric mountain
#

It has the C strictness but more readable on the long run

wheat mesa
#

much easier to understand in terms of errors

#

perfect intro lang

sudden geyser
#

eh, if I were to personally recommend a language to newcomers, I'd pick python

lyric mountain
#

I'd say try all 3

#

Java JS Python

sudden geyser
#

but this is for beginners

lyric mountain
#

Yes

sudden geyser
#

there is only one pick

wheat mesa
#

java is perfect for beginners

#

it teaches types, objects, C-like syntax, and is useable basically anywhere

sudden geyser
#

but so does python while removing all the complexity and stuff people don't like about java

#

except the c type syntax

wheat mesa
#

I see people that go from js/py to a strictly typed language like java and they struggle a lot with the concept of types

lyric mountain
#

Python might be too abstracted

#

People get dependant on writing little code and not thinking how it works inside

sudden geyser
#

isn't that a good thing

wheat mesa
#

In my opinion, types are one of the first things you should learn about programming

#

because it's useful in every language

lyric mountain
wheat mesa
#

even if you don't have to explicitly declare them in said language

sudden geyser
#

that's like suggesting someone learn traditional chinese first because simplified chinese will be easier than the other way around

wheat mesa
#

I don't know if I would compare it to a real language

#

real languages have WAY less structure

lyric mountain
#

I mean, python is so off the curve that you have harder time learning more standardized langs

wheat mesa
#

(well, technically they're very structured but there's always exceptions to rules in real langs)

#

python is unique in comparison to most langs out there

#

in syntax at least

lyric mountain
#

Like ruby

sudden geyser
wheat mesa
#

I don't think that Java is necessarily "harder"

sudden geyser
#

For beginners, it certainly is šŸ™‚

wheat mesa
#

It's just that python does some work to abstract certain things away from you

#

python makes sense at first for beginners but then you switch to a different lang and you're perplexed because the syntax is so foreign and types and all that

sudden geyser
#

in terms of familiarity, yes, python is harder, agree there

#

but for beginners to learn what programming is like and being able to apply it, I think Python does what people want from Java but without all its baggage.

#

In my CSA class, for example, I know a lot of people who were well off learning Java because they learned JavaScript/Python beforehand

wheat mesa
#

I think python is a good beginner language as well, I just think that Java builds some of the most crucial foundational knowledge that will be applied to many other languages

#

my CS1 class didn't dive right into java

quartz kindle
#

js best lang for beginners

woeful pike
#

beginners are not a monolith

wheat mesa
#

they explained some of the things that lead to thinking about why java is why it is (if that makes any sense)

woeful pike
#

different languages appeal to different kinds of people based on how and what they like to learn

wheat mesa
#

I definitely think python is less intimidating

#
print("hello world!")
``` is probably way less scary than ```java
public class Main {
  public static void main(String[] args) {
    System.out.println("hello world!");
  }
}
woeful pike
#

someone who wants to understand how computers work probably isn't going to enjoy starting with python and a beginner who wants to make discord bots probably won't want to begin with C

quartz kindle
#

the more simple and abstracted the language, the better to start with

#

its the same principle everywhere else in education

#

you start with a basic overview of biology, physics, math, etc

woeful pike
#

terrible principle

quartz kindle
#

then as you progress, you dive deeper and break down things into more complex things

woeful pike
#

begin with what excites you, not the simplest

wheat mesa
#

I agree with that

lyric mountain
#

Most don't dive deep after meeting the easy

wheat mesa
#

people are much more prone to learning if they're motivated and excited about the content

woeful pike
quartz kindle
#

yeah, and diving straight into something complex like a low level language is often gonna be a turn off

woeful pike
#

depends on what your goals are. I know plenty of people who went into programming to understand how computers work

wheat mesa
#

they made us spend 3 weeks learning how to convert binary to decimal and vice versa

#

I understand why it's useful but that's one of those things that I don't think is entirely necessary to spend that much time on

lyric mountain
#

They force u to make dumb stuff using dumb means

#

And dumb tools

woeful pike
#

and complexity isn't a linear thing. C is a dead simple language in some sense and complex in other ways

wheat mesa
#

personally I love cs because I was able to get an early start in it rather than having to wait until college to get useful courses

lyric mountain
#

75% of the class you spend trying to setup the tools you'll be using

#

20% typing

#

5% actually thinking

woeful pike
lyric mountain
wheat mesa
woeful pike
#

my hot take is dont teach programming in cs courses until like 3rd year or whatever

wheat mesa
#

granted we use pretty much 2 tools

#

you guys wanna know something really dumb though?

#

the APCSA exam

quartz kindle
wheat mesa
#

that shit is stupid

crimson vapor
#

No

#

AP CSP

#

more of a joke

wheat mesa
#

never took it

#

APCSA isn't a joke, it's just stupid

#

It's memorization

#

And tedious work

crimson vapor
#

CSP is worse

#

Download the exam

wheat mesa
#

It's just literally doing the work that the compiler was literally invented to do for you

#

for the AP CSA exam, you pretty much just have to be the compiler

crimson vapor
#

It’s to prove understanding but it’s a shitty test

sudden geyser
#

I'm sitting in both classes this year and massively favor CSP over CSA as a class

wheat mesa
#

Which I think is incredibly stupid

sudden geyser
#

both exams are still stupid

crimson vapor
lyric mountain
woeful pike
#

I hate how every programming debate boils down to 2 people going "no nuance, only correct answer angy "

wheat mesa
#

I don't think that one exam should determine your understanding of an entire class

crimson vapor
#

i had to take CSP this year and next year CSA

wheat mesa
#

Taking CSA this year

#

Haven't really learned much I didn't already know

crimson vapor
#

i hate the way my school does it

wheat mesa
#

But I'm still glad to be taking it

crimson vapor
#

CS is a 3 class program with classes that don’t need to be taken in any order

#

except they force progression

wheat mesa
#

Yeah it's funny

crimson vapor
#

and lock it to an ā€œacademyā€

wheat mesa
#

CSP requires no knowledge, CS1 requires no knowledge, CSA requires no knowledge

woeful pike
#

this is a formal education problem not a cs problem

wheat mesa
#

the only cs class offered at my school that has prerequisites is CS3

crimson vapor
#

I heard they might not offer CSA next year because not enough kids are taking I

wheat mesa
#

which is a data structures course

crimson vapor
#

what is CS1

#

I don’t have such a class

wheat mesa
#

basically intro to CS

crimson vapor
#

We have ā€œIT Fundamentalsā€

wheat mesa
#

not csp tho

#

I'm surprised we have a data structures course offered

#

I'm very lucky for that

#

Gonna gladly snatch that up next year

crimson vapor
#

I’m just taking CS at the state college as well

#

except I had to take CGS1100 or some shit

wheat mesa
#

taking cs at my high school

lyric mountain
#

Me not understanding what those terms mean: šŸ‘ļøšŸ‘„šŸ‘ļø

crimson vapor
#

basically I have to take Microsoft word before I take intro to programming before I take programming in C

#

thank you education system

woeful pike
wheat mesa
#

computer science principles = csp, computer science 1 = cs1, advanced placement computer science A = csa/apcsa, etc

woeful pike
#

psh A levels

sudden geyser
#

try asking your counselor if you can just skip up the ladder of classes

#

In 11th grade I was taking intro to programming and robotics and wanted to take AP but would normally require I take honors first

#

didn't want to do that, asked, pray, get in, profit

austere surge
wheat mesa
#

I would've skipped to CS3 this year, but an AP credit is free college credit

crimson vapor
#

It is

wheat mesa
#

not to mention I also get a math credit for taking ap

crimson vapor
#

so is dual enrolling

sudden geyser
#

yeah but you need to find a college that actually accepts it

wheat mesa
#

no dual credit cs at my school unfortunately

sudden geyser
#

and lots like not doing that so you take their class regardless

wheat mesa
#

most colleges accept it

#

depending on your score

woeful pike
austere surge
#

yeh

crimson vapor
#

so if they let you for free, take college composition or something easy

wheat mesa
#

most colleges accept a 4/5 on the apcsa exam

crimson vapor
#

Music appreciation

woeful pike
#

oh hey I took music appreciation

sudden geyser
#

yeah but even if it's a 4, I've heard lots of colleges that still force their students to take their class regardless

boreal iron
#

[...] or an exorcism

lmao

crimson vapor
#

Lmao

sudden geyser
#

so I'd argue it's something to consider

crimson vapor
#

i never took it

woeful pike
#

I learned some music theory stuff on the side by making a program for it

simple stump
#

How would I get the time left in an audio stream?

crimson vapor
wheat mesa
#

next year I've loaded my schedule with as much college credit as possible

wheat mesa
crimson vapor
#

7 classes, 6 AP

wheat mesa
#

6 classes, 2 AP, 2 dual credit

crimson vapor
#

Lang,
Physics C,
Calc BC,
Econ/Gov,
CSA,
HUG

#

I’m taking intro to programming over the summer as a free college class

#

then I take c programming and probably Java

sudden geyser
#

sounds painful

wheat mesa
#

AP calc BC
AP Physics 1/2
Dual Credit Gov/Econ
CS3 Honors
Dual Credit Eng Lang
Digital Electronics (had nothing else to take)

woeful pike
crimson vapor
#

it’s not

crimson vapor
#

i took ENC1101 this year

wheat mesa
#

idk

crimson vapor
#

joke of a class sadly

wheat mesa
#

haven't looked at the actual name

#

my high school just calls it dual credit eng lang

crimson vapor
#

It’s like college composition 1 or something

#

ah

crimson vapor
# sudden geyser sounds painful

Gonna elaborate on this actually, imho AP classes are so much easier than honors classes because the teachers are actually competent for the most part

woeful pike
#

man I didn't have a single programming class as an option in the IB

#

cringe

wheat mesa
#

I think that dual credit is infinitely easier than ap imo

crimson vapor
#

It is

wheat mesa
#

all you have to do is pass the class and you get credit for it

#

in AP your college credit all hangs on one test at the end of the year

crimson vapor
#

these college classes should be harder

quaint rampart
quartz kindle
#

can dm if you dont want it public

sudden geyser
#

My teacher does a fine job teaching but is aggressive about the class being an AP class

quaint rampart
quartz kindle
# quaint rampart done

i dont see anything wrong with them, they load fast for me. the only thing i noticed is that your tags are using relative url, im pretty sure the opengraph spec asks for absolute urls

quaint rampart
#

it only loads fast cuz discord already has the embed for the link

#

lemme send u one w/o embed

quartz kindle
#

still fast enough

quaint rampart
#

i’m not sure then soentimes it’s just laggy

quartz kindle
#

if you suspect the issue is in your server, you can try benchmarking / stress testing it

#

see how many requests per second it can serve

#

there are several tools for that

#

otherwise its either a discord issue or a network issue in general

simple stump
#

How do I get the length of an mp3 or audio file?

lyric mountain
#

Metadata

#

Don't ask me how to extract it tho

wheat mesa
#
let mut x = 0;
let mut y = 1;

// Wouldn't it be fucked up if this could modify y?
x = 2;

println!("{y}");
``` I love how this very well written rust article about an unsafe pointer overhaul just has this comment in the middle of it
plucky imp
#

yes

sudden geyser
#

foreshadowing

rocky hearth
#

The only difference bw, C malloc and calloc, is that calloc creates memory with default of 0, right?

hoary apex
#

Helpp

sudden geyser
#

displayAvatarURL doesn't return a promise.

#

It's just a string.

hoary apex
#

But it was working fine yesterday I didn't changed the code

wheat mesa
#

highly doubting that it was "working fine yesterday" without changing the code like that

#

you can only use .catch on promises

crimson vapor
#

this could be code for something like logging, which would only have the issue on some events

#

oh wait it shows file doesn't it

#

oh index

hoary apex
rocky hearth
#

what wud be the output of this c snippet?

  char x;
  x = getchar(); // given b as input
  
  switch(x) {
    case "B" || "b": 
      printf("this is b");
      break;
    case "a": 
      printf("this is a");
      break;
    default: 
      printf("this is none");
  }
crimson vapor
#

this is b?

#

no

wheat mesa
#

Well, what’s getchar();?

crimson vapor
#

never this is b?

wheat mesa
#

Can you even do switch cases like that?

crimson vapor
#

could be a

#

probably this is none

rocky hearth
#

sorry, I updated now

crimson vapor
#

this is none

wheat mesa
#

I don’t think you can do switch statements like that so I’m gonna go with this is none

crimson vapor
#

do

case 'B':
case 'b':``` instead
#

' for char in C iirc

#

and "B" || "b" will just be true

#

iirc

wheat mesa
#

Oh wait wouldnt that be an error? The switch case is on a char but your cases are char* technically

crimson vapor
#

could be an error

#

I would assume it just never works

rocky hearth
#

yes I'm getting this error on case "a"
error: case label does not reduce to an integer constant

wheat mesa
#

I don’t know enough about the very specific areas of C to answer this question with 100% accuracy

#

Yeah

crimson vapor
#

yeah thats because a string isnt an int

elder wolf
#

hm

crimson vapor
#

because a char is just an abstraction of an int?

wheat mesa
#

char is just an unsigned integer type

elder wolf
#

does anyone know how to make a lobby

#

in python

crimson vapor
#

lobby?

elder wolf
#

on a discord bot

#

yes

crimson vapor
#

no like

elder wolf
#

like a lobby create and join option

crimson vapor
#

elaborate

elder wolf
#

ok so you do /start lobby

#

it creates a lobby

#

then people can join it

crimson vapor
#

and what does said lobby do?

elder wolf
#

it waits a few moments

#

Like 60 seconds

#

Then starts

#

and then runs a function

#

a extremely long function

crimson vapor
#

what does said function end up doing

elder wolf
#

ends up playing a game

crimson vapor
#

ok

elder wolf
#

a whole story game

#

and choice and stuff

crimson vapor
#

so just displays text or something?

wheat mesa
#

Make a lobby class

elder wolf
#

and different people do different things

elder wolf
#

pov: you learn classes 12 hours ago and u start using it

rocky hearth
wheat mesa
#

Classes are just bags of data that can manipulate themselves

crimson vapor
#

idk python

class lobby
lobby(timeout) // creates lobby
join(id) // adds person to lobby

elder wolf
#

yes but like

#

how does it know how many people are in it

#

unless I create a database for it

#

Every single time someone makes a lobby

#

and what if someone just left

#

went afk

wheat mesa
#
switch(x) {
    case 'b': // do something
}
crimson vapor
wheat mesa
#

Single quotes indicate character literals, double quotes indicate a character pointer in C

elder wolf
#

ooohs it’s Java

wheat mesa
#

That’s C

#

Not Java

crimson vapor
#

c

#

java

#

same shit

elder wolf
#

ok

wheat mesa
#

Same shit different ass

rocky hearth
crimson vapor
#

yes

#

thats a good saying

crimson vapor
wheat mesa
#

Just remember that there’s technically not a ā€œstringā€ in C and that it’s always just a block of characters

crimson vapor
#

idk python

class lobby
func:
lobby(timeout) // creates lobby
join(id) // adds person to lobby
prop:
people = [] // array of people or ids or something

rocky hearth
#

and how does, c evals 'b' || 'B' in cases of switch?
How C treats them like?

crimson vapor
#

true

#

idk ascii of b or B but assume its 1 and 11

#

1 || 11

#

thats just true

rocky hearth
#

oohk

wheat mesa
#

I don’t think you can have a logical OR in a switch case but if you can it’s just the same as it would be treated elsewhere

wheat mesa
#

I don’t think so

crimson vapor
#

is not?

rocky hearth
#

yeah, the program successfully ran the default case this time

wheat mesa
#

If you can have an OR in a switch case it’ll just be evaluated as x matches b OR B

#

Not always true

crimson vapor
#

oh

wheat mesa
#

I’ve been looking into getting into C more but no classes hurts me so I stay with C++ instead

crimson vapor
#

so x == b || B

wheat mesa
#

x == b || x == B

crimson vapor
#

oh?

wheat mesa
#

But again, I don’t think that works in a switch case

crimson vapor
#

that works in switch cases?

wheat mesa
#

I don’t think a logical OR would be in a switch case

rocky hearth
#

like
case 'b' || 'B':
and
case 'b':
case 'B':
are both same thing?

wheat mesa
#

Just let it fall through

#

Yeah the OR thing doesn’t work

#

It doesn’t crash but it doesn’t have the intended behavior either

crimson vapor
#

I don't know I assumed it would be

case 'b' || 'B':
// or 
case 98 || 66:
// or basically
case true:
wheat mesa
#

That wouldn’t make logical sense

#

That would be trying to match a Boolean to a char

crimson vapor
#

but the

case 'b' || 'B':
// same as
x == 'b' || 'B'```
#

makes sense

wheat mesa
#

I don’t know why you would write code like this in the first place

#

No real reason to do the job of the compiler on whether it works or not :p

#

just let it fall through like that

#

that's the switch equivalent of OR

boreal iron
#

Alright.. after 12h of frontend I necessarily need vacation now

dry imp
#

no u dont

wheat mesa
boreal iron
#

Now I’m gonna enjoy 12h of sleep

wheat mesa
#

gn fake, don't let the java bugs bite

boreal iron
#

will dream of my outstanding progress

stable nimbus
#

I'm currently updating my deprecations inside of my applications, but when I fix them all, all I get is errors and my project no longer starts when I update to latest, however, when I revert to a depreciated version (such as embed.setAuthor or embed.setFooter) everything works fine, any thoughts?

wheat mesa
#

I don't know what's wrong, you should probably show some errors and code

#

That would help

rocky hearth
#

What is this method of printing floating number

printf("%+010.2e", 0.7234); // gives +7.23e-01

What r these called?

wheat mesa
#

formatting identifiers

#

unless that's not what you mean

stable nimbus
# wheat mesa I don't know what's wrong, you should probably show some errors and code
TypeError: embed.footer is not a function
    at init (B:\Coding\rpbot\bot.js:60:8)
    at Object.<anonymous> (B:\Coding\rpbot\bot.js:224:1)
    at Module._compile (node:internal/modules/cjs/loader:1097:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1149:10)
    at Module.load (node:internal/modules/cjs/loader:975:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47
const embed = new MessageEmbed();
    embed.title('Restart Soon');
    embed.color(0xA1EE33);
    embed.footer(config.copyright);
    embed.timestamp();
wheat mesa
#

that's not how you do that

#

you have to use setFooter and stuff like that when you're using the builder functions

stable nimbus
#

Okay, that makes some sense. I will look into it further, thank you.

wheat mesa
#

np

rocky hearth
#

is it not possible to do data encapsulation and abstraction in , C++ structs?

cinder patio
earnest phoenix
#

hi, how can i fetch all interaction slash command name + id

austere surge
#

i think Interaction#guild.commands is the applications command manager or whatever its called

rocky hearth
#

Can built-in functions be overloaded in c++

earnest phoenix
hushed patrol
#

can i ask for help about html and djs?

boreal iron
#

It’s part of your interaction object

hushed patrol
boreal iron
#

Don’t ask to ask, just ask

hushed patrol
#

i wanna make a select element with all the guild's channel name

#

and for each channel name its a button

hybrid cargo
#

just map the channel objects to construct array of select menu objects and add it into the action row... also remember that one select menu can have only 25 options and a single message can have a max of 5 select menus considering that you dont have any other components in that message

boreal iron
#

Wut a select menu or a button?

hybrid cargo
#

I think the button he is talking about is the select menu option

boreal iron
#

Both doesn’t make sense considering the limits

hybrid cargo
boreal iron
#

Well since channels are cached by default, choices or autocomplete is the better option here

rustic nova
#

or go the very user-unfriendly way by telling them to provide the id of the channel

boreal iron
#

not that it would be a big deal to fetch them anyways

hushed patrol
#

i want a select menu and in it buttons which each one have a channel name

hushed patrol
boreal iron
harsh vault
#

1 mn translate

boreal iron
hybrid cargo
boreal iron
#

To stop the confusion

hushed patrol
#

oh ok

harsh vault
#

Where can I see my bot's dbl token?

hushed patrol
#

in webhook tab

boreal iron
harsh vault
boreal iron
#

You can find it there, yes

harsh vault
boreal iron
# hushed patrol oh ok

Keep in mind to map the channel names as option name and better use the channel ID as value

#

You will see the option name when opening the select menu but your code will receive the channel ID as selected option

#

Easier to work with than the channel name

hushed patrol
boreal iron
#

Well the select menu is just an array of objects which are your options

hushed patrol
boreal iron
boreal iron
#

Those options need to be added to your select menu and that’s it

#

For example when pressing a button or using a slash command

cinder patio
boreal iron
#

Because people always cry if I respond with a for loop

earnest phoenix
#

Why not just map it to that object instead of pushing to a new array

boreal iron
#

Because I always provide simple examples to let them understand what it does

earnest phoenix
#
const options = ...
  .map((channel) => ({ label: channel.name, value: channel.id }));
#

I don't see how that's simpler than this

sudden geyser
#

he probably means more familiar, although I disagree that it is

#

forEach would be better here anyway

#

or just a for of

#

or a regular old for

#

or specifying the indexes manually smirk

boreal iron
#

I feel like there’s a battle going on of micro optimizing each possible answer here oldEyes

earnest phoenix
sudden geyser
#

yeah well you're forced to do that

#

me, an application? hell nah

earnest phoenix
#

I'll push you into a pool of Java

hybrid cargo
boreal iron
hybrid cargo
boreal iron
#

I know, I know I wanna repeat here

But I like to push things!!1!

hybrid cargo
boreal iron
#

Arrrrrrrrr FakE is aware of map returning an arrrrrrray, stop blame FakE

#

FakE likes to complicate things

harsh vault
#

Upvote with top gg did not apply code.

earnest phoenix
#

You were unaware! FakE news

harsh vault
#
const client = new Discord.Client();
const DBL = require("top.gg");
const dbl = new DBL('TOKEN HERE', client);
 

module.exports.run = async (client, message, args) => {
     emirhan.hasVoted(message.author.id).then(voted => { 
        if (!voted) {
            message.channel.send( new emran.MessageEmbed()
.setTitle("Hata")
.setColor("RED")
.setDescription("Sunucumuz da ƶzel role sahip olabilmen iƧin ilk ƶncelikle oy vermen gerekiyor!")
.addField("Oy Vermek iƧin:", `[Buraya Tıkla!](https://top.gg/bot/${client.user.id}/vote)`)
.setFooter(client.user.username)
)

        } else {
  message.channel.send( new emran.MessageEmbed()
.setTitle("Başarılı!")
.setDescription("Sunucumuz da başarılı bir şekilde rolünüz verildi!")
.setColor("GREEN")
)
            message.member.roles.add("954094782534258698")    //Vericek rol id.
        }
    })
}
exports.config = {
  name: "votes",
  guildOnly: true,
  aliases: [],
  permlevel: 1
};```
#

I wrote a vote code with the top gg module and it didn't work.

earnest phoenix
#

The https://npmjs.com/package/top.gg library you're using is deprecated

slender thistle
#

Plus unofficial

earnest phoenix
#
boreal iron
harsh vault
#

Neden

boreal iron
harsh vault
earnest phoenix
# harsh vault Neden

Just said the reason, the one you're using is deprecated and no longer official, as it was maintained by a banned member rather and it's structure was too outdated and inconsistent to maintain

harsh vault
#

ok thanks. Which spider changed my name? Please correct my name.

slender thistle
#

It won't be changed because your name starts with an exclamation mark

earnest phoenix
slender thistle
#

Exclamation mark = !

sudden geyser
#

and he'd still be texting while driving

boreal iron
#

Aye he will

harsh vault
sudden geyser
#

try asking a mod

earnest phoenix
#

Imagine hoisting bro

#

Deadass

harsh vault
#

Why, there are good people.

harsh vault
sudden geyser
#

top.gg doesn't like hoisters since it clogs the member list

earnest phoenix
#

It has no relation to the said people being good or bad, hoisting is something else entirely

#

Trying to place yourself on top of the members list is just outright attention seeking

boreal iron
#

Unlike people trying to fuck off FakE as soon as he answers freerealestate

earnest phoenix
#

Because you spread FakE news mmLol

boreal iron
sudden geyser
#

Again, try asking a mod

earnest phoenix
#

Goodbye FakE, the atomic bomb on your car... soon

sudden geyser
#

Such as Thor

boreal iron
#

Iranian terrorists are everywhere ffs

harsh vault
dry imp
#

anyway why people hoist using their username

earnest phoenix
sudden geyser
boreal iron
dry imp
#

no i mean

#

why not just use nickname

harsh vault
#

I get confused. OK

sudden geyser
#

because you can't change it here

dry imp
#

therefore you wont get fked when u can't change name

#

but thats the dudes problem

sudden geyser
#

personally I don't think hoisting is a problem

#

what is are unmentionable names

boreal iron
#

quite white name

sudden geyser
#

you all looking down on us because you know we're better than you

boreal iron
dry imp
#

ok green name who loves driving

earnest phoenix
#

That guy's nickname bro

#

ā˜ ļø

sudden geyser
#

gotten worse

dry imp
#

damn

sudden geyser
#

oh he changed his username too

dry imp
#

who did it this time

harsh vault
#

ya

#

whay name

boreal iron
harsh vault
#

whay name change

sudden geyser
#

at least it's unique KyoukoLaugh

harsh vault
#

o god

earnest phoenix
#

You wanted a name change, there you go

harsh vault
#

thanks

dry imp
#

yay its back

sudden geyser
#

aw fun over

harsh vault
sudden geyser
#

just regular batu

earnest phoenix
harsh vault
boreal iron
hushed patrol
harsh vault
boreal iron
harsh vault
boreal iron
#

The level of confusion this morning is just remarkable

harsh vault
#

Have fun

boreal iron
dry imp
#

yardim

#

as

harsh vault
dry imp
#

sa

harsh vault
harsh vault
dry imp
#

i dont understand

earnest phoenix
dry imp
#

okay voltrus

quartz kindle
earnest phoenix
#

daffus

harsh vault
dry imp
boreal iron
#

Can we votekick voltrox pls

#

Evil boy

harsh vault
#

No

dry imp
#

votekick fake

boreal iron
#

Shut

earnest phoenix
#

I'm gonna vote kick you with that atomic bomb you got in your car!

dry imp
#

vote him out of his car

hushed patrol
boreal iron
#

Hmm because you don’t return options as output

atomic kindle
#

Why are you using map to update values of another array?

earnest phoenix
#

That white codeblock though

quartz kindle
atomic kindle
#

Exactly.

quartz kindle
#

instead of pushing to another array

hushed patrol
boreal iron
#

People we like to push things

#

The nightmare begins once again

earnest phoenix
hushed patrol
quartz kindle
#

what a pushover

#

xD

boreal iron
#

The one miss take I never come back from

earnest phoenix
#

I'll just push this detonate button just like FakE likes to push things, that atomic bomb in your car FakE

boreal iron
earnest phoenix
#

Access the options variable

hushed patrol
#

how?

#

i evaled it

#

.eval const options = message.guild.channels.cache.map((channel) => ({ label: channel.name, value: channel.id }));ā€Šā€Š returned undefined

earnest phoenix
#

Put options as the last line in your code

hushed patrol
#

objects

quartz kindle
#

if you just want to eval it, you dont need the const options anyway

#

just eval message.guild.channels.cache.map((channel) => ({ label: channel.name, value: channel.id }))

#

well it depends on how your eval code works

#

if it supports implicit return or not

boreal iron
#

@earnest phoenix Now you’re getting fucked Sir, enjoy it

dry imp
#

🤨

#

ambiguous

earnest phoenix
hushed patrol
#

[
[Object], [Object], [Object],
[Object], [Object], [Object],
[Object], [Object], [Object],
[Object], [Object], [Object],
[Object], [Object], [Object],
[Object], [Object], [Object],
[Object], [Object], [Object],
[Object], [Object], [Object],
[Object], [Object], [Object],
[Object], [Object], [Object]
] what i get

boreal iron
#

I yet don’t know how to fuck about Tim… but that’s a job for the next generation I guess KEKW

atomic kindle
#

stringify it

boreal iron
hushed patrol
atomic kindle
#

the stringify function

hushed patrol
#

idk whta is that

slender thistle
#

Time to push these nuts in your mouth

hushed patrol
#

.eval const options = message.guild.channels.cache.map((channel) => ({ label: channel.name, value: channel.id }));
options what i did

hushed patrol
earnest phoenix
slender thistle
#

Nah

boreal iron
quartz kindle
#

if you want it to show more than that, you have to increase your inspect depth level

#

but also check if it doesnt go beyond the character limit

hushed patrol
#

hmmm

#

wait

boreal iron
#

Why do you actually waste time on evaluating it?
Thought you wanna use them as options in your select menu?!

hushed patrol
#

i am seeing if it works first

boreal iron
#

lol

#

Of course it does

#

FakE only responds with working solutions

#

Perfectly optimized ofc

hushed patrol
#

ok then respone with my actually solution

#

which is a select element with each channel name as a option and value channel id

boreal iron
#

lmao

#

We're not writing the code for others here

quartz kindle
#

what if there are more than 25 channels?

boreal iron
#

const options = message.guild.channels.cache.map((channel) => ({ label: channel.name, value: channel.id }));

#

That's like your entire options array already

#

The rest is a response to a slash command or button for example

hushed patrol
boreal iron
#

Including that select as option

#

lmao

#

perfectly answers Tims question

quartz kindle
hushed patrol
#

xD

quartz kindle
#

i already answered why it only shows object, because your depth level is too low

#

youre likely using depth:0

boreal iron
#

I think we're back to the inital try to add it as select option

hushed patrol
quartz kindle
#

in your eval code, you're using inspect right?

hushed patrol
#

idk wait

#

yes i am

#

yes

#

const { inspect } = require('util')

quartz kindle
#

the inspect function has a depth option that tells it how deep to go

hushed patrol
#

wait brb

hushed patrol
#

what to put

#

10?

quartz kindle
#

depends how deep you wanna go

#

depth:1 will be enough to show your objects

hushed patrol
#

ok

boreal iron
#

Might be a good idea to add depth as (optional) parameter of your eval command

quartz kindle
#

for example, lets say you want to eval an object like this: {a:{b:{c:{d:{e: 10}}}}}

#

with depth level 0, it will show {a: [object]}

#

with depth level 1 it will show {a: {b: [object]}}

#

with level 2 it will show {a: {b: {c: [object]}}}

#

etc

hushed patrol
#

i set it as 10 xD

quartz kindle
#

now, depending on what you are evalling

#

it might return more than the message character limit

#

so you need to deal with that as well

#

if result.length > 2000

#

either retry with a lower depth level, or slice the string

hybrid cargo
#

or just console.log and make sure to open your console before you do the eval

#

Ez

boreal iron
#

lol

hushed patrol
#

yeah

#

now for the select element thing

#

as i have the options which returns [
{ label: 'exclamationrules', value: '810825516462112788' },
{ label: 'server-update', value: '814024291674488902' },
{ label: 'general', value: '857617987019735070' },
{ label: 'robotbot-command', value: '857618573852934154' },
{ label: 'notesmusic-command', value: '857619126734159872' },
{ label: 'voice channels', value: '857619676057436221' },
{ label: 'music', value: '857619718609305620' },
{ label: 'private 1', value: '857619783763361792' },
{ label: 'private 2', value: '857619823467298836' },
{ label: 'important', value: '857620026672021545' },
{ label: 'loudspeakerheadquarters', value: '857623562164895775' },
{ label: 'staff', value: '857629582974124082' },
{ label: 'cyclonestaff-chat', value: '857629772229115975' },
{ label: 'cyclonestaff-commands', value: '857629914714996756' },
{ label: 'boostest', value: '857910682947026954' },
{ label: 'envelope_with_arrowwelcome', value: '859506503982776340' },
{ label: 'incoming_envelopeleave', value: '859506663840546866' },
{ label: 'staff-music', value: '870230858609594418' },
{ label: 'pencilmod-logs', value: '884150735376355328' },
{ label: 'ticket', value: '893776986583994388' },
{ label: 'ticket-ticket', value: '899212177007869952' },
{ label: 'earth_asiachat', value: '903302479066845275' },
{ label: 'MODMAIL', value: '919165170322931773' },
{ label: 'white_check_mark-verify', value: '921312403705184266' },
{ label: 'mutemuted-rules', value: '932173908914872361' },
{ label: 'muted', value: '934405966496145428' },
{ label: 'mutemuted-chat', value: '934407361282576394' },
{ label: 'reported-bugs', value: '946784267474731048' },
{ label: 'transcriptchannel', value: '947068267854438400' },
{ label: 'general2', value: '952219917099364452' }
]

hybrid cargo
#

Oh god

hushed patrol
#

xD

#

i cannot do like options.value

#

or options.label

boreal iron
#

Now that's your options array you add to your select menu component

hushed patrol
#

but i only wanna add the labels

#

and for each one a option

#

only if i could do options.label.forEach

#

but i cannot even do options.label

#

its undefined

boreal iron
#

ofc it's undefined

quartz kindle
#

you dont need any of that

boreal iron
#

The objects are inside your array

quartz kindle
#

are you using discord.js?

hushed patrol
#

yes

boreal iron
#

array[0].label

quartz kindle
#

messageSelectMenu.setOptions(options)

boreal iron
#

Is your first item

quartz kindle
#

done

hushed patrol
hushed patrol
#

i wanna add it to my website as a select element

quartz kindle
#

your website?

boreal iron
#

wtf

quartz kindle
#

so its not discord.js lol

boreal iron
#

you should eventually tell that BEFORE 1 hour of discussion starts

quartz kindle
#

how are you sending this data to the client side?

hushed patrol
quartz kindle
#

rendering with ejs or something?

hushed patrol
quartz kindle
#

you probably want to map it to html select element

boreal iron
#

I mean you can still pass the channel IDs as option value, to make sure working with the channel ID, not the name when handling the form submit

hushed patrol
#

yeah

boreal iron
#
<select name="channel">
  loop:
  <option value="channel-id">channel name</option>
  :end loop
</select>
quartz kindle
#
<select name="channels" id="channels">
  <%- options.map(item => `<option value="${item.value}">${item.label}</option>`).join("") %>
</select>
#

or something like fake said

#

i dont use ejs

boreal iron
#

Neither do I lol

hushed patrol
#

hmm

quartz kindle
#

or like the example from the ejs docs

hushed patrol
#

where are the ejs docs?

quartz kindle
#
  <% options.forEach(function(option){ %>
    <option value="<%= option.value %>"><%= option.label %></option>
  <% }); %>
atomic kindle
#
#

ig

#

oh yes...

hushed patrol
#

ok leme see

quartz kindle
#

having to use the ejs marker on every line of a loop is the weirdest thing ever

#

imagine if php did that

boreal iron
#

I mean I'm opening and closing the tags, too instead of using an entire template scheme

#

as in this particular use case I don't wanna use a template build

quartz kindle
#

well yes, but you dont do shit like this ```php
<? forEach() { ?>
<a><? a ?></a>
<? } ?>

boreal iron
#

Nah... in that case I would print the anchor element inside the php tags

quartz kindle
#

exactly, something like this is much better ```php
<?
forEach() {
print something
}
?>

spark flint
#

<% <array>.forEach(function(variablename) { %>
<h1><%= variablename %></h1>
<% }) %>

boreal iron
#

You usually parse your entire template files just by replacing for example <p>{{php var here}}</p>

spark flint
#

Something like that

#

am on mobile so hard to format

boreal iron
#

But template builds have a lot of disadvantages when you wanna add some code to the template file for exampling handling a form instead of throwing everything into a config file etc.

#

In theory the template file only contains your final vars which will be parsed and rendered

#

But eww that's too much work

quartz kindle
#

imo ejs should be able to do something like this instead ```js
<%-
let str = "";
for(...) {
str += "..."
}
return str;
%>

boreal iron
#

wouldn't make me a fan of it anyways

#

glad I'm using php

quartz kindle
#

php > ejs

#

everyone can agree on that

sudden geyser
#

please just add macros to javascript

boreal iron
quartz kindle
#

tru

boreal iron
#

all the haters must be sleeping

pearl trail
#

more like all the haters dont want to chat afraid to get banned zoomeyes

rose warren
#

PHP - Pog Hi-level Programming sunglasso

boreal iron
rose warren
#

(yeah ik. That was cringey af)

boreal iron
#

Need to add you to my special list now

rose warren
#

The block one?

rose warren
#

Almost every website I've made has been in PHP

boreal iron
#

Almost half of the visible internet still is in php

rose warren
#

And yet noobs be hatin

boreal iron
#

considering how much php moved forward the last years getting to something structured and well optimized instead of the chaos like 10y ago

#

especially with php > 8

neat ingot
#

I havent used php since like 2012 lol

boreal iron
#

proves you're not up to date

neat ingot
#

yea thats fair šŸ˜„

#

tbh, I did enjoy writing in php when I used it šŸ™‚

#

its just so much more convenient to have your entire framework (front+back) written in js

neat ingot
near stratus
#

It basically depends on the site's features

#

"I don't have to learn another language" isn't a good cause to use js everywhere

neat ingot
#

what featureset would you argue would be more suited to another languages?

near stratus
sudden geyser
#

You can practically use JavaScript for everything (Atwood's law), but some languages are better than JavaScript in certain categories.

neat ingot
neat ingot
sudden geyser
#

Agree with you there

#

JavaScript was not meant to be good at a lot of things it's good at today, so people like to use it.

#

Including me sometimes

#

But to set a bar, I would suggest people not become too attached to the language, as other languages can you blow you away at what they're capable of and have had since day one.

neat ingot
#

imo, being able to spend more time in js (due to everything written in js) allows me to increase my js knowledge more, and become much better with that language ~ rather than using multiple technoologies (say php+sql), which would naturally mean my learning is split between those two.

neat ingot
#

everytime i go to use some lower level/more performant language, the speed of things is just so much faster

#

i do honestly think though, if js was capable of multiple threads, it'd rival a lot of the 'bigger' languages out there

plucky imp
#

@sudden geyser i fell asleep why coding

#

and now

#

i have 8 hours in vsc

sudden geyser
#

first time?

#

I see lot of vsc activities up to 23 hours long

#

but it's usually just the rich presence not pausing / resetting the timer on inactivity

near stratus
neat ingot
#

but yea, if you were doing such a thing, sure, ml could be used

#

for argument sake though, there are ml libs for js šŸ˜‚

#

(not saying you should use them though...)

near stratus
neat ingot
#

I have used brain.js before. to create an ai to predict the location of the 'ball' when the opponent hits it (in a pong game i made) šŸ˜„

cinder patio
#

can't u just use math for that

ancient nova
#

would anyone be able to decrypt this?

spark flint
#

uHH

cinder patio
#

one thing you can do is replace hex numbers with some random letters, that'd make it a lot easier. Also unminify

boreal iron
#

reminds me of the dude trying to hide his client sided JS code

neat ingot
crimson vapor
#

trig is fun

worn sonnet
sudden geyser
#

As in, you want a library that manages the invite tracking logic?

boreal iron
#

What sort of key is "$el"?
How would I be able to access it (plain JS)?

sudden geyser
#

If it were a literal key, x["$el"]

worn sonnet
#

if you see the mee6 lib you can see it can fetch levels from mee6 leaderboards which I can use in my bot

cinder patio
#

$ is valid in identifier names

worn sonnet
#

similarly was wondering if there's a lib which can get the invites of a user which Invite-Tracker bot has of a user

boreal iron
worn sonnet
#

more or less it's like accessing the DB of Invite tracker

boreal iron
#

I was just stupid enough to forget to escape the $

#

object.\$el

sudden geyser
worn sonnet
old cliff
earnest phoenix
#

Do you know how I can get relation data using typeorms query builder?

vast cedar
#

Hey when i use fetchLogs, it return me an array with executor, target ect, but when i put UserManager: 0 on the MakeCache client options, the executor is null, how can i get the executor without caching everyone ?

rocky dagger
#

how can i send a message with a dynamic amount of elements in? if u have an array with a random number of objects i could do like the code under to for example log what i want js for (let x = 0; x < array.object.length; x++) { console.log(array.object[x].name); } but what do i do if i want to send all those elements in a message

cinder patio
#

channel.send(array.object[x].name)

#

or

let content = "";
// Add each name to content in the for loop, and after the for loop send the content
channel.send(content);
lyric mountain
#

Just map and join

#

String concatting isn't good on a loop

cinder patio
#

That also works but there's nothing wrong with sting concatenation inside a for loop

lyric mountain
#

Like in java we have StringBuilder

cinder patio
#

This is a micro-benchmark but it just goes to show that the string concatenation is not slow

#

not saying a for loop is better here

#

but if you're going for 100% performance a for loop is your safest bet

lyric mountain
woeful pike
#

if you're going for 100% performance it's time to stop using javascript

#

.join is never going to be your bottleneck

#

not sure why you'd bother even thinking about it

#

also these micro-benchmarks are totally unreliable

cinder patio
lyric mountain
#

In js at least

#

In other langs I used it's the opposite

#

Because of string being immutable thus needing to be recreated on each iteration iirc

woeful pike
#

wait you're not even testing the same thing

#

you're testing appending a number in the first one with fixed-size allocation lol

#

part of why microbenchmarks are terrible

#

you have no idea if you're comparing apples to apples without manually going through the bytecode

#

cringe

lyric mountain
#

Just out of curiosity, what'd be the correct code for the loop?

#

For of?

woeful pike
#

well for once you would have to append a string to it not a number

cinder patio
#

Using the array elements instead

lyric mountain
#

Ic

woeful pike
#

oh your array is just an int array in the first place

#

other website that shows otherwise because these results are meaningless

#

oh no wait they swapped 1 and 2 around lmfaoo

#

why tf would they do that

lyric mountain
#

Kekw

#

But ig that's an issue with not knowing value type beforehand

woeful pike
#

I don't think so

#

I'm surprised because v8 usually optimizes native methods like these

#

to the point where reimplementing them by hand isn't actually faster

#

that's how it works with .forEach and .map etc

#

still can't know if the benchmark is comparing the right things

raw nest
#

Is there an easy way to and a number with all values in an array and check if anything is true. Without doing a for loop? F.e. 16 & [2, 8, 16, 32] (= true)

lyric mountain
#

Includes

#

Or contains, depend on ur lang

raw nest
#

js

lyric mountain
#

Includes

cinder patio
#

My only guess on why .join might be slower is because it does extra checks - if the array contains holes, maybe some other guards.

lyric mountain
#

Isn't it possible to see the underlying code?

cinder patio
lyric mountain
#

Ctrl + click doesn't take u there?

cinder patio
#

Considering the codebase contains more than 600,000 lines of code, probably not

#

oh no

#

it doesn't since it's definitely implemented in C++ and not js

lyric mountain
#

Eh

cinder patio
split hazel
#

mogus

#

anyone happen to know a stable and more supported version of wine?

#

I tried using raw wine to run things but they either won't launch or completely broken

craggy pine
#

Does mysql have something similar to js's .includes() but for a WHERE clause?

Ex: A person select a playlist and wants to chose "My Playlist" and they type "My play" it would kind of assume it's my playlist

boreal iron
#

WHERE search LIKE '%laylist'

#

WHERE search LIKE '%y Playl%'

#

WHERE search LIKE 'My Play%'

sudden geyser
#

I've always wondered—how would you protect that against injection?

boreal iron
#

Where % is your placeholder aka. wildcard

sudden geyser
#

So the user can't insert % as a placeholder

boreal iron
#

At least not with prepared statements

craggy pine
#

ty

neat ingot
#

any suggestions for additional improvements? šŸ™‚

sudden geyser
#

maybe the ui

neat ingot
#

oh ffs ~ a delete button ~ duh

sudden geyser
#

like aligning the titles and text inputs

#

kind of feels too controlly

neat ingot
#

too controlly? šŸ‘€

sudden geyser
#

I'm talking about the edge here

#

Would probably look better if the title (General) was aligned perfectly

#

But maybe not

neat ingot
#

yea, but do you suggest aligning the general to the border of the input below, or to the position of the text below?

sudden geyser
#

border of input

neat ingot
sudden geyser
#

hmm think

neat ingot
#

I had it somewhat in between both šŸ˜›

sudden geyser
#

actually I think I like your original more

neat ingot
#

šŸ˜„

#

I hate designing gui's so much. I spend so much time doing this kind of pixel perfect placement of junk šŸ˜„

split hazel
#

this is why I stay away from front end

#

you spend too much time with styling just for it to not be perfect

neat ingot
#

front end dev is the easiest ~ if you have a designer to actually design things, or a strong concept in mind. but trying to build it all from scratch with no idea where to begin ~ thats where it gets tedious imo šŸ˜„

sudden geyser
#

yeah

#

we all want a system but creating a system is hard

#

so we use designs that already exist (material), but then everyone uses it, need something more special/cool looking

neat ingot
#

ive never used material ui, nor react 😐

#

i normally use raw bootstrap, which there is a material design kit for

spark flint
#

If I have an image link

#

How can I make my bot spoiler it by default

simple stump
#

How do I get the length of an audio file

dry imp
#

or is it

#

i forgor

vast cedar
spark flint
#

Alright

vast cedar
vast cedar
split hazel
#

cant you just extract it from the file metadata

vast cedar
#

Yes you can

split hazel
#

bro that package is a wrapper which uses another wrapper šŸ’€

neat ingot
#

I'm probably going to upload it to github/my site for others to use (free) when its finished.

heavy marsh
#
this.client.cluster.broadcastEval(c => [
c.cluster.process.memoryUsage().rss / 1024,
])

tells me ```
Cannot read properties of undefined (reading 'memoryUsage')

pearl trail
#

process is undefined

#

maybe try without c.cluster.

heavy marsh
#

no error or logs

pearl trail
#

does it return the value that you want?

heavy marsh
#

No errors either

heavy marsh
#

nvm fixed it

simple stump
simple stump
bright hornet
#

newb question but how do you ping members on slash command?, i know how to use options but how

jaunty mason
sudden geyser
#

Well, you can do a traditional ping, like <@id>

sudden geyser
#

Of course, replying to the interaction is basically a ping.

jaunty mason
bright hornet
#

wait a min

#

you mean

lyric mountain
#

...it isn't instant

spark flint
#

Takes 30 mins+

bright hornet
#
interaction.mentions.members.first()``` works too?