#development
1 messages · Page 81 of 1
oracle's free VPS tier is okay for small (non-music) bots
And then Oracle comes out and terminates your account for reasons they don't even mention
been hosting my small bot on there for about a year now, had no issues
Just saying I haven't had any issues with those things
checks bank account to find $42,673 in charges from oracle

Better than forgetting to turn off an AWS EC2 instance

I moved off of the amazon free tier VPS because I was afraid of going over somehow and getting charged ten million dollars
lmao
contabo
is it possible to publish a message when in a news channel directly in the <NewsChannel>.send() ?
yes, if the bot has permission to talk there
how would I publish it?
msg.crosspost()
directly in the .send()
Yes, u can await message.send() and then crosspost this message
I mean
msg = await channel.send("Lmao")
await msg.crosspost()
This should work
If u don't use await then u can do this that way
channel.send("Lmao").then(msg => {
msg.crosspost()
})
don't fall into the .then pyramid of doom please
spare yourself the pain ahead of time
True
then is fine if u respect the structure
oh bet, like 90% of my functions use async/await
channel.send("stuff")
.then(m => smth)
.then(m => other thing)
.then(m => whatever)
instead of calling thens inside thens
you're assuming people aren't going to just throw a giant function inside of each .then
excessive use of await defeats the purpose of async
it still defeats the purpose of async
you defeat the purpose of async
Is there a way to obfuscate c# like just a small part of code
Eazfuscator.NET is industrial grade .NET obfuscator. It helps to protect intellectual property and other valuable assets.
You can just input the part of the code you want to obfuscate and it'll do so
How would i input it if it only works with drag and drop
I mean like input your code into a C# file and pass it to the program
It works with individual files
why do you want to do that anyways
Moding something
I don't see how obfuscation is relevant to that
if you're trying to secure something, obfuscation doesn't secure anything
...ok
what is obfuscation btw?
Obfuscation means to make something difficult to understand. Programming code is often obfuscated to protect intellectual property or trade secrets, and to prevent an attacker from reverse engineering a proprietary software program. - some site on google
basically, to keep your code private even when people "have" it
Hint hint: it doesn’t actually stop any prying eyes. Just discourages lazy people who don’t really care to try to deobfuscate it
SyntaxError: Named export 'cancelSync' not found.```
got this when using Chakra-ui
did you try searching the error on google?
What are you using ChakraUI with? NextJS? React?
And your code is?
there's no code, it's just the start page example
Read the getting started page a bit more carefully, you're most likely doing something wrong
It mentions a few things you need to do first
https://chakra-ui.com/getting-started/nextjs-guide pay attention to the first few parts
And also tell us the steps you've actually followed
the error (again sending)
SyntaxError: Named export 'cancelSync' not found. The requested module 'framesync' is a CommonJS module, which may not support all module.exports as named exports.
CommonJS modules can always be imported via the default export, for example using:
import pkg from 'framesync';
const { cancelSync, getFrameData } = pkg;```
I just read
And the code you're using is just the provider setup?
yes
Apparently the framesync library Chakra UI uses got a breaking change which no longer works with NextJS
Security via obscurity is the worst
anyone here to answer a noob question ?
does discord Interactions need message content intent to work ? , i do store USER ID from one of my commands
does the input the user put for the command considered a message content?
You don't need the intent to get input from commands
The intent is for listening for messages sent in a server
So if someone runs /msg text:hi you can get hi from it without the intent
Probably more of a #general question but it is sorta related to development since I'm asking how I should code something I guess.
https://scs.twilightgamez.net/gr9ct.png
If you were a user of a music bot, and you had these buttons (Probably at some point it will be proper buttons) how should users be able to interact with them?
Should only the song queue-er, admins, djs, server owners be allowed to use them (Besides stop since that closes the whole queue) or should I even restrict the other buttons to be owner, admin, and djs and even not let the queue-er have control?
I do currently have it set up that if the DJ role is set in the database then restrict all buttons besides ⭐ to owners, admins, and djs but I feel like haven't it not set could lead to people trolling if letting all users have free reign over the buttons otherwise. Thoughts?
just restrict it to the person who queued the song and people with admin perms is what I'd do
also have a DJ only mode
I do have a DJ only mode
if(needsDJ && !getUser.permissions.has("Administrator") && !role) return
but it does seem the queue-er is the safer way
A cool feature would be something like a "skip vote" button
I've considered it.
Most of this code is me going from prefix'd to slash
So I'm working out my already coded stuff then adding new
Like, the actual constant, smth like Permission.ADMINISTRATOR
Idk how it is for djs
But since it changes so much, it'd be worth to use some hardcoded constant like this
Ah, btw
Might be better to check for manage_channels perm instead of admin
Since admin is usually reserved to owner role in big servers
So it'd require an owner intervention to stop some troll
yeah that makes sense.
I'm sure there's a lot I'm doing probably in a bad way with my code. I'd like at some point have someone kinda gloss over it and potentially optimize it since It's not a lot. Maybe sometime in the future.
That's the right way of doing things
ye
Tho in my case it kinda forced me to rewrite my entire game framework 
oof
But that's cuz i allowed too much technical debt
At least mow it's much more optimized and stable, the boring part is just migrating all cards to the new interface
one by one
Well, gonna sleep now, cya miyu

do anyone have any idea what to fill in user_agent in praw reddit
just base your user agents off of other browser's user agents
Can someone tell me how I may disallow / commands of every bot from a text channel & allow them to use / commands of my bot in the same text channel?
There are integration settings in the server settings
bot = commands.Bot(command_prefix=".")
# enable all intents
intents = discord.Intents.all()
bot.intents = intents
Traceback (most recent call last): File "main.py", line 44, in <module> bot = commands.Bot(command_prefix=".") TypeError: __init__() missing 1 required keyword-only argument: 'intents'
I don't think you can assign all intents anymore
Assign them separately
I don't know, I don't write in python
I can give you an example in js but it won't be of much use to you
Very likely
nope
Try find latest docs of plugin what you use and should be described
so it is looks like the minimized version of some js library 
bot = commands.Bot(command_prefix = ".", intents = discord.Intents.all())
Or you can try in this way too
intents = discord.Intents.all()
bot = commands.Bot(command_prefix = ".", intents = intents )
honestly if you want obfuscation just run your program through something like google closure
Obfuscation is, honestly, stupid
Trying to hide your website source code is a sisyphean job, no matter how much u try u cannot fool the browser
And for any other project, just compile it down to a binary, assembly is obfuscated enough as-is
or just use golang (and some other language, that compile code to machine code)
01010101110101
Internet was shit so it takes like 30 seconds for my 2nd part to show
When I first decided to oss my bot, I thought about obfuscation, but decided it was too much of a hassle. The idea behind it was that since I was and still am a very small developer not utilizing get rich quicker techniques, people would be able to easily steal some of my bot's code and use it to grow quite well.
I think my bot's organization has quite a lot of good stuff that can just be utilized for a better ux
some of it is standalone though and is totally meant to be used by others
but for the first like 1k guilds, closed source
if you're going the oss route then obfuscation becomes a paradox, kinda
if you're really concerned about "innovative" or highly complex code that could be stolen simply use a license that disallows using it
if anyone uses it to get rich, you can legally sue them
thats what I did
wdym fool the browser
I agree, obfuscation, most of the time, is unnecessary, but don't get what the browser has to do with it
the browser needs to be able to render whatever the site is supposed to be
no matter what you do, the browser will always show the true, decoded content
meaning you also have access to 100% of said content
for example, let's say you want to protect your site's source code by putting it inside an iframe and requiring the browser to download fragments of the site from many different off-site sources
at the end of the day, whoever is seeing the site also gets access to everything the browser used to render it
obfuscation's purpose is to hide the meaning behind a program; not to hide its actions
if you have a bunch of munged names, you can try to reverse it, but it'll be very difficult to do so
not really, browsers auto-beautify the source-code when u open developer tools
yeah but that still won't reveal the actual meaning
all u need to do after that is refactor variable names (editors will change all references to that variable across the entire project)
for example?
have you seen what a munged js file looks like?
define "munged"
as in manipulated, such as renaming, collapsing, rewriting, etc.
most of the time you need a source map to get the proper look
nothing an auto-format + refactor doesn't solve
no matter how hard you try, the code is still 1:1 to the original source
please open any munged js file in inspect and show me if you can reason about it
give me an example
maybe use Buttons, it looks better :)
ah yes, give the worst possible example so it reinforces your point
open any js file and it looks like that on the web
damm this look like shit 
but it still has that \n thingy
don't know where you guys have been
it is not 1 line
and that's not even the worse
so give me that "any" js file
I'm not a pro in js, don't expect me to decode an enterprise-grade source code
okay how about this https://calva.io/assets/javascripts/bundle.af94fead.min.js
or even this, which I made yesterday https://kyleerhabor.com/assets/main/js/compiled/main.js
I think webpack can do the same thing
probably
lmao
can you imagine they don't split js and css
just combine it in html
and then minimize it
that's cheating
general point was that js files when distributed are usually munged in some way
what it'd take to find the code I'm looking for
which, atm, is no code at all
but really, browsers have built-in debuggers now, I just need to put a breakpoint and see where it takes me
after that it's just renaming variables and inlining functions
https://www.npmjs.com/package/webpack-unpack
someone is actually trying to unpack code
I don't need to see the original source code, I just need to find what I'm looking for (for example, a call to a private api)
that's how people usually crack into unsecured apis
yeah, some people just go to source code and search for key key word
that is first thing u do, when u wanna explore a website
if all else fails, "Network" tab
but I think they all hide API calls with their backend server
like the backend server being a middleman for the api and client
u can see who the middleman is and replicate the call
well then u are using your own credentials (your own account)
it is not exploit anymore :<
that's where "secured" comes in
yeah
Its in the to-do list.
I am trying to make a automatic extractor, are u guys aware of any program that finds if a certain path exists and then extract files
like a setup
just recursively look through an input directory and search for a specific string then pipe through something like gzip/gunzip
what modal type is this, with the whole being able to select multiple things at once
Select Menu
You can set min_values and max_values
If you set them correctly, you can allow users to select multiple options at once
im guessing max 5 options like everything else
Max 5 will let users select up to 5 options
but like how many options can i put in
Min 2 and max 5 will force users to select 2, but they can select up to 5
i don't see that in my library docs (the limit)
That's written in the documentation as well
ok imma double check
Minimum number of items that must be chosen (defaults to 1); min 0, max 25
Maximum number of items that can be chosen (defaults to 1); max 25
ah 25 thats perfect
thank you for your help, this will serve as a fancy upgrade for my selecting programming languages role system
nicee

how do I stop my discord bot from being rate limited?
Just dont send too many requests to api
You keep creating commands for some reason
You shouldn't hit the limit, so your code is likely doing something dubious
you should really only be creating commands manually(with a script), not all the time.
Well I don't think its because of the commands its because of my level and global chat I think because looking every time someone sends a message
Do you want to write that every time someone writes a message, you create a command in the bot?
Is there any way I could make cool down on the event if it's about to get rate limited
Because your bot got ratelimit on commands
well that's imposable I haven't used a command because I was creating a levelling system
Okay, how many times have you reset your bot today?
loads
Assuming that the bot creates commands on each reset
like restarting
Yea
ok so when I give the customer the bot this will not happen
that's fine than thank you for helping me 🙂
Should not. Just be careful how many times you reset your bot in the future, or disable command update and enable it only when you are 100% sure it will work
ok thankyou for helping me
You're welcome
And as for the rate limit on globalchat, you would have to look for similar bots on the internet and see how they did it
Personally, I can't imagine what it would look like if dozens of people suddenly started writing in a global chat

yeah well, I will see I don't think that many people will be using the bot so I think I should be good.
If the bot will only be on a few servers, it should be able to handle it as you have written it
I thought it might be a bot for more servers
I'm trying to make a command that will keep track of a teams point and also have a leaderboard. How can i do that with quick.db
Can't remember but does discord not like when a join-log of a bot joining a server is viewable to the public? Only if the log shows the name and the usercount? Is that a breach of privacy even for the little it shows?
thats like saying "im trying to build a shelf, how can i do that with a hammer and some wood?"
should be very straight forward, anytime points change, save it to the db
and for a leaderboard list the top points from the db
ik that but how would i structure the code to where it saves the points to the correct team
i dont know your code so no idea
what do the teams do? when do they have their points changed?
do you happen to know this answer Tim? Googling I'm not finding much.
never heard of anything like that
what do you mean by log join bot?
Nono
Sorry so like
but in a public channel
does discord consider this a "Breach of privacy" and would it deem it not ok to do
well it depends on the server rules
it could be seen as unwanted exposure by an incoming member
but you can add info about it in the server rules
Then with that answer alone it will be private. 😛
stating that by accepting the server rules they agree to have their joining known by other guild members
yeah
Sure why not.
But in the case they don't accept obviously it would still "Log" them
so it's kinda wrong no?
have not started i have no idea how to thats why im asking
so I've never used quickDB because I personally use mariadb but I do also have a similar currency system in my bot.
If a user gets money, I grab the current value, add the amount given to it, and update it via database queries.
With leaderboards, I grab all users who are stored in the DB from the guild and simply sort it by highest to lowest.
Since you haven't started, assuming you've never used quickDB, I'd try to follow tutorials and kinda play around with it. I think telling you exactly how to create a DB and use it / query stuff could fall under spoonfeeding
u mean by using mongoDB
I mean, no I use mariadb. I thought your questions were inregards to quickdb. 
it is just making sure cus u said just DB not quick.db
I didn't remember if it was quick.db or quickDB so I wrote it wrong. My bad 😛
u good
how do i mention multiple people in command
huh? <@id>
I got it to work
You can search github for open source bot projects that use your database and see how they did it
Then adjust it to your bot so that it does what you want
I've been working on a thing people can make plugins for, but every time the thing updates, you have to reinstall the plugins and their dependencies manually since they get overwritten by new package versions for new deps and version numbers and such. This was annoying so I made a cli to install plugins and their deps and then load them during runtime and after a clean install/upgrade, if you have the manifest, you can reinstall all of the plugins. Might break if you try to install plugins that are already installed, but eh
https://media.discordapp.net/attachments/1044874980799815720/1058249089860501514/image.png
Tried this shit out in production and it is op to deploy this to multiple nodes and only having to type 1 command to be back up and running
Traceback (most recent call last):
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/core.py", line 229, in wrapped
ret = await coro(*args, **kwargs)
File "main.py", line 33, in welcome
AttributeError: 'Member' object has no attribute 'avatar_url'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 1349, in invoke
await ctx.command.invoke(ctx)
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/core.py", line 1023, in invoke
await injected(*ctx.args, **ctx.kwargs) # type: ignore
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/core.py", line 238, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'Member' object has no attribute 'avatar_url'
async def welcome(ctx, member: discord.Member):
avatar_response = requests.get(member.avatar_url)
Well, cool errors
lol any solution ?

Is this a coding mistake or is there actually something as ;(() =>?
?
This is valid in almost every programming language that supports semicolons, because they're there to terminate expressions, which empty expressions are also completely valid
avatar not avatar_url, reference:
https://discordpy.readthedocs.io/en/stable/api.html#discord.Member.avatar
(() => {}) does actually exist
:trollface:
can i get suggestions for hosting services, i want to host a bot with only command for a single server so im not considering vps ( paid is fine too )
still a js moment
anyways, this defines an anonymous function, basically a function without a name
(() => {
console.log("Hello from anonymous function")
})();
I would write Heroku, but unfortunately it is not as free as it was until November
The second idea is repl.it but I've never used it although I've seen some people host projects there on github
The third idea and probably the best is to find something cheap in your country, such as vps with 512mb of ram, which should be enough for such a bot for one server
At the beginning, when I was programming the bot, I bought a 1gb of ram vps for ~$6 per month
Now I managed to find a 4gb ram vps for ~$8 but the new one has 2 cpu cores instead of 4
everything is a js moment
Ok
but why
?
why are empty expressions valid
What does it actually do with those empty expressions? Skip over them?
Empty expressions are common semantic grammar, since semicolons are just terminators they shouldn't be invalidated on empty expressions, and thus skipped over, what do you think is going on in a classic for loop statement? It has 3 clauses, expr; expr; expr, and expressions can be empty, so clauses like let i = 0; ; i++ are allowed
for(;;) is often used as a shorter while(true)
^
message.member.user.displayAvatarURL({
format: "png"
})
still it is coming in webp
is v14 change this?
Why message.member.user tho
Just use message.member
Your code doesn't even work for me
Ah, nvm
Typo
On v13 it works normally so I doubt they will change it in v14
This is the only change I found
no
I haven't used it either so I didn't even know it existed 
oracle is a scam
ig you can fk around with it, but not a good idea to use it in prod
they can just suspend ur service for no reason
I never believe in "free hosting". Like everyone has to get something out of it, no matter how big the company is
good mindset
just like the jokers quote:
"if you are good at something, never do it for free"
so if it is free then its gonna be shit
const client = require("../index.js");
const { Discord, MessageEmbed } = require("discord.js");
module.exports = {
name: "ban",
description:
"Mit dem Ban Kommando kannst du Leute aus deinem Server verbannen",
options: [
{
name: "member",
description: "Das Mitglied, was du verbannen möchtest",
required: true,
type: "USER",
},
{
name: "reason",
description: "Der Grund, warum du das Mitglied verbannen möchtest",
required: true,
type: "STRING",
},
{
name: "time",
description:
"Die Zeit, wie lange ein Mitglied verbannt werden soll (Beispiel: days)",
required: false,
type: "STRING",
},
],
run: async (client, interaction) => {
const member = interaction.options.getUser("member");
const reason = interaction.options.getString("reason");
var time = interaction.options.getString("time");
function shortmessage() {
var dmoff = new MessageEmbed()
.setTitle("Ban")
.setColor("black")
.setFields(
{ name: "Moderator", value: `${interaction.member}` },
{ name: "Member", value: `${member}` },
{ name: "Reason", value: `${reason}` },
{ name: "Time", value: `${time}` }
);
interaction.reply({ embeds: [dmoff] });
}
staffRole = "todo";
if (!interaction.member.roles.cache.has(staffRole) || !interaction.member.permissions.has("ADMINISTRATOR")) return interaction.reply({ content: "Du hast nicht die Berechtigung, um diesen Befehl zu nutzen!", ephemeral: true });
if (time == null) {
time = "Permanent";
var guild = interaction.guild;
try {
member.ban({ reason: reason })
.then(message())
} catch (error) {
try {
member.ban({ reason: reason })
.then(shortmessage())
} catch (error) {
console.error(error);
interaction.reply({ content: "Ich konnte das Mitglied nicht verbannen", ephemeral: true })
}
}
} else {
try {
member.ban({ days: time, reason: reason })
.then(message())
} catch (error) {
try {
member.ban({ days: time, reason: reason })
.then(shortmessage())
} catch (error) {
console.error(error);
interaction.reply({ content: "Ich konnte das Mitglied nicht verbannen", ephemeral: true })
}
function message () {
var embed = new MessageEmbed()
.setTitle("Ban")
.setColor("black")
.setFields(
{ name: "Moderator", value: `${interaction.member}` },
{ name: "Member", value: `${member}` },
{ name: "Reason", value: `${reason}` },
{ name: "Time", value: `${time}` }
);
interaction.reply({ embeds: [embed] });
var embed = new MessageEmbed()
.setTitle("Ban")
.setColor("black")
.setDescription(`You have been banned from ${interaction.guild.name}`)
.setFields(
{ name: "Moderator", value: `${interaction.member}` },
{ name: "Reason", value: `${reason}` },
{ name: "Time", value: `${time}` }
);
member.send({ embeds: [embed] });
}
}
}
}
can anyone help me with that ^
|
But with what exactly?
I have no clue I cant find it but it says
so I am thinking I have missed out one of these "}"
but I hve looked and I cant find one
I'm glad it worked
sorry one more thing how do you time a ban because this dosent work
Depends on what version of discord.js you're using
"discord.js": "^13.9.1",
The value of "days" takes a number, not a string
Most likely that's why it doesn't want to work
no but thats number of days to deleate a message
I am talking about like days to bad
U can do this on discord.js without database i guess
oh how do I do it
Most likely you would have to save the banned user's id in the database and the time they were banned for and after that time you would have to unban them. How you do it is up to you because there are dozens of databases that you can use as well as methods to count the time that has elapsed since a user was banned
I already have a database but I wouldn't know how to count it and unban them
For unban I would probably use guild.bans.remove() because there you unban the user based on his id
Same as with guild.bans.create() you can ban users by their id without needing them to be on your server (I think it might come in handy sometimes)
As for how you can unban a user after some time, without a database you can do something like this. I found this on stackoverflow and I have no idea if it works so let it be more of an "idea" than a working code that you paste into the command and it will work
i'd also use message.author
that returns the user object
this... is a bad idea
if your bot restarts in between that time, that will never run
and the member will stay banned forever
you need a database to do this reliably
Thats true
would suggest keeping a unban-timestamp along that database entry
then having a reliable task that goes through that database and unbans the expired ones
never use var
always let
Wild
what version is your discord.js
If for the API, yes: https://developers.google.com/youtube/v3/docs/search/list#safeSearch
Great. Thank you. Would you know how to do that with the python YDL library?
unfortunately no
Okay. Thank you anyway. I'll have a look through the source code. I can't find anything in the documentation.
Though I don't think youtube-dl (likely what ydl is based on) has any concept of safe searching
If the video is marked as age restricted, ytdl is not able to do anything with it afaik
since it requires a logged in account to access age restricted videos
export default function Home() {
type ModalList = "modal1" | "modal2" | false;
const [activeModal, setActiveModal] = useState<ModalList>(false);
const ref = useRef(null);
useClickAway(ref, () => {
setActiveModal(!open);
});
hello so i am working on some modals
the issue stands with ref since i can't figure out a way to use a different ref for all the different modals
the modal shows the same content all the time now
doesn't matter if it is modal1 or modal2
<div className={styles.card}>
<div className={styles.box}>
<div className={styles.content}>
<h2>01</h2>
<h3>leofile_0001</h3>
<>
<a onClick={(e) => setActiveModal("modal1")}>Demo Video</a>
<br />
</>
<a href="#">Download</a>
</div>
</div>
{activeModal && (
<div className={styles.modal_container}>
<div ref={ref} className={styles.modal}>
<iframe
width="800"
height="400"
frameBorder="0"
allowFullScreen
src="//www.youtube.com/embed/ccW_OYApEE"
></iframe>
</div>
</div>
)}{" "}
</div>
code of the modal
Yes, but my bot still got denied because one video was not marked as age-restricted but was technically NSFW.
do I need a webserver to get OAuth2 tokens from user authentication?
(never done oauth before)
yes
since succeeded oauth authorizations redirect per standard back to a website that collects the access token
but tbf that can be done with 000webhost or something that could just send the access tokens to your bot (or even cloudflare workers)
👍
I'm just going to use express for now for the sake of simplicity
I'll convert to something more efficient after I'm done with a local proof of concept
And I contacted the person who denied it, and they didn't say anything about this being a mistake.
That's odd, my bot didn't get denied for having a similar feature
Different review rules I suppose lol
how do i send this in embed
depending on what way you wanna show it:
embed description, just loop through the json array and append to a string
embed fields, just loop through the json array and add to the embed fields
im able to get the id but the value is returning object object
Do you want to just show for example { score: 3 } in the field value or description?
tryna to put the id and value e in embed description
for example
BatMan - 3
Becky - 3
Carl-Bot - 3
etc...
Then obj.value.score for the value
ok do i push it to the list?? for just do it all in the for loop
should I even bother doing "proper" encapsulation in ts anymore
starting to fuck with me
lmao this is pretty bad
You can use the https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map method to map the elements to whatever you want, and then join them using the https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join method
this is kind of a dumb question but I can't remember how I did it last time. Let's say I have a response that looks like so: json { "data": "some string", "something_else": 15 } But I want my ts interface to look like this: ```ts
interface ResponseData {
data: string;
somethingElse: number;
}
You can't, the property names must match
agh
Nothing like C# where you can make an annotation on the property and have whatever name you want?
interface Data {
[JsonProperty("property_name")]
public string Name { get; set; }
}
something similar to that?
Unfortunately TypeScript doesn't have such thing
Damn
Was worth a shot ig
Seems like a relatively common thing to want
time to pull request nodejs for this 
Well the thing is, there is a way to do this but it's not great, because this is not really common
Really not common?
Modeling responses whilst maintaining naming conventions seems like it would be pretty common to me
In most codebases we just use the names we're given, and our style policies don't apply to them
Here is a way you can achieve what you want in TypeScript:
function JsonProperty(name: string) {
return function DoJsonProperty(_: any, _1: string, descriptor: PropertyDescriptor) {
descriptor.get = function () {
return this[name];
};
descriptor.set = function (value) {
this[name] = value;
};
}
}
class Foo {
@JsonProperty("foo_bar")
get fooBar(): number { return 1; }
}
Ouch
Or you could check out
https://cloudmark.github.io/Json-Mapping/
One of the advantages of using TypeScript is that it augments ES6 with type information and annotations. When using JSON, data might not be represented using camelCase notation and hence one cannot simply typecast a JSON object directly onto a TypeScript “typed” object. Traditionally one would solve this problem by creating custom mappers for...
I'll just suffer
i got it to like this
Bro just map it to a string and join them
ok
foo
.map((bar) => `${bar.id} - ${bar.value.score}`)
.join('\n');

anyone know a good javascript api for vpn detection?
I must admit though from personal opinion, you shouldn't restrict users using vpns entirely
you could challenge them through a captcha if they're about to do actions that are crutial
same goes for blacklisting ips tbf, since IPs are often reassigned on ISPs, best is to have the blacklist expire at some point
it will worsen the user experience, but better than restricting users using VPNs entirely
I would not recommend helping this guy, he's making malicious programs for stealing user data
Is that the guy that was making a "virus" because "lul I'm cool kidz"?
Yep, it's him
Those domain names scream "sketchy" lul
Yeah
At some point I used to think this dude was doing some good by taking an interest in programming so early in life
But now I have lost any tiny ounce of respect I had
True
He has a bookmark info stealer
Should I do a funny and get the domain deleted
should be banned from any programming related server possible in my honest opinion. I do not like people who ask others for help with their illegal and unethical programs
Not to mention he clearly disguises the questions so you don't think about what he's doing
"It's for educational purposes only" 
Yeah he can't even pull that bs because he's directly advertising it for its malicious uses
💀💀💀
Steal
hows that even possible
a vuln in chromium or what
Not really no
You can read cookies etc. freely in the system's files and folders
yeah
Passwords as well
Nothing really new, pretty script kiddie though
how can I add those commands?
U need a command id
Like this
how can I get the command ids?
You should be able to do something like this
Right-click on the command description
Yea, its working
what if it is a sub command?
I tried and it doesn't work
I want to get the group command, like the group command of sub command id
but it don't allow me
You mean something like this?
yeah, but I figured it out
but still sad, that I can't get the whole command
like not /pingcord help
but only /pingcord
Is there invite link to this server ?
Yes, on the page
Here you have "discord"
I don't want to send the link itself because I have no idea how the automod for server links works here
But you can find link there
I want to convert audio to text and for that I use prism-media but I don't understand this error
This is most likely a problem with the package itself
I would advise you to look for something on their repository or somewhere closer to the package itself
Don’t check the domain 
Also yeah i agree
i don't want to agree or disagree, but i'm not bringing up tos related stuff here
that was for a different project
buying a new one soon i cba about doing it now
Still illegal but ok
Handy. Thank you for the information and to me for scrolling up to see this. 🙂
Thank Tim 
holy fuck
actual bytecode assembler for python
afaik this hasn't been done before
bytecode isn't a term specific to the jvm, its generally just a sequence of bytes that represent some logic
https://discord.gift/RJp83wHGTPdNCN5x - First one to claim gets it! 
you just gave a random kid with a sniper nitro
good job
Means I made someone happy 
im gonna be honest
Bytecode (also called portable code or p-code) is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references (normally numeric addresses) that encode the result of compiler parsing and performing semantic analysis of thing...
the dude who got it is probably sleeping rn
Ah by assembler u mean as in builder, not the machine language
But then what's the use of it? Like, can't u already write directly?
Thanks. Even though none of us probably got it, intentions matter and it should be appreciated that you sent this gift here and not on #general 
Did not think about Nitro snipers, my bad 
This server is infested with them
The second u send a gift they instantly grab it
Yeah, send one in a different server as well and it got sniped, I guess
if you wanna be a weakling, sure
real chads write python bytecode directly 🦾
anyways: functions
That's what I meant
should've worded that a bit better, i dont think there's another way to easily do this
sure, you can python3 -m compileall, but that's boring
U can write pyc files manually can't u?
would you rather write ```py
b'\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\xf3"\x00\x00\x00\x97\x00d\x00\x84\x00Z\x00\x02\x00e\x00d\x01\xa6\x01\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00d\x00S\x00)\x02\xe3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\xf3\x1a\x00\x00\x00\x97\x00\x02\x00e\x00|\x00\xa6\x01\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x00\x00d\x00S\x00)\x01N)\x01\xda\x05print)\x01\xda\x06an_args\x01\x00\x00\x00 \xfa\x05<asm>\xda\x00r\x07\x00\x00\x00\x00\x00\x00\x00\xf3\x00\x00\x00\x00r\x08\x00\x00\x00\xe9{\x00\x00\x00)\x01\xda\x03fnc\xa9\x00r\x08\x00\x00\x00r\x06\x00\x00\x00r\x07\x00\x00\x00r\x07\x00\x00\x00\x00\x00\x00\x00r\x08\x00\x00\x00r\x08\x00\x00\x00'
because that is the actual content of the equivalent .pyc file
Pyc is a big string?
pyc is binary
Then u can use hex editor to write it
_ _
you can do everything manually, you can write java .class files with a hex editor
why not write an entire elf binary manually with a hex editor
Java class isn't raw binary tho
?
Like, it has an actual language behind it
Not java, I mean the bytecode-level language
Idk how to explain, but it's the equivalent of asm
Except much more readable
this is what a .class looks like under the radar
similarly: pyc
both are bit jargon
have fun
Hm, nvm then
are you familiar with the asm library for java
this is like the asm for python
same exact purpose for different backend “languages”
what
The asm-equivalent for jvm is kinda java-like, but much more...raw ig
Jvm runs its own language, not asm
this is the python equivalent of said library
setInterval( async () => {
message.channel.sendTyping()
await d(1000)
message.channel.send(`hello world`).then(() => {
console.log(`message sent`)
})
}, 45 * 1000)
What's the use of 45 * 1000
In the end
Its like 45 seconds i guess
Because the time is in milliseconds
You have to multiply this time times 1000 to get seconds and 45 is the number of seconds
E.g
60 * 60 * 1000
Then you have one minute
It's basically for readability
It'll be computed to a constant anyway, so it doesn't matter performance-wise
Btw whatever ur doing, don't copy code from the internet
That snippet will spam a channel with messages every 46 seconds
Oooo thnx
But I was just asking for general knowledge
That's fine, just be careful
small correction: 60 * 1000 for 60 seconds aka one minute
what you have there is one hour
Ah right, my mistake
And yet you continue to ask for help on your TOS breaking projects.
Yeah
Specifically lgpd
Pretty sure that’s close to a felony charge if they were to be prosecuted for it
lmao
you don't know if it goes with that project + it's none of your business. i'm dropping the conversation since i don't want to be banned
Thank God 
the other project about the forced bsod was for a game i was making btw
I saw your reply to it when I was eating
that doesnt change its legality
i know, i didn't know it was considered illegal
I do not care if it goes to it or not. You are still making it and slapping your name all over it, and those who make programs like that and distribute them definitely deserve punishment
lmao can't wait for someone to sue for data loss
Generally anything that touches outside of program's own data requires strict user authorization
Ah alr
And...I don't think that if u told ur player that the game might crash their entire pc they'd accept it
true
That’s like robbing a store and then being like “oh I didn’t know that it was illegal”
lmao
Not gonna hold up in a criminal case
If u want to guarantee file integrity just use a hash check
As I said before
That's what big studios do
dw i didnt realise bookmark stealers that steal google tokens was illegal, my bad
Well, they also use drm, but anyway
Not to mention it’s very obviously unethical, not even considering legality
Having some real issues with this code.
Hastebin is a free web-based pastebin service for storing and sharing text and code snippets with anyone. Get started now.
Keep getting this response.
@boreal iron php
its something with the embed, because I can get it to send plain text messages.
They seems to be offline bro
Fake will love this
It was working, it is something with the damn embed.
What does the error say?
.
Ah, i have images disabled cuz mobile data
Didn't see it
Ok, that's an ugly error message
Invalid form body, I suppose u missed something like a bracket or quotation
you wouldn't believe what it was...
embeds is an object containing object...
so i should have put the embed in []
Ah, that
php is just... ugh...
Ain't php's fault, discord allows up to 10 embeds per message
U mistyped it
i did?
Probably, I imagine php has a different way of writing char literals
Since it looks like it didn't escape with \u
Check google to see how to write char literals in php
Mobile is almost running out, so gtg
got it all working, sorry they tagged you Fake. But its working. Thanks all
back from holidays
Well the issue is you will still need to add a whitespace to the unicode chars
\u200b not \u200b
" \u200b "
I noticed when I tried to add an empty field/value, too
whats the best approach for this? I want to make a very minimal coding language so users can code logic for requests but not get full control over my system, etc. I need to be able to parse it with javascript
uh yeah that's not as easy as you think
Im aware
you're going to need a lexer, parser, and interpreter
look up "regular expression grammar programming languages"
Basically the lexers job is to turn characters into tokens with more information, the parser then generates something called an abstract syntax tree (usually these are called recursive descent parsers or pratt parsers, they are different but produce the same result), and then the interpreter's job is to run through the AST (or some other intermediate representation, recursing down the AST is the slowest of all of these) and execute the "code"
The complexity of the project will depend on 1. How fast you need the language to be, and 2. How complex your language's syntax will be
well in the end I think the fastest way (in my case) would be to "compile" it to javascript
That's going to be even more difficult, and anything that can be transpiled to js can access things on your computer that you don't want it to access
Compilation is a different process (especially when you're compiling to an existing language)
But the lexer and parser steps are still the same
What do you think you want your language to look like?
If you don't need it to be very complex, then it wouldn't be too difficult to make this (unless you want it to be really fast)
something similar to bdfd since its pretty easy to understand
example:
$response.send['Not Allowed']
$endif```
or it could just be in javascript and deny saving when it doesnt use defined variables
I don't have experience with bdfd but if it's a relatively simple grammar then it shouldn't be incredibly difficult
The first steps to designing a language is to do the following
- Define your needs and goals for it
- Start writing a regular expressions grammar for describing the syntax
Making languages, even simple ones is indeed a fun yet complex task
Because they tend to rabbit hole the deeper you are into it
How can I effectively make a small database for blacklisting users?
tbf, I personally used a document-based database (NoSQL) because I cant be bothered to setup a whole mysql or mongodb database just for storing user ids
but essentially, just storing the user ids should be fine
just note that down on your privacy policy too though
also probably faster in gathering the ids, since checking blacklists might be done on every command executed
Sql would be equally as fast
Yeah, unless you have a sql setup done already (such as with economy etc), is it worth even setting up a fully fledged database for it?
thats true too yeah, though am mainly referring to setting up a whole db schema for just storing ids
To check you'd just run SELECT 'theid' FROM blacklist
Ah, sqlite doesn't have schemas
Tbh, it has almost nothing lul
Just the tables
doesnt sqlite have tables?
yeah
am referring to setting up a whole table for it
so such as a id, then the user id
unless you wanna store a blacklist timestamp along it
I do sound lazy saying that lmaoo
That'd be CREATE TABLE blacklist (uid PRIMARY KEY TEXT)
Ye, tho idk how much of a performance impact a text pk would be
But unless ur blacklisting hundreds of thousands of people it'd not matter much
To be very honest, I'd use a csv file for that if the numbers are small enough
Then make the bot load it on startup each time
eh, unless you're not adding ids during runtime
thought they were going towards the path of adding ids during runtime
but yeah if thats not the case, even a text file just having ids on each line loading on start should be good enough
Anyone know how to setup a mail server on an ubuntu vps?
to be brutally honest, you're better off using a mail service and using SMTP etc to send
I have tried it, its pain
its either failing the installation altogether, emails dont send because I screwed something up during config
did you even get DKIM DMARC etc working?
yes
how the fuck
Please teach me
by following docs 🗿
I did so too, never worked
send me docs
glad I do programming and not system setup
what mailserver did you try to setup?
no clue anymore, forgot while looking through multiple docs in frustration
might've stumbled upon different docs for different versions
because in my case I use mailcow which literally guides me every step to get everything working, dkim and shit it does for you like 80% of the work
what are your vpsses specs?
this is the first time I'm hearing about mailcow
yeah,I think its quite new
yeah seems to also note that ufw will cause issues and to disable it entirely, allowing docker-user to anything
which is an issue for me since my whole server consists of dockers for my apps
welp
you can Ignore the not supported warnings, you are fine with kvm
https://docs.mailcow.email/prerequisite/prerequisite-system/
and follow closely, especially if you never worked with docker
and personally I always setup mailcow on a seperate vps but in your case just expose it on other ports and disable ssl
yeah, you need to start using internal networks
yeah would need a night of setup
nop, you want 1 command?
could do that at some point, literally just using cloudflare emails to just redirect
so wait, since mailcow uses port 80 then I need to change the port my website listens on right?
no, you can change the web port of mailcow
just use proxy on nginx/apache2 if you still want something like mail.yoursite.com
ah ok
I think that doesnt actually work, I tried it before and mails werent sending
yeah proxy wont work with non http stuff of course
am mainly referring to the dashboard
yeah, that worked
I personally use another vps for mailcow though because else setting up and refreshing ssl is a hell
Yeah will probably do that too purely for the mail
this is also a cool feature which isnt exclusive in mailcow but automatically set up
ooooo monitoring
pog
wouldn't become useful for me though unless I do have multiple users on the mail and get a considerate amount of traffic
does it have any limitations?
such as needing a license for more email accounts?
@neon leaf does this look correct?
yes but you cant proxy mail, autoconfig and autodiscover except if you have cloudflare business
remove the proxy on the 2nd from the last
oh wait nvm
didnt see the a record, mistook it for the mx
what does your mailcow config look like?
just in case here is my open ports and my conf
It seems like it isn't even using the IP I am trying to target it to either
its using my main ip, and not the additional IP I bought
your setup requires you to include the port
Making an email server is brutal
for mails it doesnt matter, only for the web ui
there is a new reverse proxy guide
try if it works for you
my nginx config keeps failing the test
server {
listen 8080 default_server;
listen [::]:8080 default_server;
server_name mail autodiscover.* autoconfig.*;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name mail autodiscover.* autoconfig.*;
ssl_certificate /opt/mailcow-dockerized/data/assets/ssl/cert.pem;
ssl_certificate_key /opt/mailcow-dockerized/data/assets/ssl/key.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SLL:50m;
ssl_session_tickets off;
location /Microsoft-Server-ActiveSync {
proxy_pass http://127.0.0.1:8080/Microsft-Server-ActiveSync;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Frowarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $schema;
proxy_connect_timeout 75;
proxy_send_timeout 3650;
proxy_read_timeout 3650;
proxy_buffers 64 512k;
client_body_buffer_size 512k;
client_max_body_size 0;
}
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $schema;
client_max_body_size 0;
proxy_buffer_size 128k;
proxy_buffers 64 512k;
proxy_busy_buffers_size 512k;
}
}
Replace "mail" in server_name with "mail.iforgor.store"
And your SSL path is probably wrong
well but mailcow doesnt have your valid ssl certs behind a proxy
you need to provide the path to your valid ones
I don't have any myself, cloudflare handles that for me
use letsencrypt
basically move that nginx config away to somewhere so that nginx -t says ok
then install letsencrypt (certbot) sudo apt install -y certbot python3-certbot-nginx
and execute certbot certonly --nginx -d mail.horizon-rust.store
and change ssl section to
ssl_certificate_key /etc/letsencrypt/live/mail.horizon-rust.store/privkey.pem;```
Error while running nginx -c /etc/nginx/nginx.conf -t.
nginx: [emerg] unknown "schema" variable
nginx: configuration file /etc/nginx/nginx.conf test failed
This is what happens when I run certbot certonly --nginx -d mail.horizon-rust.store
change all occurences of $schema in the mailcow config to https
That worked but is this anything to worry about?
IMPORTANT NOTES:
- The following errors were reported by the server:
Domain: mail.horizon-rust.store
Type: unauthorized
Detail: 45.137.194.111: Invalid response from
http://mail.horizon-rust.store/.well-known/acme-challenge/lI96E38WUnc-Hx1bcvnAANHIEht_AmCSZC5A2lgLPlI:
"<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <meta
charset=\"utf-8\" />\n <meta name=\"viewport\"
content=\"width=device-width, in"
To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address.
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
Also, I am trying to make horizon-rust.store bind to the additional IP I have instead of my main ip so could this be causing issues?
did you move the mail config out temorarily as said?
here
if it still doesnt work with it removed youll have to do a dns challenge, will 100% work
certbot certonly --standalone -d *.horizon-rust.store
what?
also fyi @sharp geyser
make sure your host isnt blocking 25
I discovered mine does and apparently considers my account too new
ok then
nah worked pretty well for me
😔
just use cloudflare for your webserver
pain
and its very fucking vague with why
its pissing me off
Failed to start A high performance web server and a reverse proxy server.
that is all it gives me
you get a less vague message with
nginx -t
it says everything is ok
I already tried that
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Which is why this is so confusing
the only thing I could think of would be something blocking its port ig
check if port 25 is blocked by your host
hetzner is a cunt and does that
check with telnet gmail-smtp-in.l.google.com 25
what does systemctl status nginx give
its not the incoming one thats checked, its the outgoing one
but iirc thats on the firewall of the provider
thats new
sudo lsof -i -P -n | grep LISTEN
sudo netstat -tulpn | grep LISTEN
sudo ss -tulpn | grep LISTEN
sudo lsof -i:22 ## see a specific port such as 22 ##
sudo nmap -sTU -O IP-address-Here
should be mailcow when following reverse proxy docs
Yes
but
aren't I supposed to be doing it like this?
Following the docs this is what it told me to do
so why is it now giving me errors if I followed it exactly
what does your nginx config look like right now?
server{
listen 80;
listen [::]:80;
server_name aarondye.dev;
root /home/misty/Portfolio/dist;
index index.html;
client_max_body_size 100m;
client_body_timeout 120s;
location / {
try_files $uri /index.html;
}
}
server {
listen 8080 default_server;
listen [::]:8080 default_server;
server_name mail.horizon-rust.store autodiscover.* autoconfig.*;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name mail.horizon-rust.store autodiscover.* autoconfig.*;
ssl_certificate /opt/mailcow-dockerized/data/assets/ssl/cert.pem;
ssl_certificate_key /opt/mailcow-dockerized/data/assets/ssl/key.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SLL:50m;
ssl_session_tickets off;
location /Microsoft-Server-ActiveSync {
proxy_pass http://127.0.0.1:8080/Microsft-Server-ActiveSync;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Frowarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_connect_timeout 75;
proxy_send_timeout 3650;
proxy_read_timeout 3650;
proxy_buffers 64 512k;
client_body_buffer_size 512k;
client_max_body_size 0;
}
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
client_max_body_size 0;
proxy_buffer_size 128k;
proxy_buffers 64 512k;
proxy_busy_buffers_size 512k;
}
}
wanna vc while you suffer with your server misty
I got work in 20m but sure
Also I just realized, I shouldn't be binding it to 127.0.0.1 right? (mailcow conf)
I should be binding it to the ip I have my dns targeting right?
you should according to docs (127.x.x.x)
but that only allows it to work locally no?
I can't connect to the mailserver from my local machine with it like that can i?
But...I can't even do it
but your certificate is invalid
you need to use https and accept warnings
I see
try removing the default_server part from listen 80 default_server
how to do this
sould be this
that responds with this
Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA. You may need to use an authenticator plugin that can do challenges over DNS.
Unable to locate package python3-certbot-dns-standalone
did you forget the "e"?
nah
I just forgot to paste the entire thign
it left the e out
I copied what you put to use
so ye it cant find it
20.04.5
I suppose you should update to the next lts
I don't even know if contabo will let me
It will
Tho I'm also using that one
But they usually add the newer lts soon after they release
Well I gotta be at work so I will try later
ok
managed to set it up on my dockers
pog
just had issues with proxy reverse since I had my apache2 on a different container
@sharp geyser why not use cloudflare proxies?
am referring to mail.domain.com
the mailserver itself cant get proxied
mfw my ip is blacklisted on some literally 1999 site and wants 412 euros to be removed
Working on replit, and I got this error and it's not from my code
Well, it is from your code
You did not give the discord client any intents for it to use

But I did not activate intents
And the bot isn't on over 100 server
So it's disabled
You still need to specify intents
Being under 100 servers just means you don't need to verify your bot to get access to those intents
Mind sending the docs to intents?
https://discord.js.org/#/docs/discord.js/main/general/welcome scroll down a little bit on this page and you'll see an example
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
const request = require('request');
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
});
client.on('message', message => {
// Only respond to messages that start with "!chatgpt"
if (message.content.startsWith('!chatgpt')) {
// Get the message text without the command prefix
const prompt = message.content.slice('!chatgpt'.length);
// Send a request to the ChatGPT API
const options = {
method: 'POST',
url: 'https://api.openai.com/v1/chatbot',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${process.env.CHATGPT_API_KEY}`
},
body: JSON.stringify({
'prompt': prompt,
'model': 'chatbot'
})
};
request(options, function(error, response, body) {
if (error) throw new Error(error);
// Send the ChatGPT response back to the channel
const chatbotResponse = JSON.parse(body).response;
message.channel.send(chatbotResponse);
});
}
});
I tried this code to call openai api but it doesn't reply to the messages I send
Error logs are empty
Probably because you don't have message intent enabled in both your code and the discord dev portal
Enabled, nothing
There is no error
What will be the correct thing?
You need GatewayIntentBits.Messages or something like that
Hmm
God damn I added
intents: [
GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent, GatewayIntentBits.GuildMembers,
]```
And still nothing
Not even a err
can you show me exactly what you're doing?
I enabled all the intents on the discord dev application



@neon leaf
