#development

1 messages · Page 433 of 1

quartz kindle
#

oh

slender thistle
#
if message.author.bot:
    return
quartz kindle
#

then you need to check for bots in there too

mental willow
#

Py is on a different pc

solid cliff
mental willow
#

The issue is is that discord.py has an automated help message that I don't know how to edit code for

quartz kindle
#

do you know where the code is located?

slender thistle
#

Do you need help with making your bot not respond to other bots or?

mental willow
#

No that is the problem

solid cliff
#
async def on_message(self, message):
    if message.author.bot:
        return
    await self.process_commands(message)```
mental willow
#

I will send the code that I have for it

frail kestrel
#

what is it

mental willow
#

this is all i got

frail kestrel
#

@mental willow

mental willow
#

trying to stop this .py part of my bot from responding to bots including the hidden help command

#

is there a way of stoping it from sending the help message altogether

frail kestrel
#

what

mental willow
#

This part of my bot responds to bot triggering messages. This is made worse when you can't edit the help message that is sent out when you type .help

slender thistle
#

@mental willow Find async def on_message(message): somewhere and tell me if you manage to actually find it.

mental willow
#

Nothing

#

I can't see it

frail kestrel
#

oh

#

do you wanna block bots from responding to your bot

#

so it only listens to users

mental willow
#

I want my bot to not respond to others bots

gentle harbor
#

that works

frail kestrel
#

right

mental willow
#

Ah

frail kestrel
#

yeah, you wanna do user-bot checks in your onMessage

#

i'd use if ctx.author == user.bot: return

#

did a one-liner

slender thistle
#

Or, as ReKT said before:

@bot.event
async def on_message(self, message):
    if message.author.bot:
        return
    await self.process_commands(message)
frail kestrel
#

oh right

#

that works too

#

@solid cliff good weeb

solid cliff
#

dunno what process_commands is for async mm

gentle harbor
#
root@ip-172-31-46-23:~# sudo service mysql restart
root@ip-172-31-46-23:~# mysql -u sql -h redacted -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on 'redacted' (111 "Connection refused")

love how my SQL still doesn't like me

slender thistle
#

Let's just say it processes commands.

torpid vale
#

Think you just sent ip...

gentle harbor
#

welp

woven rover
#

eek

torpid vale
#

Look for that stuff before sending

gentle harbor
#

yeah

solid cliff
#

@mental willow

mental willow
frail kestrel
#

is that async

mental willow
#

YEAH

frail kestrel
#

yuck

#

ok async is good in terms of stability, but rewrite is better if you're looking for more features

gentle harbor
#

await message.messageevent(self, ctx) is unrelated, thats just one of my functions

mental willow
#

ah ok

slender thistle
#

Use what I (originally, ReKT) sent.

gentle harbor
#

^

mental willow
#

i am getting

TypeError: on_message() missing 1 required positional argument: 'message'

slender thistle
#

Read my last message.

mental willow
#

i put yours in

solid cliff
#
@bot.event
async def on_message(message):
    if message.author.bot:
        return
    await bot.process_commands(message)
slender thistle
#

Okay thanks, I was lazy to edit it.

mental willow
#

works

limpid cosmos
#

help please

#

@quartz kindle I don't have part of code up bot.on

ashen valve
#

🤢

quartz kindle
#

i dont get it, when is "servers" ever populated?

limpid cosmos
#

I don't understanf

#

*understand

quartz kindle
#

you have var servers = {}

limpid cosmos
#

yep

quartz kindle
#

and then you use server = servers[id]

#

but servers is empty

limpid cosmos
#

i need to delete the "id" ?

quartz kindle
#

you're trying to give the variable "server" something that doesnt exist

#

or at least im not finding it

limpid cosmos
#

I don't know what to do I'm stuck

quartz kindle
#

i havent done voice functions so i cant help you

#

but you need to do something about the var servers = {}

fluid basin
#

Create a variable, then once someone plays something store it

#

Otherwise it'll be empty or undefined

tall falcon
#

Has anyone used Dialogflow2Discord?

earnest phoenix
quartz kindle
#

is Client a global var?

#

it seems like when the loop reaches setTimeout, a new play function is executed, while the old Client.broadcast.on('end') is still listening to more events

earnest phoenix
#

Hi I'm needing some help with discordjs and node

#

Like I have a main index JavaScript file for basic stuff like constants and variables and all that stuff

#

But i want to be able to separate my ready and message events and such

#

I mean separate them into multiple files

small mango
#

modules

earnest phoenix
#

Well yeah i tried that

quartz kindle
#

module.exports i guess

earnest phoenix
#

But its not working

small mango
earnest phoenix
#

Im using module.exports already

#

But it says client is not defined

quartz kindle
#

idk i dont use modules

small mango
#

Client will not be defined within a module

#

because its not defined

earnest phoenix
#

I'm importing it

#

From index

small mango
#

Show code?

earnest phoenix
#

Which file

#

Index?

#

Or the other file

small mango
#

other file

earnest phoenix
#

for some reaosn its working now

#

weird

#

this is my other file code

#
const cli = index.clientS;
module.exports = {
    one: function() {
        cli.on("ready", function() {
            console.log("ok");
        });
    }
}```
#

now this is my main file

#
const discord = require("discord.js");
const client = new discord.Client({
    disableEveryone: true
});

module.exports = {
    clientS: client
}

// Import command modules
const ping = require("./commands/ping");

ping.one();

// Login token
client.login("token");```
#

now its logging properly

#

maybe i had a typo somewhere

#

idk

#
bot.on("message", function(msg) {

  if (msg.author.equals(bot.user)) return;

  if (!msg.content.startsWith(prefix)) return;

  var args = msg.content.substring(prefix.length).split(" ");
 
  switch (args[0].toLowerCase()) {
  
     case "8ball":
            if (args[1]) {
                //message.channel.sendMessage(fortunes[Math.floor(Math.random() * fortunes.length)]);
                msg.channel.send({embed: {
                    color: "RANDOM",
                    title: "Hmmm...",
                    description: (fortunes [Math.floor(Math.random() * fortunes .length)]),
                    }});
            }
            else {
                msg.channel.send({embed: {
                    color: "RANDOM",
                    title: "Oops...",
                    description: "L'utilisation de cette commande est: ***8ball [Question]**",
                    }});
            }
            break;
      var fortunes = [
    "Oui.",
    "C'est faux.",
    "C'est vrai.",
    "Sans aucun doute.",
    "Non.",
    "Je ne c'est pas.",
]}
      }); ```
#

error is :

#

if (!msg.content.startWith(prefix)) return;

               ^

TypeError: msg.content.startWith is not a function

inner jewel
#

startsWith

quiet bobcat
#

also add so that it doesn't respond to other bots

earnest phoenix
#

french owo

#

and you might wanna ignore dms too

quiet bobcat
#

yeah

earnest phoenix
#

or send an error if it's in dms

quartz kindle
#

why is it better to ignore dms?

earnest phoenix
#

lots of message properties dont exist in dms

#

eg. message.guild

quiet bobcat
#

yeah

quartz kindle
#

ah

#

my bot has workarounds

earnest phoenix
#

@inner jewel is not this if (!msg.content.startWith(prefix)) return;

               ^

TypeError: msg.content.startWith is not a function

inner jewel
#

startWith is not a function

#

you have startWith

#

you're missing an s

#

it's startsWith

earnest phoenix
#

!msg.content.startsWith(prefix)

#

s

#

description: (fortunes [Math.floor(Math.random() * fortunes.length)]),

                                                                            ^

TypeError: Cannot read property 'length' of undefined

#

lol a other problem ....

#

i try to code a 8ball lol

gilded blaze
#

that means you have not defined fortunes

earnest phoenix
#

no is defined

#
  case "8ball":
            if (args[1]) {
                //message.channel.sendMessage(fortunes[Math.floor(Math.random() * fortunes.length)]);
                msg.channel.send({embed: {
                    color: "RANDOM",
                    title: "Hmmm...",
                    description: (fortunes [Math.floor(Math.random() * fortunes .length)]),
                    }});
            }
            else {
                msg.channel.send({embed: {
                    color: "RANDOM",
                    title: "Oops...",
                    description: "L'utilisation de cette commande est: ***8ball [Question]**",
                    }});
            }
           break;
      var fortunes = [
    "Oui.",
    "C'est faux.",
    "C'est vrai.",
    "Sans aucun doute.",
    "Non.",
    "Je ne c'est pas.",
]}  ```
#

downstairs

#

@gilded blaze

gilded blaze
#

Don't define it in a case

#

Define it before

#

and it would be a constant?

#

But that isn't a problem

earnest phoenix
#

ou N?

#

ou ?

#

or put it

quartz kindle
#

you have to define fortunes before you try to access them

earnest phoenix
#

thx for help is correec

#

coreect

#

thx

quartz kindle
#

👍

foggy bone
#

Hiii, someone would know how to remove the messages of SLF4J in JDA ? I tried several methods but it doesn't work ^^ http://prntscr.com/jvzefs

inner jewel
#

did you try opening those links?

foggy bone
#

Yes but I already tried what the link tells me to do

#

:/

exotic wave
#

how can I put that "<mine_number>" into text in html?

#

html thinks that is code

#

and not text

vestal grail
#

use the html equivalents of < and >

#

I think it's &lt; and &gt;

exotic wave
#

thx

#

vestal grail
#

you're welcome

#

or should I use no problem?

#

which one do you prefer?

carmine berry
#

Im trying to run my bot with Eris but after all shards fully connect a minute later they restart. These are the client options im using

{
  disableEvents: {
    TYPING_START: true,
    PRESENCE_UPDATE: true,
  },
  maxShards: 'auto',
  defaultImageFormat: 'png',
  compress: true,
  connectionTimeout: 60000,
}```
#

Would anyone know why this is happening

earnest phoenix
#

exactly a minute?

carmine berry
#

well not exactly but around there

#

i used the debug event and every shard says Queueing reconnect in 1000ms | Attempt 0

exotic wave
#

@vestal grail anything, if the problem is resolved, you can use "you're welcome" or "no problem" XD

vestal grail
#

mmm I used to say no problem, but now I doubt which one I should use

exotic wave
#

0 - no problem

#

1- youre welcome

#

go to random number generator

#

and roll it

vestal grail
#

hahahahaha

#

I will keep that in mind

native narwhal
#

What about no worries

vestal grail
#

since I became a Joakim I have a new favourite emoji

spring ember
#

and cheers

native narwhal
#

xD

vestal grail
native narwhal
#

I can't even use that one :angeryBOYE:

vestal grail
#

hahahaha

#

idk from which server that is

exotic wave
vestal grail
#

oh it's from discord server list

#

hahahahaha

exotic wave
vestal grail
#

that's a little bit too bright for my liking

native narwhal
#

#00FFFF

versed crane
#

lol nice

earnest phoenix
#

So I have a command handler and I want to know how to make my prefix 2 prefixes one the original and another a mention but when I try I get a error help?

spring ember
#

umm send the command handler?

earnest phoenix
#

Ye hold on

spring ember
#

you only need to check if the message starts with the prefixes

earnest phoenix
knotty kayak
#

Can someone help me with my bot please?

exotic wave
#

@knotty kayak language?

knotty kayak
#

What?

spring ember
#

programming language

#

like Java or Javascript

exotic wave
#

or c++

#

or python

#

dunno

#

you are the one who know

#

@knotty kayak

tall falcon
#

jesus

knotty kayak
#

I don't know anything about java or javascript or anything. But while I was doing the ROBLOX Creator Challenge, it taught me nothing but it said something about Java or Javascript when I was taking one of the test things.

night imp
#

do you have a bot that you are coding

tall falcon
#

I'm confused

knotty kayak
#

:/ I have no idea how to code or any of that stuff.

#

😕

night imp
#

ok so what do you need help with

tall falcon
#

So you have a bot that you need help with but you don't know how to code?

knotty kayak
#

Is it really that hard to understand? I NEED HELP WITH EVERYTHING (With Discord Bots)!!!

night imp
#

I recommend learning a language to code with. JavaScript/node would be the easiest

tall falcon
#

Are you looking for help on how to develop a discord bot using Javascript?

knotty kayak
#

I guess.

night imp
tall falcon
#

oh

#

^

night imp
knotty kayak
#

If that is one of those stupid boot camp things that I found when I was looking for how to code, I am not going!

spring ember
#

Udemy costs money though

night imp
#

Like 10$

spring ember
#

There are some free learning sites online

knotty kayak
#

I'm not paying anything.

spring ember
#

Like sololearn

#

Google it

night imp
#

@knotty kayak it is 10$. No one is going to help you if you aren't going to learn

spring ember
#

BTW how old are you @knotty kayak

tall falcon
night imp
#

@tall falcon he needs to learn the language before starting

knotty kayak
#

@night imp I got muted for ranting someone out, but I figured out a way to get unmuted. :p

tall falcon
#

I think he just wants to go straight into development and learn that way

knotty kayak
#

So stfu.

spring ember
#

@night imp sololearn is a great free website

#

@knotty kayak how old are you

night imp
#

You are admitting to avoiding a mute?

south finch
#

his mute time expired so

#

quit witchhunting users

knotty kayak
#

It didn't.

#

I just left the server then joined back.

south finch
#

and also @knotty kayak stop being such a dick towards people for asking a question

night imp
#

Ok was confused when he told me to stfu

south finch
#

just kindly tell them to leave you alone

tall falcon
#

lol

spring ember
#

Like hecc off

#

It's polite

knotty kayak
#

Okay.

tall falcon
night imp
#

But seriously you need to learn the language.

knotty kayak
#

@night imp Sthu

spring ember
#

@knotty kayak go to sololearn

#

It's a great site for learning to develop

night imp
#

Ok can't help you 👌 bye gl

tall falcon
#

or jump straight into and learn as you go

spring ember
#

@night imp don't spark something

south finch
#

asks for help, refuses to learn the language

#

this is ironic

tall falcon
#

roblox

quartz kindle
#

he got muted again lol

neon stone
#

hes not in the server anymore

inner jewel
#

gets muted then leaves

tall falcon
#

lol

#

Can someone help me? I rather have this issue resolved in dm

knotty steeple
#

cant help you if you dont say what is your problem

earnest phoenix
#

How to like "photoshop" or likely in discord.js?

knotty steeple
#

image manipulation module

#

like canvas, jimp, sharp

topaz fjord
#

canvas best one to use

#

just a pain to install on windows

knotty steeple
#

it is

#

i tried

topaz fjord
#

i got it to work

knotty steeple
#

congrats zoomeyes

topaz fjord
#

after 3 times of uninstalling

gleaming summit
#

Help

#
[0230:2530][2018-06-18T05:01:07]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{a9528995-e130-4501-ae19-bbfaddb779cc}, resume: ARP, restart initiated: No, disable resume: No
[062C:2BF8][2018-06-18T05:01:07]i399: Apply complete, result: 0x0, restart: None, ba requested restart:  No

------------------- Python --------------------
Successfully installed Python 2.7```
knotty steeple
#

i see no problem

gleaming summit
#

Windows build tools's installation is currently frozen

spring ember
#

same

#

oh

gleaming summit
#

I cannot get complete msgs

knotty steeple
#

reinstall

gleaming summit
#

same

#

I reinstalled Windows but same

spring ember
#

wow

#

umm

gleaming summit
#

So I installed build tools 2017 and using

spring ember
#

python isn't installed?

gleaming summit
#

installed

topaz fjord
#

it takes time zoomeyes

gleaming summit
#

Updating session, registration key
Stopped at here

#

🤔

feral matrix
#
superagent.get('https://api.apixu.com/v1/current.json')
        .query({ key: 'My key was here'})
        .query({ q: nyc}) 
        .end((err, res) => {
          const embed = new Discord.RichEmbed();
          embed.setTitle(`Weather In ${res.body.location.name}`)
          .setThumbnail(`http:${res.body.current.condition.icon}`)
          .addField("Name", res.body.location.name, true)
          .addField("Region", res.body.location.region, true)
          .addField("Country", res.body.location.country, true)
          .addField("Local Time", res.body.location.localtime, true)
          .addField("Temperature", `${res.body.current.temp_c}° C | ${res.body.current.temp_f}° F`, true)
          .addField("Feels Like", `${res.body.current.feelslike_c}° C | ${res.body.current.feelslike_f}° F`, true)
          .addField("Wind Speed", `${res.body.current.wind_kph} KP/H | ${res.body.current.wind_mph} MP/H`, true)
          .addField("Wind Degree", `${res.body.current.wind_degree}`, true)
          message.channel.send({embed})
        });

I am trying to do a weather command it works with location I set in the code, how do I do it with args...? like !weather canada and if no arg was provided so it will say "Please specific location"

topaz fjord
#

i dont see the part where you define the arg

feral matrix
#

i don't know how to...

#

I am new with NodeJS reeee

#

java scanner is easier

gleaming summit
#

Parse JSON object first

topaz fjord
#

did you try to learn it first?

feral matrix
#

@gleaming summit the command is working

#

just without args

#

.query({ q: "nyc"})

gleaming summit
#

Ah

feral matrix
#

like that

gleaming summit
#

Then add if condition

feral matrix
#

howwwwww???

#

I mean

#

what should be in the ()?

gleaming summit
#

if (arguments)

feral matrix
#

if (????????) {

gleaming summit
#

the var

feral matrix
#

how do I store args... lets start with that

gleaming summit
#

um

#

how about learning the basic first

topaz fjord
#

if (!defined variable) return <whatever you want>

feral matrix
#

so if I set (not like that) var location = args bla bla bla

#

if (!defined location) return <whatever you want>

gleaming summit
#

Where you storaged argument

feral matrix
#

it will work?

#

I DIDN'T

#

Do you even read what i write?

gleaming summit
#

You said without arguments

feral matrix
#

if I will do !weather New York
and var location = args.slice(1).join(" ");

Location = New York

??

#

@topaz fjord

gleaming summit
#

right

#

I suggest you to add array of locations

topaz fjord
#

why

#

would you do that

#

then that means the user cant find weather on a specific location

gleaming summit
#
const Location = args.slice(1).join(" ")
const locations = {
  'New York' = nyc
}
locations[Location]
#

Like this

knotty steeple
#

New York !== nyc

topaz fjord
#

i dont think they would want to create an array for every single location

#

in the world

feral matrix
#
const superagent = require("superagent")
const Discord = require('discord.js');
var location = args.slice(1).join(" ");

exports.run = async (client, message, args, level) => { // eslint-disable-line no-unused-vars
         if (!location) return msg.channel.send("Please specific location!")
         superagent.get('https://api.apixu.com/v1/current.json')
        .query({ key: 'my key was here'})
        .query({ q: location}) 
        .end((err, res) => {
          const embed = new Discord.RichEmbed();
          embed.setTitle(`Weather In ${res.body.location.name}`)
          .setThumbnail(`http:${res.body.current.condition.icon}`)
          .addField("Name", res.body.location.name, true)
          .addField("Region", res.body.location.region, true)
          .addField("Country", res.body.location.country, true)
          .addField("Local Time", res.body.location.localtime, true)
          .addField("Temperature", `${res.body.current.temp_c}° C | ${res.body.current.temp_f}° F`, true)
          .addField("Feels Like", `${res.body.current.feelslike_c}° C | ${res.body.current.feelslike_f}° F`, true)
          .addField("Wind Speed", `${res.body.current.wind_kph} KP/H | ${res.body.current.wind_mph} MP/H`, true)
          .addField("Wind Degree", `${res.body.current.wind_degree}`, true)
          message.channel.send({embed})
        });
};
#

why this doesn't work?

knotty steeple
#

use weather-js

feral matrix
#

no...

#

the problem is the args

topaz fjord
#

var location should be under exports.run @feral matrix

gleaming summit
#

But array is good at performance then using other methods or etc

feral matrix
#

exports.run = async (client, message, args, level, location) => {

#

this will fix it @topaz fjord ?

topaz fjord
#

no

#

i said under it

#

not in it

knotty steeple
#

just put var location = args.slice(1).join(" "); under that

feral matrix
#

exports.run = async (client, message, args, level) => { // eslint-disable-line no-unused-vars
var location = args.slice(1).join(" ");

knotty steeple
#

and dont use var pls

topaz fjord
#

yes

knotty steeple
#

let or const is better

gleaming summit
#

choose const if the value isn't going to change in future

feral matrix
#

about this line

#

the args are fine

#

but this doesn't work

gleaming summit
#

if (!location)

knotty steeple
#

what is !defined

feral matrix
#

also doesn't work mmlol

#

with (!location

topaz fjord
#

can u try it again

gleaming summit
#

!defined variable means variable named defined variable is not existing

knotty steeple
#

if (!args[0]) also works for me :v

topaz fjord
#

spaces in variable names arent even a thing

knotty steeple
#

^

feral matrix
#

MrSheldon - Today at 11:32 PM
d!weather
testBOT - Today at 11:32 PM
Please specific location!
Oliver Evans - Today at 11:32 PM
d!weather tlv
testBOT - Today at 11:32 PM
Please specific location!

gleaming summit
#

um

#

do console.log(location) and check output

feral matrix
#

returns nothing

#

I think var location = args.slice(1).join(" "); doesn't work

gleaming summit
#

then try console.log(args)

#

and check output

feral matrix
#

wait

#

it works

#

but only if I do it with 2 words

gleaming summit
#

use args[0] instead

feral matrix
#

!weather New don't work
!weather New York Does work
how do I make it work with 1 word...?

gleaming summit
#

Um

knotty steeple
#

@feral matrix limited to 1 word?

quartz kindle
#

if args doesnt include the command itself, then you dont need to do slice

feral matrix
#

I want it to work with 1 word and with multiple words

slender thistle
#

My event doesn't work fsr. Discord.py rewrite.

@bot.event
async def on_message_delete(message):
        async with aiohttp.ClientSession() as session:
            webhook = Webhook.from_url(webh, adapter=AsyncWebhookAdapter(session))
            embed = discord.Embed(title='{0.name}#{0.discriminator}'.format(message.author), description='Channel: {0.mention} | {0.name}\n\n{1.content}'.format(channel, message))
            embed.set_author(name='Message Deleted')
            embed.set_footer(text='{} - {}'.format(now.strftime('%d/%m/%y'), message.id))
            await webhook.send(embed=embed)
gleaming summit
#

My opinion is same

#

Using array

#
    const list = {
      rock: 'rock',
      paper: 'paper',
      scissors: 'scissors',
      r: 'rock',
      p: 'paper',
      s: 'scissors',
      '바위': 'rock',
      '보': 'paper',
      '가위': 'scissors',
      '주먹': 'rock'
    }
    const request = list[nt.arguments[0].toLowerCase()]

I used array like that in my bot's rps command

inner jewel
#

that's not an array

#

it's an object

gleaming summit
#

oof

#

I got the real name of that

quartz kindle
#

are callbacks really that much faster than async?

gleaming summit
#

Isn't async checks the condition of function by calling back?

feral matrix
#
const superagent = require("superagent")
const Discord = require('discord.js');

exports.run = async (client, message, args, level) => { // eslint-disable-line no-unused-vars
         let location = args.slice(1).join(" ");
         if (!location) return message.channel.send(`Please specific location!`)
         superagent.get('https://api.apixu.com/v1/current.json')
        .query({ key: 'KEY_WAS_HERE_LOLXD'})
        .query({ q: location}) 
        .end((err, res) => {
          const embed = new Discord.RichEmbed();
          embed.setTitle(`Weather In ${res.body.location.name}`)
          .setThumbnail(`http:${res.body.current.condition.icon}`)
          .addField("Name", res.body.location.name, true)
          .addField("Region", res.body.location.region, true)
          .addField("Country", res.body.location.country, true)
          .addField("Local Time", res.body.location.localtime, true)
          .addField("Temperature", `${res.body.current.temp_c}° C | ${res.body.current.temp_f}° F`, true)
          .addField("Feels Like", `${res.body.current.feelslike_c}° C | ${res.body.current.feelslike_f}° F`, true)
          .addField("Wind Speed", `${res.body.current.wind_kph} KP/H | ${res.body.current.wind_mph} MP/H`, true)
          .addField("Wind Degree", `${res.body.current.wind_degree}`, true)
          message.channel.send({embed})
        });
};

exports.conf = {
  enabled: true,
  guildOnly: false,
  aliases: [],
  permLevel: "User"
};

exports.help = {
  name: "weather",
  category: "General",
  description: "Display weather of location",
  usage: "weather location"
};

!weather New don't work
!weather New York Does work
how do I make it work with 1 word and with multiple words...?

earnest phoenix
feral matrix
#

what...?

earnest phoenix
#

this is with a point at the beginning

#

normality ..

brisk notch
#

@feral matrix Can u see if NewYork works?

bright spear
#

@feral matrix for location instead of args.slice(1).join(" ") try args.join(" ")

floral leaf
#

Who here uses what for their bot's DB

#

I'm using a custom Redis :>

sick cloud
#

I use Rethink all the way >:3

#

and Enmap/Enmap-level for smaller/private bots

floral leaf
#

I see

night imp
#

Sqlite3 personally

#

(better-sqlite3)

floral leaf
#

Sqlite though can make decent file sizes though I thought

#

Given enough queries

knotty steeple
#

better-sqlite3 ftw

#

i mean

#

it says better

#

so its better

floral leaf
#

lol

knotty steeple
#

in speed and other stuff

floral leaf
#

Is it better than Redis? 😁

knotty steeple
#

idk about redis

floral leaf
#

Ah

night imp
#

and for very small stuff maybe mongo but I mean not embedded and it's nosql

knotty steeple
#

nosql stuff is decent also

#

i dont like mongo

floral leaf
#

Im benchmarking my redis now

#

^^

#

100000 requests completed in 0.94 seconds xD

sick cloud
#

nice

knotty steeple
#

damn

floral leaf
#

Compared to MYSQL as an EXAMPLE:
5000 items 315 000 rows 10784 kB takes 72 seconds

#

5k in 72 seconds lol

knotty steeple
#

ok how to do a basic redis db

floral leaf
#

It's not hard

#

Let me find some resources for you

inner jewel
#

redis is in-memory

#

so it's obviously faster

floral leaf
#

Nope

inner jewel
#

but with enough data it'll use a lot of ram

floral leaf
#

It uses in memory + nosql

inner jewel
#

nosql is database type

floral leaf
#

I just did 100K

inner jewel
#

redis keeps all it's data in memory

floral leaf
#

Actually false

inner jewel
#

it can also save to files

floral leaf
#

ok there

inner jewel
#

but all data will be always kept in memory

floral leaf
#

nvm I retract my statement

#

You are correct it stores in memory then moves to file on shutdown I believe

inner jewel
#

that's the whole reason redis was created

#

you can enable rdb (snapshot)/aof (logs all operations that modify the data)

floral leaf
#

yep

inner jewel
#

aof is instantly written to

#

and is always appended

#

rdb is the whole data, overwritten every save

floral leaf
#

^ This guy knows his redis 😛

inner jewel
#

if you want reliability, use aof

#

if you don't mind losing a couple minutes of data on crashes, only rdb will be fine

floral leaf
#

Which is what I do ^^

inner jewel
#

if you want just a cache, disable both

knotty steeple
#

holy shit

#

this seems over my head

floral leaf
#

I keep aof on for safety

#

Its not hard

knotty steeple
#

and i have not allot of brain cells

floral leaf
#

He's going into the technicals

#

But its very very easy to use/setup

#

You use Linux or what?

knotty steeple
#

windows

floral leaf
#

So I can point you to the correct resource

knotty steeple
#

mainly

floral leaf
#

K

knotty steeple
#

but if i had to use redis on my bot

#

would be linux

floral leaf
#

Thats the Windows port of Redis

#

Although I'd perfer to run redis on Linux

#

What distro do you use?

knotty steeple
#

yes im using it or my bot

#

ubuntu

floral leaf
#

perfect

#

sudo apt-get install redis-server

knotty steeple
#

i need redis windows for beta stuff

floral leaf
#

That will do it all 😃

knotty steeple
#

ok

sick cloud
#

whats redis like?

floral leaf
#

But keep in mind redis by default binds to 127.0.0.1

#

Ok so in java at least this is how it works
redisInstance.set("variable", 1234);

#

As an example

#

That sets the variable named variable's value to the integer 1234

#

Thers not .save .commit or the a query even

#

Its just one line after you define your connection stuff

sick cloud
#

👌

floral leaf
#

Like I said thats basic redis though

knotty steeple
#

cuz with sqlite

floral leaf
#

You can go advanced obviously

knotty steeple
#

you have to use some module

#

well for me in node.js

floral leaf
#

I have mine convert the Object into GSON

#

and store that into Redis

inner jewel
#

issue with redis-windows is that it cannot load rdb files from linux

floral leaf
#

then convert it from Redis > GSON > back to a Java object

sick cloud
#

I like RethinkDB lots, in node.js with rethinkdbdash its easy:

r.table('posts').insert({ id: 0, title: "hello world", createdAt: new Date(), author: user(something).id }).run();
inner jewel
#

on updated linux versions of redis

#

due to a rdb format change

floral leaf
#

Yeh like I said use Linux

#

for a production environment

knotty steeple
#

@sick cloud you use rethink?

sick cloud
#

Yep :3

floral leaf
#

More work than I just did though

#

Adding table like stuff for definitions is basically like using : in your variable

#

Example
redisInstance.set("hi:variable", 1234);

#

lol

#

Hi would then become the main key and then variable would be a subkey

#

Anyway I was just curious on db types people use 😃

subtle steeple
#

Rethinkdb is the way to go now bois

floral leaf
#

Redis 😛

#

:>

subtle steeple
#

Scrap SQLite

floral leaf
#

I've tried so many DBs in the past it's not even funny

#

You name one .. I probally tried it

#

Minus rethinkdb

#

I've done MSSQL, MYSQL, SQLITE, Mongodb, Redis are the ones that I can name off the top of my tongue

#

I've tried way more but cba to name them all

subtle steeple
#

MySQL SQLite Mongodb are bad

floral leaf
#

yep

#

Love how you didnt mention redis

#

:

subtle steeple
#

I prefer rethinkdb coming to it

floral leaf
#

Fair enough

subtle steeple
#

Never heard of redis

floral leaf
#

Oh wow

subtle steeple
#

😂 link me

floral leaf
#

Did you see my benchmark?

sick cloud
#

oof

floral leaf
sick cloud
#

Never even used Redis, heard of it a tiny bit.

floral leaf
#

That link is a benchmark of a custom redis server

#

Is the redis site.. I'm sure you can find better documentation elsewhere though

inner jewel
#

re: Adding table like stuff for definitions is basically like using : in your variable
you don't actually need to use :, it's just convention

#

keys can be anything <= 512MB

#

iirc

sick cloud
#

owo

inner jewel
#

why would you want that, idk

floral leaf
#

true

#

I was just giving random examples I guess

#

^^

inner jewel
#

redis is also nice for leaderboards

#

with sorted sets

floral leaf
#

Like I said though I like to keep my stuff in GSON arrays from a Java Object

inner jewel
#

for json i use jackson

#

gson already gave too many headaches

#

with data corruption

floral leaf
#
            BotAccount account = gson.fromJson(instance.get(s), BotAccount.class);```
#

Works fine for me.. Never ran into a data corruption issue since using it

inner jewel
#

if you don't share gson objects with other threads you should be fine

floral leaf
#

Nah.. I make a new instance each time I need to call something

sick cloud
floral leaf
#

ok so that means they don't support that version you are on

#

<-- Used to be a helper on #ubuntu

#

Aka they don't support bionic

#

You can try using a lower supported branch

#

Here is a list

sick cloud
#

alright, and how do i install a lower release/branch or whatever?

floral leaf
#

Show me your sources.list related to rethink for me

sick cloud
#

How? 👀
(total linux noob here ;-;)

floral leaf
#

sudo nano /etc/apt/sources.list

sick cloud
floral leaf
#

Hmm seems its in sources.list.d directory then: /etc/apt/sources.list.d/

#

then use ls to see if you see the rethink source file

#

It may say something like: rethink.list

#

or something like that

sick cloud
#

i nano'd to that and its empty 👀

floral leaf
#

no cd

#

^^

#

Its a directory

#

Do this:

ls
#

And print the results here for me

sick cloud
#

oh

#

whoops

floral leaf
#

Np 😃

sick cloud
floral leaf
#

yep there it is

#

nano rethinkdb.list

#

And show that

sick cloud
#

okie

floral leaf
#

That shouldn't be empty

sick cloud
#

it isn't ^^

floral leaf
#

alright so now you see where it says bionic

#

Thats the part you change to one of the dists that you want

#

Since you are new.. Let me get it for you 😃

subtle steeple
#

Hi there tony

sick cloud
#

alright ^.^

#

@subtle steeple hey there 👀

subtle steeple
#

👀

floral leaf
#

Use xenial

#

😃

#

so change bionic to xenial

#

No / sorry

#

Then once you do that MAKE SURE to: apt-get update

sick cloud
#

okie

floral leaf
#

Now try installing rethink

#

😃

#

If you get an error on apt-get update though let me know.. They might have a release specific key

subtle steeple
#

Hm looks like Mr.Tony has added me on discord

earnest phoenix
#

@quartz kindle Client is a global variable

#

And I guess it is

#

but idk how to end the listener

sick cloud
#

alright

floral leaf
#

I assume you got no errors Tony?

sick cloud
#

I'm kinda unsure how to save the rethink.list file .-.

#

I edited it i think

floral leaf
#

Oh sht forgot

#

ahaha

#

Ctrl + O

#

Sorry

sick cloud
#

okie

floral leaf
#

Then enter

#

then Ctrl + X

#

Ctrl + X = exit

sick cloud
#

yep

#

ok update worked :D

floral leaf
#

😄

#

Now try to install rethink..

sick cloud
floral leaf
#

hmm

earnest phoenix
floral leaf
#

Try apt-get -f install for me even though usually that means the branchs aren't compatible

earnest phoenix
#

anyone know of a free host?

floral leaf
#

@earnest phoenix For a bot?

earnest phoenix
#

anyone know a good free host for a bot?

#

glitch

#

heroku

floral leaf
#

^

sick cloud
#

okay hold on

earnest phoenix
#

or get a nice pi

#

Im limited on Heroku and id like to continue

floral leaf
#

I really hope apt-get -f install works for you Tony or you might be out of luck on official builds

earnest phoenix
#

Would probs buy a rpi then tbh

#

my vps costs me too much

sick cloud
#

.>

floral leaf
#

yep

#

rip

sick cloud
#

crap

earnest phoenix
#

ahh im try glitch

#

I hate glitch tbh lmao

#

thx for your help @floral leaf

#

or use azure or digital ocean, they're pretty cheap

sick cloud
#

So.. anything else I can try do? D:

earnest phoenix
#

I have an azure server

#

i ment @earnest phoenix

floral leaf
#

Guess what tony

#

😃

earnest phoenix
#

ew rethink

#

anyone got a bot with commands?

#

yeah I do

floral leaf
#

Im helping tony he wants rethink

earnest phoenix
#

but not 4 u lol

floral leaf
#

Tony do wget https://github.com/srh/rethinkdb/releases/download/v2.3.6.srh.1/rethinkdb_2.3.6.srh.1.0bionic_amd64.deb

earnest phoenix
#

lol

floral leaf
#

then dpkg -i v2.3.6.srh.1/rethinkdb_2.3.6.srh.1.0bionic_amd64.deb

#

That will install rethink for bionic

#

😃

sick cloud
#

oo okay yay!

floral leaf
#

I suggest also deleting the rethink.list in /etc/apt/sources.list.d/

#

To do that rm /etc/apt/sources.list.d/rethink.list

earnest phoenix
#

re:GWfroggythonk:

#

rip

#

reThonk

#

;333

sick cloud
#

oof ok

floral leaf
#

opps

sick cloud
#

spoopy

floral leaf
#

I put a / init

sick cloud
#

oh

floral leaf
#

srry

sick cloud
#

all good ^.^

floral leaf
#

dpkg -i dpkg -i rethinkdb_2.3.6.srh.1.0bionic_amd64.deb

#

My bad

#

Btw please delete the source list first

#

and apt-get update

sick cloud
#

alright

floral leaf
#

SO you have a clean system for it to install on

sick cloud
#

the rm thing said that rethink.list didn't exist

floral leaf
#

oh did u already delete it?

sick cloud
#

i dunno 👀

floral leaf
#

cd /etc/apt/sources.list.d/

#

then ls

#

Maybe the thing was called something else

sick cloud
#

owo

floral leaf
#

oh it was

#

its rethinkdb.list

#

lol

sick cloud
#

o lol

floral leaf
#

also the deb should be in /root not in sources.list

#

Your gonna cause an error there

#

rm that too

#

xD

#

cd /root for a correct download directory

#

once u clean and get apt-get working

sick cloud
#

oof ok

floral leaf
#

Technically you could move it too

#

but I assume you already deleted both

sick cloud
#

yep

floral leaf
#

k lol

#

apt-get update first

#

then cd /root

sick cloud
#

alright

#

done those

floral leaf
#

then do that

#

And finally dpkg -i rethinkdb_2.3.6.srh.1.0bionic_amd64.deb

#

Had 2 dpkgs in there at first for the second command

sick cloud
#

should i apt-get install libcurl4?

floral leaf
#

you can or just apt-get -f install

#

Which will auto do it

sick cloud
#

okay

floral leaf
#

And apt-get -f install should install anything else queued aka your rethink

sick cloud
#

:D

floral leaf
#

😃

#

Glad to help.. Now where is my cookie xD

sick cloud
#

🍪 here ^^ :P

floral leaf
#

XD

sick cloud
#

thanks though ❤

floral leaf
#

No problem .. If you ever need any Ubuntu help just hit me up 😃

sick cloud
floral leaf
#

I worked with the Ubuntu people and system (as volunteer) for years

#

Had to leave though sadly because of job stuff

#

Anyway. Glad to have helped.. Gave me flashbacks of good ole days

sick cloud
#

Very cool :V

sick cloud
#

anyone know?

stray wasp
#

Try gitkraken

#

Way nicer

#

And no sorry but I hope my recommendation will help.

quartz kindle
#

microsoft already broke github?

#

xD

uncut slate
#

they haven't even acquired it yet, deal isn't happening until later this year

stray wasp
#

I think it's the reference between local & github that's broken

#

The master branch

#

Try making a new repo.

uncut slate
#

or the good ol git reset --hard HEAD

sick cloud
#

We aren't making a new repo, too many commits..
..and I tried git reset --hard already, did nothing ;-;

stray wasp
#

Do you have commard line git?

#

If so you could try commit there

sick cloud
#

I'm not a fan of it, its disgusting for me lol. but yeah I do have it .-.

stray wasp
#

Mmm give that a try.

sick cloud
#

How?

stray wasp
#

Oh ahh

#

Not sure I use gitkraken

sick cloud
#

.-.

stray wasp
#

Just a sec

sick cloud
#

ok

stray wasp
#

Outlines how to setup etc

#

Click next on the bottom of the the article

sick cloud
#

I already have Git installed

stray wasp
#

Click next on the bottom of the the article

#

It's a guide book

sick cloud
#

already set it up though Thonk

stray wasp
#

Yes. But it's shows you how to commit etc

sick cloud
#

so type git commit -m 'test' or something maybe?

#

I'm just wanting to fix GH desktop ;-;

stray wasp
#

Sorry can't help much I'm in class

#

Scratch that

#

@sick cloud

sick cloud
#

okay

stray wasp
#

Maybe that helps

sick cloud
#

wow no that errors too D:

stray wasp
#

Idk best luck

#

Rip

sick cloud
tawny crow
#

Wow

stray wasp
#

No clue man

sick cloud
#

;w;

stray wasp
#

Maybe this

sick cloud
#

Fixed it >:3

earnest phoenix
#

ugh

#

this is annoying me so much but

#
message.client.config.bumpchannels.map(id => {

    message.client.channels.get(id).send({bump})

    })```
#

It keeps saying cannot send an empty message

#

when bump is a perfectly fine embed

#

smh

sick cloud
#

{ embed: bump }

#

try that .-.

inner jewel
#

because when you do {bump} it gets translated to {bump: bump}

#

which is why {embed} works

earnest phoenix
#

oh

#

im so fucking retarded

#

thank you ;3333

#

if(!message.member.id ==="448629905731747842") return message.channel.send("**Error:** *Permisions invalid!*");

Why isnt this working???

inner jewel
#

operator precedence

#

!x == y

#

means

#

(!x) == (y)

#

you want !==

#

or !(x === y)

earnest phoenix
#

if(message.member.id ==!"448629905731747842") return message.channel.send("**Error:** *Permisions invalid!*");

#

?

#

@inner jewel

inner jewel
#

!==

#

==! would be (message.member.id) == (!"that id")

earnest phoenix
#

Thanks

#

😄

sick cloud
#

So, in my web dashboard I'm making, I have this code:

Router.get('/servers', checkAuth, function(req, res) {
        let array = [];
    
        req.user.guilds.forEach(guild => {
            if (guild.owner === true) {
                array.push(guild);
            }
        });
    
        res.render('viewServers', { title: 'Your servers', user: req.user, guilds: array });
    });

How do I push guilds to the array if the user is an owner OR they have Manage Server permissions?

#

I'm using the identify and guild scopes also :^)

inner jewel
#

check the bit fields

#

if(guild.owner || ((guild.permissions & MANAGE_SERVER_BIT) != 0))

sick cloud
#

okie blobThumbsUp thanks

inner jewel
#

you need to get the actual value from the discord docs

sick cloud
#

oh

#

derp

earnest phoenix
#

Am I wrong or does js node have goto?

#

@earnest phoenix I hosted my bot on glitch.com and im already limited my bots command handler if i put em in one file its 82GB worth of storage lol

#

Uhh

#

uhhhh

#

Command handler itself is 82 GB

#

you know you can make modules in glitch right?

#

not really im new lol

#

im really new to discord bot coding ive studied for years and gave up and now im back trying to make a successsfull bot , my bots name is LevelCord

inner jewel
#

you mean with a custom path?

earnest phoenix
#

yes

inner jewel
#

yes

earnest phoenix
#

Alright, thanks

stray wasp
#

@sick cloud what was it?

sick cloud
#

@stray wasp GitHub desktop just totally broke.

stray wasp
#

oh ok

sick cloud
#

I started using Visual Studio Code's SRC. :3

stray wasp
#

alright

sick cloud
stray wasp
#

nah bro sorry.

sick cloud
#

;w;

stray wasp
#

I'll look in a sec

sick cloud
#

thats when i try pulling

stray wasp
#

I found a fourm

#

@sick cloud

sick cloud
#

thanks

stray wasp
#

Backup bro.

#

@sick cloud

sick cloud
#

already am

stray wasp
#

ok sweet

low rivet
#

@sick cloud use cli

sick cloud
#

ew no >:(

#

fixed it anyways

low rivet
#

cli > *

earnest phoenix
#

node.js music bot command ?

slender thistle
#

Why does this event not work? Any ideas?

@bot.event
async def on_message_edit(before, after):
    if before.content != after.content:
        if before.id == something and not before.author.bot:
            try:
                async with aiohttp.ClientSession() as session:
                    webhook = Webhook.from_url(webh, adapter=AsyncWebhookAdapter(session))
                    embed = discord.Embed(title='{0.name}#{0.discriminator}'.format(before.author), description='Channel: {0.channel.mention}: {0.channel.name}\n\nBefore:\n{0.content}\n\nAfter:n\n{1.content}'.format(before, after))
                    embed.set_author(name='Message Edited')
                    embed.set_footer(text='{} - {}'.format(now.strftime('%d/%m/%y'), before.id))
                    await webhook.send(embed=embed)
            except Exception as e:
                print('Error: {}'.format(e))
``` no errors in console. ![retardEyes](https://cdn.discordapp.com/emojis/286222898836799488.webp?size=128 "retardEyes")
#

Okay, that was wrong. Fixed.

ancient drift
#

emoji is not working on my bot

earnest phoenix
#

eqshards

#

Ok

ancient drift
#

?

earnest phoenix
#
bot.on("message", function(msg) {
   
  if (msg.author.equals(bot.user)) return;

  if (!msg.content.startsWith(prefix)) return;

 var args = msg.content.substring(prefix.length).split(" ");
 
 
  switch (args[0].toLowerCase()) {
 
     case "8ball":
       var fortunes = [
    "Oui.",
    "C'est faux.",
    "C'est vrai.",
    "Sans aucun doute.",
    "Non.",
    "Je ne c'est pas.",
]} 
            if (args[1]) {
               
                    msg.channel.send({embed: {
                    
                    title: "Hmmm... ?",
                    description: (fortunes[Math.floor(Math.random() * fortunes.length)]),
                    }});
            }
       
            
         
    }); ```
fluid basin
#

?

stray wasp
#

code mmmm

languid dragon
#

there is so many things wrong with that

earnest phoenix
#

the code itself is good but .length when I do another command like purge that works and down there it says that .length is not defined while I don't have it in my purge command and that without the 8ball code it works perfectly

#

description: (fortunes[Math.floor(Math.random() * fortunes.length)]),

                                                                           ^

TypeError: Cannot read property 'length' of undefined

#

this error

languid dragon
#

because fortunes doesn't exist in the same scope

#

?????

#

you're declaring it inside a switch

#

it's only declared if args[0] === "8ball"

#

which doesn't make any sense because you do declare it but it's not in the same scope so you couldn't use it anyway

#

that's why "fortunes" is undefined

earnest phoenix
#

and where I have to declare it

languid dragon
#

that's something for you to figure out

earnest phoenix
#

lol okay 😃

stray wasp
#
    let i;
    
    client.guilds.map(g => g.memberCount).forEach(+ i)

I'm a little confused on how to add each map in guilds membercount together. Anyone know any documentation to help me?

languid dragon
#

wdym

#

are you trying to get the membercount of each server?

stray wasp
#

yes and add them together.

languid dragon
#

i think you can use the reduce method

stray wasp
#

oh ok thanks I'll look into it.

languid dragon
stray wasp
#

👍

languid dragon
#

you can also achieve that with client.users.size

stray wasp
#

oh god

#

ok I've completely brain farted that... Thank you.

languid dragon
#

lmfao

pale marsh
#

@ancient drift it’s a custom emoji right?

#

Try it like this: <:emojiName:ID>

#

Add a \ before the emoji to get this

earnest phoenix
#
Evaluating Code
message.guild.members.get("289965520223076352").joinedAt

Output
Wed Dec 31 1969 19:00:00 GMT-0500 (EST)

Anyway got any idea why it says 1969

#

and how to fix

stray wasp
#

is 289965520223076352 a member in this server?

earnest phoenix
#

No

#

Another server

stray wasp
#

damn ok

#

I was going to check it

austere meadow
earnest phoenix
#

erlpack?

#

@austere meadow

austere meadow
#

it's an optional package for d.js

#

you may or may not have it installed

#

even if you don't i've seen people suffer from the same issue

earnest phoenix
#

Okey dokey. I was so confused when it says 1969. Hope it's resolved soon.

#

you could try parsing .joinedTimestamp yourself not sure if its affected by the same issue

#

Yes, it says "0" lol. @earnest phoenix

#

xD

mental solstice
#

Thats the beginning of unix time. Must be an issue converting the milliseconds

earnest phoenix
#

There would be a command for the bot creator to be all right on his bot in any server?

mental solstice
#

never used it

quiet bobcat
#

Is there a way to fetch a user in discord.js master?

#

There is in stable but I can't find one in master

gilded blaze
#

Not sure. Can’t find it in the docs.

quiet bobcat
#

Can't find it either :/

quiet bobcat
#

Oh, didn't see that. Thanks!

gilded blaze
#

Interesting

earnest phoenix
#

I can't npm install canvas >:-)

merry stirrup
#

rip

#

why

earnest phoenix
#

idk

#

it tries to go to like npm_modules/npm/npm_modules

#

idk

#

nvm

#

You have try with

#

npm i canvas

#

Is se same

#

it's not that

#

I need to install something special first :3

#

poop

#

is there anything else then canvas that works I don't have to download something extra? (just so I know)

#

You need to install what?

topaz fjord
#

You need to install node-gyp

#

It's a requirement

earnest phoenix
#

guys why throw err;

^

Error: Cannot find module 'Gallery.js'

#

const Gallery = require("Gallery.js");

bright spear
#

@earnest phoenix probably.this ```js
if(commandfile2) commandfile.run(bot,message,args)

#

u used commandfile2 but then commandfile

earnest phoenix
#

and yet the file exists

#

well then forgot the 2 xd

bright spear
#

@earnest phoenix Is Gallery.js an npm module or a file in your project?

earnest phoenix
#

file project

bright spear
#

try js const Gallery = require("./Gallery.js");

earnest phoenix
#

No it still doesn't work Thonk

#

@bright spear throw err;

^

Error: Cannot find module '../Gallery.js'

#

no 🤔

#

remove a dot

bright spear
#

Gallery.js is in the main folder of your project right? or is it in a subfolder

earnest phoenix
#

its okay

#

but it doesn't work

#

you can help me ? @bright spear in prv ?

bright spear
#

I don't have any other idea

earnest phoenix
#

no is not this is other problem lol

#

@bright spear

#

but the images are not displayed

west raptor
#
const Discord = require("discord.js");

module.exports.run = async (bot, message, args) => {

    let mrole = message.guild.roles.find('name', "Member");
    let aUser = message.author
    if(!mrole) return message.reply("Couldn't find the role. (Member)");

    await(aUser.addRole(mrole.id));
    message.reply("Gave you that role!")



}

module.exports.help = {
    name: "agree"
}
``` why does this always return "Couldn't find role. (Member)"
earnest phoenix
#

Because in your server you dont have create this role

west raptor
#

it wasnt that but thanks anyway