#development

1 messages ยท Page 1765 of 1

quartz kindle
#

dumfuk

drifting wedge
#

๐Ÿ˜ฆ

#

dude yall are fukin python gods

quartz kindle
#

i dont know py

opal plank
#

me either

drifting wedge
#

and youre judging me

#

?!??

opal plank
quartz kindle
#

yes

opal plank
#

yes

drifting wedge
#

i rememebr when i joined this place..

#

good times

quartz kindle
#

an old client of mine would say "the problem is between the keyboard and the chair, isnt it?"

opal plank
#

the vast majority of d.js users dont know js either, dont worry

drifting wedge
#

i know js just not d.js

#

lol

#

making bots in js is poooooooo

quartz kindle
#

so is py

opal plank
#

^^

drifting wedge
#

fix my problems

            profanity_list = open(absolute_path).read().split('\n')```
opal plank
#

pay up

drifting wedge
#

๐Ÿช™

#

ok now fix my problem

#

pls

opal plank
pale vessel
#

no....

drifting wedge
#

HALP

#

erwin and tim are bullying me

#

๐Ÿ˜ญ

#

they dont wanna fix all my problems

woeful pike
#

did it not work

drifting wedge
#

no it did not

drifting wedge
woeful pike
#

is the absolute path correct?

drifting wedge
#

cogs/automod/words.txt?

#

this is the correct path

opal plank
#

print(aboslute_path)

woeful pike
#

is that the absolute path

drifting wedge
#

not sure its correct in syntax

#

no

#

its the relative path?

opal plank
#

the variable name is absolute path

woeful pike
#

classic top.gg members not doing in the bare minimum effort to solve their problems before asking for help

opal plank
#

implies that....?

pale vessel
#

can't you get the cwd?

opal plank
#

it should be....

#

a.....

#

cmon u can u do it exe

#

finish my sentence

drifting wedge
#

it should be absolute?

opal plank
drifting wedge
#

if i wanted to be absolute i wouldnt have this problem

#

like absolute is easy

opal plank
#

print absolute path

#

after its declaration

#

and see if the path matches

drifting wedge
#

'cogs\\automod\\words.txt'

#

it does not

opal plank
#

then you know where the issue is

quartz kindle
#

is your file structure like this?

bot
 cogs
   automod
     words.txt
 main.py
drifting wedge
#

YEAH

opal plank
#

absolute_path = Path('cogs/automod/words.txt').resolve()

drifting wedge
#

I NEED IT TO BE RELATIVE

#

thats what i have

opal plank
woeful pike
#

crying

opal plank
#

same

drifting wedge
#

bruh

opal plank
#

okay, let me put in a way even a baby would understand

drifting wedge
#

ok

#

that might work

opal plank
#

this is either the wrong relative path thats error'ing, or something else

#

if you print(abolsute_path) and it returns 'cogs\automod\words.txt'

drifting wedge
#

ok

opal plank
#

like i said, absolute path, as the name implies, should be A FRIDDING ABSOLUTE PATH

drifting wedge
#

yeah

#

i got that

#

so i dont want to use the absolute path

#

thats the thing

opal plank
#

the check why THIS isnt working absolute_path = Path('cogs/automod/words.txt').resolve()

quartz kindle
#

take a screenshot of your folders

drifting wedge
#

thats why i understood its relative

opal plank
#

doesnt py have __dirname or something?

drifting wedge
#

frick it ill do absolute

#

all good

#

its fine

opal plank
#

and then u move to linux or a host and ggwp

pale vessel
quartz kindle
#

did you try './cogs/automod/words.txt'

drifting wedge
#

lemme try...

#

i think i did

#

but im not 100%

#

yeah no worky

#

ill do absolute

#

thanks guys

woeful pike
#

os.path.join(__file__, "relative", "path") should probably also work but I don't do python so idk

drifting wedge
#

k

#

lemme try

#

thanks xet

pale vessel
opal plank
#

i dont appreciate it

pale vessel
#

idek better_lollipop

drifting wedge
#

path.join(__file__.replace("automod.py", ""), "words.txt")

#

this worked

#

tysm everyone

#

yall pog

woeful pike
opal plank
#

simp-pics

#

you've spiked my curiosity

drifting wedge
#

so path gets the relative path and turns it into absolute

#

good to know

woeful pike
#

yes

drifting wedge
#

TY SUSSY BAKA

woeful pike
#

won't check to see if it's a path that points to something that exists though

drifting wedge
#

IT WORKS

#

nah all god

#

POG

opal plank
#

yes, this is not the place to look for devs

#

no thanks

woeful pike
#

simp.pics is my old domain lol

#

actually that one is a test domain too idk what to even name it

opal plank
#

why so many

woeful pike
#

idk I just buy domains for fun

opal plank
#

sounds like fun tbh

opal plank
#

renewal the end of the month for $120 in domains

quartz kindle
#

so your "automod" folder is actually called "automod.py"?

#

no wonder why nothing worked

drifting wedge
#

omfg

#

im a dumbass

quartz kindle
#

i asked you to show a pic of your folders lel

drifting wedge
#

so can i use relative now, or do i still use this

#

BRO IM DUMB OKAY LEAVE ME ALLONNE

#

๐Ÿ˜ญ

vivid fulcrum
#

i need you to understand that relative paths turn into absolutes regardless

#

relative paths are just shorthands

quartz kindle
#

it doesnt matter whether its relative or absolute if the damn folder name is wrong

#

lmao

#

which would then turn the actual path into cogs/words.txt?

drifting wedge
#

cogs/automod/automod.py

#

with nothing

#

path.join(__file__.replace("automod.py", "words.txt"))

#

it worked

quartz kindle
#

so you're calling this script from inside automod.py?

drifting wedge
#

its an extension of another file

#

not in the folder

#

but this, yes

quartz kindle
#

have you tried simply doing "words.txt" then?

#

lol

#

anyway ig2g

drifting wedge
#

CYA

#

i have

waxen bough
#

It still displays warning even though i use off()

#

this is Worker threads btw

opal plank
#

off() isnt how u unregister event emitters

waxen bough
#

ohh

opal plank
#

you call <emitter>.removeEventLister()

opal plank
waxen bough
#

you meant removeListener

opal plank
#

erm

#

it might be different on node

#

let me double check

#

does that extend emitter?

waxen bough
#

the docs says off is an alias for removeListener

opal plank
#

check if it extends EventEmitter

waxen bough
#

nodejs specific

#

ok

#

idk... is it somewhere in the docs?

opal plank
#

nvm i use removeListener too

lethal trout
#

when i do app.get('/',(req, res) => res.send('./index.html')) i want it to run the html file, how can i do it?

lethal trout
vivid fulcrum
#

did you check the docs

opal plank
opal plank
#

you either require that path, or use a router

#

you likely using express

lethal trout
opal plank
#

just google express routers

#

as the name suggests, they route

#

so they would route to your main page

#

which is, i assume, index

quartz kindle
#

you need to use the static files middleware

#

you can always read the file yourself using fs then send the text result lul

opal plank
vivid fulcrum
#

are you talking about the keyword require

#

because

#

that'd just error out, no?

quartz kindle
#

require will try to parse it as something js understands

#

so no, it only works on js and json files

opal plank
#

yeah didnt like it

#

fsread it is

quartz kindle
#

lel

pale vessel
#
module.exports = "<html></html>";```/s
cinder patio
#

Not a bad idea if you're doing SSR

#

except you'd export a function

stiff lynx
#

let msg1 = messages.first().content
How can I put a mention there?

#

discord.js

#

I'm doing a filter

woeful pike
#

technically you can also use webpack to intercept require and convert it into a format js can understand

vivid fulcrum
#

a mention where

stiff lynx
quartz kindle
#

those kinds of things are basically what renderers such as ejs do

stiff lynx
#

mentions.users.first();?

vivid fulcrum
#

basic string concatenation, you just do "<@user_id>" + your other string

stiff lynx
#

but the bot asks a question and after it have to change the data inside a database

vivid fulcrum
#

...okay?

stiff lynx
#

sorry, I have like 6 sleep hours in the past 3 days

quartz kindle
#

go sleep

stiff lynx
#

my question is if I dont do the mention.user.first() wich data stores from a mention message?

#

the name?

#

or the ID?

quartz kindle
#

wat

stiff lynx
#

my bot asks me 'Hey to who u want to give your money?'
if I tag @ tim and then store the data in a variable

#

wich kind of data stores?

quartz kindle
#

....wat

stiff lynx
quartz kindle
#

you get the message object

#

inside the message object there is a mentions property

#

the mentions object contains a list of mentions, including users, channels and roles

stiff lynx
opal plank
#

no?

#

assuming store is a message

quartz kindle
#

you can access the User object or the Member object from message.mentions.users or message.mentions.members

opal plank
#

english do be hard

waxen bough
#

thanks btw

opal plank
#

no problomo

stiff lynx
opal plank
#

so what IS stored?

#

a message or a user?

#

or even a member?

stiff lynx
#

a mention

quartz kindle
#

it would be easier to understand what you want to do if you show code

opal plank
#

a mention isnt a thing

#

you either using a user, a message or a member

stiff lynx
#

do{
let verifica = 0;
//inizio del filtro
message.channel.send(questions.firstQuestion).then(msg => {
const filter1 = m => m.author.id === message.author.id
msg.channel.awaitMessages(filter1, {
time: 5 * 60000,
max: 1
}).then(messages => {
let msg1 = messages.first().content
message.channel.send(questions.secondQuestion).then(msg => {
const filter1 = m => m.author.id === message.author.id
msg.channel.awaitMessages(filter1, {
time: 5 * 60000,
max: 1
}).then(messages => {
let msg2 = messages.first().content
}}
}while(verifica === 2)

#

inside msg1 I want to put a user

mental raven
#
@client.command()
async def meme(ctx):
  async with ctx.typing():
      time.sleep(0.1)
      subs = ['dankmemes', 'memes']
      randSub = random.choice(subs)
      subreddit = await reddit.subreddit(f'{randSub}', fetch=True)
      top = subreddit.top(limit=100)
      sub_list = []


      async for submission in top:
        sub_list.append(submission)

      subChosen = random.choice(sub_list)

      subTitle = subChosen.title
      subUrl = subChosen.url

      embedVar = discord.Embed(title=subTitle, color=0xffa300)
      embedVar.set_image(url=subUrl)
      embedVar.set_footer(text=f"Result from r/{subreddit} || By {subChosen.author} || {subChosen.score}โ–ฒ || {subChosen.num_comments}๐Ÿ’ฌ")
      await ctx.send(embed=embedVar)

Why does my meme command take like 1 minute to load? I am using Asyncpraw with Discord.py

opal plank
#

jesus

#
do{
  let verifica = 0;
    //inizio del filtro 
    message.channel.send(questions.firstQuestion).then(msg => {
            const filter1 = m => m.author.id === message.author.id
            msg.channel.awaitMessages(filter1, {
                time: 5 * 60000,
                max: 1
            }).then(messages => {
                let msg1 = messages.first().content
                message.channel.send(questions.secondQuestion).then(msg => {
                    const filter1 = m => m.author.id === message.author.id
                    msg.channel.awaitMessages(filter1, {
                        time: 5 * 60000,
                        max: 1
                    }).then(messages => {
                        let msg2 = messages.first().content
                    }}
    }while(verifica === 2)
#

why is there a while there?

quartz kindle
#

let msg1 = messages.first().mentions.users.first()

pale vessel
#

it's do while

opal plank
#

isnt do deprecated?

stiff lynx
#

because I want to check if there is the tag

pale vessel
#

no

stiff lynx
#

and if the number of coins given is between 1 and 100

opal plank
#

oh, its with thats deprecated, not do

quartz kindle
#

that code looks like it will loop thousands of times

stiff lynx
#

lol

mental raven
quartz kindle
#

still it will loop thousands of times

#

and spam the api

stiff lynx
quartz kindle
#

yes it will

#

your code is async

earnest phoenix
#

What does server IP address could not be found, what that means???

stiff lynx
#

but why? if the verifica store the 2 inside

quartz kindle
#

the loop wont wait for it

#

the loop will only see message.channel.send()

#

so it will do message.channel.send() until verifica is 2. but by the time verifica becomes 2, the loop already ran thousands of times

mental raven
quartz kindle
mental raven
#

lmao

stiff lynx
mental raven
#

agreed

#

neither do i tbh

quartz kindle
#

i dont use py

stiff lynx
stiff lynx
quartz kindle
#

what value? stored where?

#

you want to check if the mentioned user exists in your database?

#

database.has(message.mentions.users.first().id)

orchid cave
#

hi

opal plank
quartz kindle
#

reinventing the wheel

opal plank
#

big brein time

quartz kindle
#

also that looks very inefficient

#

lel

opal plank
#

that was the poiint

#

i wanted to use regex twice

#

cuz regex fast af

quartz kindle
#

:^)

pale vessel
#

string.test() lol

#

~~you're really good at triggering people intentionally ~~

opal plank
#

sankyu

#

i try

quartz kindle
#

did you see the discord.js v13 release date?

opal plank
#

bold of u to assume i even check d.js anymore

quartz kindle
#

i assume not

opal plank
#

tim, come to this side of the fence

#

no, i have not

quartz kindle
#

you should

#

i has a cool helicopter

opal plank
#

where is the release date even at?

quartz kindle
#

:^)

#

their announcements channel

cinder patio
opal plank
#

bold of u to assume im in cancerfest server

#

check shared servers

quartz kindle
#

f u then

opal plank
#

just show it goddamit

cinder patio
#

I guess I'll tell u

opal plank
cinder patio
#

tomorrow

#

that means slash commands are gonna come out in discord.js before de3iuerui33uie

opal plank
#

pff

quartz kindle
#

fine

#

ill dm you

opal plank
#

where tomorrow?

quartz kindle
#

google said he'll tell you tomorrow

opal plank
quartz kindle
#

gottem

opal plank
#

meanwhile, have this

#

cant believe i fell for that

zenith terrace
#

lol

round vault
#

The site is loading to much

quartz kindle
#

on 9gag xd

visual goblet
#

whats the way to delete messages with python? message.delete right?

#

is there a way to show permissions needed for the command in a universal error handler?

earnest phoenix
#

Sure, the instance of the error raised has perms attribute iirc which is a list of perms

visual goblet
#

yeah im trying to fix this

#

to show the permission needed

#

instead of "well you dont have that permission" because they dont know what they need

earnest phoenix
#

Uh, why CheckFailure? It's too broad

visual goblet
#

ah i never knew that

#

i was trying to fix my errors because they never were showing

#

so i just wrote up this

#

i had individual errors and they never worked so i switched to universal and it works for the most part

visual goblet
#

thank you

earnest phoenix
#

Also, the instance of the error won't be discord.Forbidden nor discord.HTTPException. They'll be wrapped in CommandInvokeError iirc, which you already handle

visual goblet
#

oh sweet

#

yeah i see what you mean by too broad

#

every error basically inherits from CheckFailure

#

would there be a way as done with SyntaxError where it prints the error on each given command except for permissions?

#

content = f"Command {ctx.command.name} missing 1 required argument: {error.param.name}"

earnest phoenix
#

The missing_perms attribute is a list of Permission object, you can stringify and join them

#

Actually, I'm not sure if it's a list of Permission object or str. You can figure it out yourself ig, I don't really use d.py anymore

visual goblet
#

oh okay well thank you for what you could help with

earnest phoenix
#

Yeah, it should be a list of str. IDK why I thought it would be list of Permission object

visual goblet
#

im not sure myself im really bad with d.py lmao

earnest phoenix
#

hello

#

wht is api ping code

#

any one say

#

${api}

#

for node

opal plank
exotic lotus
#

Help please..?
I need to fix this bug nd give to client within 12 hours

exotic lotus
opal plank
exotic lotus
lyric mountain
#

he probably meant that

#

no, ${api} won't get u the "api ping"

#

${something} is just a string substitution

clear marlin
lyric mountain
#

only if you do like let api = ...

rose warren
#

Building a web dash. I've got oauth set up and everything, I've got the user data, no issues there. I wanted to know how can I check if my bot is in each of the servers the user is in? Basically I want to show a list of the servers the user is in where the bot is also there, and another list where the user is there but the bot isn't. Any pointers? Bot is in JS on a separate host. Dash is in PHP.

west spoke
fossil bough
#

I have a json file with data and I want to set the value of a text box with it. I have a button that runs a function in my index.js but how do I get data from data.json in my js file

rose warren
west spoke
#

but yeah I think either way you put it, you'll have to check all the servers the bot is in (bot side/server side), send that across, or you would have to go through each server the user is in from the user's side (web panel) and check for the bot.

rose warren
#

Yeah I think the best way is to get a list of guilds the bot is in and compare those to the guilds the user is in. My question was how to achieve that using the API for the bot's side of things. I already have the user's guilds.

west spoke
#

Your bot's token is static, so just check through the users guilds for users with that token(?)

deep mantle
rose warren
#

But you can't check for users in a guild using the api blob_think

visual goblet
#

what would be a better way to start out creating a better help command for d.py?

#

im tired of my current one and need a leading hand

rose warren
#

Oh my bad

#

I see

west spoke
#

wut

rose warren
#

I didn't really understand what you meant

west spoke
#

Mm

rose warren
#

Using the bot's ID in the request?

west spoke
#

Using the name I guess

earnest phoenix
west spoke
#

I don't work much with the API but

rose warren
#

Only problem is that first one requires GUILD_MEMBERS intent

deep mantle
#

ok thanks

rose warren
#

I've been waiting for a month for Discord to get to my application for that intent

earnest phoenix
# deep mantle ok thanks

do this pip install git+https://github.com/Rapptz/discord.py

GitHub

An API wrapper for Discord written in Python. Contribute to Rapptz/discord.py development by creating an account on GitHub.

rose warren
#

Yes

#

Oh sorry, verification is long closed

#

The ticket for intents is still open

#

Since May 1st ๐Ÿ˜…

#

I know I applied in the past

west spoke
#

oh yeah you need to apply for intents now huh

rose warren
#

I guess my only option is to use the GET/guilds/{guild.id}/members/{user.id} request

#

Doesn't look like that needs intents

#

All I need to know is if it returns a result or not

west spoke
#

Curl it using the bot token

#

good way to test it quickly

rose warren
#

Yeah I don't need to do that

#

Yep that works

west spoke
#

Nice

rose warren
#

Thanks for the pointers @west spoke

rigid maple
#

how can i get the last args in one message (used translate)

fringe badge
#

I need to solve one thing
I need to export a number from a bot to a backend irl

vivid fulcrum
#

export?

#

i don't think you're using the right terminology lol

#

what's the context behind the question

earnest phoenix
#

what happens when a commonjs file imports a file that uses es6 exports

#
// commonjsfile.js
const h = require("./es6.js");

// es6.js
const h = "h";
export default h;
vivid fulcrum
#

should be able to import it just fine and use it normally

#

(if the runtime recognizes es6)

earnest phoenix
#

what will be the value of h in commonjsfile.js

vivid fulcrum
#
"h"
earnest phoenix
#

default export?

vivid fulcrum
#

yup

safe bay
#

Yeah

earnest phoenix
#

them what will other exports do

vivid fulcrum
earnest phoenix
#

dose any one know how to add discord emoji's to my bot

vivid fulcrum
#

uh

#

do you mean send emojis?

#

because you can't add emojis to a bot

sudden geyser
#

You should check if your bot has permission to send messages in the channel beforehand.

#

However, you shouldn't be sending messages to all channels.

#

For example, if you were developing an announcements command, you could create an announcements channel instead.

#

Ah, what library are you using?

wheat mesa
#

Thatโ€™s not a library thatโ€™s a language!

#

You mean discord.js?

sudden geyser
solemn leaf
#

how do I get a guild by its id in discord js

vivid fulcrum
#

then just do .cache on that to get the collection

#

and finally .get(id) on that to get the guild object

haughty nebula
#

Hey, im currently working on a Discord Bot. It is made with DiscordJS and my database is MySQL. The problem i sometimes have is that requests are timed out or packets out of order, expected 1 got 2. But the error about the packets should only happen when i have multiple inserts in 1 statement. But i should not have that. And for the timeout, is there any way i can increase the time needed or increase the connection limit?

solemn leaf
#
let membersWithBio = [];
client.guilds.cache.forEach((guild) => {
    guild.members.cache.forEach((member) => {
        const id = message.author.id, num = hash("2021-05_custom_profiles_premium:" + id) % 1e4;
        if (member.user.bot || (1000 < num && num < 2000)) return;
        membersWithBio.push(message.author.id);
    });
}).then(() => {
    console.log(membersWithBio, membersWithBio.length);
    console.log("Done");
});

Cannot read property 'then' of undefined

woeful pike
#

forEach doesn't return a promise

#

or anything for that matter

solemn leaf
#

okay

#

so I can just put the code after it then

woeful pike
#

only one way to find out

solemn leaf
#

well once I start the code

#

it will instantly loop 10k times

#

so

#

doesnt run after

sudden geyser
#

yuck imperative

vivid fulcrum
#

wtf is the point of that code

quartz kindle
#

memberswithbio

eternal osprey
#
let muterole = message.guild.roles.cache.find(r => r.name === "muted");
  if(!muterole){
    try{
      muterole = await message.guild.roles.create({
        name: "muted",
        color: "#000000",
        permissions:[]
      })

hey why is my code not making a role named muted?
But just a normal role named new role, no errors or whatsoever.

vivid fulcrum
#

i'm pretty sure that needs to be wrapped in a property named data

#
{
  data: {
    name: ...
  }
}
quartz kindle
#

yup

pale vessel
#

i think you need to read the docs more than asking questions here

#

it even gave a clear example

visual goblet
earnest phoenix
#
    if (!msg.startsWith(`/${clientLang['lang.commandLogin']}`) || msg.startsWith(`/${clientLang['lang.commandRegister']}`)) return writeChat(client, clientLang['lang.onlyLoginOrRegister'])
#

what i making wrong in thiscode?

#

someone knows

zenith terrace
crimson trellis
#

I made an economy bot, but I want to know how to reward people with cash when they rate 5 stars on my server in top.gg

#

Can someone help plz

woeful pike
#

that is against our rules and your bot will be banned if you're caught doing that

summer torrent
#

you can't reward someone for that btw

zenith terrace
#

oof

#

yea rewards for reviewing the bot are not a thing

twilit geode
#

I need some help; may just be stupid
my understanding of this is as follows:

input:

0.
1. something

code:

rs.next(); // goes to the first line and returns true

and

input:

0. 

code:

rs.next(); // returns false because it moves after the last line
#

Im having some database issues and it might be because of this but this is a start

#

sorry wrong ss

exotic lotus
#

Hm

exotic lotus
#
const parser = require("body-parser");

app.use(parser.json());
app.use(parser.urlencoded({ extended: false });

app.post("/contact", function (req, res){
console.log(req.body, req.body.name)
}```
```kt
<form method="POST" action="/contact">
<inputย type="text" id="name" name="name" class="field">ย 
<input type="submit" value="Submit">
</form>```

Console:
```kt
{} undefined```
Help pls
copper cradle
#

explain further your problem

#

that's too few info

#

idk what you're trying to do

#

well I mean I guess you're trying to get the data from the form and it's not working

crimson vapor
#

not quite sure why he used kotlin code blocks for js and html ยฏ_(ใƒ„)_/ยฏ

clear marlin
#

lmao

twin marsh
#

My bot wont start because address already in use :::3000 & :::5000, how can I fix this?

pallid knot
#

hi

wary flame
twin marsh
#

How can I stop them?

wary flame
#

What OS do you use?

twin marsh
#

ubuntu

#

18.04

wary flame
#

Kk, run
sudo netstat -lntp (list all used ports) and look for the ports 3000 and 5000 to see what services use them

#

Or -lnup if the ports are being used on UDP but that's unlikely

twin marsh
#

I assume it's the "List of possible adress families..."

#

Correct?

#

wait

#

wrong first letter

#

did i instead of l

#

It wants a password

wary flame
#

Root password, it needs root access to find all ports

#

Current user password*

twin marsh
#

I'm trying to enter a password etc

#

doesn't continue

wary flame
#

Did you forget to press enter?

twin marsh
pale vessel
#

you forgot netstat

wary flame
#

You forget to type netstat

#

netstat -lntp

twin marsh
#

okay I got it now, what now?

wary flame
#

There should be a list of ports and what services are using them. Look for the ports 3000 and 5000 and see what services are using them.

You can then stop these services using sudo systemctl stop {service} and disable launching at startup using sudo systemctl disable {service} but beware not to stop any essential services

twin marsh
#

I got this

wary flame
#

They are being used by a node process (see right column). Problally (wheres autocorrect when you need it) a old bot process you can kill it using sudo kill 1093 1093 is the pid number (before the /node) this will still give the process a chance to shut down. If the process remains you can forcefully kill it using sudo kill -9 1093 -9 sends a SIGTERM signal, this doesn't give the process a chance to shut down and just terminates it

twin marsh
#

k

#

I revived it. Thanks!

#

Also, I'll be your little autocorrect: Probably. :D

wary flame
#

Np

#

Ah thanks

lofty cedar
#

I'm trying to do it when someone has 50 votes on my bot but how i can test it

quartz kindle
#

channels have their own permissions

#

which library are you using?

lavish bramble
#
module.exports = {
  name: "ban",
  description:"ban someone",
  usage:"{user}",
  run: async (client, message, args) =>{
const validReactions = ["โœ…","  โŒ"  ]
if(!message.member.hasPermission("BAN_MEMBERS")) return message.channel.send({embed:{
  color: "RANDOM", 
  title: ":crosss:\nYou need **BAN_MEMBERS** permission to use this command"
}})
if(!message.guild.me.hasPermission("BAN_MEMBERS")) return message.channel.send({embed:{
  color:"RANDOM", 
  title:":crosss:\nI need **BAN_MEMBERS** permission to ban members"
}})

const target = message.mentions.users.first()  
const reason = args[1]
    if(!target) return message.channel.send({embed:{
      color:"RANDOM", 
      title:":crosss:\nMention a user to ban!"
    }})
    if(message.author.id === target.id) return message.channel.send({embed:{
      color:"RANDOM", 
      title: ":crosss:\nYou cannot Ban your self!"
    }})
    if(target.bannable) {
      message.channel.send({embed:{
  color: "RANDOM",
  title: `Would you really like to ban ${target.tag}`
}}).then(async (msg) => {
const emoji = await client.confirm(msg, message.author, ["โœ…", "โŒ"], 300000);

  if(emoji === "โœ…"){
target.send({embed: {
  color: "RANDOM", 
  title: `You have been banned from:- ${message.guild.name} By:- ${message.author.tag} For:- ${reason || "No r Reason"}`
}}).then(() => {
  message.guild.members.ban(target, {reason: reason || "No Reason"})
})
message.channel.send({embed:{
  color: "RANDOM", 
  title: `:tick:\n Successfully banned ${target.tag} For:- ${reason || "No Reason"}`
}})
msg.delete()
   }
   if(emoji === "โŒ"){
     msg.delete()
   }
})    
      
    }else{
message.channel.send({embed:{
      color:"RANDOM", 
      title:":crosss:\nCannot able to ban that user"
    }})
    }


  }
}```
quartz kindle
lavish bramble
#

My ban command is not working

quartz kindle
royal latch
#

:renegade:

lavish bramble
#

When I mention a user its just saying cannot able to ban that user

#

Nothing error

quartz kindle
#

can you fix your code's indentation so its easier to read?

lavish bramble
#

Ok

slender thistle
#

๐Ÿ˜›

quartz kindle
#

but your target is not a Member object, its a User object

#

Users dont have the bannable property

#

Member and User are two different things

lavish bramble
#

How can I fix this?

prime mist
quartz kindle
#

use a Member instead of a User

quartz kindle
#

but they'd have to support 100+ langs

prime mist
#

Let's face it, most of the issues are with JavaScript anyway.

lofty cedar
#
<?php
$keys = file_get_contents('prokeys.json');
$data = json_decode($keys, true);
session_start();
$str=rand();
if(!isset($_SESSION['result'])) {
  $_SESSION['result'] = sha1(rand());
  $data[$_SESSION['result']] = {"expire":date('d-m-Y' + 24*3600*30)}
}

echo $_SESSION['result']; 
?>```
Do you see anything wrong? coz if i try to reach the file it just download it and doesn't show nothing
quartz kindle
#

they'll likely go all or nothing

prime mist
#

This would prevent people from sending messages if they have permission. Probably the opposite of what you want?

quartz kindle
#

try to explicitly set the content type header to text/plain

slender thistle
#

!

quartz kindle
#

use ! to invert the condition

slender thistle
#

I kind of saw this coming from light years away

quartz kindle
#
if(a.has(1)) // a has 1
if(!a.has(1)) // a does not have 1```
#

yes

#

are you using SEND_MESSAGES as a variable?

zenith terrace
#

if(!message.channel.permissionsFor(message.guild.me).has('SEND_MESSAGES')) return;

quartz kindle
#

you're trying to use SEND_MESSAGES as a variable

#

instead of a string

zenith terrace
quartz kindle
#

lel

prime mist
#

Buttons are nice. They feel really cohesive with the rest of the Discord app :)

lofty cedar
quartz kindle
vivid fulcrum
#

same lol

astral crown
#

Is there any way in python I can get lists of invite link of the server bot is in or if bot can identify if the server is public or private and give list of its id regarding that?

sudden geyser
#

You'd need permission to view invite links (I think manage server). However, that may be a privacy concern depending on the way you use it.

runic pike
#

I need help with a discordjs music bot dm me if you can help me

sudden geyser
#

It's better to ask your question in this channel instead.

runic pike
#

Can you help me? @sudden geyser

sudden geyser
#

Who knows.

runic pike
#

bruh

#

lmao

humble notch
#

Why is Indian memer bot not working

sudden geyser
sudden geyser
runic pike
sudden geyser
#

Confused.

tacit sequoia
#

Aren't we all

worn sonnet
quartz kindle
#

yes its a new feature

#

was released a few days ago

zenith terrace
#

still waiting for djs v13

#

gonna be waiting another 5 years

sudden geyser
#

why not just use the master branch

quartz kindle
#

why not just use the raw api :)

sudden geyser
#

why not just use assembly

zenith terrace
#

nah just get @quartz kindle to make his own lib instead of waiting for djs updates to go djslight

cinder patio
#

I don't think the master branch has buttons yet

zenith terrace
#

probably in v13

sudden geyser
#
GitHub

No longer with the broken rebasing I accidentally introduced in #5656
For anyone curious, buttons look like this:

This includes:

New MESSAGE_COMPONENT Interaction type ComponentInteraction
A base...

GitHub

Please describe the changes this PR makes and why it should be merged:
Status and versioning classification:

quartz kindle
#

master has a draft PR

sudden geyser
#

The repository's closed issues & pull requests is a goldmine

lofty cedar
#

does anyone know how i can make a pro version of a python bot? like what services should i use and how

sudden geyser
#

depends on how you define pro

lofty cedar
#

like premium version so some1 can pay to have some privileges

stable eagle
sudden geyser
#

There are many ways to create a premium version for software. One way is to have a table in your database for pro users (or guilds / some group) and to enable features by checking if the target is premium.

#

As for services, many bots use Patron or PayPal.

lusty quest
#

There is a npm module for the buttons if you use d.js

lofty cedar
lusty quest
lofty cedar
sudden geyser
vivid fulcrum
#

hey just a psa, nobody will buy the pro features unless you're offering something really special

lofty cedar
sudden geyser
#

It's just what bots commonly use.

lusty quest
#

Also patreon api is deprecated

earnest phoenix
#

you can still use it ( i think )

lusty quest
sudden geyser
#

oauth is probably more reliable

lusty quest
lofty cedar
coarse island
#

my bot is waiting for approval since 2 weeks

vivid fulcrum
#

it's normal

lusty quest
#

Bcs ive got a brilliant idea, you could use the new buttons to do the entire thing within discord.

vivid fulcrum
#

you can't

#

buttons are just event triggers and external links

#

there's no payment gateway

lusty quest
#

Yes but you could integrate chargebee into one

vivid fulcrum
#

??

lusty quest
#

You dont need much to use chargebee as payment gateway provider. A simple html button is enough

vivid fulcrum
#

uh... no?

lusty quest
#

Yes? It doesnt need much to work. Sure a fany website would be better but it should work

vivid fulcrum
#

dude what are you even on about

#

you can't make discord buttons act like a payment gateway, point blank period

#

the best you can do is have a link button that leads to the payment gateway site

lofty cedar
vivid fulcrum
#

you can't lol

#

they're talking nonsense

lusty quest
#

Not discord alone. I tall about using chargebee as gateway

#

Like ive said a few times

vivid fulcrum
#

please i'm going to have an aneurysm

lusty quest
vivid fulcrum
#

but you can't

#

use

#

discord

#

buttons

#

discord buttons don't allow injecting custom html

lusty quest
#

You dont even need html, you just need a link that integrates into theyre api

vivid fulcrum
#

discord buttons (that aren't link ones) are strictly closed to the gateway flow (or webhooks, if you're into that)

#

you can't integrate other services into that

#

a link button is the best you can do

#

which is the same as a hyperlink or just sending the url directly

#

i don't think you quite understand how buttons work

lusty quest
#

I saw a dude running a gameboy emulator off buttons so a payment gateway should work

vivid fulcrum
#

that's not the same thing

#

the gameboy emulator works because you receive an event when a user clicked the button

#

the event provides the user info

#

this works because there isn't any other service

#

it's just the host machine and the end user

lusty quest
#

And when you listen to the event and send a http request to a certain url? Like with node-fetch? Cant really look into it rn bcs im at work

vivid fulcrum
#

yes but how are you supposed to know that's the right user

#

that's heavily exploitable

#

you don't know who the discord user is on chargebee

lusty quest
#

You can force it to dms

vivid fulcrum
#

still exploitable

#

because again

cinder patio
#

I wouldn't trust a random bot with that info

vivid fulcrum
#

and as of right now, buttons can't be used in dms

#

that whole system you envisioned is basically playing secret santa

#

which you can't do when you're carrying such important data

lofty cedar
#

ok, then i think that if it's remotely possible to do it with buttons is hard, then how should i use oauth with chargebee like i ask to select a server and then when the payment is done i do something on a database?

lusty quest
lofty cedar
lusty quest
#

Just with the discord userid in the header

lusty quest
lofty cedar
#

not really, i mean just can do a static website

lusty quest
#

Yea, there are tutorials for discord oauth

vivid fulcrum
#

or a hyperlink

#

or just sending a normal link

#

it's all the same thing

vivid fulcrum
lusty quest
#

I should have added some more context. So you could to the entire thing without a website

latent heron
#

you could use buttons to control bot currency payment

#

but i don't see real life payment being feasible.

lofty cedar
sudden geyser
#

Then you may want to start by learning it more

clear marlin
lofty cedar
#

I have a question: i made that when you reach 50 votes (stored in a database) you'll get a reward, how i can test it?

#

actually testing if the vote event works

solemn latch
#

so your question is about the event? or about checking if someones over 50 votes?

lofty cedar
#

about the event

solemn latch
#

what about the event?
like how to make sure it works? you can just log it to check if it works.

lofty cedar
#

yes but i mean there isn't anyone that can vote the bot now

solemn latch
#

oh, there is a test button on the site.

lofty cedar
#

where?

solemn latch
#

the place you put the webhook url and auth

#

your bot < edit < webhooks < test

lofty cedar
#

oh ok

earnest phoenix
#

From cffi callback <function sock_state_cb at 0x00000208237F2310>:
Traceback (most recent call last):
File "C:\Users\pc\python\lib\site-packages\pycares_init
.py", line 91, in sock_state_cb
sock_state_cb(socket_fd, readable, writable)
File "C:\Users\pc\python\lib\site-packages\aiodns_init
.py", line 104, in _sock_state_cb
self.loop.add_reader(fd, self._handle_event, fd, READ)
File "C:\Users\pc\python\lib\asyncio\events.py", line 504, in add_reader
raise NotImplementedError
NotImplementedError
??????????????

sage bobcat
#

One message removed from a suspended account.

clear marlin
#

F

earnest phoenix
#

can you import an scss file into a js file in vite

clear marlin
#

wdym?

earnest phoenix
#

setting custom name servers for aiohttp in a util function

earnest phoenix
# clear marlin wdym?

im writing styles for my react components in a scss file and i want to import the style from it

earnest phoenix
#

it can bundle and serve anything

#

including vue

near stratus
earnest phoenix
#

wont dart sass work?

near stratus
#

(IDK never heard of dart sass)

earnest phoenix
#

ok...

#

where will the styles be imported when i do import "./blah.scss"

earnest phoenix
#

so

// App.jsx
import "theme.scss";
function App() {
  return <div className="App">Helo Wurld</div>
}
// theme.scss
.App {
  background-color: $teal;
}
near stratus
#

yes

earnest phoenix
#

ok

#

ty

near stratus
#

np ^ยฐ^

earnest phoenix
#

but what if someone wants to customize the theme

#

@near stratus would a style prop suffice

quartz kindle
near stratus
#

like this

function MyComponent (props) {
  const [isActive, setActive] = useState(false);

  const toggleClass = () => {
    setActive(!isActive);
  };

  return (
    <div 
      className={isActive ? 'your_className': null} 
      onClick={toggleClass} 
    >
        Sayonara baka
    </div>
   );
}
#

??

#

You can toggle classnames

earnest phoenix
#

or this?

import "defaulttheme.scss";

function CustomizableButton({ style = null }) {
  return <button className="button" style={style}>customize me</div>
}
near stratus
#

I don't use any scss file actually

#

I make a separate js / ts file and export an object carrying the style

earnest phoenix
#

im migrating from a theme.js file with a useTheme hook to a theme.scss file with no hook needed

near stratus
#

oohh

#

you're leaving my team

onyx hare
#

I need some help, I want to have this but how do I get it to work
Browser picks up mobile phone being used redirects website to โ€œ/mobile.htmlโ€ like Twitter for example when you go on it via a phone browser the URL changes to mobile.twitter.com I would like something similar but it just go โ€œoh this is a phone so Iโ€™ll show them this site instead of the larger siteโ€

near stratus
#

screen.width
?

earnest phoenix
#

check their user agent and if they have mobile user agent redirect them

feral aspen
#

I'd like to ask, what are regexes mostly used for?

low river
#

tell me when this channel is free i need some help with js

near stratus
feral aspen
low river
#
client.on("message", async (message) => {
    if(message.author.bot) return
    const channel = message.guild.channels.cache.find(c => c.name === 'chatbot')

        if(message.channel === channel) {
            fetch.default(`https://api.monkedev.com/fun/chat?msg=${message.content}&uid=${message.author.id}`).catch(console.error)
            .then(res => res.json()).catch(console.error)
            .then(data => {
                message.channel.send(data.response).catch(console.error)
            }).catch((error)=>{
                error;
            })
        }
    })```

```DiscordAPIError: Cannot send an empty message```
the code runs perfectly
only if we delete a message will chatting with the chat bot it gives that error
near stratus
feral aspen
#

Why the ^?

low river
#

eh

feral aspen
#

Does it mean Strings starting with the regex?

near stratus
near stratus
low river
#

will try that

near stratus
feral aspen
earnest phoenix
#

@near stratus problem
{this is my code before using a scss file}

// components/TabButton.jsx
import useTheme from "../useTheme";

export default function TabButton({ children, href, theme, active}) {
  theme = useTheme(theme, "TabButton");
  // ...
  return <button style={{
  // PROBLEM LINE
  backgroundColor: active ? theme.backgroundColor.active : theme.backgroundColor.inactive
}}>{children}</button>
}
#

with className I can't access the backgroundColor stuff

#

heck i cant even use that stuff in a scss file because it's invalid css

near stratus
low river
#

this is for the chat bot

near stratus
#

Your "path" variable contains space

low river
#

client.on("message", async (message) => {
    if(message.author.bot) return
    const channel = message.guild.channels.cache.find(c => c.name === 'chatbot')

        if(message.channel === channel) {
            fetch.default(`https://api.monkedev.com/fun/chat?msg=${message.content}&uid=${message.author.id}`).catch(console.error)
            .then(res => res.json()).catch(console.error)
            .then(data => {
                message.channel.send(data.response).catch(console.error)
            }).catch((error)=>{
                error;
            })
        }
    })
near stratus
# low river ```js client.on("message", async (message) => { if(message.author.bot) retu...
client.on("message", async (message) => {
    if(message.author.bot) return
    const channel = message.guild.channels.cache.find(c => c.name === 'chatbot')
        if(message.channel === channel) {
            let d = fetch.default(`https://api.monkedev.com/fun/chat?msg=${message.content}&uid=${message.author.id}`).catch(console.error)
            .then(res => res.json()).catch(console.error)
    if(d.response){
        message.channel.send(data.response).catch(console.error)
    }
    }
})

like this ?

low river
#

i will try and tell you

earnest phoenix
#

@near stratus i think i got a quick and dirty solution

return <button className={active ? "active" : "inactive"></button>
@mixin tab-button() {
  // required styles
}
button {
  .active {
    @include tab-button();
    background-color: "smth";
  }

  .inactive {
    @include tab-button();
    background-color: "smth else";
  }
}
#

also the button selector doesn't have to be a class because it has no styles on it's own so it wont affect normal button elements

low river
#

nah that code doesnt work akio

earnest phoenix
#

lmao did you just copy paste what akio told you

quiet pawn
#

lol

earnest phoenix
#

well time to go rewrite my entire theme.js file

#

bye

low river
near stratus
near stratus
low river
#

it doesnt work as a whole

#

no reply

#

also the path does not have space

near stratus
#

then console.log(d) and see what's it showing

low river
#

alr

sudden geyser
#

Say no ๐Ÿ™…โ€โ™€๏ธ to incremental keys โž• say yes ๐Ÿ™‹โ€โ™€๏ธ to random keys ๐Ÿ”‘

earnest phoenix
lethal junco
#

what do u think of this? its my first time using pillow lol :P

earnest phoenix
#

not the worst

lethal junco
near stratus
earnest phoenix
#

no

near stratus
lethal junco
earnest phoenix
#

it is?

lethal junco
#

sorry for caps lol

lethal junco
#

i confused

#

anyways pillow is used for image modification

near stratus
#

oh,
like canvas ?

lethal junco
#

so i used it so it puts the image of the author

earnest phoenix
#

ye

lethal junco
#

that uses the command

#

delete

near stratus
#

cool

low river
#

ok so akio
now the command works
but it still gives the same error for the global emojies but doesnt give error for the server added emojes

#

like it will give error for ๐Ÿ‘€ but not for oki_then_

#

can i just make it not show the error

near stratus
#

is the api accepting unicode ?

lethal junco
#

see

low river
low river
lethal junco
#

bot.send("penis ๐ŸŽˆ")

#

its wrong

#

it needs to be

low river
#

TypeError [ERR_UNESCAPED_CHARACTERS]: Request path contains unescaped character

earnest phoenix
#

escape it

lethal junco
#

bot.send(":eyes:")

low river
#

its a chat bot

#

tommars

earnest phoenix
low river
#

how to escape

earnest phoenix
#

\

low river
#

wait

earnest phoenix
#

\๐Ÿ›ก๏ธ

low river
#
client.on("message", async (message)=>{
    if(message.author.bot) return
    const channel = message.guild.channels.cache.find(c=>c.name==='chatbot')
        if(message.channel === channel) {
            fetch.default(`https://api.monkedev.com/fun/chat?msg=${message.content}&uid=${message.author.id}`).catch(console.error)
            .then(res=>res.json().catch(console.error))
            .then(data=>{
                message.channel.send(data.response).catch(console.error)
            }).catch((error)=>{
                error;
            })
        }
    })
#

what exactly do you want me to escape

earnest phoenix
#

message.content

low river
#

but thats the main part

wary flame
#

encodeUriComponent (caps may be different) on message.content

near stratus
earnest phoenix
low river
#

the code is right and working

#

voltrex

#

TypeError [ERR_UNESCAPED_CHARACTERS]: Request path contains unescaped characters
this is the error i am trying to hide

near stratus
#
client.on("message", async (message)=>{
    if(message.author.bot) return
    const channel = message.guild.channels.cache.find(c=>c.name==='chatbot')
        if(message.channel === channel) {
            fetch.default(`https://api.monkedev.com/fun/chat?msg=${message.content.replace(/([\uE000-\uF8FF]|\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDDFF])/g, '')}&uid=${message.author.id}`).catch(console.error)
            .then(res=>res.json().catch(console.error))
            .then(data=>{
                message.channel.send(data.response).catch(console.error)
            }).catch((error)=>{
                error;
            })
        }
    })

Here try this

#

@low river

low river
#

ok wait

earnest phoenix
low river
#

this is what i get now

earnest phoenix
#

it is empty

#

check if it is empty

wary flame
#

Then the response of the API is empty

low river
#

how to hide the empty codes

near stratus
#

Starting from point zero

wary flame
#

You can't hid it, check if the message is empty before sending it and send an error message when. It is

low river
#

btw this only happens for these emojies otherwise it all works just fine

wary flame
#

You're API probably can't handle emojis that means, or at least not in discord format

low river
#

yup

low river
#

the replace wont work

#

same error

#

also the api cannot handle emojies like batman said

earnest phoenix
#

Hey what's wrong with this?

bot.on('guildMemberAdd', member => {
   member.send("test");
});

The dms are open and it still won't send anything

wary flame
#

You might need to enable the guild_members intent in your client config

earnest phoenix
#

alright i'll give it a try

#

wait

earnest phoenix
wary flame
#

I don't think it is

#

If it is you need to enable it in client config AND oauth2 so enabling it in client config won't hurt

earnest phoenix
#

where is my client config tho

wary flame
#

Pass it as first Param when creating the client instance

#

At new Client(config here)

#

And you were right guild_members is in fact a privileged intent so you need to enable it at your discord bot app, you can enable it on the home page

latent heron
#

@slender thistle yo

#

I didn't hear a response from you about my offer

#

Would you be interested in helping me with my bot?

slender thistle
#

Bro

latent heron
#

Please

slender thistle
latent heron
#

Aghhhhh

obtuse stone
#

When my bot is invited to a new guild, how can I get my bot to send a message when it joins?

vivid fulcrum
#

in which library

obtuse stone
#

wait im stupid

#

what is a library

#

coding language?

vivid fulcrum
#

no

#

a library

pale vessel
#

discord.js <<< coding language
^^^^^^
library

in conclusion, my library is discord.

obtuse stone
#

discord.js

vivid fulcrum
#

wait nvm

#

that's the wrong thing

#

but follows a similar concept

vivid fulcrum
#

yeah

vivid fulcrum
#

use that event and then find a channel you can send messages into (a sample of that is in the link i sent)

pale vessel
#

the one you sent had more explanation and examples though

obtuse stone
#

im using slappey

#

for my bot

vivid fulcrum
#

how does that matter

obtuse stone
#

im pretty new to js

#

and idk where to put that code for guildCreate

vivid fulcrum
#

wherever you hook the rest of your events

pale vessel
#

you probably should code your bot from scratch

vivid fulcrum
#

also this

obtuse stone
pale vessel
#

you can't learn anything using a generator

#

better late than never

sudden geyser
obtuse stone
#

i was gonna code it from scratch

#

but then i heard that slappey kept stuff clean

#

and i dont think it stops u from anything

vivid fulcrum
#

slappey is for people who know what they're doing

#

and just need a boilerplate

obtuse stone
vivid fulcrum
#

sureeeeeeeeee

obtuse stone
#

i have around 40 commands and its working great

vivid fulcrum
#

my dad works for microsoft

obtuse stone
#

o hon

vivid fulcrum
#

in fact he owns it

obtuse stone
#

me scerd

sudden geyser
#

how's the divorce going

quartz kindle
#

what even is slappey?

vivid fulcrum
#

something like CRA but for djs

quartz kindle
#

....wat

#

is discord becoming html?

#

soon we'll have webpack for discord bots

safe bay
#

Yeah

vivid fulcrum
#

lmfaoao no i just used CRA as an example because the CRA boilerplate is similar to slappey boilerplates

sudden geyser
#

So just a generator

#

nice

vivid fulcrum
#

yup

quartz kindle
#

i mean, sure, but like

#

idk

vivid fulcrum
#

it's meh

#

because it's making you use es6 syntax

#

and some intermediate features

#

and obviously 90% of the userbase are newbies

obtuse stone
#

tbh it is a bit difficult cause u cant really use client.on and stuff

#

u have to change a lot of stuff

quartz kindle
#

i guess this is basically what you want

sudden geyser
#

aw I thought it would use some advanced builder

#

but it's just raw strings shoved into the file

obtuse stone
#

wait

#

i dont think guildcreate is in the create event thing

quartz kindle
#

why wouldnt it be?

obtuse stone
#

omg it is

#

im literally blind cause i was looking forever

quartz kindle
#

lel

obtuse stone
#

and now i think my slappey is broken lmao

#

its not even making the event

quartz kindle
#

give it a good slap

obtuse stone
#

yes

#

nvm got it

quartz kindle
#

i see the slap worked

obtuse stone
quartz kindle
#

a picture is worth more than a thousand words

#

but reading docs is worth more than a thousand pics

torpid otter
#

database which is better for warn , check warn , rank. removewarn , customable prefix

sudden geyser
#

Most databases will be fine.

#

If you want a starter database consider SQLite.

#

Or some database you like / find easy to work with (e.g. MongoDB)

torpid otter
#

never use a database for

sudden geyser
#

Then you may want to spend the time to learn about them

vivid fulcrum
#

relational databases are always going to be better for discord purposes because everything you're storing is relational

sudden geyser
#

There's a lot to love and hate about them

#

I recommend a relational for the same reason cry said, but that doesn't mean you can't find success with other database models.

crimson trellis
#

I am making an economy bot and I was wondering If it is possible to reward someone with cash when they rate our server on top.gg

#

Is that possible?

sudden geyser
#

You already asked this question.

crimson trellis
#

No before I asked if it was possible to give a user cash when they rate it 5 stars

vivid fulcrum
#

same thing

crimson trellis
#

Is it not allowed

#

@woeful pike is it possible to reward someone with cash when they rate any amount of stars my server on top.gg

woeful pike
#

no incentivizing reviews

sudden geyser
#

I think that use case is allowed. Was thinking of voting

woeful pike
#

this is how it works on every platform that deals with reviews