#development
1 messages · Page 1656 of 1
India
16 GB Ram and Amd ryzen 5900x 1.157,28 Rupi
also, why are those bars cut?
I just took a break from coding for 6 months and totally forgot everything about javascript
I don't know your economy, is it expensive or cheap.
clap clap
if it means you gotta work below 50%, forget about it
Oo
using caches I expect you go go upto 500 maybe 750 servers
without cache about 1500-2000
but it'll be slow af
I don’t have money ;-;
I have 0$ in my cc
O nice
My bot didn't hold glitch so I decided to buy vds
currently located on 1 million users and 30 thousand servers
Reached 30 thousand servers from 10 servers
don't use users as a metric smh
wait, 1 million -> 30k servers?
that doesn't sum up
but anyway
just try to save a lunch money once a month
what
vps cost about $4
no $4
In JavaScript, you cannot pass parameters by reference; that is, if you pass a variable to a function, its value is copied and handed to the function (pass by value). Therefore, the function can't change the variable. If you need to do so, you must wrap the value of the variable (e.g., in an array).
God damn... JS sucks
that's kinda misleading
The economy sucks
like, objects are passed by reference
I know a free vps
you can't do object = new object obviously
but you can do object.setSomething(something)
Could u tell?
which
test("test", 123, "abc");
function test()
{
test2(arguments);
// for(let i = 0; i < arguments.length; i++) console.log(arguments[i]);
}
function test2(a, b, c)
{
console.log(a, b, c);
}
Just as example. Then u know what I mean.
https://adkynet.com is a free vps and it works
It’s not in English but
i use heroku
@boreal iron
It's because I'm french
Heroku's 512mb ram might not be enough as your bot grows
I need to use a translater but fine
I could change the object's parameter because objects are passed by reference
but other than that, it's good
else it'd still be empty
used it for more than a year until switched to a VPS
what's not passed by reference are primitives
Same with glitch and repl.it
Is it worth learning TS or should I stick with JS?
why is TS better then js?
I'm not trying to pass an array or object as argument. You basically can't call the function and pass the raw arguments to it using another function. Doesn't work in JS.
Crap
Type safety
what is type safety?
It makes sure you use correct types for everything
for example:
function set13(obj, is13) {
obj = {thirteen: is13}
}
...
let test = {};
set13(test, true);
WONT WORK
function set13(obj, is13) {
obj.thirteen = is13;
}
...
let test = {};
set13(test, true);
WORK
from objects (you use interfaces and classes) to parameters
define "pass raw arguments"
like, objects are always pass-by-reference
of course all of this are transpiled to pure JS
so end of the day it's still JS
The compiler is 🏳️⚧️
alright ty I'll probably learn it
test("test", 123, "abc");
function test()
{
test2(arguments); // > Object { 0: "test", 1: 123, 2: "abc" } undefined undefined
test2(arguments[0], arguments[1], arguments[2]); // > "test" 123 "abc"
}
function test2(a, b, c)
{
console.log(a, b, c);
}
It's not possible to pass the dynamic amount of arguments - from test() - to test2()
In a raw form - the data type they are - without passing all arguments as array or object
ohhhh that's what u mean
Seems like there's no way to make it work in JS
btw, define arguments there
can't u do ...arguments?
I can't really understand that example
what is "arguments"?
give an example with actual variables please
arguments is a js static var
and they represent?
I am making a second bot
the method's input variables?
They represent the arguments you pass to a function.
Makes sense to use the static var for functions you're passing a dynamic amount of parameters.
ok, now that's clear
is there any lang that allows u to pass args that way?
like, js is the most arbitrary lang I've ever seem
but as I said... I read a little about it and well js doesn't support a native way like PHP does for example
Glitch banned uptime robot
You can use Heroku's worker dyno for bots
You just need a remote database since Heroku has ephemeral storage
yeah but like, it's just a matter of time before heroku does something similar
no, I mean, before they do something about bot hosting
I doubt it
They give you 512mb of ram and CPU for you to use (they have no reason to limit it)
Plus if you use too much memory they restart your app
yeah
before or after discord verification?
after of course
yeah, ig what made glitch need to resort to extreme measures was how they didn't have as much limit as heroku
also glitch being plug-n-play
Is it normal that other bot copy's your description
nah just keywords copy and features
like, if it is a legit copy you can call mods to review that
I hate bots, which tell that they have the feature but they do not have it in fact
nah,it's okay
Is anyone here able to help me modify my command handler to support subfolders?
yup
webhook?
yes but how
ok thanks
my command handler is different than that one though...
Of course it is
This is example code, adapt it to your needs.
ok ill keep trying
how do I know if a message is from a dm???
check the channel type
if (message.channel.type === "dm")
nP
nice spoonfeed
97% cpu usage bruh
did you installed and registered the font?
you can write a entire python program in one line
but its possible
I can make my whole bot 1 line
in js
uh what
I can write whole java programs in 1 line
it doesnt change how it works, its just the readability of the code
it all gets complied to machine code anyways
java gets compiled to bytecode
guys, thats literally not spoonfeeding tho
it is
if he sent his entire bot file like here ya go an entire command, thats spoonfeeding
bruh so ur telling me this entire channel is spoonfeeding?
@rustic nova
lol
Anyways I came here to ask, how do I do it so that my help command goes like:
-help mod to show the moderation commands?
okay cool
probably not cached
you should fetch it instead
await, yes
flaze
I randomly get disconnected from discord, I read online that this is an old problem with DJS.
Does anyone know how to avoid it ? or fix it ?
could not login to discord (AbortError: The user aborted a request.)
you have to register font on canva
what version?
what is the function to convert 12345 to 12,345 ??
12.5.1 latest stable
I know there is, I just dont remember the function
then google it
simply saying "google it" doesn't help
learning google dorking always help when you want to start developing
still not a solution just saying "google it"
@carmine summit would you look at that #toLocateString
.toLocaleString()
or numberFormat
numberFormat sucks
I want to save the picture locally to the files then use roots to require it.
still
send the file with the message then use attachments://image.png
discord can't access your local files
Bruh, not on desktop.
Well, alright I guess.
omfg
ok, lets consider you're hosting on a lettuce
still
send the pic
use attachments://image.png
you cannot use local paths for discord-related stuff
I have too many members documents...
I plan to just drop them all when I finish my rewrite
guess you should consider moving to sql if you have member/channel/guild stuff
those stuff are 99% the time related to each other
MongoDB hasn't given me any issues
I just store a long to keep track of relations (V4 uses a long and an int, actually)
The members table keeps track of things like leveling and currency. In V4, I am making those opt-in only.
yeah but like, you're using a non-relational database for relational stuff
But I can just use numerical values to keep track of things, so it works fine for me
the increase in rss is likely the overhead that comes with two processes,
if you say so...
i like mongodb mysql is trash
nah sql with connection :C
??
that would be cool if you have quick.db with connection
i mean seperated hosted db like mongo
you do know sql is supposed to be hosted remotely right?
@lyric mountain What's the benefit of a relational DB over just using a long (and an int, in V4) to keep track
no sql is hosted local,idk xD
speed, sql was made for intertwined stuff
????
mongodb has a faster insert speed
speed depends on many things
Ah, ok
My bot is small, so it's never gotten slow, don't have to worry about that.
not only the database software you chose
oh you do tho
it's easier to fix now while the hole is small
all sql can be hosted both local or remote
actually, any database can
I don't expect it to get very big at this rate
It's been over a year, and I'm only at (about) 150 servers
you're not approved yet
once you get approved on top.gg you'll see a faster growth
Oh, ok
it depends on the idea.If it is not unique it will never grow
remember:
they just randomly add bots for no reason
Oof
isThirteen() is an actual npm package
do you think you can get more redundant than that?
@slate oyster what is your bot about?
Multipurpose. The biggest feature is cross server chat, but I was planning to add a simple battle game too.
think u can compete againt that? 
Why tho
lol
nah battle game would be the only cool feature
you see, no matter what your bot do, you can't get too generic
there'll always be people to invite it
Plenty of people like chatlink
It's more active than me
My only concern about it is rate limits, but webhooks should help with that a tiny bit if I ever decide to support them
you can await them
but really, you should consider sql
Java doesn't have the await keyword 
Discord4J automatically handles rate limits, but it doesn't prevent my bot from freezing, so I want to implement load balancing
nah no time to change my system
wait, you're doing java?
Yea
jda is trash
it's not tho
with await i mean to set a timeout and execute it later
Groovy switched to D4J iirc
jda lib bugs sometimes
define "bug"
like the onready event does not get executed sometimes
but that is a long away
i will never leave my lovely js
java discord api
@earnest phoenix Nm, they never switched to it in production, only development
and djs handles shards as separate proccesses 
but anyway
java has jpa, which can make your sql stuff easy af
have to go off 👋
Bye
EntityManager em = Manager.getEntityManager();
AMember mb = em.find(AMember.class, id);
like this
MongoDB is extremely easy
It's like splitting JSON across multiple files/folders, but better
I use Reactive Streams, what would the code look like in Reactive Streams?
I actually use a library called Reactor that wraps Reactive Streams, so I'm not using them raw
But I can give a Reactor example
Here's some of my code using them (V4)
It allows for efficient asynchronous programming
that's...vague
I'm using Mongo Reactive Streams, which integrates perfectly with Reactor and is non-blocking
ok, I'll consider that RS stuff to be like java's stream api
where are you using mongo there?
const image = new MessageAttachment('../../other/images/attitude_white_background.png', 'attitude_white_background.png')
const embed = new MessageEmbed()
.setTitle("Bot Information")
.setColor(cyan)
.setImage("attachment://attitude_white_background.png")
``` Did I do something wrong?
It doesn't send the pic.
yes
you didn't send the image
you didn't attachFile()
I wrote a wrapper around the MongoDB Reactive Streams api
To make it easier to use
let's leave that here for a second:
public static void saveMember(AMember mb) {
EntityManager em = Manager.getEntityManager();
em.getTransaction().begin();
em.merge(mb);
em.getTransaction().commit()
em.close();
}
public static void getMember(User u) {
EntityManager em = Manager.getEntityManager();
try {
return em.find(AMember.class, u.getId());
} finally {
em.close();
}
}
and let's consider I want to update AMember xp
that's my example in jda
I have the user ID
And then the client ID (0 for Discord, 1 for Nertivia)
let me finish
User usr = //lets say you got a user object somewhere
Stream.of(usr)
.map(MemberManager::getMember)
.peek(m -> m.addXp(10))
.forEach(MemberManager::saveMember);
(Stream's forEach is not normal forEach btw)
normal forEach is bad
that code would retrieve AMember object, add 10 xp then return to database
That's normal streams, not reactive streams
Iirc
Oh, ok
ik that making embeds are probably easy, but im having trouble making one. can anyone help
you didn't tell me exactly what RS is, so I supposed to be similar to Stream api
language?
couldn't you point me to a less oracle info? 
d o e s n o t c o m p u t e
i need it so when i say
I guess you can google it later
maybe, but you get the idea
my point is, with jpa you can abstract much of that SQL queries
so migrating to sql might be a lot easier
the only problem with that is
do you know how commands work?
ill look again
this is what i have
when i look at it
it says
if you say, ()commands
then the bot will make a embed
and say it
but it does not work
what is the channel?
shouldnt it just respond to my message
use message.channel.send
yes
why did you carbon-copy the example?
it didnt work
chechk the console log
no look the cmd
it says
There must be an error in the log
message not defined
this
where should i put message.content
if (message.content.startsWith
if (msg.content.startsWith
yes
you are welcome
😄
until @earnest phoenix help me fix it
which wasn't embed issue at all but message check
"be polite until you get the fix, then show middle finger to everyone"
------ this channel in a nutshell
Lmao
Fucking mongoose breaks on every update https://github.com/Automattic/mongoose/issues/10030
imagine when you meet delphi
isnt it msg.channel.send(embed: {exampleEmbed});
you might want to look into a dynamic help command, makes stuff much easier
a dynamic help command will adjust to new commands without the need to edit the embed
yea
but i only start a new cmd
when im done with another
and part of my check list
is add the command name to the embed
if it starts getting annoying ill do that
you're limited to 25 fields
or 6000 characters in the whole embed iirc
also anything above 10 fields gets annoying unless using inline
so how should i do it
also I see you're still using the exact same embed from the guide
depends
i removed and added a lot
also i changed ever value except the color
but i like the blue
yours
i mean in the scrcipt
guide's
script*
still
guide example is not a template
it's an example that's supposed to be understood then implemented your own way
well
i understand how it works
and what the values mean
if i did i wouldnt have been able to change so many factors
If you're not familar with embeds, there's a nice little helper to test them out: https://leovoel.github.io/embed-visualizer/
hi
This is not chat
Hi!
Oh
Alright mini-mod. He's new ch1ll.
Srry I didn't know
Ah stop it already
lol
He's right but he should not be that hard on you. You're new, after all.
Yeah!
but its fine if u want to stay here
But don't chat :)
your chatting
has a thick brain***
anyways, @lyric mountain , how would i make it so i can go over 25 fields
I find it ironic how the two whitenames who have less than 400 message between them are tell people to go to specific chats to talk 
you also cant go over 25 fields
hence why it's call
a LIMIT
lol
also
if i cant go over that amount
should i add reaction rolls
and they open organized lists

like fun cmds, moderation, help, ex
because snakes are weird
lol
lol
const Leader = Leaderboard.map(data => `\`${data.position > 3 ? data.position : ":firstplace" }\`. **${data.username}#${data.discriminator}** - Level ${data.level}`) Alright so I made a level leaderboard and it works. However, I want first, second & third to have metal emojis next to their name. I'm very stuck lol (🥇).
lol. It is like that.
:first__imagr:
@final lynx Example ^^^^^
Indeed, fellow robloxian.
You can't, but you can paginate
Instead of using 1 field per command, you can create categories
And use 1 cat per field
Then put its commands on the field description
That's pagination
Hey @opal plank I finally started using your lib, and one of the disabled caches is preventing the bot from sending messages:
channels: {enabled: false},
emojis: {enabled: false},
members: {enabled: false},
messages: {enabled: false},
presences: {enabled: false},
users: {enabled: false}
When I run the bot with the above configuration, it doesn't send any messages, when I don't, it sends messages just fine
you have messages disabled 
you disabled people from using it -_-
messages: {enabled: false}, 
also messages disabled lol
thats not how the cache works, but ok
Shouldn't that just disable the message caching? Doesn't make sense to disable the entire message sending feature
well if he's hooking into the intents with it
but yea
it'll close the message intent
everything is disabled
that would be my first go to would probably check the intents being sent off
I'll try setting the intents myself
If I have to cache messages in order to send messages that's kinda shit ngl
aye, it's probably just missing the default intents
Aren't all intents enabled by default though, except the ones you have to request
const Leader = Leaderboard.map(data => `${data.position == 3 ? ":first_place:" ? data.position == 2 ? ":second_place" ? data.position == 2 ? "third_place" : `${data.position}. **${data.username}#${data.discriminator}** - Level ${data.level}`)
``` Well, I tried this but didn't work lol. Anyone know what I did wrong?
they should, yeah
So the lib must be removing some of em
excluding MEMBER_INTENT etc
well it would be smart for the lib to change them
because not having the cache makes the intent pointless
probably... but that would be weird
same reason why disabling certain intents in D.py will automatically disable certain caches
${data.position == 3 ? ":first_place:" ? data.position == 2 ? ":second_place" ? data.position == 2 ? "third_place"
wtf
ikr
It's my first time using the :? constructor. Okay? And I'm very bad at it lol.
Wait... I thought intents only limited the events you received
not the API endpoints you could use
can somebody help me to optimize my short description?
(data) => ((data.position == 3) ? ":first_place:" : ((data.position == 2) ? ":second_place:" : ((data.position == 1) ? ":third_place:" : `${data.position}. **${data.username}#${data.discriminator}** - Level ${data.level}`)))
hopefully I'm not missing a ) 
Wow, thanks!
I enabled the messages cache and STILL my bot can't send messages
There we go... changed it.
It's from the channel cache
happens if you type things in Discord rather than in your IDE
You cannot send messages when you have the channels cache disabled
wtf
To send a message you only need a channel_id, and you get it from the message event
That's exactly what I said 
oh I misread it
shame on u
I guess I'll cache channels until Erwin comes here
yes
both of them
discordjs && javascript === true
hazza
short statements are not complicated
// these are the same
a ? "a true" : "a false";
(a) ? "a true" : "a false";
((a) ? "a true" : "a false");
a ? "a true" : b ? "b true" : "b false";
(a) ? "a true" : (b) ? "b true" : "b false";
((a) ? "a true" : ((b) ? "b true" : "b false"));
one note for the last example
if(a) "a true" else if(b) "b true"
const Leader = Leaderboard.map((data) => ((data.position == 3) ? ":first_place:" : ((data.position == 2) ? ":second_place:" : ((data.position == 1) ? ":third_place:" : `**${data.username}#${data.discriminator}** - Level ${data.level}`))
``` I tried fixing this but it didn't work lol. ) expected.
there's no else for a possible with short statements
oh
Told you I'm missing ) and updated my message
Oh! Thanks again.
Oh I see I made a mistake... you wanna display these icons infront of the position, right?
Don't worry, I fixed it up to my liking :)
good point, ig its gonna raise as you scale the bot
Once again, thanks for the help!
(data) => ((data.position == 3) ? ":first_place: " : ((data.position == 2) ? ":second_place: " : ((data.position == 1) ? ":third_place: " : "${data.position}. "))) + `**${data.username}#${data.discriminator}** - Level ${data.level}`
just for the context
How does this look?
Nice
Oh... icons instead of the position. God damn... I should read more carefully.
i think it looks good
mhm
It's fine lol. I didn't want to be spoonfeed.
yeah, alright
Which language is this can you tell me pls
JavaScript.
The code on it's own won't work.
Ok thx
Thanks!
I am developer in python and json

Nope. Lemme show you my code...
rip me
const Leader = Leaderboard.map((data) => ((data.position == 3) ? `:third_place: **${data.username}#${data.discriminator}** - Level ${data.level}` : ((data.position == 2) ? `:second_place: **${data.username}#${data.discriminator}** - Level ${data.level}` : ((data.position == 1) ? `:first_place: **${data.username}#${data.discriminator}** - Level ${data.level}` : `${data.position}. **${data.username}#${data.discriminator}** - Level ${data.level}`))))
const LeaderboardEmbed = new Discord.MessageEmbed()
.setTitle(`${message.guild.name}'s Level Leaderboard`)
.setDescription(Leader.join("\n"))
.setFooter(Bot.user.username, Bot.user.AvatarURL)
.setColor(Bot.Config.Embed.EmbedColor)
message.channel.send(LeaderboardEmbed)
Messy lol.

a
Why would you call yourself a JSON developer
Cuz I am
That's not a thing lol
Just take a look at my example. Adding the username, level part on any statement isn't needed.
lol
(not trying to crush your bubble)
JSON > *
You don't need to repeat it, just do `${position === 1 ? "emoji" : "position === 2 ? "emoji" : "number"} ${username}#${tag}`
It was since it didn't work when I tested.
lol
wut
Oh! Thanks.
It works! 
lol
I just looked up a whole lot of github repos & learned how it worked from there.
@livid lichen
const Leader = Leaderboard.map((data) => ((data.position == 3) ? ":first_place: " : ((data.position == 2) ? ":second_place: " : ((data.position == 1) ? ":third_place: " : "${data.position}. "))) + `**${data.username}#${data.discriminator}** - Level ${data.level}`);
lol
((()))))())) AHHH JUST REMOVE THEM
NO!
((()))()()()))((()))(()))()))(()))
That's called style
although if you're using a linter it might error
(() => (0))()
(()({{)()))}(}())[)(())(]))](])()({{)())}}}))))(((()))){))))({)}
They're keeping a better overview
ow
-_-
Yeah, just for you to understand and see, like I explained above
They're not needed
e
But it creates a better look and overview in my opinion.
Imagine 20 short statements in one line... horrible to find the one you're looking for
my guy just use an array and grab each emote by its index
idk why so many people use an if statement for something as easy as that
doesn't make a different but one line more creating the array
Leaderboard.map(data => `${[":first_place:", ":second_place:", ":third_place:"][data.position - 1] ?? data.position} **${data.username}#${data.discriminator}** - Level ${data.level}`)```😳
ew
I'm missing a minimum of 10 ( and )
lol
Wait... you an do that?? 
Run a benchmark and see which one is faster, I guess mine is
let emotes = [":first_place:", ":second_place:", ":third_place:"];
const leader = Leaderboard.map((data) =>`${emotes[data.position-1]} **${data.username}#${data.discriminator}** - Level ${data.level} `);
my dude I was doing the ssme
why would u do that
Am I this stupid.
it's called indexing things from an array
I saw a dude on tiktok do the same, but it was wayy bigger, like 40 lines of pure if else if else if, I told them to use an array and do this, they said it was "the same"
had to be fucking new to this
tho I'd store the emotes in a separate variable rather than just declaring it there
for readability purposes
micro-optimization mostly
that's called YanCoding
Hey does anyone know how can i do
SomeClassThatExtendsEventEmitter.on("")
And it shows list of events when typing in between the double quotes?
or typings
@copper cradle Uh oh
oh yeah, typings
show your code
that's why you don't divide by zero
you forgot to give position as fallback to emote
const Leader = Leaderboard.map(data => `${Emotes[data.position - 1]} **${data.username}#${data.discriminator}** - Level ${data.level}`)
const LeaderboardEmbed = new Discord.MessageEmbed()
.setTitle(`${message.guild.name}'s Level Leaderboard`)
.setDescription(Leader.join("\n"))
.setFooter(Bot.user.username, Bot.user.AvatarURL)
.setColor(Bot.Config.Embed.EmbedColor)
message.channel.send(LeaderboardEmbed)
don't just copy paste
3 worked
if you're using below node 14 use ||
btw, use proper naming conventions
Snail just forgot to add the position if no item was found in the array
you're in js, camelCase for variables, PascalCase for classes
kebab-case for projects
const EMOTES = [":first_place:", ":second_place:", ":third_place:"]; 
|| data.position
SCREAM_SNAKE_CASE for constants
This should work. Correct?
TIAS
yes
muh dude
Here is what i have but it doesn't seem to work... Am i doing something wrong?
nope for this case ?? data.position
I'd use ?? but idk if your node version supports it
?? ISSET and IS NOT NULL
assdlskdi it doesn't matter since the value returns a non-empty string which is truthy
oh those old eslint requires...
idk
I've never donde it
just a stupid question, is there a way so the links wont be blue?
nop
is that in an embed?
yes
Any other ideas?
its a link tho
then you can't
Yes, replace the protocoll
if you make it white you can't click it anymore
what?
just don't use [this](link)
Remove <a href="">.
god damn... REMOVE the protocol (HTTP(S))
Its in discord...
hmm
will still work for inline links
Then remove the hyper link.
And add default text.
OH
You mean-
huh nope, lemme test
Ooooh
without having links clickable
no way then
just make it text
Nope doesn't work for inlines
how can I add a on_raw_reaction_add(payload) event in a command ? ctx.payload.emoji doesn't work when waiting for a reaction
python btw
k
change var to let
of course it doesn't since the REGEX which is checking for URLs in messages N E E D S the protocol (HTTP(S))
if it wouldn't even this text would be marked.as.link.com but this not http://text.link.com.co
if it's not a link then what's the fucking point, the alt text will not show
because readFile is async
and what they want is the text to be white but still show the alt text
wut? [...] the last form?
readFile takes a callback
that's not the point
if the link is not recognized as an url then the alt text will not be shown
if you want async readFile require "fs/promises"
reading comprehension -101
you're missing the point of "readFile is async"
you cannot return
because the result will be defined AFTER you return the value
wtf are you talking?
in read, the normal flux
in blue, what will be executed independently of the red state
console.log(result) to test?
oh
damn fake's discrim is 0037, now that's luck
result ne to be what?
await readFile
damn
you can't do that if you don't require("fs/promises")
yes
there's anything special with it, I'm not aware of?
mine is 7337
everyone's discrim is randomized, and most people get 4 non 0 digits
one digit off from 1337
I get the same error @earnest phoenix, you need a callback
hmm that's just because the Discord account was created a few days after Discord got published... probably just 36 in front of me 
Look mine
alternatively, just get used to es6 style programming and use Promise based functions
meh
I almost got 5555
there are more than 250 million users, wouldn't fit in 4 digits lol
gg
my old discrim was 7904
How to add a footer here is my code. Tell me where to put it ```js
const Client = require('../structures/Client');
const { Messege, ReactionUserManager } = require('discord.js');
module.exports = {
name: help,
/**
* @param {Client} client
* @param {Message} message
* @param {String[]} args
*/
run: async(client, message, args) => {
const msg = await message.channel.send(`Getting Commands`);
await msg.edit(client.embed({
color: 3447003,
title: `Commands`,
fields: [{
name: "Fun",
value: "ping"
},
{
name: "Discord Server",
value: "Check out the discord server [here](discord.com)"
},
],
timestamp: new Date(),
setFooter: {
icon_url: client.user.avatarURL(),
text: "© Universal"
}
}, message));
await msg.edit("");
}
}
afaik, only the combination on name + discrim must be unique
like
it's not setFooter, it's footer
@sour flame it's footer
of cause it does, since the digit in randomized by the NAME at the creation time
if only one of either is equal it doesn't matter
not really
replace setFooter by footer
had thats before but still not getting text
that's why ids exist, you know
yeah I think so, too
yeah
what cant be is having both username and discrim equal to someone else
both
it may has changed over time but aye name and discrim were unique afaik, at least at the beginning
try changing icon_url to iconURL
If it still doesn't work, look that https://discordjs.guide/popular-topics/embeds.html#embed-preview
Discord uses usernames to identify its users. However, instead of a username becoming unavailable after just 1 person uses it, Discord allows 9999 people to share the same username. It does this by using the combination of a name (unicode string) and a discriminator (4 digits) as a Discord tag.
What working
He's right.

They are unique. You cannot have the same name and discrim under any circumstances. People with DB access could change, but that would break friend request sending. If you update your name and your current discrim matches someone else's with the name you're changing to, your discrim will change
imagine rotating discrims by finding someone with the same discrim but different username

use russian characters while you're at it too
Idk why i get 1337, i changed my tag to #1337 and when my nitro expired i still have the tag
at least you and I was right, what a triumph 
you get to keep it for three days
how long has it been
more than that?
1 month
🤔
I think sometime discord doesn't reset your #
your discrim might be leet, but mine is teet
I saw a lot of people with 0001 # and without nitro
If your old discrim is used by someone else, you keep your nitro discrim
Oh
but discord randomizes it after your nitro expires, no?
It reverts back to what it was before
and a changeable tag
and more stickers
stickers? god damn... that's worth to send some money to Discord.... hahaha 
From what I've observed on multiple occasions, no one has had theirs randomized post fact. Just reverted
I see
I just published my first bot! I'm excited and nervous and worried
Good luck.
ty
maybe not up to date... like the docs (sometimes)
I changed my name to Draco and I looked up Draco#3211 (My old discrim) and yes someone pops up
trol
Then you'll most likely keep 9999 if your nitro runs out given the other Draco doesn't change their discrim or their account gets disabled/banned
here's a fun thing to try
all the discussion just because he wondered about my tag, lmao
find 9998 people who have nitro about to expire
have all of them and you choose a discrim then change the username to the same thing
won't discord randomize the discrim? will everyone get yeeted?
shhh, it's forbidden to talk about tags right now
Depends on when their nitro expires
if it's exactly the same time, database chaos may ensue
even if it's in different times
Also, there's an idea. Create a guild where only someone with a specific name is allowed
I'm sure there're a few thousand name-whitelist bots 

You can have infinite webhooks with the same name pretty sure
lol
can you provide in .replace() a array of string, which should be replaced?
then why did you make it a hyperlink