#development

1 messages Β· Page 1839 of 1

earnest phoenix
#

In v13 only guild members now hold the presence data, not users

near stratus
signal estuary
earnest phoenix
#

yes

signal estuary
near stratus
#

@near grotto from the official docs

guild.roles.create({
  name: 'Super Cool Blue People',
  color: 'BLUE',
  reason: 'we needed a role for Super Cool People',
})
  .then(console.log)
  .catch(console.error);
sterile thicket
#

I have a variable
var msg = "a b c d e f g h i j";

I also have an array
const arr = ['b', 'g']

I have another array
const arr2 = ['m', 'n']

I wanna replace arr with arr2 in msg so that the result be
a m c d e f n h i j

How?

earnest phoenix
quartz kindle
earnest phoenix
# sterile thicket I have a variable `var msg = "a b c d e f g h i j";` I also have an array `cons...

Use a for loop and iterate through each replacement:

// Using your example.

// Define a message in a string.
let msg = 'a b c d e f g h i j';

// Define the replacers, but instead of 2 arrays containing the replacement information, we'll use objects instead.
const arr = [{
  placeholder: 'b',
  replacer: 'm'
}, {
  placeholder: 'g',
  replacer: 'n'
}
/* And goes on... */
];

// We loop through each object.
for (const obj of arr)
  // We re-assign the value of the original variable to the modified string while also replacing each value accordingly by the defined properties.
  msg = msg
    .replace(
      new RegExp(
        obj.placeholder
          .replace(/(\W)/g, '\\$1')
      ),
      obj.replacer
    );

// You can replace `msg.replaceAll(obj.placeholder, obj.replacer)` if you're using Node.js v15 and higher.
#

tim vs volt mmulu

near grotto
#

@near stratusthx

sterile thicket
quartz kindle
#

then include that in the code you show

lyric mountain
#

intellij got yet another update

#

now it has a JPA entities manager

#

like, it's going beyond the limits

small tangle
#

orphanRemoval = true

#

how a programmer murders

earnest phoenix
#

No stop

lyric mountain
earnest phoenix
#

πŸ‘€

earnest phoenix
quartz kindle
#

since node 15

#

most people should be on node 16 by now, especially with djs v13

small tangle
modest maple
#

best moment of old vps

sterile thicket
sterile thicket
#

:p

small tangle
#

dude

#

ah yes we are on discorcl

long crow
#

Hi SirTimme

earnest phoenix
#

im having probs. i dunno wth is dis?? the thing is right though.....

lyric mountain
#

in your case, guild is not cached

#

so it returns nothing (aka undefined)

earnest phoenix
lyric mountain
#

I mean what I mean smh

earnest phoenix
#

oh wait

gaunt yarrow
#

Can anyone tell the usage of npm package youtube-notifications

small tangle
flat copper
#
let list = await filter.find();
			if (!list) {
				new filter({ filter: [] });
				await filter.save();

				list = await filter.find();
			}
			console.log(list.filter)
		await	list.filter.push('Hlo').save()```

```js
SCHEMA:
const mongoose = require('mongoose');
const config = require('../../config/config');
module.exports = mongoose.model(
	'Filter',
	new mongoose.Schema({
	  filter: {
	    type: Array,
	    default: []
	  }
	})
);

Error : list.filter.push is not a function

earnest phoenix
#

read their readme

earnest phoenix
#

list.filter is probably not what you think it is

flat copper
#
const filter = require('../../database/models/filter');```
#

Its Schema

gaunt yarrow
flat copper
quartz kindle
#

what do you want to find?

#

why is find() empty?

lyric mountain
#

misty had a BR moment

earnest phoenix
#

find is empty cause it returns an array

flat copper
#

How to solve it?

earnest phoenix
#

Well

#

Assuming find means it returns everything in that table list is an array of results no?

#

idk how mongoose works tbh

earnest phoenix
quartz kindle
#

bronzil

earnest phoenix
#

Doesn't mongoose have find and findOne

#

Im trying to learn smth

earnest phoenix
lyric mountain
earnest phoenix
#

Yea so find returns an array

#

correct?

#

Thats how it is in a lot of wrappers and orms

gaunt yarrow
tired panther
flat copper
earnest phoenix
#

I use postgres with typeorm

gaunt yarrow
earnest phoenix
#

trollg

lyric mountain
#

pogres

gaunt yarrow
#

like what to find

tired panther
earnest phoenix
gaunt yarrow
#

like

 const logperson = await userdocumentSchema.find({
            GuildID,
            UserID
        })

@flat copper

azure lark
#

hello, can someone help me? my bot isnt responding to anything i do in dms, im using discord.js v12.5.4

azure lark
#

nope

gaunt yarrow
tired panther
azure lark
#

yes

tired panther
#

does your code has something like if(!message.guild) return;?

azure lark
#

its a mod mail bot

earnest phoenix
#

I am not entirely sure if this is the new stable or v12

#

but I think you need CHANNEL partial enabled

#

For dms to fire the message events

azure lark
earnest phoenix
#

What

#

Why

tired panther
#

πŸ€¦β€β™‚οΈ

azure lark
earnest phoenix
#

But

rose warren
earnest phoenix
#

No

earnest phoenix
#

But

#

you will have to use v13

rose warren
#

You'll end up using it anyway

azure lark
earnest phoenix
#

Just switch to v 13 now

tired panther
#

the v7 Gateway will be deprecated soon

earnest phoenix
#

yoiu will have to do it

azure lark
#

O.o

#

alr

rose warren
#

V13 isn't much more different than V12 anyway.

earnest phoenix
#

Since they are enforcing message intent as a priv intent

azure lark
#

ill be back then

earnest phoenix
#

soon*

rose warren
#

Especially if you're starting out

#

Better to start with v13

azure lark
#

can i have a link to what they changed?

rose warren
#

You'll find something there

azure lark
#

alr

#

im pretty sure i just have to change the message events

earnest phoenix
#

Uh no

#

you will have a lot more to change

azure lark
#

oh alr

rose warren
#

message event becomes messageCreate but there are quite a few more changes. It's not that bad though.

earnest phoenix
#

Yea its not bad

#

but annoying

earnest phoenix
#

Also apparently you could always have done message.client

#

which I call bs

#

Me ranting now

rose warren
#

I'm actually having fun switching all my commands to slash commands too though so it's not that bad. But I still don't like the way v13 sends embeds...

earnest phoenix
#

In a embeds prop?

#

kek

rose warren
#

In an array too

earnest phoenix
#

Yep

rose warren
#

Is ugly

earnest phoenix
#

I guess it makes sense

#

Allows you to send multiple embeds now without multiple sends or replys

#

Which is even more ugly

rose warren
#

I'm still waiting for the API to accept image attachments in interaction replies...

earnest phoenix
#

Wait what

#

you cant attach images?

rose warren
#

Since my bot's top 3 commands basically rely on attaching images

#

Nope

earnest phoenix
#

That blows

rose warren
#

The API doesn't allow it yet

#

They're working on it

earnest phoenix
#

I would say thank god

quartz kindle
#

same

nocturne grove
#

what to do when a slash command's interaction keeps failing after 30 minutes?

earnest phoenix
#

but i dont even use the dapi anymore

earnest phoenix
wheat mesa
#

I hope that slash commands are going to be capable of completely replacing normal text commands BEFORE they require the message content intent

rose warren
#

Me too

nocturne grove
#

well I want to delete it but I need the application ID for that, and I can't figure out how to get that when the interaction fails

young rune
#

i don't even use slash commands-

earnest phoenix
#

Slash commands are already pretty stable enough to do so

#

there are some things they can add to make it better

#

but for the most part its pretty good already

wheat mesa
#

Because personally I have no issue with swapping over, I think it’s a better command option already, but just some things need to be changed

nocturne grove
#

there are quite some things indeed to make it better

young rune
#

aiyo i find buttons the most appealing

rose warren
#

I wasn't completely convinced originally. But they're pretty pog. I like them.

earnest phoenix
#

Makes it way easier to handle arguments

#

kekw

rose warren
#

Yep

young rune
#

i love buttons :/

wheat mesa
#

(please allow multi line slash command args for eval command)

young rune
#

aiyo

lyric mountain
rose warren
#

I haven't tried buttons yet

earnest phoenix
#

I used buttons a few times

#

they pretty pog

quartz kindle
#

i wish slash commands allowed custom argument prefixes

nocturne grove
#

I want them to add functions to check arg length, to have variable option choices and permission checking would also be nice

young rune
#

sigh

azure lark
#

with creating a channel, would it have to be type: "GUILD_TEXT" and not type: "text"

earnest phoenix
lyric mountain
lyric mountain
#

for example

quartz kindle
# earnest phoenix wdym by this?

person starts typing /command and it shows the autocomplete for the command, then you start typing a string argument, then you type an argument prefix somewhere after the string, such as -- and it would show the available options to chose from like it already does

young rune
earnest phoenix
#

O yea

#

that would be kinda cool

lyric mountain
#

I have !!something A B/C B where the arguments are either A B OR C B

young rune
#

nice

lyric mountain
#

it'd be nice if you could have multiple command signatures on slashes

quartz kindle
#

yeah

quartz kindle
#

i have a command that accepts multiple combinations of date time location

#

for example
/command date
/command date, time
/command date, location
/command date, time, location

young rune
#

do yall think threads are kinda redundant?

nocturne grove
#

oh btw about my slash command not working: another command does work, but I get some weird node errors

pale vessel
#

Yeah you gotta make all them optional

rose warren
#

Just make time and location optional arguments?

young rune
#

as espeically how you can't turn threads off after turning them on-

nocturne grove
#

FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap out of memory what to do?

lyric mountain
#

OOM

quartz kindle
lyric mountain
#

congratz, you managed to kill your ram

quartz kindle
#

after those, i still have a dozen of --arguments which are optional

azure lark
#

i got this error whilst trying to run v13?
const token = this.client.token ?? this.client.accessToken;

rose warren
#

Friggin horoscopes KEKW

pale vessel
#

Type 5 won't do?

#

Ah, arguments

nocturne grove
lyric mountain
rose warren
#

Horror scopes

lyric mountain
quartz kindle
lyric mountain
#

but you still have a giant memory leak somewhere in ur code

#

it'll crash again eventually

#

also you don't need to restart pc, just shutdown the process

quartz kindle
#

speaking of memory leaks

nocturne grove
#

hmm okay

#

what can it be? A lot of caching or an endless loop for example? Idk

quartz kindle
#

my first iteration of a custom discord websocket was using 200mb in external memory after a few minutes

#

xD

nocturne grove
#

😳

quartz kindle
#

because of stupid buffer concatenation

lyric mountain
#

finding memory leaks is one of the top 5 hardest debug tasks

quartz kindle
#

i've since changed my approach and now it uses less than 1mb

nocturne grove
#

oh god

#

memory leak is the same as the process using a lot of ram while it shouldn't?

quartz kindle
#

yes

nocturne grove
#

okay

#

sounds very cool

lyric mountain
#

finding memory leak is like finding an open water tap

#

in burj khalifa

quartz kindle
#

in languages that have manual memory management, such as C/C++, memory leaks are often caused by the programmer forgetting to delete something after creating it

pale vessel
#

Someone should fix Discord.js memory leak then /s

quartz kindle
#

so it keeps creating new stuff but never deleting them

nocturne grove
#

then I think it's the command that fails, because I just edited that and it contains a for loop I haven't really checked

quartz kindle
nocturne grove
#

oh right

nocturne grove
quartz kindle
#

memory leaks in javascript are rare, because the language automatically deletes stuff for you

#

but because of that, its also much harder to find them if you somehow manage to create a leak

nocturne grove
#

but it's very likely caused by stuff I just edited, or not?

lyric mountain
#

no

quartz kindle
#

depends

lyric mountain
#

I mean, probably no

#

you can run the process with a profiler attached, but you'll need to learn how to READ profiler data

quartz kindle
#

you can run it with --inspect

#

and connect to it via chrome dev tools

nocturne grove
#

but how can it suddenly have a memory leak in code that already existed?

quartz kindle
#

can you show the full memory error?

nocturne grove
#

if we're assuming the code/commands aren't connected

#

yes sure

#
<--- JS stacktrace --->

FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap out of memory
 1: 00007FF66F84058F napi_wrap+109311
 2: 00007FF66F7E52B6 v8::internal::OrderedHashTable<v8::internal::OrderedHashSet,1>::NumberOfElementsOffset+33302
 3: 00007FF66F7E6086 node::OnFatalError+294
 4: 00007FF6700B150E v8::Isolate::ReportExternalAllocationLimitReached+94
 5: 00007FF67009638D v8::SharedArrayBuffer::Externalize+781
 6: 00007FF66FF4081C v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1516
 7: 00007FF66FF2B45B v8::internal::NativeContextInferrer::Infer+59243
 8: 00007FF66FF1098F v8::internal::MarkingWorklists::SwitchToContextSlow+57327
 9: 00007FF66FF245DB v8::internal::NativeContextInferrer::Infer+30955
10: 00007FF66FF1B6FD v8::internal::MarkCompactCollector::EnsureSweepingCompleted+6269
11: 00007FF66FF2382E v8::internal::NativeContextInferrer::Infer+27454
12: 00007FF66FF277BB v8::internal::NativeContextInferrer::Infer+43723
13: 00007FF66FF31012 v8::internal::ItemParallelJob::Task::RunInternal+18
14: 00007FF66FF30FA1 v8::internal::ItemParallelJob::Run+641
15: 00007FF66FF048A3 v8::internal::MarkingWorklists::SwitchToContextSlow+7939
16: 00007FF66FF1BBAC v8::internal::MarkCompactCollector::EnsureSweepingCompleted+7468
17: 00007FF66FF1A3F4 v8::internal::MarkCompactCollector::EnsureSweepingCompleted+1396
18: 00007FF66FF17F58 v8::internal::MarkingWorklists::SwitchToContextSlow+87480
19: 00007FF66FF465A1 v8::internal::Heap::LeftTrimFixedArray+929
20: 00007FF66FF48685 v8::internal::Heap::PageFlagsAreConsistent+789
21: 00007FF66FF3D931 v8::internal::Heap::CollectGarbage+2033
22: 00007FF66FF3BB35 v8::internal::Heap::AllocateExternalBackingStore+1317
23: 00007FF66FF5BF27 v8::internal::Factory::NewFillerObject+183
24: 00007FF66FC8BE3F v8::internal::interpreter::JumpTableTargetOffsets::iterator::operator=+1039
25: 00007FF670139EBD v8::internal::SetupIsolateDelegate::SetupHeap+463949
26: 0000013374C5FEFD```
lyric mountain
#

which makes even hard to find the cause

nocturne grove
#

I just figured out it's happening after I execute the failing slash command, that I just edited to interaction stuff

quartz kindle
#

is there anything else in the logs?

#

there should be a part where is says how much memory it had when it failed

nocturne grove
#

oh yes sorry, something with <--- Last few GCs --->

quartz kindle
#

yes

nocturne grove
#

I can just share that here?

#

Idk what all those id's/codes do xd

quartz kindle
#

yes

nocturne grove
#
<--- Last few GCs --->

[13772:000001E3313461F0]    31564 ms: Scavenge (reduce) 3833.4 (3841.4) -> 3833.2 (3841.9) MB, 5.1 / 0.0 ms  (average mu = 0.362, current mu = 0.323) allocation failure
[13772:000001E3313461F0]    31569 ms: Scavenge (reduce) 3834.1 (3838.9) -> 3833.8 (3840.4) MB, 4.5 / 0.0 ms  (average mu = 0.362, current mu = 0.323) allocation failure
[13772:000001E3313461F0]    31575 ms: Scavenge (reduce) 3834.7 (3842.6) -> 3834.4 (3843.1) MB, 4.5 / 0.0 ms  (average mu = 0.362, current mu = 0.323) allocation failure```
long crow
#
const {Collection} = require('discord.js);
const collection = new Collection():
module.exports = {
    name: 'botinfo',
    description: 'Show up my info!',
    /**
   * @param {import('discord.js').CommandInteraction} interaction Represent `CommandInteraction botinfo`
   */
    async slashcommand(interaction) {...``` Putting new outside of `module` then calling it few time, and forgot to clear it will create few Collection in the cache. That what first I learn before
quartz kindle
#

it climbed all the way up to 3.8gb

nocturne grove
#

oh and when I replace my command with something simple, the command is working and no errors happen

#

it's my tester bot, I guess 3 guilds lol

#

that's a lot 😱

quartz kindle
#

jeez

#

sounds like an infinite loop

nocturne grove
long crow
#

yes can cause it, but it be slow memory build up

nocturne grove
#

okay

quartz kindle
#

because the file is stored in the require cache

long crow
#

nah, just an example

lyric mountain
long crow
#

I did before I think is MessageEmbed, and found it funnily my embed increase each time I call the command, lmao

quartz kindle
nocturne grove
#

you're all making fun of me with my 3.8 gb ram 3 guilds bot lmao

round cove
#

yes

nocturne grove
#

yes thanks for the offer, will now quickly check all for commands and else I will send it

#

okay it's logging a lot of 3's inside my console πŸ˜‚

round cove
#

What exactly is the bot doing?

nocturne grove
#

causing memory leaks

round cove
#

.... of course, but what are you trying to make it do.

nocturne grove
#

jk
it is looping through emoji to add message buttons for each of them

#
for (let i = 0; Math.ceil(emoji.length / 5); i++) {
    // ...
}```
well... here is the memory leak
I'm so smart
round cove
#

And what's inside the loop?

nocturne grove
#

no it isn't about what is inside, I forgot the i <= in the for loop

round cove
#

Omega lmao

nocturne grove
#

πŸ˜„

#

thanks to everyone who helped me
Learnt something new today lol

quartz kindle
#

xD

lyric mountain
#

You: "loop this, start at 0 and increment by 1 each step"
JS: "understood, what's the limit?"
You: "yes"

nocturne grove
#

and I don't even like it, but I guess it's the easiest way to do what I want

long crow
#

what was that for even?

quartz kindle
#

lock, up, down, blue square, red square, blue circle, red circle

nocturne grove
#

oh it's a command for the user to choose which logs he wants in his log channel

I'm converting it from emoji to buttons, because emoji are a lot of work with perm checking etc.

#

I coded it so that it doesn't give an error, even if the user removes permissions from the bot during the command

long crow
#

Won't it be much cleaner with selectmenu though?

hexed sedge
#

A menu wouldnt be simpler?

#

I can pass you some code for a menu handler

nocturne grove
#

so you suggest to make 7 select menus for each log type?

hexed sedge
#

What?

nocturne grove
#

I mean 7 in total

hexed sedge
#

No like 7 options in one select menu

long crow
lyric mountain
#

7 select menus KEKW

nocturne grove
#

oh wait I'll screenshot the embed with emoji

lyric mountain
#

each with a single option

hexed sedge
#

lmfao

long crow
#

7 selection(s) for 1 selectmenu. kekw

hexed sedge
#

anyways, today i made a guide to make an api, super happy of how it turned out doggo_laugh

lyric mountain
#

basically

nocturne grove
#

πŸ˜‚

hexed sedge
nocturne grove
#

this is it

lyric mountain
#

michael jackson

hexed sedge
#

Yeah u can have it in one select menu

#

Hold on ill send a ss of how I made mine

nocturne grove
nocturne grove
hexed sedge
#

This is how I have the options for one of my commands set up

young rune
#

:/

hexed sedge
#

Am I doing it wrong?

young rune
#

its fine i guess

hexed sedge
#

Wdym

nocturne grove
#

and it would make sense to use selection menus to be able to change 7 true/false settings?

#

because afaik you can only select 1 option in a select menu

hexed sedge
#

no

#

You can select multiple

nocturne grove
#

can you also specify that x and y can't be selected together?

hexed sedge
#

Pretty sure not using the available functions in v13, but it could be done

#

Just would take a little bit to make it

cinder patio
#

If you're asking if it's possible using the discord API only, no

hexed sedge
#

^

nocturne grove
#

so I should code that myself? I can't provide the API with what i want?

#

oh okay right

hexed sedge
#

You can make some options disappear when others are enabled

nocturne grove
#

oh that is also fine

#

and can you uncheck an option too?

hexed sedge
#

yeah

long crow
#

some demo for manga search

hexed sedge
long crow
#

yup

nocturne grove
#

that sounds pretty useful

hexed sedge
#

Lemme make a little recording myself

quartz kindle
long crow
#

Also, just found out today the text can go up to more than 20k+ length

nocturne grove
#

yes that's ridiculous

long crow
#

Need to manually cut off the length

quartz kindle
#

wat

nocturne grove
#

I read 6 million chars or something

quartz kindle
#

what text?

nocturne grove
#

for slash commands

long crow
#

the option text

quartz kindle
#

the string option?

nocturne grove
lyric mountain
#

hm

nocturne grove
#

no just in general, the string options or anything else behind the </command>

quartz kindle
#

jesus christ lmao

lyric mountain
#

found the limit

long crow
#

yep, forced to limit the char myself as now

nocturne grove
nocturne grove
#

huh it looks like they changed something

nocturne grove
hexed sedge
quartz kindle
#

oh you can do that? nice

hexed sedge
#

yeah

#

Apparently its "fine ig"

#

When its fucking littttt

nocturne grove
#

nice, thanks

long crow
#

yeah, the .update() method should do the trick

#

well for djs

hexed sedge
#

Much prettier than buttons or reactions

nocturne grove
#

yes

quartz kindle
#

well one of my settings has 40+ choices

#

so rip for me

hexed sedge
quartz kindle
#

can you put 2 select menus?

#

i handle it by text

hexed sedge
long crow
#

can have 5 rows

hexed sedge
#

oh nvm

quartz kindle
#

the user has to type in the option to enable/disable

long crow
#

so can work around on that

hexed sedge
#

Atleast from what I have gathered

quartz kindle
#

yes ik

#

would be nice if they raised the options limit to 50 for example

long crow
#

they raised the label from 50 to 100, maybe, jsut maybe

quartz kindle
#

it doesnt even fit on screen lmao

umbral lake
#

Hey, a system like if a user has "this" in his statut, the bot add a supporter role, its authorized?

quartz kindle
#

i dont see why not

drifting flower
#

how to add another user in bot owner

#

on topgg page

quartz kindle
#

in the bot's edit page

drifting flower
feral aspen
#

Hey.. so I have a friend who's bot is getting added in spam servers, like 20 spam servers a week.. does that violate anything?

round cove
#

AFAIK we got rid of adding owners.

quartz kindle
#

oh?

round cove
#

At least in the edit fields.

quartz kindle
#

can uses still add random people as owners?

#

xD

#

i remember some idiot added me as owner of his bot, then deleted the bot

round cove
#

Lmao.

quartz kindle
#

and i got a notification saying "one of your bots has been deleted"

#

@_@

round cove
#

Has to be spooky.

quartz kindle
#

turns out the idiot was veld lmao

boreal iron
#

lol

quartz kindle
#

for inorganic growth

feral aspen
quartz kindle
#

then nothing will happen

feral aspen
#

Won't he get flagged even though he's verified?

quartz kindle
#

nah

feral aspen
#

20 spam servers a week, that's like 80 servers a month.

#

Tf.

quartz kindle
#

once a bot is verified, i dont think they care what you bot does

#

unless your bot is reported

#

and is infringing some law or privacy

feral aspen
#

Reported.. for what, exactly, and what do you mean infringing some law or privacy?

quartz kindle
#

80 servers a month is nothing for verified bots

#

since verified bots usually have hundreds/thousands of servers

quartz kindle
#

doing things without permission

#

raiding

#

etc

feral aspen
#

Ahh.. yeah that's a violation, for sure.

#

My friend's bot was like in 120 servers and grows up to 600 suddenly.. that's like nothing, no suspicious activity? They are spam servers though, and confirmed, but he is tired of removing them, so I'm here to confirm if he should keep removing or just ditch doing so.

quartz kindle
#

likely nothing will happen

feral aspen
quartz kindle
#

i cant think of anything that could happen only from that

feral aspen
#

Alright.. no worries, thanks for the confirmation. πŸ‘

drifting flower
#

so i invited a user as my bot's mod

#

how does he accept the invite

last tapir
#

wait, I do know for a fact that if someone creates an alt and just adds the bot to the 20 servers he created, then that is not allowed, right? (for a verified bot)

lyric mountain
#

It is

#

You might enforce otherwise since it's ur bot

#

But discord doesn't care at all once you're verified

last tapir
#

oh tf

drifting flower
#

question : how to delete a team on topgg

last tapir
#

you cant

tired panther
#

my 200 line text, which I have written, Rip

last tapir
#

message veld for special cases

drifting flower
#

whyy

last tapir
#

moment of silence for Meister

tired panther
#

lol

#

Github is down

last tapir
#

nope

tired panther
round perch
#

also stop working through github.com, do it locally lol

feral aspen
#

I can explain in pseudo code.

nocturne grove
#

lol

feral aspen
#

Yes.. unfortunately I don't know your code so I'll have to explain in pseudo.

#

Do you know what pseudo is, first?

#

I was going to ping a mod. πŸ˜‚

drifting flower
#

why is this website so darn slow

#

i transferred ownership to a team but its not showing up

trail finch
#

in discord.js I used the code message.author.presence.status but I get error: Cannot read property 'status' of undefined

#

um in discord v13 did it change?

lament rock
#

Do you have the guild presences intent enabled

trail finch
#

idk lemme check

#

yeah it is

quartz kindle
#

author has no presence

#

members have presence

trail finch
#

nvm I got it

#

I got my mistake nvm

lament rock
#

looks like v13 removed User.presence
it's now GuildMember.presence

trail finch
#

nvm it didnt fix

#

ok

#

lemme try that then

lyric mountain
#

user with presences? cursed

lament rock
#

That's how it was

#

theoretically, a User should only have 1 presence

#

but bots exist

trail finch
#

yeah

fallen holly
#
/home/runner/Verified-Bot/node_modules/discord.js/src/rest/RequestHandler.js:298
      throw new DiscordAPIError(data, res.status, request);
            ^

DiscordAPIError: Unknown interaction
    at RequestHandler.execute (/home/runner/Verified-Bot/node_modules/discord.js/src/rest/RequestHandler.js:298:13)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async RequestHandler.push (/home/runner/Verified-Bot/node_modules/discord.js/src/rest/RequestHandler.js:50:14)
    at async SelectMenuInteraction.deferUpdate (/home/runner/Verified-Bot/node_modules/discord.js/src/structures/interfaces/InteractionResponses.js:183:5) {
  method: 'post',
  path: '/interactions/874688498135883836/aW50ZXJhY3Rpb246ODc0Njg4NDk4MTM1ODgzODM2OjZxdHg1R1RZWTM4NmJhUEU0R3c2dktjbmlmWFFHRk9GdmNGSldNcTgwUExPZ1VINXhDQ1AyS0M0QXJHWkQ5N0VPakZnRnQzYWlFTmxvT045TlhvUEh6SGRoTWJIVU1zOEVxSWJVdGhIaE8wUzhHRFBOb0txcG5PS1B0YWsxQTJD/callback',
  code: 10062,
  httpStatus: 404,
  requestData: { json: { type: 6 }, files: [] }
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! Verified-Bot@1.0.0 start: `node index.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the Verified-Bot@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/runner/.npm/_logs/2021-08-10T16_19_49_287Z-debug.log
``` https://pastebin.com/fpMTT9ZP
long crow
#

like I said, after you .update, there is no need deferUpdate

#

also there no need to ping after how many hours

fallen holly
#

the whole drop down goes away after one click

long crow
#

interaction.update({ embeds: [mod], components: [] }) instead of making empty array, jsut remove the components part. you put empty array, of course it will remove the selectmenu

fallen holly
#

oh i'm a idiot thank u

sterile thicket
#

How do I count the total members of all the guilds a bot is in?

client.guilds.cache.reduce((x, y) => x + y.memberCount, 1)
returns an invalid number I believe since it uses cache?

lament rock
#

Wait for the client to enter the ready state

#

if it returns the initial value, then the cache had not been populated

#

also, use 0 as the initial value

slender thistle
blazing halo
#

Chile

regal grove
#

does anyone know of a good free/affordable service for command logs and stuff hmm I used to have them sent to a channel but that's obviously not optimal for a big public bot

wary swan
#

why would you need it its just waste of space in my opinion

lyric mountain
#

use log files

boreal iron
#

Or a database

lyric mountain
#

nah, use files

boreal iron
#

Shhh

lyric mountain
#

better to control and read

#

also small af

boreal iron
#

lol

hexed sedge
#

Im severely pissed off at myself, bc the code in my guide looks better than my actual code

vivid fulcrum
#

log files and self-hosted sentry instance for error tracking

foggy echo
#

guys what does this cmake error mean

#
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
hexed sedge
vivid fulcrum
foggy echo
vivid fulcrum
#

gcc

foggy echo
#

oh no i dont

#

its weird to install though

vivid fulcrum
#

which distro are you running

#

or are you on windows / mac

foggy echo
#

wdym distro

#

im on windows

#

im installing something with the git bash cmd

vivid fulcrum
#

install cygwin

worn hazel
#

how to make it so i can change nickname of every user using a command
like an anti hosting command (change nickname of every user having a ! in there?
ik i can use like message.guild.members.cache.filter(i => !i.user.bot).map(user => {}) but what do i put in the map?

foggy echo
vivid fulcrum
#

should be working after that

foggy echo
#

alright

coarse topaz
#

Hey there, could someone please help me out with my code

    if(message.content.startsWith(`${prefix}react`)) {
    let args = message.content.split(" ");
    let messagesID = args.slice(2).join(" ");
    let messagesIDArray = [];
    messagesIDArray.push(messagesID);
        messagesIDArray.map(message => message.channel.messages.fetch(message).react("βœ…"));
    }```

It's my first time working with push() and arrays iterating ![Block_Sweat_Smile](https://cdn.discordapp.com/emojis/797444209783209984.webp?size=128 "Block_Sweat_Smile")
The current error I'm getting is "Cannot read property 'messages' of undefined"

Please ping me when answering, thank you
vivid fulcrum
#

what are you trying to do

coarse topaz
#

I'll give the bot some messagesID and it should look for them in the channel and react to them with βœ…

vivid fulcrum
#

nvm i got it

#

look at your arrow function in the map method

#

you named the variable message

#

so it takes priority over the actual message variable you got in the event

#

so message is actually a string, not the message object

#

just rename it in the arrow function

#

also also

coarse topaz
#

oh so should I name it differently

vivid fulcrum
#

you have a mistake in the code

#

fetch is a promise, you need to async/await or .then()

#

otherwise you're calling react on Promise<Message> which will error

coarse topaz
vivid fulcrum
#

no

#

messageToFind is a string in that case

#

.then(foundMessage => foundMessage....) is what you're looking for

coarse topaz
#

oh

vivid fulcrum
#

also

#

a for loop seems to be a better suited case than a map function

#

map() is supposed to be used when you want to map X to Y

coarse topaz
vivid fulcrum
#

well, no

#

you just want to iterate over the messages and react to them

#

right?

coarse topaz
#

yes

vivid fulcrum
#

then a for loop is better suited

#
for(const messageToFind of messagesIDArray)
{
  //use messageToFind like you normally would
}
coarse topaz
vivid fulcrum
#

how do you call the command?

#

as in, what's the argument order

coarse topaz
#

ID1 ID2 ID3 etc

#

I just separate them with blank spaces

vivid fulcrum
#

alright so you should be able to just .split(" ") on messagesID

#

and that'll become your messagesIDArray

#

nevermind

#

i see that it's an array already

#

just don't join(" ") and rename messagesID to messagesIDArray

#

and that's it

#

remove the split

coarse topaz
#
if(message.content.startsWith(`${prefix}react`)) {
    let args = message.content.split(" ");
    let messagesIDArray = args.slice(1);
    messagesIDArray.push(messagesID);
        messagesIDArray.map(messageToFind => message.channel.messages.fetch(messageToFind).then(foundMessage => foundMessage.react("βœ…")));
    }``` This is how it'd look like then
vivid fulcrum
#

remove the push and change the map to the for loop i showed you above and that's it

#

also

#

you should look into building a proper command handler

#

if else leads to messy code

#

not ideal

coarse topaz
#

thanks for the suggestions & feedback, give me a min to fix the push and for loop stuff KoGaMa_ThumbsUp

hexed sedge
#

Hey, does anyone here know a little bit of javascript but doesnt know how to create a CLI tool?

vivid fulcrum
hexed sedge
#

I need someone to check if my guide actually lines up correctly and is readable...

worn hazel
#

uh can anyone tell me how can i make a good dehoist command? (change nickname of peple whose user name starts with a specific letter in an array of letters

coarse topaz
#

@vivid fulcrum Omg bro thank you so much!!!!

rose warren
coarse topaz
#

Other question, is there a method to remove all reactions from a message?

hallow shell
#

what's the difference between defAvatar and avatar from the api?

earnest phoenix
#

Is it a good idea to create your own polyfill without checking if it breaks?

#

I've got an Array.prototype.last property from Dart and I want to use it in js because arr[arr.length - 1] sucks

coarse topaz
#

@vivid fulcrum I tried to do the inverse with the removeAll() method but it doesn't seem to work
It tells that "foundMessage.removeAll is not a function"

if(message.content.startsWith(`${prefix}reactionsremove`)) {
    let args = message.content.split(" ");
    let messagesIDArray = args.slice(1);
        message.delete();
        for (const messageToFind of messagesIDArray) {
        message.channel.messages.fetch(messageToFind).then(foundMessage => foundMessage.removeAll());
        }
    }```
I don't know what I'm droing wrong
earnest phoenix
#

im not sure if removeAll is a real thing

cinder patio
#

BRUH what the fuck

sudden geyser
coarse topaz
earnest phoenix
sudden geyser
#

But you're trying to mutate the prototype

#

I'm talking about a pure regular function

earnest phoenix
#

last(arr) vs arr.last

sudden geyser
#

Yeah

#

They're not the same

earnest phoenix
#

and it already has a polyfill

cinder patio
#

you could also extend the Array class

earnest phoenix
#

let tempClass = class extends Array {
get last() {
return this[this.length - 1];
}
}

[Array, tempClass] = [tempClass, Array]

#

the temp class is to prevent ref errors

cinder patio
#

the fuck

lethal trout
earnest phoenix
#

class extends Array

lethal trout
earnest phoenix
#

it will look in the original Array prototype instead of copying all methods

earnest phoenix
#

the last method disappears when redeclaring Array

#

Meaning it isn't what you think it is

earnest phoenix
lethal trout
earnest phoenix
#

use single backtick

#

No thanks

earnest phoenix
#

DiscordAPIError: Invalid Form Body
embed.image.url: Could not interpret "{}" as string.
embeds[0].image.url: Could not interpret "{}" as string.

lethal trout
earnest phoenix
#

What?

#

code idk why you are extending the array class like that but I might just be dumb

cinder patio
#

Handlebars seems to be parsing stuff wrong, I've got a helper, X, which returns a string, which is used for the class attribute of an element:

<p class={{X this}}></p>

If X returns multiple classes (ex. class1 class2) then handlebars parses the entire element as:

<p class="class1" class2> </p>

...which is obviously wrong. Any fixes for this?

earnest phoenix
#

But why like that?

#

I dunno

#

I've never seen someone extend anything like that so idk what its really doing mmLol

sudden geyser
#

I didn't tell you that.

#

I told you to just use a function.

#

You could also use .at like you mentioned

earnest phoenix
#

Imma use at

#

Or array.length - 1

#

Im curious are you using ts?

#

Or dart

earnest phoenix
#

so js

#

Don't know what using ts has to do with having a life but okay

sudden geyser
cinder patio
#

Or use macros like a cool kid 😎

earnest phoenix
#

lmao

sudden geyser
earnest phoenix
#

i won't hire a weeb community manager to write code for me

#

Why not

sudden geyser
#

he's scared of our power

earnest phoenix
#

ikr

#

Weebs are one of the best programmers

#

Name one programmer who isn't secretly a weeb

cinder patio
#

βœ‹

earnest phoenix
#

True weebs code in JS (JapaneSe)

#

No

#

wait a second

#

JS is a distasteful language

#

that backfired horribly

#

Golang is my new fav

sudden geyser
#

what's special in golang

coarse topaz
earnest phoenix
#

Its sexy

#

thats all that matters

#

:D

#

How do you define a getter without object declaration syntax or Object.__defineGetter__

cinder patio
#

Object.defineProperty

earnest phoenix
#

that doesn't have a way to set getters tho

cinder patio
#

it does?

earnest phoenix
cinder patio
#
Object.defineProperty(object, "name", {
  get: () => "you are gay"
});
earnest phoenix
#

Don't question my judgement

#

object.name without paranthesis will now return you are gay amirite

cinder patio
#

yes

earnest phoenix
#

Cool

#

Oh well its insanely fast, easy to use, and has simplicity in mind

hexed sedge
#

Its used alot in big companies

#

So if you are thinking of jobs, golang is a good contestant

earnest phoenix
#

Google especially

hexed sedge
cinder patio
#

golang is meh when you know there are some programming languages which are just better by design

earnest phoenix
#

Yea

sudden geyser
#

how about learning some lisp

earnest phoenix
#

It does its purpose well

hexed sedge
earnest phoenix
#

Yep

#

Speed and scalability iirc

cinder patio
#

for that I'd use rust

hexed sedge
#

So for what it was designed, sure ok its good enough

earnest phoenix
#

They were running into issues with their C programs compiling to slow

hexed sedge
#

But like, other langs better

earnest phoenix
#
if (!Array.prototype.last) {
Object.defineProperty(Array.prototype, "last", {
get: function() {
        return this[this.length - 1];
    }
});
}
#

i hope this works

sudden geyser
#

probably will

#

just unnecessary

cinder patio
#

it won't cause you have a syntax error

sudden geyser
#

except that

earnest phoenix
#

Got it

hexed sedge
#

Apparently this is the code to a basic ping bot

cinder patio
#

not the Array object itself

hexed sedge
#

Looks hot ig

cinder patio
#

it is

#

cause it's rust

hexed sedge
#

But js better trollblur

earnest phoenix
#

I thought you coded in assembly? Thonk

hexed sedge
#

Im out trollskull

earnest phoenix
#

Teach me how you can send multiple +:emoji: at once

#

simple you dont

sudden geyser
#

Shift + click?

earnest phoenix
#

kthxbai

hexed sedge
#

^

hexed sedge
earnest phoenix
#

explains the random emotes

hexed sedge
#

Shift click those

earnest phoenix
#

i suffer on mobile

hexed sedge
#

And I copy pasted alot that embed

earnest phoenix
#

use a constant variable oh my god

hexed sedge
#

It was the default github readme

hexed sedge
#

So I was testing alot the snippet save feature

stable eagle
#

Im trying to create a channel with role overwrites, but discord.js always throws the error "MISSING_PERMISSIONS" even tho it has perms, why?

earnest phoenix
#

like github gist?

hexed sedge
#

Uhhh kinda

earnest phoenix
modern sable
#

ty

stable eagle
#

Well, the roles are above the bot.

earnest phoenix
#

yw

stable eagle
#

Maybe that’s why?

earnest phoenix
#

Probably

hexed sedge
earnest phoenix
#

You can't edit a role above you

earnest phoenix
#

Does it work with attachments

hexed sedge
#

No you cant upload files

#

It was a short project made for fun, like most projects I have made

earnest phoenix
#

I was thinking of making smth like this

hexed sedge
#

There is only like two that I have dedicated more than 1 day of my time to

hexed sedge
earnest phoenix
#

Ok

#

It's free real estate

hexed sedge
#

Lmfaoooo

#

Thats what I think goes through everyones head when they see my bad code trollblur

earnest phoenix
#

Lol

#

I used to work on a discord interactions client for deno

#

It had a lotta spaghetti code

#

Especially the websocket

yuck

#

I deleted the repo

hexed sedge
#

Lmfao, I privated alot of my repos

cinder patio
#

I'm proud of my bad code

earnest phoenix
#

Same

#

:p

#

My golang code is fixing to be worse

hexed sedge
#

100% of people I have showed it to has said ew

proven lantern
#

i write perfect code eventually

lyric mountain
#

@earnest phoenix does kofi send any authorization or something

#

like, something I can use to validate origin

#

the example response json doesn't help much

earnest phoenix
#

I have no idea really

#

I haven't used it for that long

lyric mountain
#

you didn't use the webhook?

earnest phoenix
#

No, I just know it exists and that you can

lyric mountain
#

meh

earnest phoenix
#

I don't receive money often enough to care about a webhook kekw

proven lantern
earnest phoenix
#

oof

boreal iron
#
async something()
{
   await ...
}

async somethingElse(param)
{
   const anything = await ...
   return anything;
}

async somethingElseElse()
{
   const promise = await somethingElse(param);

   something()
   // some code relying on something()
   await something()
}

Does something() need to be awaited, too if I'm relying on the result in the code after?

lyric mountain
#

await will stop the execution right there and wait for it to complete

#

without it, it'll keep going regardless of the function being complete or not

boreal iron
#

yeah as expected, alright, ty

quartz kindle
#

wtf is wrong with intellisense sometimes

lyric mountain
#

seems legit

#

actually, what would 0n yield?

quartz kindle
#

0 as a bigint

lyric mountain
#

confused noises

quartz kindle
#

lel

#

bigint is js's way of representing arbitrary sized integers

#

the syntax is to post-fix numbers with n

azure lark
#

i got this error whilst trying to run discord.js v13?
const token = this.client.token ?? this.client.accessToken;

lyric mountain
#

ah, I get it now

#

kinda like java's 123L

quartz kindle
#

probably

#

as idk java

#

xD

lyric mountain
#

L for long

quartz kindle
#

ah yes

#

is L also arbitrary sized or does it have a limit?

restive furnace
restive furnace
quartz kindle
#

so its not arbitrary

#

aka unlimited bitsize

#

UNLIMITED POWER

cinder patio
#

@solemn latch

restive furnace
#

but bigint is slower by alot too

azure lark
restive furnace
#

latest

azure lark
#

so, npx node@latest?

quartz kindle
#

nothing is faster than fixed sized numbers

quartz kindle
#

download from the website and install, if you're on windows

#

use nvm if you're on linux

azure lark
#

im using repl cuz my friend wanted me to

boreal iron
#

Registering slash commands for a guild requires the command scope.
Does registering global commands requires this, too?
Just to make sure before rolling them out…
I’m gonna guess no.

#

nvm it doesn’t…

quartz kindle
#

they are still using node 12 by default lol

#

but there are some ways to change it

#

the easiest way would be to just fork this repo

#

and move your code over there

#

you wont be able to use the package manager, you'll have to install everything through the shell

earnest phoenix
#

repl still uses v12

#

tf

quartz kindle
#

nvm the metod above only supports node 16.4

#

you need 16.6

#

lel

rose warren
boreal iron
#

Time to go work, rent a root server and setup your own environment oldEyes

rose warren
#

Mhmm

earnest phoenix
#

Imagine working

#

couldn't be me

boreal iron
#

lmao

earnest phoenix
rose warren
#

Or offer a premium subscription

#

Bot pays for itself

earnest phoenix
#

that costs 40$

#

ez

rose warren
#

Huh?

earnest phoenix
#

Big brain plays man

rose warren
#

My bot's hosting doesn't cost that much

earnest phoenix
#

Dw about it

boreal iron
earnest phoenix
#

def not a scam scheme

earnest phoenix
#

until you can get enough moneh

quartz kindle
#

i broke my repl.it trying to install node 16

#

xD

boreal iron
#

I see I’m handling things wrong.
Gonna close my business and add a premium subscription to make cash…

lyric mountain
#

signal: killed
operation: failed

we'll get 'em next time

earnest phoenix
boreal iron
earnest phoenix
#

Quick ez cash

#

Buy a dedi you don't need

#

ez

boreal iron
#

Damn and I was stupid to work 7 days a week.

earnest phoenix
#

Yea man

#

In all seriousness though

#

I strive to one day meet the goal of being my own boss and giving myself my paycheck

boreal iron
#

seriousness? A word that should be banned of this channel

earnest phoenix
#

So true

rose warren
#

Wow Tim uses replit? Damn. You've gone down in my esteem πŸ˜…

earnest phoenix
#

Ikr

boreal iron
earnest phoenix
#

Oh I know

#

I lack motivation

rose warren
#

Being self-employed is hella stressful.

quartz kindle
earnest phoenix
#

Oh lord do I know

#

I've tried the self employed thing

#

its painful

quartz kindle
boreal iron
#

Imagine handling other employees, too

quartz kindle
#

otherwise you have to configure LE or cloudflare

earnest phoenix
#

Yup

rose warren
earnest phoenix
#

I truly just wanna build a team of 4 and work on some cool projects and dick around

#

I don't take a lot of things seriously in life

boreal iron
rose warren
#

Mhmm

earnest phoenix
#

Problem is finding the employees

boreal iron
#

Yeah and keeping them

earnest phoenix
#

Indeed

#

It sucks when you're starting out too

rose warren
#

I run my own agency now and only use subcontractors. No monthly payroll to manage.

earnest phoenix
#

Most cases you can't even promise em pay

boreal iron
#

Lost a big job and was forced to get rid of 4 very reliable people which is horrible

earnest phoenix
#

Though im only 16 so I got time

#

kek

boreal iron
#

Yeah but that’s our economy

rose warren
#

Payroll is stressful shit

#

I said no more

earnest phoenix
#

Must be nice making money

boreal iron
#

Somebody cheaper often gets the job even if the quality is worse

earnest phoenix
#

I got 72 cents to my name

boreal iron
#

That’s how things work

rose warren
earnest phoenix
#

Yea true

#

I still need to get my license :c

#

and a car

boreal iron
#

Especially today if anyone else being cheaper usually gets the deal

earnest phoenix
#

I personally don't care about earning a lot of money as long as I get to do what I love and can pay for the essentials im set

rose warren
#

My company is basically dead since covid started. I was specialised in marketing for events companies (mainly corporate). No events with covid. No events = no clients = no income. My Discord bot has kept my running costs covered. Without it the company would be shut down. My second job pays for my living costs.

earnest phoenix
#

Damn

#

Pretty cool bot you got as well

rose warren
#

A year or more and if covid wasn't a thing, I'd have been 100% self-employed

#

It sucks to have to start over ngl

#

Things were starting to go very well

earnest phoenix
#

I just wish I was half as successful as you were

rose warren
#

Man you're 16. You got time πŸ˜‰

boreal iron
#

That’s something you can never plan unfortunately even if you should keep money in your business to compensate things like that

earnest phoenix
#

True but it sucks none the less

rose warren
boreal iron
#

Yeah understandable

rose warren
#

Now it's more a question of how to pay the accountant πŸ˜‚

boreal iron
#

I’m luckily since I’m working in the logistics & transportation branch

#

Work is always a lot

rose warren
#

Yeah I've learnt to diversify the hard way

late spade
#

Simple date command for JavaScript

var date = Date();
var year = date.substr(11, 4);
var month = date.substr(4, 3);
var day = date.substr(0, 4);
var daynum = date.substr(8, 2)
if (month == "Oct") { month = "10"; }
if (month == "Jan") { month = "1"; }
if (month == "Feb") { month = "2"; }
if (month == "Mar") { month = "3"; }
if (month == "Apr") { month = "4"; }
if (month == "May") { month = "5"; }
if (month == "Jun") { month = "6"; }
if (month == "Jul") { month = "7"; }
if (month == "Aug") { month = "8"; }
if (month == "Sep") { month = "9"; }
if (month == "Nov") { month = "11"; }
if (month == "Dec") { month = "12"; }
if (day = "Sun") { day = "Sunday, "; }
else if (day = "Sat") { day = "Saturday, "; }
else if (day = "Mon") { day = "Monday, "; }
else if (day = "Tue") { day = "Tuesday, "; }
else if (day = "Wed") { day = "Wednesday, "; }
else if (day = "Thu") { day = "Thursday, "; }
else if (day = "Fri") { day = "Friday, "; }
setResponse(day + daynum + "/" + month + "/"

boreal iron
summer torrent
#

what the heck is that

quartz kindle
#

Lol

wicked pivot
#

on v13 send('..') work ?

earnest phoenix
#

jesus

late spade
rose warren
late spade
#

I do t code regularly. I also barely code on je

earnest phoenix
#

Would look 10x better

summer torrent
late spade
#

Js*

boreal iron
#

Yeah

#

Indeed

wicked pivot
summer torrent
#

yeah

earnest phoenix
#

Why do that when you can make ugly code yourself

quartz kindle
#

strings yes, other things no

wicked pivot
#

okay thx

summer torrent
#

shitcode

quartz kindle
#

heckcode

boreal iron
#

God thanks PHP gave us strtotime to convert any legitimate time string to a timestamp…

Oh we’re speaking about JS?
Then fucking do it yourself!!1!
(or use a lib of somebody else did it but it won’t be maintained and loose it’s functionality one day)

earnest phoenix
quartz kindle
#

lel

earnest phoenix
#

So here me out

#

you pay me 100$ and I give you back 1 million

#

sound fair?

boreal iron
#

Let Tim pay a subscription…
He’s rich now. Trust me.

earnest phoenix
#

Yes yes

#

I need to come up with a new name for my platform

boreal iron
#

I swear if that fucking auto correct shit doesn’t stop bullying me I’m gonna deactivate it and open the doors to hell.

#

trash OS

novel snow
#

Man I feel dead inside now, I have been trying to make a custom anti nuke system

#

And I just

#

I can't figure out a efficient way to do it

earnest phoenix
#

Ez ban everyone

#

then no one can nuke

boreal iron
#

lmao

novel snow
#

Without like making a whole database with 100 entries a guild to log everything while reading and writing like 500000 things a message

#

I feel ded

earnest phoenix
#

FaKe may I intrest you in a bot idea

#

πŸ‘€

rose warren
#

If server owners set their perms properly nuking wouldn't be a problem.

earnest phoenix
#

That you can totally have since I don't even mess with the dapi anymore

boreal iron
#

Hmm tell me more, tell me more

rose warren
earnest phoenix
#

Alright so you pay the bot 10$ and i get all the money ez

#

Nah im kidding

boreal iron
rose warren
#

Imma tag a mod to come here and ban the scammer πŸ˜‚

earnest phoenix
#

Basically it is an idea I branched off of another bot I was making

boreal iron
#

Yes! Away with him.

earnest phoenix
#

Its an anti scam bot

#

Detects possible scammers and bans em ez

boreal iron
#

lmao that irony

earnest phoenix
#

Shhhhh

boreal iron
#

Alright leaving the highway

earnest phoenix
boreal iron
#

See ya

earnest phoenix
#

Bye man

rose warren
#

Bye

boreal iron
#

❀️

earnest phoenix
#

So mac may I intrest you in an idea

novel snow
earnest phoenix