#development

1 messages · Page 1858 of 1

earnest phoenix
#

You just pick which one you wanna use

topaz sphinx
#

changing "name": "url" gives same error

earnest phoenix
#

please tell me you are actually putting your application ID where it says to put it in the url

topaz sphinx
#

dont worry i'm doing it

#

its the options

pale vessel
#

you options name is uppercase

topaz sphinx
#

so it doesnt want uppercase

pale vessel
#

it's \w-{1,32} lowercased

#

\w being a-z 0-9 and _

#
  • is also supported
topaz sphinx
#

ah

distant cobalt
#

Is there a doc on where how you can change one permission just one instead of changing the entire permission in a channel? (js)

quartz kindle
#

updateOverwrite

charred pumice
#

So in this server when you say the word "hacks" or "cheats" it automatically deletes the message, copies the content and creates a webhook with your name and profile picture and sends the same message with the word being replaced with "gaming chair" I was wondering where to even start with this type of system?

pale vessel
#

You'd need to use/create webhooks

#

They're fairly simple to work with

#

Look up on how to create or update webhooks in your library's documentation

hushed plank
#

dblbots @hushed plank

fast willow
#

Can I join my clash royal clan 😞😖💔💔💔😣😣😣😪

summer torrent
#

i don't know, can you?

fresh bluff
#

Hey Guys my server just got nuked does anyone know any Anti Nuke bots?

oak cliff
#

this is help with development not find a bot

#

search on the website.

oak cliff
#
try {
                    newMember.roles.remove(changedRole, ["User already has another role tree role- giving them a second would cause conflict."]);
                } catch (error) {
                    if (error.code === 50001 || error.code === 50013) {
                        console.log('Role too high or I cannot remove roles.');
                    } else {
                        console.log(error);
                    };
                };```

im testing my error handling
if the bot isnt higher than the role its trying to remove, i want it to fail silently (with a console.log)
but its crashing the whole bot lmao
(discord.js v13)
clear marlin
#

unhandled rejection?

#

and are you using a promise

oak cliff
#

it throws a new discordAPIerror "missing permissions"

#

which is what i thought i was handling with the error.code parts

clear marlin
#

well seems like it doesn't really catch the error

#

you could try to put a try catch around your command handler

oak cliff
#

this isnt in a command

#

its in an event

clear marlin
#

oh well, the same

#

could you send the error message

oak cliff
#
      throw new DiscordAPIError(data, res.status, request);
            ^

DiscordAPIError: Missing Permissions
    at RequestHandler.execute (C:\Users\17656\Desktop\unabotalpha\.yarn\cache\discord.js-npm-13.1.0-8440b31213-90f629be62.zip\node_modules\discord.js\src\rest\RequestHandler.js:298:13)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async RequestHandler.push (C:\Users\17656\Desktop\unabotalpha\.yarn\cache\discord.js-npm-13.1.0-8440b31213-90f629be62.zip\node_modules\discord.js\src\rest\RequestHandler.js:50:14)
    at async GuildMemberRoleManager.remove (C:\Users\17656\Desktop\unabotalpha\.yarn\cache\discord.js-npm-13.1.0-8440b31213-90f629be62.zip\node_modules\discord.js\src\managers\GuildMemberRoleManager.js:144:7) {
  method: 'delete',
  path: '/guilds/880582524554842162/members/214541243818967040/roles/880582524567441443',
  code: 50013,
  httpStatus: 403,
  requestData: { json: undefined, files: [] }
}```
clear marlin
#

@oak cliff okay so remove returns a promise

oak cliff
#

ah

#

i added an await and that fixed it

clear marlin
#

try this

newMember.roles.remove(changedRole, ["User already has another role tree role- giving them a second would cause conflict."]).then(member=> {}).catch(err=> }console.log(err)})
oak cliff
#

for some reason i thought i couldnt put an await in a try/catch

clear marlin
#

ah

#

👍

oak cliff
#

ty for your help

clear marlin
#

np

sterile thicket
#

my mongodb UserSchema is some like this: js { _id: String, a: Number, b: Number }

What I want to do is sort the db by (a+b) in descending order.

All I could figure out till now is how to use sorting on one field: js UserSchema.find().sort({a: -1, b: -1}).limit(10).then(a=>console.log(a))

Can anyone help me with it?

earnest phoenix
#

Is there a VPS that supports payment via crypto

pale vessel
#

Which crypto

daring coral
#

bro istg imma get a new hack for valorant

#

bro istg imma get a new hacks for valorant

#

bruh

earnest phoenix
#

can someone help

#

only message if you have enough time

pale vessel
#

Just ask here

earnest phoenix
#

But anything works

hollow depot
#

does anyone know how to use the latest version of node on an aws vps?

#

it only appears node 14

#

nevermind lol

nova basin
#

Can you help me please the bot does not respond to the command

const Discord = require('discord.js')

const { Snake }  = require("weky")

module.exports = {
  name: 'snek',
  aliases: ["snake"],
  category: "fun",
  execute(message, args, client) {
  const game = new Snake({
            message: message,
                  embed: {
                           title: 'Snake', 
                           color: message.guild.me.displayHexColor, 
                           gameOverTitle: "Game Over", 
                  },
                 emojis: {
                          empty: '⬛', 
                          snakeBody: '🐍', 
                          food: '🍕', 
                         //controls
                           up: '⬆️', 
                           right: '➡️',
                           down: '⬇️',
                           left: '⬅️'
                 }
                        })
        game.start()
    }
}    
near stratus
# nova basin

Snake is not a constructor (not a class)
Check if it's a function or something like that

sick fable
#

uhh

#
(node:32100) UnhandledPromiseRejectionWarning: ReferenceError: AbortController is not defined
    at RequestHandler.execute (C:\Users\HP\node_modules\discord.js\src\rest\RequestHandler.js:172:15)
    at RequestHandler.execute (C:\Users\HP\node_modules\discord.js\src\rest\RequestHandler.js:176:19)
    at RequestHandler.push (C:\Users\HP\node_modules\discord.js\src\rest\RequestHandler.js:50:25)
    at async WebSocketManager.connect (C:\Users\HP\node_modules\discord.js\src\client\websocket\WebSocketManager.js:128:9)
    at async Client.login (C:\Users\HP\node_modules\discord.js\src\client\Client.js:245:7)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:32100) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:32100) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.```
#

it shows this when i run my index.js file

#

index.js

const {Client, Intents} = require('discord.js');
const fs = require('fs');
const client = new Client({ intents: [Intents.FLAGS.GUILDS] });
const config = require('./config.json');
const path = require('path');
const token = config.discord_client.token;


client.on('ready', async () => {
    console.log('I\'m online!');

    const commandBase = require(`./Commands/command_base.js`);

    const readCommands = dir => {
        const files = fs.readdirSync(path.join(__dirname, dir));
        for(const file of files){
            const stat = fs.lstatSync(path.join(__dirname, file, dir))

            if(stat.isDirectory()){
                readCommands(path.join(__dirname, file));
            } else if(file !== commandBase){
                const option = require(path.join(__dirname, dir, file));
                console.log(file, option)
                commandBase(client, option);
            }
        }
    }

    readCommands('Commands');
});


client.login(`${token}`);
#

command_base.js:

vivid fulcrum
#

update your node version

sick fable
#

updated discord version too

#

i dont know why this aids is showing up

vivid fulcrum
#

are you sure you're running a newer node version though

vivid fulcrum
#

what does node -v output

sick fable
#

cause i did npm v node version

sick fable
vivid fulcrum
#

that's... weird, i'm even on an older version and it's here

#

tried uninstalling and reinstalling djs?

sick fable
quartz kindle
#

do console.log(process.version) from inside the code

sick fable
sick fable
#

@quartz kindle v14.16.0

#

this is what it shows when i dp

#

do*

quartz kindle
#

well that explains it

#

how are you running it?

sick fable
#

what?

#

i'm running it on vsc

#

Also go more specific

quartz kindle
#

using node index.js?

sick fable
#

node .

quartz kindle
#

and when you do node -v in vsc?

#

does it show v16?

sick fable
#

when i do: npm v node version, it shows 16.6.1

#

and when i do npm -v node, it shows 16

quartz kindle
#

do node -v

#

without npm

sick fable
#

14.16.0

quartz kindle
#

thats your problem

sick fable
#

so what should i do?

quartz kindle
#

you didnt update node

sick fable
#

i did it

quartz kindle
#

how did you try to update it?

sick fable
#

using npm

quartz kindle
#

thats not how you update node

#

node is not an npm package

sick fable
#

so how should i update?

quartz kindle
#

first get rid of the package you installed

#

npm uninstall node

#

then go to the node.js website and download the latest version

#

and install it

sick fable
#

aah alr

quartz kindle
#

the same way you install any windows program

atomic wolf
#

How to make a discord bot
Step 1: Find a good pc or hosting
Step 2: dont find a good pc or hosting
Step 3: Mental Problem

vivid fulcrum
eternal osprey
#

how do i fetch an embed by id so that i can later on delete it, v12 btw

quartz kindle
#

embeds have no ids

#

you mean the message?

eternal osprey
#

yeah.

quartz kindle
#

you can fetch a message by id using await channel.messages.fetch(id)

eternal osprey
#

can i do message.channel.messages.fetch(id)?

quartz kindle
#

yes

eternal osprey
#

thanks

atomic wolf
#

@vivid fulcrum i rember 😀

feral aspen
#

Yikes..

#

Kinda lost.

#

I have a string as the following.

#

"@feral aspen"

#

How can I get the user object from that?

quaint wasp
#

uhh-

#

how do u check perms for again in v12?

#

27.08 06:27:03 [Bot] Startup (node:83) UnhandledPromiseRejectionWarning: TypeError: message.member.hasPermissions is not a function

#

is what I get..

feral aspen
#

hasPermission

quaint wasp
#

yea

#

oh

#

no s

#

alr

#

and umm... how do u check for mentions?
I got...

message.members.mentions.first()```
and gives error
```27.08 06:30:22 [Bot] Startup (node:83) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'mentions' of undefined```
#

ping in replies

pale vessel
#

Read the docs

crimson vapor
pale vessel
#

It's message.mentions

quaint wasp
#

😐

pale vessel
#

🥴

quaint wasp
#

?!

quaint wasp
feral aspen
#

Yoo.

feral aspen
#

Should I create a regex as /\d/

#

Ah.. forgot the +

#

It's not working.. did I do something wrong.


const blindfoldRegex = /\d+/;
const blindfoldUser = args.match(blindfoldRegex);

let user = interaction.guild.members.cache.get(blindfoldUser);

console.log(user);
#

Should I add [0]?

#

It worked. 🎉

quaint wasp
#

uh.. I kinda did lots of stuff and tries..

the docs say to check if user is a bot, they did message.author.bot, but I have a mention..
I tryed this after mentionedMember: member, user, member.user, and then adding .bot at the end of it... non work, alwyas says cant udnerstand the property of undefined...

#
        const mentionedMember = message.mentions.users.first() || message.guild.members.cache.get(args[0])
        if(!mentionedMember) return message.channel.send('Your either did not specifie the member, or the member is not in the server!')
        if(mentionedMember.member.user.bot) return message.channel.send('You can do anything to bots...')```
#

pInG in replies.

tulip ledge
quaint wasp
#

oh, alr ill try 👍

tulip ledge
#

Also, if the user doesn't mention anyone and gives up an ID instead and the member isn't cached it will also give undefined

quaint wasp
#

o....

tulip ledge
#

You might wanna use fetch instead

#

although you will have to await it then

quaint wasp
#

so fetch an id?

#

message.guild.members.cache.fetch()?

tulip ledge
#

without the cache

quaint wasp
#

oh alr

tulip ledge
#

and change it to users so you get ...users.first() || ...users.fetch()

quaint wasp
#

uhh

#

cannot read the property of bot of undefined

#

I putted user there

tulip ledge
#

show code

quaint wasp
#

mentionedUser.user.bot

quartz kindle
#

user is already a user

tulip ledge
#

^^

quartz kindle
#

there us no user.user

quaint wasp
#
        if(mentionedMember.user.bot) return message.channel.send('You can\'t do anything to bots...')
tulip ledge
#

You're fetching a user

quaint wasp
#

oh so just mentionedMember.bot

tulip ledge
#

yes

#

And probably change the variable name to mentionedUser

#

as it might be confusing

quaint wasp
#

👍 true

#

so if I need to fetch id, I also just put mentionedUser.id, without the user since its already a user... right?

tulip ledge
#

yes

feral aspen
#

Hey.. did I do something wrong?

const duration = ms => {
    const sec = Math.floor((ms / 1000) % 60).toString();
    const min = Math.floor((ms / (1000 * 60)) % 60).toString();
    const hrs = Math.floor((ms / (1000 * 60 * 60)) % 60).toString();
    const day = Math.floor((ms / (1000 * 60 * 60 * 24)) % 60).toString();

    return `${day != 0 ? `**${day.padStart(1, '0')} days** ` : ""}${hrs != 0 ? `**${hrs.padStart(2, '0')} hours** ` : ""}${min != 0 ? `**${min.padStart(2, '0')} minutes** ` : ""}${sec != 0 ? `**${sec.padStart(1, '0')} seconds**` : "0 seconds"}!`;
};

I have never been so confused since it's returning 1 day 38 hours. 👀

tulip ledge
#

Because you have % 60

#

At const day

#

Doesn 't it have to be % 24 or am I being retarded

feral aspen
#

Wait.. its hrs % 24, I think.

tulip ledge
#

that could work

#

I just use momentjs 🤷

feral aspen
#

Wait.. uh.

quartz kindle
#

hrs should be % 24 yes

#

and day should have no %

feral aspen
#

👍

earnest phoenix
#

i found a way to upgrade your nodejs version on repl!

#

just run npx node@VERSION file.js instead of node file.js

#

It will take a longer time to run though

quartz kindle
#

does that download node on every single run or does it cache it for a while?

earnest phoenix
#

considering that npm != deno install, maybe it downloads on every run

quartz kindle
#

so the bash and nix methods should be better, but its good to have a 3rd option

earnest phoenix
#

The bash and nix methods would break once you reload your webpage

errant flax
quartz kindle
#

nah, they just redownload

#

same as the npx method

earnest phoenix
#

I'll add premium features to my bot then use (ads) to host my bot by buying a vps with bitcoin

quartz kindle
#

lmao

quartz kindle
earnest phoenix
#

It's actually a lot better than paypal

quartz kindle
#

it downloads a package and runs it directly, without installing

earnest phoenix
#

Because I don't need KYC

#

Cuz you're gonna verify for me :)

quartz kindle
#

wut

earnest phoenix
#

do my binance kyc KEKW

quartz kindle
#

i cant

#

i already have an account there

#

can i even kyc another account?

earnest phoenix
#

i dont know

#

ig ill stick with donations

quartz kindle
#

why cant you kyc tho

earnest phoenix
#

i dont need to use their api for donations so no kyc

earnest phoenix
quartz kindle
#

oh lel

earnest phoenix
#

well at least can you verify h bot on discord for me

#

not that it needs it

#

¯\_(ツ)_/¯

quartz kindle
#

lmao

#

ask your parents

errant flax
#

:isee:

boreal iron
#

You could redirect your donations to me

earnest phoenix
quartz kindle
tulip ledge
boreal iron
#

I’m gonna pay you after I promise

earnest phoenix
#

you have a binance pay merchant account?

boreal iron
#

Yeah after like idk many years

earnest phoenix
errant flax
earnest phoenix
errant flax
#

i should try this out :monkaHmm-2:

earnest phoenix
#

if you want v13 then try it

errant flax
#

theres already another way to have nodejs v16

#

tho its only 16.1.0

quartz kindle
#

there are 3 ways to get the latest node atm

#

in replit

errant flax
#

whats the other 2?

earnest phoenix
#

all break unless you force replit to do it

quartz kindle
#

nix and bash

#

they dont break lol

errant flax
#

whats with bash?

boreal iron
earnest phoenix
#

nixos is replit's own language right

quartz kindle
#

no

#

its an actual thing

earnest phoenix
quartz kindle
#

yes

#

nixos can hurt you

earnest phoenix
#

ok

errant flax
#

whats the latest version of node currently?

earnest phoenix
#

idk

quartz kindle
#

16.8

earnest phoenix
#

Is there any difference between 16.8 and 16.8.0

quartz kindle
#

no

earnest phoenix
#

ok

errant flax
#

wait is this downloading node from npm?

#

i didn't knew node existed in npm

earnest phoenix
#

Yes

#

It does

#

There are two packages

errant flax
#

lemme see whats its latest version rn

earnest phoenix
#

nodejs which has never been updated
and node which is always up to date

errant flax
#

ahh

split hazel
#

tfw npm updates itself and nodejs

errant flax
#

wait so whats the better method for getting the lates node

earnest phoenix
#

idk

errant flax
#

latest*

earnest phoenix
#

ditch replit?

tulip ledge
#

using npm i n n latest

quartz kindle
#

i think the cleanest way is the BASH method

split hazel
#

people like to use nvm

tulip ledge
#

oh in replit

earnest phoenix
errant flax
tulip ledge
#

nvm works on linux

errant flax
split hazel
#

or just n

#

these package names get more stupider each day

tulip ledge
#

if I do n it gives me all commands for n

errant flax
#

what does the node folder thing do?

#

is that important or..

quartz kindle
#

its where node is saved

#

if it doesnt exist, its automatically created and downloaded

#

if you change the node version in the sh file, it automatically deletes the old one and creates a new one

errant flax
#

ahhh

#

so the script basically save a specific node version?

quartz kindle
#

yes

#

you can customize it in the run.sh file

errant flax
#

incredible

earnest phoenix
#

tim is a god

#

change my mind

quartz kindle
#

nah im not god

#

just jesus

#

:^)

tulip ledge
#

I aspire to be as good as Tim one day

errant flax
#

whoa pog

#

ive installed 16.8 in replit

errant flax
quartz kindle
#

seriously tho, im a pretty average dev, there are tons of people out there who are actual gods

errant flax
#

itll just reinstall itself

quartz kindle
#

yes

boreal iron
errant flax
#

ill probably use this for my smol projects

rose warren
#

Tim do you have any experience with Laravel?

errant flax
#

now i wont need to rely on the npm package "node"

tulip ledge
quartz kindle
rose warren
#

I've just been looking into the best stack for a saas project I'm working on

#

And I'm familiar with PHP already

errant flax
#

if i want to add this to my repl ill just need to copy run.sh and .replit?

quartz kindle
tulip ledge
#

uhuh, smart

rose warren
#

Was thinking Laravel for backend and React for frontend but I've never used either KEKW

tulip ledge
#

react is fun

quartz kindle
#

@earnest phoenixLol

earnest phoenix
#

im just being a man of culture

quartz kindle
#

or do they have a front-end only mode

quartz kindle
#

and do npm init to create a package.json file

rose warren
#

I haven't looked too much into it but I've seen people using Laravel for backend and React / Vue.js for frontend

quartz kindle
errant flax
#

does the version of npm rlly matters to dependencies?

quartz kindle
#

no

#

it does matter if you install native addons tho

#

but you can just add them to your package.json and the script will auto install them

rose warren
#

It's all good. Just looking for people who might have used them to see what they thought or had any pain points

errant flax
#

wat does this mean

quartz kindle
#

nothing

#

its just recreating the package lock file

split hazel
#

how do you unlock the package lock

quartz kindle
#

you delete it lmao

split hazel
#

fair enough

worthy ivy
#

fair enough

earnest phoenix
#

fair enough

tulip ledge
#

fair enough

earnest phoenix
#

@boreal iron can you help me test binance pay?

#

||i broke the fair enough chain||

split hazel
#

fuck you

earnest phoenix
split hazel
#

i will vote you each time i see you in among us

earnest phoenix
#

i just got f ed by an ex mod

errant flax
tulip ledge
#

show code

errant flax
#
# node.js version to download
# examples:
# VERSION="v16.7.0"
VERSION="v16.8.0" 
# source to download from
# examples:
# MIRROR="https://nodejs.org/download/release"
# MIRROR="https://unofficial-builds.nodejs.org/download/release"
MIRROR="https://unofficial-builds.nodejs.org/download/release" 
# file to download (without extension, must be linux x64)
# examples:
# FILE="node-$VERSION-linux-x64"
# FILE="node-$VERSION-linux-x64-pointer-compression"
FILE="node-$VERSION-linux-x64-pointer-compression"  
##### Begin script
find -maxdepth 1 -type d -regex .*node-.*-linux-x64.* -not -regex .*${FILE} -exec rm -r {} \;
PATH=./$FILE/bin:${PATH}
if [ -d "./$FILE"then 	./${FILE}/bin/npm install     ./${FILE}/bin/node . 	if [ $? -eq 139 ] 	then  	rm -r ${FILE}  	echo "Environment changed"  	echo "Redownloading $FILE"  	wget -O- ${MIRROR}/${VERSION}/${FILE}.tar.xz | tar -xJf- --one-top-level=./  	./${FILE}/bin/npm install  	./${FILE}/bin/node . 	fi
else     echo "Downloading $FILE" 	wget -O- ${MIRROR}/${VERSION}/${FILE}.tar.xz | tar -xJf- --one-top-level=./ 	./${FILE}/bin/npm install 	./${FILE}/bin/node .
fi
#

oh replit is so shitty when pasting code in mobile

tulip ledge
#

./${FILE}/bin/npm install ./${FILE}/bin/node . fi

#

remove that fi

#

at the end

#

on line 21

errant flax
#

ah

#
# node.js version to download
# examples:
# VERSION="v16.7.0"
VERSION="v16.8.0" 
# source to download from
# examples:
# MIRROR="https://nodejs.org/download/release"
# MIRROR="https://unofficial-builds.nodejs.org/download/release"
MIRROR="https://unofficial-builds.nodejs.org/download/release" 
# file to download (without extension, must be linux x64)
# examples:
# FILE="node-$VERSION-linux-x64"
# FILE="node-$VERSION-linux-x64-pointer-compression"
FILE="node-$VERSION-linux-x64-pointer-compression"  
##### Begin script
find -maxdepth 1 -type d -regex .*node-.*-linux-x64.* -not -regex .*${FILE} -exec rm -r {} \;
PATH=./$FILE/bin:${PATH}
if [ -d "./$FILE"then 	./${FILE}/bin/npm install     ./${FILE}/bin/node . 	if [ $? -eq 139 ] 	then  	rm -r ${FILE}  	echo "Environment changed"  	echo "Redownloading $FILE"  	wget -O- ${MIRROR}/${VERSION}/${FILE}.tar.xz | tar -xJf- --one-top-level=./  	./${FILE}/bin/npm install  	./${FILE}/bin/node . 	fi
else     echo "Downloading $FILE" 	wget -O- ${MIRROR}/${VERSION}/${FILE}.tar.xz | tar -xJf- --one-top-level=./ 	./${FILE}/bin/npm install 	./${FILE}/bin/node .

unexpected end of file

tulip ledge
#

not that fi

#

this fi

#

at the end

errant flax
#

i cant see it im on mobile

tulip ledge
#

wdym?

#

this fi

#

wait no

#

I just realised

#

there's another if statement

#

it needs to be there

errant flax
#

?

tulip ledge
#

well I have no clue what was wrong with the original code then

errant flax
#

i think its the formatting??

tulip ledge
#

maybe

#

I'm not good with bash

errant flax
#

ehh ill download the file instead

#

and just import it to repl

split hazel
#

when you outsmart tim

quartz kindle
#

did you change the file?

#

show the changes

errant flax
#

the formatting is the prob?

#

i downloaded the file

#

then upload it to my repl

#

then it works monkaHmm

quartz kindle
#

weird

errant flax
#

is that a prob?

quartz kindle
#

the name of the file?

errant flax
#

ye
main.sh

#

instead of run

quartz kindle
#

did you update it in the .replit file?

errant flax
#

yep

quartz kindle
#

then its fine

errant flax
#

thats why it ran?

#

ig formatting do matters bonk

quartz kindle
#

ye

errant flax
#

ehh i kept the file in my phone so i can just upload it

#

@drowsy crag ^

#

also what would happen if i deleted the package.json file?

quartz kindle
#

it will complain that a package file is missing

errant flax
#

also what does package-lock.json do?

errant flax
quartz kindle
#

package-lock is used to check if everything is installed

errant flax
#

one more thing when theres a new version of node will it be able to download it with the script?

quartz kindle
#

yes

#

you can check the MIRROR urls

#

open them in your browser and you'll see the available versions

errant flax
#

the urls r always up to date right bonk

outer tulip
#

Hey everyone, where can i find info about editing and adding css to the bot page?

#

Is there a guide to it or somewhere i can find info

eternal osprey
#

how can i make sure that a role that is being created, only can see the verification channel.

#

and not any ot the other channels

#
if(!unverifiedrole){
    await  message.guild.roles.create({
      data: {
        name: 'unverified',
        color: 'RED',
      },
      reason: 'we needed a role for unverified peeps',
    })```
outer tulip
near stratus
outer tulip
#

Ah I see

#

Thank you thank you!

near stratus
#

np

quartz kindle
near stratus
#

It was from v12 so I'm not sure if it's the same in v13

boreal iron
#

You want to send cash to me? No problem. I accept any donations smirk

tulip ledge
#

I'll take some too if u have left over

boreal iron
#

Please don’t forget to add american cancer society as purpose of use

#

for reasons

tulip ledge
#

tax evasion? for no reason at all

boreal iron
#

Shh 🤫

earnest phoenix
#

@boreal iron nah i needed to test recieving payments through binance pay
someone already helped me do it but if you want im ready to accept donations

boreal iron
#

I don’t use binance pay.
Did I say something else anywhere?
Damn… can’t remember oldEyes

#

Just coded automated systems using the PayPal API or Klarna for donations or reoccurring payments.
That won’t help you I guess

earnest phoenix
#

Yeah

dusky light
#

Hey, I want to make a command, that is clearing (amount) of messages, that' contained a link.
How to do this?

earnest phoenix
dusky light
#

yeah, that's what I know, but idk how to start exactlly.

near stratus
dusky light
#

oh okay, I'll do it like that.

#
                                       ^
TypeError: Cannot read property 'fetchMessage' of undefined```
#

I'm getting this error, when I'm trying to fetch the message.

sudden geyser
#

the channel wasn't found

wheat mesa
#

.channels.cache.get() takes a channel ID

dusky light
#

ouh right.

#

Hm.. now it's saying that fetchMessages is not a function.

stable eagle
#

instead of fetchMessages use messages.fetch

dusky light
#

okay

oak pagoda
dusky light
#

okay, I've fetched the messages now, what's next?

near stratus
# dusky light okay, I've fetched the messages now, what's next?
const messages = //The message array
let urlPattern = /[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/g
let withLink = messages.filter(m => urlPattern.test(m.content))
if(!withLink.length){ return "Nothing" }
// Now delete every message that is in withLink
dusky light
#

Oh! Thanks. Lemme build it inside my code.

#

okay bruh, i'm to stupid to do it lmaooo

earnest phoenix
#

Why do people invite a bot and kick it immediately?

#

Because that’s happening to me so many times

vernal moth
#

Guys how do I make the bot update the slash command instead of adding duplicate slash commands when the bot boots up?

in case there are more languages supported maybe

await getApp().commands.post({
    data: {
        name: 'language',
        description: "Changes the language for your experience",
        options: [{
            name: "Language",
            description: "Pick the target language to switch",
            required: true,
            type: 3,
            choices: [
                {
                    "name": "English",
                    "value": "EN"
                }
            ]
        }]
    } 
})
earnest phoenix
#

They kick it as soon as they invite it. They probably don’t even try it out. How could it be a bad bot?

vernal moth
earnest phoenix
#

Oh ok

vernal moth
#

but they couldn't use it so they kick it

earnest phoenix
#

Ok

#

Thanks

vernal moth
#

that's one of the reasons tho

earnest phoenix
#

Ok

vernal moth
#

you are welcome

rancid moss
#

Hello guys
I wanted to know why my bot starts himself twice?
I have trouble shooted this problem for a while but didn't find anything

rancid moss
wheat mesa
#

The port is already in use, exactly what the error says

near stratus
wheat mesa
#

Are you starting your express server every time a command goes through or something?

rancid moss
wheat mesa
#

Kind of hard to understand what’s wrong without some code

rancid moss
wheat mesa
#

That’s not what I was saying

#

How are you starting your express server?

rancid moss
#

I mean, after the bot has fully loaded, the express server will laod at the end

wheat mesa
#

Are you perhaps doing it in an event?

rancid moss
#

load*

rancid moss
#

But I am saying, even if I remove the express server, it will look for another port

#

The problem isn't the port. It is the fact that he starts himself twice right after he loaded the first time.

#

But then again, it might be a glitch.

I have edited the package.json and package-lock.json regarding the names. Right after that the problem came.

#

Okay so, nevermind that. The reason for the problem was because My main bot is currently being hosted. But both my bots use the same dbl api key

balmy sluice
#

Can someone help me in this redeem script? I really want to know how to configure, but I don't know how to change or add the code

sudden geyser
#

so you don't know what it does?

balmy sluice
#

Yes, you enter a code and it redeems a premium or coins

#

but I want to configure to earn coins

sudden geyser
#

If you want the user to gain coins when redeeming, you'll just need to modify your database to have that new data. For example, if you stored an array of objects in your database and each object has a coins property that was an integer. You could increase that amount by whatever you want with a db.push (or whatever).

balmy sluice
#

ty

sour anchor
#

One question, is there a api to get application info of other bots like how topgg gets whether a bot application is private?

kinda curious as to how topgg gets this info since it isnt documented on the discord dev documentation

pale vessel
#

There isn't

#

Top.gg just uses the /users/:id endpoint for getting basic user info

#

Or through the authorized user's OAuth, I'm not entirely sure

quartz kindle
#

which info?

sterile thicket
#

I wanna do this: js a.map(userId => `name is ${client.users.fetch(userId).tag}`)
How should I do this?

pale vessel
#

fetch all the users first and then map them

#

you could use Promise.all to resolve all the user IDs into user

#

map the resolved promise which is an array of API users to their name

quartz kindle
#

use for loop with await, to prevent rate limits

grizzled raven
#

any way to override this?

cinder patio
#
declare module "discord.js" {

 export interface Base {
    client: WhateverYouWant
 }
}
simple stump
#

I'm trying to get an user based on their ID and then set their nickname. How would I do this?

sudden geyser
#

What library are you using

simple stump
#

discord.js v13

sudden geyser
#

<Guild>.members.fetch(...) to get the user by their ID. Returns a promise resolving into a GuildMember.
<GuildMember>.setNickname(...) to set the nickname. https://discord.js.org/#/docs/main/stable/class/GuildMember?scrollTo=setNickname

simple stump
#

ah alr. thx 👍

#

couldnt find it in the docs lol

quaint wasp
#

so uhh.. hey. I am looking for website hosting recommendations... I tried buy pebble hosts plan but...
Their panel was too confusing, wayy to hard to transfer from one account to onather, and was hard to edit code.
Digital ocean does not specifie spefic pricing... :/
Vultr same...

I need a simple one that has a simple plan like 5 G per month is like $3 and stuff, not the ones that depends on ur data and settings stuff...

quartz kindle
#

digital ocean is like $5 fixed, vultr is like $6

#

kamatera is $4, galaxygate is $3

boreal iron
#

Hetzner (EU) also starts by around 3€

#

Flexible and up- & downscalable

#

As well as nice KVM UI and pretty modern server administration tools

split hazel
#

they must be doing something sus over there

spark flint
#

If its static, use DigitalOcean which is free for static sites

quartz kindle
#

stay away from any EIG-owned company

#

i believe bluehost is owned by EIG

spark flint
#

ah ok

split hazel
#

what's an eig-

spark flint
#

trying to remember the site i used to use

spark flint
split hazel
#

how many companies do they own and why not lol

spark flint
#

Endurance International Group (EIG)

boreal iron
quartz kindle
#

they own like 100+ hosting companies

split hazel
#

sus

quartz kindle
#

basically they look for successful hosting companies

boreal iron
#

Ionos is just trash

quartz kindle
#

buy them out

#

fire everyone

#

replace all their administration systems with a cheaper alternative

#

hire cheap admins

#

profit

spark flint
split hazel
#

that's not a nice business

spark flint
#

its mostly slow

#

but if its static, its fast

boreal iron
#

Just collocation in other datacenters with a max bandwidth of only 400gbit//

#

Trash, trash, trash

#

Dump support also

spark flint
#

if its static, DigitalOcean all the way

#

https://garybot.xyz (shit website design im aware) is fast and is hosted on DigitalOcean for free

split hazel
#

by the way does anyone know a good way to solve hash table collisions

quartz kindle
#

linked lists or robin hood hashing

split hazel
#

increasing the size works but the thing is the index doesn't stay the same for existing elements which complicates things

#

ah actually

quartz kindle
#

resizing changes all indexes usually

split hazel
#

you'd just move it to the new index

#

lmao

quartz kindle
#

all have to be rehashed

split hazel
#

fair enough

quartz kindle
#

the easiest way to solve collisions is with linked lists

#

until you reach the resize threshold

#

you dont wanna resize on the first collision since it can happen any time

#

robin hood is more efficient, but more complicated to set up

#

linear probing is the fastest, but has very bad efficiency if the table is more than 75% occupied

#

robinhood can maintain performance up to 98% occupation

#

linked lists, aka separate chaining, have no occupation limits, they can do beyond 100% and still work, just they get slower the more collisions there are, and are also less memory efficient

boreal iron
split hazel
#

I'll probably go with robin hood, more work but worth it

quartz kindle
#

cool

split hazel
#

how does it work exactly i saw it just moves keys around but in what justification

quartz kindle
#

i have a half finished project that has a robin hood implementation in js

spark flint
quartz kindle
#

it moves them to reduce the travel time of the probe

boreal iron
#

And if you go on investigate you will find out lots of IP ranged are blacklisted by spamassasin and similar service providers DigitalOcran owned

#

Damn auto correct

quartz kindle
#

by moving the keys around, it kinda averages the probing times and makes them all more consistent

spark flint
quartz kindle
#

they also serve as an identifier to see when the probe should stop for example

spark flint
split hazel
#

probing is how many times it has to manually search for the key right

quartz kindle
#

ye

#

you get the hash index, then test each key linearly

#

and at the same time keep a counter of how many keys were tested

#

and store the counter together with the key

boreal iron
spark flint
#

MVPS is also good, use them for my VPN

lyric mountain
#

quite good

boreal iron
#

Dunno that name tbh

spark flint
lyric mountain
#

contabo used to have cpu steal issues, but didn't have it again since they reworked the service

quartz kindle
#

contabo is stupid cheap for what they offer, its not even funny

spark flint
#

£5.13 a month for 8gb ram, 4vcores and an ssd with 200gb storage/nvme ssd 50gb

quartz kindle
#

and nobody knows how or why

boreal iron
#

Hmm 10000 server… a very small player

spark flint
#

They own their own datacenters

split hazel
#

alright I see nice

spark flint
#

hmm they also do web hosting

#

$4.24/£3.08 a month

lyric mountain
quartz kindle
#

sus

boreal iron
#

I would be more worried about the available peerings and connections in terms of outtake

lyric mountain
#

nobody knows how or why, he just do

#

like gravity sort

quartz kindle
#

i'd totally move all my shit to contabo but im afraid of having everything in the same place, and then if something happens to it im screwed

steep condor
#

what is rest api?

lyric mountain
#

a normal api

spark flint
#

well for now, DigitalOcean is fine as I already launched the bot 3 days ago. But bearing in mind the bot joined 50 servers a today alone, I might look into a better value and resource VPS.

quartz kindle
#

representational state transfer application programming interface @steep condor

split hazel
#

I'd imagine with robin hood it's more costly to insert in a nearly full list than it is to fetch a key from it

spark flint
#

does anyone know how i can get data from a html form and use it in the submit button?

quartz kindle
spark flint
#

i'm making a simple bot lookup and i have a working page which which gets a bots info

#

replace 866364881917837312 with another bot id, it only shows a valid bots id

#

not a user id

lyric mountain
#

that's...a botlist

quartz kindle
#

well yeah, on insert you have to move the existing item forward if its probe count is lower than the inserted item's

spark flint
#

(i know they are the same, i just made it check if user is a bot

spark flint
#

so the owner doesn't have to sign up etc, it just displays a basic page

lyric mountain
#

dot dot dot

spark flint
#

it shows the bots me and my friend work on

lyric mountain
#

ah so it's a portfolio

spark flint
#

i'm just experimenting with python Quart and the Discord API

spark flint
split hazel
#

is there a specific algorithm to probing or can it literally be anything including iterating from start to finish

spark flint
#

which also gives the option to let anyone look up any bot

#

and even if they haven't setup a bot description etc, it will give a basic page with an invite link etc for the bot

quartz kindle
spark flint
#

i'm doing python and Flask/Quart in school so I'm expanding my knowledge using API's etc further 🙂

boreal iron
#

Nooo where tf did my messages go

#

Reeeeee

#

God fucking 3rd 5th world country

quartz kindle
split hazel
#

yeah I get it now after I saw a diagram lol

boreal iron
#

How can the discord client drop messages if I’m offline for 2 minutes

quartz kindle
#

basically the probes act as a range limit to all linear searches

#

so the actual search is usually very short

quartz kindle
#

that one's awesome

split hazel
#

if you reach the end of a list would you start from index 0 or go from the left hand side of the element

#

yes

boreal iron
quartz kindle
#

btw is there any free solution for a backup dns thing?

#

like you have your dns pointing to an ip address, is there a way to give it a backup ip address if the first one goes down?

boreal iron
#

Hmm what do mean?

split hazel
#

and this thing can work until 100% capacity right

quartz kindle
#

i know there are services that provide this, but they are usually paid

boreal iron
#

Yes failover IP or using the DNS weight

quartz kindle
boreal iron
#

Weight and priorities

quartz kindle
#

then you need to resize+rehash

quartz kindle
split hazel
#

but in a sense if you ignored performance it would work to 100% right

boreal iron
#

Automated failover initiated via monitoring

split hazel
#

since an element could still find an empty spot

quartz kindle
split hazel
#

lmao

quartz kindle
#

with linear and robinhood there is a certain luck factor

boreal iron
#

My mail servers have different backup dns records
In cases one is down the record with the next lower weight will be contacted

quartz kindle
#

so most things are measured in best case/worst case/average case scenarios

#

if you get horrible hashes, you will get o(n) performance lul

split hazel
#

lol

quartz kindle
split hazel
#

one of those days where you get a bad list

quartz kindle
#

which hashing algo are you using?

split hazel
#

haven't figured out yet

#

I'd have to write it myself too lmao

#

any suggestions

quartz kindle
#

djb2 is decent and stupid simple, like 5 lines of code

#

fnv1a is also good, a bit slower than djb2 but better hashing quality

boreal iron
quartz kindle
split hazel
#

I was also thinking if the mean probing amount is quite high it should try and switch probing tactics to try reduce it

#

like going from index right, to left and right etc

quartz kindle
#

you can use organ pipe search

#

it requires keeping track of average probe lengths across the table tho

split hazel
#

organ pi-

quartz kindle
#

for example, if your average probe count is 5 across the board

#

instead of starting at the hash index, you start at hash index + 5 for example

#

then you search 1 up, 1 down, 2 up, 2 down, etc

split hazel
#

interesting

quartz kindle
boreal iron
quartz kindle
#

organ pipe is a third one

#

or i dont even know anymore which is which

#

ffs

split hazel
#

now I just need to figure out how to get the ascii code for a character

#

I'm going with fnv1a

sudden geyser
#

Do you guys write plain CSS or use a library/framework like Tailwind

quartz kindle
#

i think you can cast a char to an int, which is basically its ascii code

quartz kindle
#

well, i use LESS for nesting css but thats it

boreal iron
#

all records do

split hazel
#

that's easier than expected

#

I forget you can cast things like that

#

some languages wouldn't forgive you

quartz kindle
boreal iron
#

It just depends on your service if he’s capable of resending the request if your main IP is unavailable

#

Nope it requires two records, one record can only have one target

#

But multiple records with the same hostname are no problem

quartz kindle
#

ah

#

so i make multiple A records for the same host with different ips

#

but how to prioritize the first one for example

#

so that the second one is only used if the first one goes down

#

or does it do that by record order?

boreal iron
#

test.xyz IN A 50 10 1.1.1.1
test.xyz IN A 25 5 1.1.2.2

split hazel
#

yeah that works wonders

boreal iron
#

The order doesn’t matter but the records WEIGHT and PRIORITY

quartz kindle
boreal iron
#

lol I actually wrote A

#

And mx as well

#

My bad totally confused myself

#

SRV records and MX

#

Sry shouldn’t drive and write oldEyes

quartz kindle
#

stop driving 24/7 lmao

#

get some rest

boreal iron
#

Eww money money you know

quartz kindle
#

anyways, afaik SRV doesnt support websites/browsers

#

its mostly for non-web protocols

#

idk if it works with rest apis

boreal iron
#

Damn I’m doing this for so many years and was just spreading bullshit

#

It’s embarrassing sometimes

#

If it necessary needs to be an A(AAA) record you will have to work with a failover service as well as monitoring in order to automatically active the failover address

#

Doesn’t work with DNS in this case

#

Only if you have the ability to update the DNS record in case of of a outage

#

(assuming to use a damn slow TTL)

#

*small not slow

#

(assuming the DNS service has an API endpoint)

#

And my internet is gone again… great

#

Will my messages be send?!

#

Hello?

sudden geyser
#

it is here now

#

but it probably wasn't your dns

split hazel
#

lmao are you driving

#

a tech discussion would be my last course of action during driving

sudden geyser
#

proceeds to crash

boreal iron
#

Yeah and having no network every 2 minutes

quartz kindle
#

i found several paid tho

boreal iron
#

Those interesting discussions ALWAYS happen if I’m driving dunno why

#

Not if I’m at home, no no

#

And there we go again…

#

Fuck this country

#

🤦‍♂️

split hazel
#

lmao

boreal iron
#

I mean the failover IP of Hetzner costs just 1€ but you need to activate it yourself

#

Using your own monitoring system for example

#

The server administration panel supports API access to control your server as well as the network

boreal iron
quartz kindle
#

i mean, currently the scale is zero, and my api is not even finished, because i've been procrastinating and delaying it by working on less important projects for over a year lol

boreal iron
#

lmao

quartz kindle
#

but considering its something im planning to charge for in the future, then it should at least have decent uptime

#

not that any of my vps's ever had issues, but still... you never know

#

what if another datacenter fire happens lol

boreal iron
#

You’re technically not wrong tho but it might be to early to think about it

#

In your case the API just needs only a few or none adjustments if a backup system goes online

#

Depends if you run a database etc.

#

You can control the requests also using a load balancer

#

Not sure if they can check if the target is available before redirecting you

quartz kindle
#

yeah im probably overthinking rn

boreal iron
#

But will cost money as well

quartz kindle
#

database is another issue, since im planning on going with sqlite

#

so even if i have a failover ip, i wont have the same database access in the backup

boreal iron
#

Hmm I have moved to a centralized database on one of my servers

#

And a backup database within my home network

quartz kindle
#

yeah i dont want a remote database right now

boreal iron
#

But syncing is complicated

split hazel
#

remote db latency 🤮

boreal iron
quartz kindle
#

exactly lel

split hazel
#

that must be right next door then

quartz kindle
#

what if its hosted in a different vps, in a different company, in a different continent xD

boreal iron
#

As long as it’s the same provider or root server

split hazel
#

don't

#

I remember my rocket league ping to canada once

#

it was almost a second

boreal iron
#

I don’t see an issue running the database at the same provider

#

I mean another location (within the same country) is a good idea tho

split hazel
#

can you guarantee they won't relocate your server though to another area lmao

boreal iron
#

If your provider has a few

quartz kindle
#

if the provider is big enough to support multiple regions, they will let you select the region

boreal iron
split hazel
#

mostly the bigger providers

#

the smaller only let you select a general area of a country

#

maybe not even the area

boreal iron
#

I never again go to a small or collocation provider only, as I mentioned before

split hazel
#

but costs can get steep quick depending on the company

boreal iron
#

That’s why I rent my servers in Germany

#

At least by a German country

#

They aren’t located there only

#

Cheap and damn reliable the past 13-14y

quartz kindle
#

you're with hetzner rn?

boreal iron
#

Yes

#

Unfortunately not for the US DNS server

#

Buts that’s just a cheap VM too

quartz kindle
#

i heard they were ip blocked by discord's voice servers, not sure if thats still a thing

#

not that i use voice anyway

boreal iron
#

No clue tbh

#

I haven’t either

quartz kindle
#

i got a vps from kamatera, located in germany

#

not using it for anything atm

#

but im planning to put my api there soon

#

the specs are really good, specially disk i/o performance

#

$4 for 800-1000MB/s

boreal iron
#

Hmm the cloud servers are hosted on NvME storage only

quartz kindle
#

ye but they are severely performance limited usually

boreal iron
#

Yeah

quartz kindle
#

google compute engine gives me 30MB/s

#

on galaxygate i get 300-450MB/s

spark flint
quartz kindle
#

i asked someone to test in contabo and it was like 100MB/s there

spark flint
#

i only get 50mb/s max at home so i'm not going to be hosting my bot on my own server

quartz kindle
#

well a discord bot doesnt need disk performance

#

my api does because it reads a lot of files

split hazel
#

the bigger companies want you to pay extra or use a dedicated service for better performance in an aspect

spark flint
#

my ISP doesn't even offer static ip addresses thats how shit it is

quartz kindle
#

lmao

#

i mean, mine doesnt either

spark flint
#

to anyone in the UK: DO NOT USE EE

boreal iron
#

I mean if you can pay the price a dedicated server has a better performance in any case anyways

spark flint
quartz kindle
#

most isp's dont, unless you pay extra

split hazel
#

ipv4 ips are about to go extinct anyways

spark flint
#
  1. better reviews
  2. better service
  3. actual customer support?!?!
spark flint
quartz kindle
#

if they gone, 80% of the internet goes down with it

split hazel
#

just a little closer

#

actually a lot of devices/servers still don't support ipv6 lol

#

cloudflare provides a compatibility layer for them

spark flint
#

i only really understand ipv4

quartz kindle
#

same shit but bigger

spark flint
#

yup

boreal iron
#

Tested it real quick

spark flint
#

nice

quartz kindle
#

like my galaxygate

boreal iron
#

Not bad for ~ 6€

quartz kindle
#

let me run it on kamatera again

#

damn good for $4 usd

boreal iron
#

Nice

#

Yes

quartz kindle
#

cpu aint bad either (1 core)

#

better scores than galaxygate

spark flint
#

i'm getting 115mb/s on digitalocean

quartz kindle
boreal iron
#

Network bandwidth?

split hazel
#

funnily enough my disk can go faster at times

#

my pc

spark flint
#

using digitalocean

boreal iron
#

Huh what

split hazel
#

lmao

boreal iron
#

Is that a browser on your server?

split hazel
#

did you install a de on it

spark flint
#

i had to download a browser just for that 😢

spark flint
boreal iron
#

lmao

spark flint
#

the lightest one possible

split hazel
#

what distro

spark flint
#

most lightweight*

spark flint
#

not ubuntu desktop

boreal iron
#

Ok I mean I got one installed on my Win servers too

#

No shame

spark flint
#

fair enough

split hazel
#

pretty sure every person here has at least once installed a de onto a server

#

out of curiosity

spark flint
#

i only do it as I'm still learning lol

split hazel
#

you missing out tim

boreal iron
#

But a Linux server with graphical GUI is something I don’t see often

spark flint
#

i know fuck all about non graphical guis

split hazel
#

I only did it once to play around

#

not practical though

spark flint
#

i like it

quartz kindle
#

what do you use for remote access? vnc?

spark flint
#

as i can quickly edit/adjust code

spark flint
quartz kindle
#

ah

spark flint
#

remote desktop connection

quartz kindle
#

:^)

spark flint
#

fair enough

#

I would but i cba to do it like that lol

#

i like quickly adjusting using a gui

boreal iron
#

Would take like 10 hours

quartz kindle
#

i mean, for that i use vsc locally and upload later

boreal iron
#

Ah lol

red hollow
rose warren
boreal iron
#

I mean can be uploaded via curl too

quartz kindle
#

i did make discord bots 100% on nano for testing tho

#

like 50 lines

red hollow
#

good cheap host

quartz kindle
boreal iron
#

Or nftp etc

rose warren
#

Nano is fine if you're editing a line or two on a file but I'd never be able to put up with it long enough to make a 50 line bot facepalm

red hollow
spark flint
boreal iron
#

brb

spark flint
#

I use MVPS for my VPN hosting (£3.08 a month)

quartz kindle
boreal iron
#

Hmm pretty good tho

#

I mean lots of providers limit their servers to 100 mbit/s

#

Even for dedicated ones

spark flint
boreal iron
#

Or mostly claiming 1 gbit/s but only guarantee 200 Mbit/s max

spark flint
#

i was only trying to find best rated vps hosts

boreal iron
#

Err hello?

#

Oh there we go

quartz kindle
spark flint
#

yup

quartz kindle
spark flint
#

Whats IBM like?

#

OH

#

expensive

boreal iron
#

lmao that’s double the price my dedi costs

#

And less performance

#

A LOT less tho KEKW

spark flint
quartz kindle
#

all the big ones are stupidly expensive

#

google amazon ibm microsoft etc

#

except google compute engine f1-micro

#

which is free

#

:^)

boreal iron
#

The intel 9900ks around 70

quartz kindle
#

tfw amd is more expensive even though their cpus are cheaper

boreal iron
#

Because of the cores and other hardware

#

Using this for virtualization

#

Running proxmox

quartz kindle
#

ye but like, amd's cpus are usually cheaper than intel's, especially at higher ends, so techincally running amd is cheaper for hosting companies

#

but they are selling amd as "premium" and more expensive instead

boreal iron
#

The intel ones are older with lot of less hardware tho

quartz kindle
#

xd

boreal iron
#

Take a look at the NVME drives

quartz kindle
#

lmao

#

7.5tb nvme

#

in raid 0 or 1?

charred pumice
lyric mountain
#

attach as attachment then reference it using that

boreal iron
#

0

#

WHY does auto correct my 1 to a 0

quartz kindle
#

awesome

boreal iron
#

Wtf

quartz kindle
#

Lol

boreal iron
#

What’s wrong with iOS

#

Trash

#

Oh lol I see it didn’t I clicked the suggestion accidentally

#

lmao ^2

pale vessel
#

@quartz kindle Python discord lib when /s

boreal iron
#

Anyway the hardware specs are quite good

quartz kindle
pale vessel
#

Sadge

weary dune
#

hey is there a way to change an invite link after your bot has been verified on top.gg?

#

i've been trying to add the slash commands scope to my invite link but it doesnt seem to update

#

oh wait i didn't see the support channel

charred pumice
#
client.on('guildMemberAdd', async member => {
    let captcha = new Captcha();
    try {
        member.send(captcha.value)
       const embed1 = new MessageEmbed()
                            .setAuthor('Error Lounge', "https://cdn.discordapp.com/attachments/877308243083395113/879200325209313290/errorpic.png")
                            .setTitle("Anti-Flood Verification")
                            .setFooter("Error Lounge Verification | discord.gg/", "https://cdn.discordapp.com/attachments/877308243083395113/879200325209313290/errorpic.png")
                            .setImage(captcha.JPEGStream)
                            .setColor("12ACB2")
        const msg = await member.send(embed1, {
            /*files: [{
                attachment: captcha.JPEGStream,
                name: `captcha.jpeg`
            }]*/
        });
        try {
            const filter = m => {
                if(m.author.bot) return;
                if(m.author.id === member.id && m.content === captcha.value) return true;
                else {
                    m.channel.send('You entered the captcha incorrectly.');
                    return false;
                }
            };
            const response = await msg.channel.awaitMessages(filter, { max: 1, time: 20000, errors: ['time']});
            if(response) {
                await msg.channel.send('You have verified yourself!');
            }
        }
        catch(err) {
            console.log(err);
            await msg.channel.send('You did not solve the captcha correctly on time.');
            await member.kick();
        }
    }
    catch(err) {
        console.log(err);
    }
});``` is my entire code skeleton
charred pumice