#development

1 messages · Page 593 of 1

pallid zinc
#

I am GOD not owner

vague chasm
#

... Status is global

#

@pliant gorge

pallid zinc
#

Let me check for you

#

Which bot

vague chasm
#

Lol wut

sinful lotus
#

he is a whitename means his bot is not here

#

thats why Im assuming that did he even do a program at the first place?

lunar wasp
#

1234567891011121314151617181920

pallid zinc
#

Lol

late hill
#

He's talking about dsl bot being down

sinful lotus
#

if its dsl bot then

late hill
#

Which probably does have shards

sinful lotus
#

could be the dsl bot itself

lunar wasp
#

anyone want to join my free youtube/spotify premium server?

vague chasm
#

lmao

late hill
#

Lol

sinful lotus
#

no

late hill
#

Epic ad

pallid zinc
#

Yu

#

Send link

late hill
#

..

slender thistle
pallid zinc
#

Lmao

late hill
#

I think it's #tea-time

#

Anyway

vague chasm
#

Anyone here uses discord.js@1.12-dev?

#

The master branch

pallid zinc
#

Nope

#

Master

late hill
#

Still looking for most efficient way to get an array with all user ids from all members in one server with Eris

sinful lotus
#

I do use master

#

but be careful on master

#

its not something that is easy to maintain in a long run

late hill
#

Is there some epic trick I can do or do I have to just loop through all members

vague chasm
#

Hmm why

sinful lotus
#

its in development

#

breaking issues, issues, some unexpected behavior happens

vague chasm
#

so they don't test their changes before pushing to git?

slender thistle
#

Loop is your good bet

sinful lotus
#

yes but look on internal sharding

pallid zinc
#

Yup you are right chan

#

Shin chan

sinful lotus
#

they tested that before pushing

#

but did it work well on everyone?

#

I see a lot of people having issues with it

vague chasm
#

oh ok, unexpected bugs

sinful lotus
#

but they tested it

vague chasm
#

So I was using thisjs message.guild.roles.create({ data: { name: 'Muted', color: '11112' }, reason: 'For muted people' })

#

if I put permissions: { SEND_MESSAGES: false } inside that json ^
it gives error

pallid zinc
#

I love to use RANDOM color

sinful lotus
#

members.keys()

late hill
#

Oh

vague chasm
#

members.forEach(m => anArray.push(m.id))?

late hill
#

Idk

#

How fucked would it be

sinful lotus
#

@late hill just use .keys()

late hill
#

In like a 10k user server

sinful lotus
#

Collection in eris = Map

#

to put it in other words, it extends Map

#

means it has the functions of a map

vague chasm
#

let ids = members.map(m => m.id)?

sinful lotus
#

.keys() returns an array of keys, which is the user_id of the user

late hill
#

Right

#

Ok

#

Bless you

sinful lotus
#
const ids = members.map(m => m.id)
// is same of
const ids = members.keys()

@late hill

#

map = slower

#

because you still need to access the property which is .id

vague chasm
#

Can I use .keys() on discord.js library MemberStore?

sinful lotus
#

Collection extends Map

#

ofc

#

what do you think MemberStore Extends

#

Data store, then collection, then map if I remember correctly

late hill
#

🙏

vague chasm
#

I am using either .map() or .forEach() till now

sinful lotus
#

thats why you read every source you can see

#

Extends means its inheriting the function, properties of the original source

vague chasm
slender thistle
#

See if there's any object that has that permission as its attribute

sinful lotus
#

better include the error

#

when it happens

slender thistle
#

Probably undefined

sinful lotus
#

so that we can know where it exactly happens

vague chasm
#

wait

pallid zinc
#

I can't open it

#

Rip

vague chasm
#
UnhandledPromiseRejectionWarning: RangeError [BITFIELD_INVALID]: Invalid bitfield flag or number.```
sinful lotus
#

I think it doesnt work like that

vague chasm
#

Here is my code again

#
 message.guild.roles.create({
        data: {
          name: 'Muted',
          color: '11112'
        },
        reason: 'For muted people',
        permissions: {
         SEND_MESSAGES: false  
        }
      })```
sinful lotus
#

permissions PermissionResolvable

#

it should be on data

#

not "outside the data:"

vague chasm
#

I have out inside data json

#

Still same error

sinful lotus
#
// Create a new role with data and a reason
guild.roles.create({
  data: {
    name: 'Super Cool People',
    color: 'BLUE',
    permissions: 'an array of permission resolvable or a permission resolvable' // this is the permissions you will give it
  },
  reason: 'we needed a role for Super Cool People',
})
  .then(console.log)
  .catch(console.error);
earnest phoenix
#

its the color

#

pass it a proper hex color

vague chasm
#

That 1 works

#

It sets it to black

sinful lotus
#

so he is fine on that

vague chasm
#

@sinful lotus like permissions: ["SPEAK"]?

sinful lotus
#

yes but thats the allowed permissions

vague chasm
#

but I want to deny permissions

#

yeah

sinful lotus
#

then dont put anything

vague chasm
#

I don't want to deny all permissions

sinful lotus
#

also to deny someone on sending message, you do it in "channel overrides"

vague chasm
#

ik I m doing that too

sinful lotus
#

as well, it wont technically deny all permissions

#

it would combine the permissions of the other roles as well

vague chasm
#

but if I want to deny role permissions for something else, what do I do?

sinful lotus
#

if you have everyone role and u have embed links there, even it isnt in the role u create its fine

vague chasm
#

on the stable branch I used to use

guild.roles.create({
    name: 'Muted',
    color: '11112',
    SEND_MESSAGES: false
})``` and it used to work
sinful lotus
#

you can use bitfield

vague chasm
#

I don't know anything about bitfields

sinful lotus
vague chasm
#

Ohhh

viral spade
#

hi there. do i have to setup a server (expressjs) in order to use the dbl webhooks for information on who upvoted, or is there another way?

lament meteor
viral spade
#

hmm nice, you know of anything like that, but not dbl specific, for receiving any webhook?

mossy vine
#

use express

lament meteor
#

basicly make a post server

mossy vine
#

or anything else, you just need a webserver that can accept post requests

viral spade
#

well i know how to do that but my question is if theres a better way because i would like the code to be standalone so to say and work without much configuration around it.

mossy vine
#

express is very simple

lament meteor
#

^

viral spade
#

its not about the program, i mean the operating system configuration.

mossy vine
#

all express requires is node tho

viral spade
#

if i run it on my pc id have to do anything necessary for a server, security dns updates etc.

mossy vine
#

then buy a vps

#

done

#

ez fix

lament meteor
#

i dont have money

viral spade
#

Well i have a miner here running for 1,5 years now through. and my other bot needs windows powershell to work so it would be really much less costly to have it here

mossy vine
#

then buy money ez

lament meteor
#

use money to buy money

#

amirite @mossy vine

viral spade
#

my pc here at home is perfect for running the bot, except that id liek to avoid making it a server

earnest phoenix
#

you just have to get 2 euros a month lol

#

make someone a bot each month and charge 2€ ez

viral spade
#

So you guys building the server into the same app as the bot or are you running two separate processes for that? (my webhook does only change a database entry)

mossy vine
#

if you can pass data from one process to the other, do that

viral spade
#

do which one of the two?^^

mossy vine
#

if you can pass data from one process to the other, go for 2 processes

#

but it might be simpler to build both into one

viral spade
#

ok thanks

pallid zinc
#

Use pendrive for that

inner jewel
#

what

#

that makes no sense

jolly fog
#

who most i add command to my bot

grim aspen
#

what

restive halo
#

That's a sentence...

dusky marsh
#

Guys, how most add command bot to

pallid zinc
#

``` if (message.content.toUpperCase() === prefix + DAILY) {
message.delete();
if (money[message.author.username + message.guild.name] != moment().format('L')) {
money[message.author.username + message.guild.name] = moment().format('L')
money.updateBal(message.author.id, 500).then((i) => { // The daily ends of the day, so everyday they can get a daily bonus, if they missed it, they can't get it back again.
message.channel.send({embed: {
color: 3447003,
description: 'Recieved your $500 `!daily\. I think you should check \!money`.',
author: {
name: ${message.author.username}#${message.author.discriminator},
icon_url: message.author.avatarURL
}
}});
})
} else {
message.channel.send({embed: {
color: 3447003,
description: 'You already recieved your `!daily\. Check later **' + moment().endOf('day').fromNow() + '**.', // When you got your daily already, this message will show up. author: { name: ${message.author.username}#${message.author.discriminator}`,
icon_url: message.author.avatarURL
}
}});
}
}

});
#

I defined moment

#

With

#

Let moment = require('moment');

dusky marsh
#

Do you need moment instead of moment()?

pallid zinc
#

It should be like?

dusky marsh
#

I looked at the documentation, so nvm on that

ruby dust
#

is it a good practice to open the file on startup and never close it while the program is running?

earnest phoenix
#

no

shell blade
#

Anyone know what this means? Not sure how to fix it.

mossy vine
#
let props = new require('./commands/${f}').bot```
#

that would be the correct one

opaque eagle
#

No that wouldn’t work

#

Do u happen to be using typescript?

shell blade
#

I am using JavaScript.

opaque eagle
#

Or some sort of transpiler

#

Ok

shell blade
#

@mossy vine Like this?

fs.readdir('./commands/', (err, files) => {
    if(err) console.log(err);

    let jsfile = files.filter(f => f.split('.').pop() === 'js');
    if(jsfile.length <= 0) return;

    jsfile.forEach((f, i) => {
        let props = new require(`./commands/${f}`).bot;

        bot.commands.set(props.name, props);
        if (props.aliases !== null) props.aliases.forEach(alias => bot.aliases.set(alias, props.name));
    });    
});
inner jewel
#

what do the command files look like?

shell blade
#
module.exports = {
    name: '8ball',
    description: 'Seek advice from the famous Magic 8-Ball.',
    aliases: ['8-ball','8b'],
    usage: '{prefix}8ball <question>',
    cooldown: { time: 3, users: [] },
    category: 'Fun',
    execute(message, args, bot, prefix) {
    if (args == '') return message.channel.send(':info: Command usage:`' + prefix + this.usage.slice(8) + '`');

    if (!args.join(' ').endsWith('?')) return message.channel.send(':no: That is not a question!');
    else return message.channel.send(responses[Math.floor(Math.random()*responses.length)]);
    }
};
opaque eagle
#

You have to export a class buddy

shell blade
#

Ohh, that's probably what I did wrong. I combined two of my bots' command handlers. One is this, the other is classes.

inner jewel
#

or don't use new

shell blade
#

:p

#

I'll try that. Thanks and sorry!

fathom glade
#

So why has my tip bot have not been listed yet?

grim aspen
fathom glade
#

This would be a benefit to discord

#

It has been about 12 days

grim aspen
#

and plus there's donate bot

fathom glade
#

are suggesting a donation?

grim aspen
#

you would be mentioned and dmmed if you were declined or accepted

fathom glade
#

ok thank you

earnest phoenix
#

how can i show in how many servers my bot is in . Currently it says this

mossy vine
earnest phoenix
#

thanks!

gleaming tulip
#

what language

#

that is not a language, but I got it

#

stable or master

#

the version

marble needle
#

if you didn't specifically get it off master you're probably running stable

gleaming tulip
#

inside a message event

#
<Message>.isMentioned(<Client>)```
#

it returns boolean, so you can put it inside an if statement and get it from that.

gleaming tulip
#

var blobvomiting

#

that won't work anyway

#

since 'a!' has a boolean value of true, the stuff past the || will be obsolete

#
if (<Content of the message>.startsWith('a!') || <Content of the message>.startsWith(<Client>.toString()))
slender thistle
still rune
vague chasm
#

Wtf channel.overwritePermissions() removes old overwrites too???

earnest phoenix
#

@still rune compare the joined_at dates for every user

slim heart
#

what could the solution be for setting the bots presence if one shard restarts;
At the moment when there's a full restart the highest shard broadcasts a set presence because my server count is in my status message, meaning that all the shards have to be online to set the presence or else it'll either error or it'll have an inaccurate count in the name.
This works fine, but when one shards restarts it's presence is not set for another 30 minutes (the amount of time the highest shard intervals through to set the new presence).
This is why i asked the question a while before about if there was any way to retrieve the total guild count from a simple endpoint, which is just, no, its not possible :p.
So how would I go about solving this problem?

still rune
#

ah

#

@earnest phoenix would not have a basic example of how it would be?

earnest phoenix
#

what language are you using

still rune
#

js

lofty hamlet
#

Hi

earnest phoenix
#
RedstoneMiner27Today at 9:03 PM
Wtf channel.overwritePermissions() removes old overwrites too???```
**overwrite**Permissions
halcyon shell
#

js ❤

#

hey

still rune
earnest phoenix
#

hi, i know this is simple but i cant seem to assign nickname to member

#

member.user.setNickname doesnt work

slim heart
#

you dont give nicknames to users

earnest phoenix
#

e.g. message.member.setNickname works, but doesnt with mentions

slim heart
#

you give them to members, as members represent the object that the user has directly with the server

#

@earnest phoenix wdym doesnt with mentions?

earnest phoenix
#

i'll explain details

#

i can assign nickname to message author

#

but, if i did: bruh = message.mentions.members.first();

#

bruh.member.setNickname("asd") wouldnt work

slim heart
#

bruh, is a member

earnest phoenix
#

so no .member

slim heart
#

you dont need to do bruh.member

#

yea

earnest phoenix
#

ahhhh

#

tnx

#

oh one more thing

#

how do i check if bot has permission to e.g. manage messages

#

i can get it for user, but not for client

slim heart
#

guild.me gives you the member of the client

earnest phoenix
#

guild.me.hasPermission?

slim heart
#

yup

earnest phoenix
#

neat

#

wrong server lol

junior summit
#

my life is so bad rn

#
    at Client.<anonymous> (C:\Users\chill\Desktop\chill\discord-bot\bot.js:117:31)
    at Client.emit (events.js:189:13)
    at MessageCreateHandler.handle (C:\Users\chill\Desktop\chill\discord-bot\node_modules\discord.js\src\client\websocket\packets\handlers\MessageCreate.js:9:34)
    at WebSocketPacketManager.handle (C:\Users\chill\Desktop\chill\discord-bot\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:103:65)
    at WebSocketConnection.onPacket (C:\Users\chill\Desktop\chill\discord-bot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:333:35)
    at WebSocketConnection.onMessage (C:\Users\chill\Desktop\chill\discord-bot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:296:17)
    at WebSocket.onMessage (C:\Users\chill\Desktop\chill\discord-bot\node_modules\ws\lib\event-target.js:120:16)
    at WebSocket.emit (events.js:189:13)
    at Receiver._receiver.onmessage (C:\Users\chill\Desktop\chill\discord-bot\node_modules\ws\lib\websocket.js:137:47)
    at Receiver.dataMessage (C:\Users\chill\Desktop\chill\discord-bot\node_modules\ws\lib\receiver.js:409:14)
(node:5460) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:5460) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.```
#
    const helpembed = new RichEmbed() 
    .addField(['All Commands']("tinyurl.com/commandschill"))
    .addField(['Chill Support Server']("discord.gg/ZbEUUU7"))
    .addField(['Invite Chill to your server!']("tinyurl.com/chillinvite"))
    .addField(['Donate']("tinyurl.com/donatechillbot"))
    .addField(['Donate using Patreon']("www.patreon.com/chillbotdiscord"))
    .setColor("RANDOM")
 
    message.channel.send(helpembed)
  }```
#

wot is wrong'

slim heart
#

What the hell are you even doing---

#

Why are you just doing ['stuff'] out of thin air

#

not to mention why are u using it as a function

#

to add a field its;
.addField(title, value)

earnest phoenix
#

contain the values in a string

#

nice embed

steel heath
#

^ .addField("[Hello](www.world.com)")

earnest phoenix
#

markdown isn't code compliant

#

rather use ${[]}

#

with ` around

#

why

#

there's literally no use for that

#

i though all command is a tuple xd

junior summit
#

lol i am so dumb

gleaming tulip
#

embed fields need a title and a value

grim aspen
#

don't forget to use .setTitle("title")

#

before the .addField

gleaming tulip
#

??

earnest phoenix
#

are you ok

gleaming tulip
#

false

grim aspen
#

maybe

earnest phoenix
#

using internal sharding fo rdbls post stats, would i just manually put 0 as the shard since you cant really get current shard

amber fractal
#

I think the lib handles all that if you give it a client

subtle vector
#

im using discord.py and im getting a 400 bad request from this code:

await client.say("{}, The top players are: \n \n {} ```{} points``` {} ```{} points``` {} ```{} points``` {} ```{} points``` {} ```{} points```".format(user.mention, '<@' + firstp + '>', users[firstp]['points'], '<@' + secondp + '>',  users[secondp]['points'], '<@' + thirdp + '>', users[thirdp]['points'], '<@' + fourthp + '>', users[fourthp]['points'], '<@' + fivep + '>', users[fivep]['points']))

any ideas?

scenic kelp
#

Is the message longer than 2000 characters?

subtle vector
#

could be...

#

thanks!

#

it workedf

#

so it was a leaderboard

scenic kelp
#

Also you should consider using f-strings

subtle vector
#

but someone had like a tooooon of points

#

what's an f-string?

scenic kelp
#

It allows you to use the variables within the string without using .format

subtle vector
#

huh

scenic kelp
#

Are you using Python 3? I haven't used d.py in a while, dunno if it supports 2

unique nimbus
#

oh

scenic kelp
#

Actually they apparently were added in 3.6 I guess

unique nimbus
#

for example

await ctx.send(f'{ctx.author.name} you are gay')
#

wait I did it wrong

#

yes

scenic kelp
#

Yeah, it makes it a lot easier to maintain code I find

unique nimbus
#

Yes

#

I use it a lot

scenic kelp
#

But now I use js for most things

unique nimbus
#

My bot is made in python

#

so I know this

#

oofty

slender thistle
#

@scenic kelp correct

#

Fstrings exist since 3.6

scenic kelp
#

Yay i'm intelligent

hushed berry
#

@earnest phoenix you can post server count without shards

earnest phoenix
#

yea but if i want to post shard count

hushed berry
#

o i see

earnest phoenix
#

:p

amber fractal
#

You can get shard count with internal sharding I believe he said

earnest phoenix
#

ik

#

you cant get current shard though

#

and dbl api

#

ask for

hushed berry
#

wdym internal sharding?

earnest phoenix
#

current sahrd

amber fractal
#

Why would you need to?

#

O

#

what?

earnest phoenix
#

@hushed berry on dev build of d.js theres something called internal sharding

#

basically its automatic sharding handled all on one process

#

so no need to communicate between shards etc

amber fractal
earnest phoenix
#

i could write a post without ig but talking about their js lib

hushed berry
#

you could just manually count the number of guilds assigned to that shard

#

if they arent divided

#

however inefficient that may be

earnest phoenix
#

i dont think yall know what im askin :p

hushed berry
#

i know what youre asking :p

#

im trying to provide a solution :p

earnest phoenix
#

nothin about guilds

#

at all

hushed berry
#

you're talking about guild coutn.........?

amber fractal
#

You can get shard id from guild tho

earnest phoenix
#

no

amber fractal
#

No

#

shard count

hushed berry
#

posting guild count

earnest phoenix
#

shardcount posting

hushed berry
#

with the shard count

earnest phoenix
#

no

#

with the new internal sharding

#

there is no way to know your current shard

#

since its all handled on one process

#

and dosnt have a property

hushed berry
#

i realize uber

earnest phoenix
#

the postStats in the lib

hushed berry
#

but you can get the shard of a guild by math

earnest phoenix
#

require current shard

amber fractal
#

(guild_id >> 22) % num_shards == shard_id

#

Well

hushed berry
#

so you can perform that function on all the guild ids

#

and then just post the shard array

#

if you really want

earnest phoenix
#

ok

#

so

#

this

#

is what im trying to figure out

#

i assume

#

i just manually enter 0

#

since

#

internal sharding dosnt provide

#

what shard the process is on

#

and thats my question

#

should i manually enter the 0 shard

#

or is there another way

#

to post stats with the library

#

that wouldnt require current shard

#

im just going to write my own post request

#

nvm

amber fractal
#

Very indecisive

earnest phoenix
#

what?

#

bruv no way to get current shardId on new internal sharding :p

#

since one process

amber fractal
#

I'd just make my own request tbh

#

but you can manually do 0

#

I gues

earnest phoenix
#

thats what im prolly ending up doing

hushed berry
#

why do you even care about shard count at the point, btw?

amber fractal
#

it's his bot framework

earnest phoenix
#

at the point?

hushed berry
#

yeah

#

it doesnt do anythign

#

for posting on dbl

#

like besides displaying

earnest phoenix
#

only purpose is to display

#

but if im going to post why not post all the info :p

amber fractal
#

I post with my lib and it doesnt post shards mmLol

earnest phoenix
#

its just an extra something

#

for the dbl page

#

and since its a bot framework i intend to use many times over why not add it now instead of later etc

ebon crane
#

if anyone want to help dev Tyden DM me you need to know some html css and must know js

amber fractal
#

This isnt the place

potent frost
#

@earnest phoenix wanna see how easy adding commands are 😂

earnest phoenix
#

wdym

potent frost
#
module.exports = commandManager.addCommand({
    commandsAlias: ["ping", "clientPing", "pong"],
    configuration: { guild: false, loud: false, nsfw: false},

    description: `gets the bot's ping`,
    commandArguments: ``,
    example: ``,

    runFunction: (args, params, msgObj, speaker, channel, guild, isStaff) => {
        Util.sendEmbed(channel, 'Ping', `PONG! \n ${client.ping}`, Util.makeEmbedFooter(speaker), null, Colors.Orange, null);
    },
});```
earnest phoenix
#

oh right on

potent frost
scarlet bane
#

args, params, msgObj, speaker, channel, guild, isStaff that is a large amount of redundant arguments

#

especially considering msgObj contains paths to speaker, channel, guild and can calculate isstaff

lament meteor
#

tbh the isstaff part should just be the part of the msg event

scarlet bane
#

or at least speaker.isstaff

pallid zinc
#

How to add RANDOM color

#

I tested
color: 'RANDOM'

#

But not working

amber fractal
pallid zinc
#

What you want

#

Lol

#

const Discord = require('discord.js'); const client = new Discord.Client(); client.on('ready', () => { console.log(`Logged in as ${client.user.tag}!`); }); client.on('message', msg => { if (msg.content === 'ping') { msg.reply('pong'); } }); client.login('token');

#

Take it

#

Lmao

#

Lol

#

What you want

#

Which command

#

Nope

#

I can't give anything else

sinful lotus
#

For some reason I cant remove a border between 2 element

#

in html + css, any idea on why it cant?

slender thistle
#

transparent lemao

serene oar
#

i'd have to see the CSS to tell you why its happening

sinful lotus
#
<!-- Actual Webpage -->
<div id="display">
  <div class="scroll_1">
    <br>
    <h2>Welcome to my Landing Page</h2>
    <img id="loaded_pic">
    <h3>Saya
      <span class="txt-rotate" data-period="4000" data-rotate='[ "Amanogawa", "#0113", " is qt"]'>
      </span>
    </h3>
    </img>
    <svg width="40" height="90" viewBox="0 0 50 130">
      <rect id="scroll_down" x="0" y="5" rx="25" ry="25" width="50" height="120" stroke="white" fill="#686868"
        stroke-width="4">
      </rect>
      <circle id="scroll_moving_circle" cx="25" cy="32" r="8" fill="white"></circle>
    </svg>
    <h5>Scroll Down</h5>
  </div>
  <div class="text_bg">
    <h5>About me</h5>
    <h6>A self taught developer in Node.js. The creator, and one of the maintainer of the Discord Bot named Kashima. I also know a bit of Java and currently studying HTML and CSS. Most of my hobbies include reading visual novels, reading mangas or watching anime when I have time to do so.</h6>
  </div>
</div>

the html code

#
#display {
  height: 100%;
  width: 100%;
  text-align: center;
  display: none;
}

.text_bg {
  background-image: url("https://amanogawa.moe/assets/about_bg.jpg");
  max-width: 100%;
  padding: 50px 80px;
}

.scroll_1, .scroll_2, .scroll_3 {
  position: relative;
  background-attachment: fixed;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.scroll_1 {
  background-image: url("https://amanogawa.moe/assets/bg.jpg");
  min-height: 100%;
  padding-bottom: -10%;
}
serene oar
#

try putting border:none; on the scroll down element

#

my guess is that is the problem

#

might have to override as well, even though that is considered bad practice

#

you can alway inspect using chrome to see where the border is coming from

sinful lotus
#

Ok I'll try

#

eems like it isnt on the scroll down

#

@serene oar I found the issue, it was the padding of the .scroll_1

serene oar
#

interesting

#

must be a part of the framework

#

glad you figured it out

#

oh nvm i see it there

versed pawn
#

Why ?

earnest phoenix
#

Wrong token?

versed pawn
#

No

#

Nothing Activity :(

unique nimbus
#

You can't friend bots tho

#

Oh

ruby dust
#

should I be worried that 640 servers are using 2GB of my server's RAM?

scenic kelp
#

Depends on how much RAM you have

ruby dust
#

100% is 2GB

scenic kelp
#

Then probably yes, what does your bot do?

unique nimbus
#

640/9 is 70 roughly

#

You got 70 more servers before the ram is maxed

ruby dust
#

quote messages, it only caches server basic configs like prefix so idk

unique nimbus
#

You should plan to get more ram tho

grim aspen
coral trellis
#

@grim aspen What language?

grim aspen
#

discord.js

coral trellis
#
if (message.author.bot) return;```
grim aspen
#

going to check

coral trellis
#

Alright

quartz kindle
#

@ruby dust have you checked for possible memory leaks? my bot is at 780 servers using ~300mb ram

ruby dust
#

not yet, but I've currently restarted the bot and now trying to get the updated graph

#

it went down to 76% @quartz kindle

coral trellis
#

What lib are you using?

earnest phoenix
#

@ruby dust how much do you pay for 2 GB

ruby dust
#

$3

inner jewel
#

also where does that data come from?

earnest phoenix
#

.... I'm paying 2$ for 128 mb ram

inner jewel
#

it's more accurate to query the runtime for mem usage

#

it may have allocated more but isn't using it all

ruby dust
#

I'm using OVH's monitoring tab

inner jewel
#

also you can try eg htop

#

to see if the memory is actually being used or it's only disk cache

ruby dust
#

huh, didn't think of that

quartz kindle
#

my google monitoring panel says my bot is using 30-50% cpu, but my top/htop says 1-5% cpu

ruby dust
#

alright I'll check that out then

potent frost
#

@coral trellis night bruh

coral trellis
viral spade
#

good day. is there a way for testing to trigger the webhook for upvotes without actually upvoting?

hushed berry
#

@viral spade right underneath the save webhook button

viral spade
#

lul sorry

#

and thanks

warm wigeon
#

does anyone know why i cant open the glitch dot com website on my ipad? It shows a white screen

earnest phoenix
#

life hack; use proper hosting

grim aspen
#

use a vps

earnest phoenix
#

What is a good not too expensive VPS

hushed berry
#

check pins

west spoke
#

check pins

#

ooF

#

lol the TimIng

scenic kelp
#

Personally I started out on vultr but now use ovh

earnest phoenix
#

?

west spoke
#

click that link

earnest phoenix
#

ah

#

ty

west spoke
#

yw

#

xd

earnest phoenix
#

btw

west spoke
#

?

earnest phoenix
#

did it ever happened a hosting stole a bot

west spoke
#

idk

grim aspen
#

?

west spoke
#

lemme translate

#

"Did a hosting service ever edit/steal a bot?"

hushed berry
#

your host shouldnt even be able to get into the machine if you set it up right

#

well

#

at least into your os

west spoke
#

meh

scenic kelp
#

Why would they want to steal a bot anyways

earnest phoenix
#

Im new to coding so yeah don't know that much xd

scenic kelp
#

That'd be a big privacy concern and they'd get loads of backlash for doing that

west spoke
#

tru point

hushed berry
#

they wouldnt be in business if they stole random people's tokens

west spoke
#

and ye

scenic kelp
#

Especially when you're paying them

hushed berry
#

as long as you dont choose the sketchiest site ever

grim aspen
#

learn to code too

hushed berry
#

or liek some "free hosting here!!" site

#

"just paste your bot token here"

#

maybe i should set something like that up...

scenic kelp
#

I'd back your project

west spoke
#

lol

#

honestly

scenic kelp
#

Praying on idiots != fraud

hushed berry
#

i mean

#

theres really no financial gain in it

earnest phoenix
#

scaleway got even cheaper since that message

scenic kelp
#

Ads

earnest phoenix
#

it's 2€

west spoke
#

if sketchy site != 'costs $10 per month':
print('abandon ship lol')

#

or maybe even less

#

idk

#

thats what i do when im bored dont question

scenic kelp
#
on('userSignUp', (user, token) => {
  new AdvertisingBot(token)
  new Testimonial(user, 'positive')
})```
west spoke
#

ahaha

#

funnE

#

JS im guessing

scenic kelp
#

;s are optional and since im on mobile not gonna type them out

#

ye

west spoke
#

ah

#

mine was py

#

so mEh

scenic kelp
#

ye

#

Could tell by the if

west spoke
#

js has if statements too i think?

#

ok

scenic kelp
#

Yeah but they're
if (condition) {...}

west spoke
#

why do i have a server in my discord that has a image of elon musk as the icon

#

im not gonna question

scenic kelp
#

Not
if condition:
...

west spoke
#

honestly the if staments for py are

earnest phoenix
#

😮

#

My bot is already in 6 servers

#

but with VPS it stays always on right?

west spoke
#
if [condition] {variable} [condition2]:
grim aspen
#

it will keep it on

west spoke
#

so like

scenic kelp
#

If you set it up properly it will always run @earnest phoenix

west spoke
#

if name == 'Lazy':
print(name)

#

meh tru

#

i should put it on some vps

#

but idk yet

#

i should FinIsh it

scenic kelp
#

I can host for you, just send bot token and SSN

earnest phoenix
#

Hey im trying to make it so that it shows the amount of times someone with a certain id sends a message and grab the total, but it keeps saying the total sent is 1? Does anyone know what im doing wrong? Im quite new to programming

west spoke
#

no

#

not goin to do that

#

mmmmmmmmmmmMMMMMMMMMM

#

if it was py it would be so freaking simple

scenic kelp
#

@earnest phoenix I believe it has to do with scoping

#

try declaring without var

#

just i = 0

west spoke
#

you could use files for that

#

i think

earnest phoenix
#

Alright i'll try that thanks

scenic kelp
#

Or just put all your globals in client

#

Ez

west spoke
#

xd

earnest phoenix
#

oh that still gives the same problem

#

is that in the event

scenic kelp
#

You're redeclaring that every time the command is run maybe?

#

Yeah what cry said

marble needle
scenic kelp
#

Declare that before the message event

earnest phoenix
#

use common sense, you're redeclaring the same variable over and over again

#

its not in the event itself its outside it

scenic kelp
#

No, the if isn't the event

#

you have to declare it before the on('message')

earnest phoenix
#

How can I make this code so ony I can do the command

const discord = require("discord.js")

module.exports.run = async (bot, message, args) => {
    if(!message.member.hasPermission("MANAGE_WEBHOOKS")) {
        message.delete()
        return message.channel.send(`**ERROR**\n${message.author} You are missing the permission: **\`MANAGE_WEBHOOKS\`**`)
    }
    let reply = args.join(" ").trim();
    if (!reply)
        message.delete()
    message.channel.send({embed: new discord.RichEmbed()
        .setDescription(reply)
        .setColor("RANDOM")
    });

    message.delete().catch(O_o=>{});
};
module.exports.help = {
    name: "embed"
}
west spoke
#

use your ID

#

ig

earnest phoenix
#

where?
(quite new to coding)

west spoke
#

@earnest phoenix

#

copy the numbers ONLY

scenic kelp
#

Oh shit I have a unit test in < 20 mins

west spoke
#

oof

scenic kelp
#

and I haven't studied

earnest phoenix
#

I know how ID works

#

but how do i edit the code so only I can run it

scenic kelp
#

Add a js if (!msg.author.id == yourIdHere) return;

earnest phoenix
#

like this

    let ownerID = "266962438685982720"

instead of

    if(!message.member.hasPermission("MANAGE_WEBHOOKS"

?

#

ah ty

#

ERROR
@earnest phoenix You are missing the permission: MANAGE_WEBHOOKS

#

thats what it says now

eager kite
#

return it

scenic kelp
#

Because you're missing that permission...

eager kite
#

^

earnest phoenix
#

wait

#

so now only I can use it but I still need MANAGE_WEBHOOKS permission?

#

thats cool

#

um

#

I have the manage webhook permission

#

but still if I do the command it returns:
ERROR
Only cdxx 🦑#6666 can use this command

inner jewel
#

@scenic kelp wrong

scenic kelp
#

O

inner jewel
#

!msg.author.id == yourIdHere won't do what you want

scenic kelp
#

Sad

inner jewel
#

operator precedence

scenic kelp
#

Yes I am dumb

inner jewel
#

! has a higher precedence than ==

scenic kelp
#

!=

earnest phoenix
#

so

#

um

#

to what do I need to change it then?

scenic kelp
#

Remove the ! and do != I thincc

earnest phoenix
#

um

#
    if (!=message.author.id == 266962438685982720) return; {
#

?

inner jewel
#

no

scenic kelp
#

No

inner jewel
#

learn the language before making a bot

#

you won't get anywhere like this

earnest phoenix
#

sorry..

#

Im just trying..

scenic kelp
#

^ not to be rude but what he said

earnest phoenix
#

found out wat was wrong xd

#

forgot the "" by the ID

lofty hamlet
#

A command for ddmall user on a server discord is unautorized by discord ?

earnest phoenix
mossy vine
earnest phoenix
#

ow..

mossy vine
#

there is a js library

#

or whatever language you are using

earnest phoenix
#

thanks didnt see it

mossy vine
#

python lib is broken afaik

earnest phoenix
#

yea js

#

Can I make a command only work in a certain server?
with the server ID?

mossy vine
#

yes

earnest phoenix
#

cool

marble needle
#

the page literally tells you everything you need to know and even gives you codesnippets regarding its implementation, it's not that hard to read the documentation and figure it out

earnest phoenix
#

.

grim aspen
#

do you need help with anything? ^

ruby talon
#

logger.py:

class Log:
    def __init__(self, bot):
        self.bot = bot

    async def log(self, x: str):
        print('Foo' + x)

foobar.py:

class foobar(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @commands.command(name='bar')
        await logger.Log.log(x='bar')

def setup(bot):
    m = foobar(bot)
    bot.add_cog(m)

Anyone know why it says that the self parameter is unfilled when using the log()?
And how to fix this?

slender thistle
#

Still need help?

#

@ruby talon After specifying x in command Logger.log, slap ctx in

#

Also, it will be log.callback

winged river
#

my bot got accepted yaay

unborn nebula
#

Congrats 🍾

spiral ruin
#

hey guys

#

i need bot if know someone like this

#

I need when someone join main room voice called: "Create Party here"
When someone joined there, bot will automatic create for him new room called: Party 1 and bot will moved him in that voice channel. Voice room limit 0/3

west spoke
#

Translation:
"when a user joins a VC named create VC the bot would automatically create a voice channel and move the user to that channel"

marble needle
#

thats pretty damn specific and you probably won't find that anywhere

unborn nebula
#

Ah

marble needle
#

write it yourself

unborn nebula
#

Yeah

west spoke
#

Yuh

unborn nebula
#

Gonna need to pay or write it yourself

west spoke
#

Y e

spiral ruin
#

this bot doint almost that

#

but dont lika nems ofr voice room

#

can i change that ?

#

someone know ?

unborn nebula
#

Would really just recommend buying a cheep laptop to host like i do

marble needle
#

ask in the bot's support server? heavythonk

west spoke
#

^

#

Lemme test that bot for a bit @spiral ruin

spiral ruin
#

cheep laptop and host nasa haha 😄

#

ok test and tell me ty

#

bcs im not rly good on this bots like u guys

#

but i have good server and need this for help my gamers

grim aspen
#

it's alright

unborn nebula
#

Np

grim aspen
#

but do try and learn to code whenever you can

unborn nebula
#

Very useful skill to have

grim aspen
#

just so you can have a better understanding

spiral ruin
#

yes i can understound like normal things about bots/cmd

unborn nebula
#

@grim aspen what language do you program in?

spiral ruin
#

but this what i looking i thinks it's hard for me explain or find

#

and i find this server for look help

grim aspen
#

nodejs

unborn nebula
#

Ah nice

grim aspen
#

library: discord.js

marble needle
#

nodejs is still not a programming language hmm

unborn nebula
#

.py

west spoke
#

Legit took two minutes

#

Just need the channel ID

spiral ruin
#

yes right

west spoke
#

it's good enough

spiral ruin
#

but can i change name

#

that T

#

what is T ?

unborn nebula
#

Temporary

spiral ruin
#

can be replaced to 1 , 2 ,3 ,4

unborn nebula
#

T = temporary

spiral ruin
#

?

unborn nebula
#

Temporary: General

#

Wait

spiral ruin
#

yes i know

#

i need party numbers

west spoke
#

It can not be changed as of now

spiral ruin
#

when some come and scream in party rooms

#

i need check logs

#

all rooms called same

#

i need numbers

#

u know what i mean

west spoke
#

So you want a speech-to-text moderation bot

spiral ruin
#

nah

west spoke
#

Do you even know how long that would take

spiral ruin
#

no that bro

unborn nebula
#

That is allllloooootttt of work

spiral ruin
#

i need same like this bot

west spoke
#

Even creating a mp3 file

spiral ruin
#

i talk about replace name

#

or vc party

#

that is all

west spoke
#

I told you

echo pasture
#

;--;

#

Lol.

west spoke
#

You cannot change the name of the VC as of now

unborn nebula
#

I cant even figure out how to receive audio from a vc

west spoke
#

create a mp3 file, and have it record the audio

spiral ruin
#

T : General - 1 : Party

#

it's not possbile with that bot ?

west spoke
#

No it is now

#

Not~

unborn nebula
#

Sure

spiral ruin
#

ok i will contact support server of this bot

#

and this bot is hard for make

#

like this bot

marble needle
#

just ask your question, no point in asking whether or not you can ask

spiral ruin
#

but difirents party name rooms

#

1,2,3,4

#

?

west spoke
#

It does

#

If I were to rename the 'general' channel to 1

#

Then it would be T: 1

unique nimbus
#

You need to give sections of it what the problem occurred from

marble needle
#

why restrict yourself to input from a single person when you could have a few hundred

vague chasm
#

we only need the code that gives error to identify bugs, not entire code..

west spoke
#

^

unborn nebula
#

^

west spoke
#

^

unborn nebula
#

What doesn’t work?

west spoke
#

Mmmmm...

marble needle
#

thats not how codeblocks work

#

three backticks at the start, three at the end

west spoke
#

^

spiral ruin
#

i tested this bot

#

and it's create double same party room

#

that is problem only about this bot 😦

west spoke
#
if(message.content == 'help') {
        // message.reply('commands');
        message.channel.sendMessage('Quotes: 
*connor licks blue blood* (with stars *)
   
Where is Hank?
   
Hi!
 
How are you?
 
I am good, thanks!
 
sbeve
 
Kickerinio
 
oof
 
Hank_Androids
 
Connor
 
ping
 ');```
#

There xd

unborn nebula
#

^

grim aspen
#

seperating code causes more spam

#

but what lazyneko did doesn't

echo pasture
#

Ye

west spoke
#

And it's colorful o3o

vague chasm
#

sendMessage is deprecated, use .send to prevent problems in future

#

if ur library is discord.js

marble needle
vague chasm
#

change .sendMessage to .send

marble needle
#

<channel>.sendMessage(); is deprecated

#

outdated

vague chasm
#

it will be removed in future

unborn nebula
#

Dep... yes

marble needle
#

the string you're trying to send is probably fucked which is why you get the comma warnings

vague chasm
#

' ' quotes are for 1 line strings

marble needle
#

if you want multiline strings you either have to use ` or combine single strings with a +

vague chasm
#

or use ' with \n to separate line

west spoke
#

I was just fixing your spam

#

I know nothing about js

#

And did you have to ping me xd

marble needle
#

mind sending a screenshot of the code you sent earlier (alternatively you could use discord's codeblocks but use em properly, no need to separate anything)

vague chasm
#
if(message.content === 'help') {
        // message.reply('commands');
        message.channel.send("Quotes:\n*connor licks blue blood* (with stars *)\n\nWhere is Hank?\n\nHi!\n\nHow are you?\n\nI am good, thanks!\n\nnsbeve\nKickerinio\n\noof\n\nHank_Androids\n\nConnor\n\nping");```
@earnest phoenix tell me if this code works? ^
west spoke
#

But that's py?

vague chasm
#

...?

grim aspen
#

no

#

that's js

west spoke
#

Or does js now look very similar to it

vague chasm
#

I edited code

#

it was ===

#

not ==

west spoke
#

That if statement looks almost exactly like a python statement

unborn nebula
#

Yeah

#

Just no colon

west spoke
#

Ye

vague chasm
#

and @west spoke == can also be used in js but it is for .type

marble needle
#

i hope you realize that == works aswell

west spoke
#

MeH

unborn nebula
#

I like is most of the time

vague chasm
#

== is only for type

west spoke
#

ime

unborn nebula
#

Shhhh

marble needle
#

holy shit might that be c++ because that if statement literally looks like something out of c++

vague chasm
#

for == in js
if (message.content == String) message.reply("message was a string!")

marble needle
#

can't get any more wrong than that

#

== compares values, === compares values aswell as types

unborn nebula
#

Ah

vague chasm
#

no

#

== compares types

marble needle
#

can you do like

#

2 seconds

#

of research

west spoke
#

xd

marble needle
#

how do you even work on bots if you have no clue about the most basic syntax there is to any programming language, shit's beyond me

west spoke
#

Me?

vague chasm
#
if(message.content === 'help') {
        // message.reply('commands');
        message.channel.send("Quotes:\n*connor licks blue blood* (with stars *)\n\nWhere is Hank?\n\nHi!\n\nHow are you?\n\nI am good, thanks!\n\nnsbeve\nKickerinio\n\noof\n\nHank_Androids\n\nConnor\n\nping");```@earnest phoenix  does that code work or not??? ^
marble needle
#

no

unborn nebula
#

Me?

vague chasm
#

I have edited something in the code

marble needle
#

yes sir

#

read above that

vague chasm
#

I never used == so

#

I always used .type

marble needle
#

if you have never in your life used == why in the world are you claiming things you cannot have any idea about

vague chasm
#

I had read about == a year ago...

slender thistle
#

=== compares types?

vague chasm
#

types and values

marble needle
#

aswell as value yes

slender thistle
#

Well that's fucking weird

#

Whatever

marble needle
unborn nebula
#

Neet

vague chasm
#

aaaaaaaaaaa

#

white theme

unborn nebula
#

Ew

west spoke
#

xd

marble needle
#

thats the firefox console which for some reason isn't affected by my dark theme

slender thistle
#

Actually wait, I got it wrong. Sounds about right

vague chasm
#

use node.js console

slender thistle
#

Yeah thanks for clearing my memory up

vague chasm
#

search node in Start

marble needle
#

you don't have to teach me about how to use my environment, i certainly am well aware of how to use node

#

it just seemed faster to use my browser

#

to prove a point i shouldn't have to prove in the first place to someone who develops bots

vague chasm
#

oof

marble needle
#

let's start over, https://hastebin.com/ paste the code snippet over here for simplicity and send the link in here

#

does it error out in your console when trying to use the command

#

so your string fucks codeblocks thats for sure

#

sec

#

if you just copy pasted what i sent you it obviously won't work because im using a different library

quartz kindle
#

@earnest phoenix

#

this is fucking your entire code up

marble needle
#

that's commented out anyway

#

at least it should be

quartz kindle
#

oh its commented, im blind lul

marble needle
#

if you need to use ' somewhere within a string define the string itself with either " or `

quartz kindle
#

also, you have missing brackets

gleaming tulip
#

sendMessage PPepoWTF

#

that's so deprecated

marble needle
#

he's already been told

#

fix your brackets before caps responding to something he's right with

quartz kindle
#

how is he not right?

marble needle
#

sendmessage is outdated and you shouldn't use it period

quartz kindle
#

deprecated means its still in the code for compatibility reasons but will be completely removed in future versions

#

so they give you a time frame for you to adjust your code before the next update permanently removes it

#

it still works for now, but who knows for how long

earnest phoenix
#

Anyone help me?

marble needle
#

as tim mentioned earlier, your code doesn't execute properly because you're throwing brackets and braces all over the place

earnest phoenix
#

(node:2704) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'id' of null

#

my swear blocker

marble needle
#

whatever you're trying to read the id of isn't defined

#

says so right there in plain english

earnest phoenix
gleaming tulip
quartz kindle
#

msg doesnt have a guild

#

if its dms

gleaming tulip
marble needle
#

swear filter in dms

quartz kindle
#

hows that even an omegalul anymore

earnest phoenix
#

const kufurengel = db.fetch(`kufur_${msg.guild.id}`)

#

its false?

marble needle
#

if your bot processes messages sent via dm channels it won't be able to grab an ID

#

= is for variable assignment

#

== and === are for comparison

earnest phoenix
#

== or ===?

marble needle
#

=

earnest phoenix
#

const kufurengel == db.fetch(`kufur_${msg.guild.id}`) ?

marble needle
#

for the third time, no

earnest phoenix
#

:/

#

i don't understeand

#

yea

marble needle
#

if msg.channel.type ( https://discord.js.org/#/docs/main/stable/class/Channel?scrollTo=type ) is 'dm' or 'group' msg does not have a guild property

#

cause there is no guild

#

if your bot responds to message events fired from dms your code will error because it cannot get an object property as it doesn't exist

earnest phoenix
#

:/

marble needle
#

that will get you the channel's id, not the guild's id. if you have things saved in your db under guild ids you'll be searching for a long time if you try accessing your data via channel ids

gleaming tulip
#

Guys it's better to actually learn javascript before trying to code

#

just a little advice

quartz kindle
#

@gleaming tulip why are you so hungry

gleaming tulip
#

why'd you say I'm hungry

#

and why here as well thonkang

quartz kindle
#

because you're eating so much

gleaming tulip
#

false

#

just read the emote name

quartz kindle
#

im meming you

gleaming tulip
#

bad meme

quartz kindle
#

you didnt get it

earnest phoenix
#

Sorry, I don't understeand 😦

quartz kindle
#

@earnest phoenix do you know what a DM is?

marble needle
#

😩

gleaming tulip
earnest phoenix
#

@quartz kindle directmessage ?

quartz kindle
#

yes

earnest phoenix
#

hi

marble needle
#

100 points, are direct messages guilds?

#

guilds = a server (like the one we're in right now)

earnest phoenix
#

how many time will take to approve my bot in the site ?

quartz kindle
earnest phoenix
gleaming tulip
#

@quartz kindle there

quartz kindle
#

?

#

are you dumb or just really thick?

#

lmao

gleaming tulip
#

that's an unfortunate statement sir

marble needle
#

one is a kinder version of saying the other hmm

quartz kindle
#

ok so lets clear it up: i know what spoon feeding is, and we are not really spoon feeding here, and you kept spamming the spoon feeding emote, so i memed you because it looked like you were feeding yourself with so many emotes

earnest phoenix
#

@earnest phoenix ty

gleaming tulip
#

how is it not spoon feeding, that's such a basic error, with means they have very low JS knowledge.

grim aspen
#

jesus christ

#

you said spoonfeeding means that?

marble needle
#

if that's spoonfeeding why don't we consider references to the api/documentation spoonfeeding

#

can easily be researched

#

if people can't find it or simply aren't sure they're incompetent and have no clue how to use the language they're working with™

grim aspen
#

and what is this?

smoky spire
#

You forgot the part of the error with the error

grim aspen
#

that isn't the full error

#

there you go

#

Error: Cannot find module 'F:\project101'

earnest phoenix
#

exactly what is says

grim aspen
#

imma save that to my bookmarks

unborn nebula
#

I like that imma save it

#

Make sure to click it if i encounter a problem

mossy vine
#

@earnest phoenix who made that website and why is there a node_modules directory in it

earnest phoenix
#

its react

mossy vine
#

react loads all of that?

earnest phoenix
#

it's what deploy outputs

#

🤷

mossy vine
#

i love how it literally includes a module called "isobject" that is just one line of code lmao

earnest phoenix
#

npm best packet manager /s

mossy vine
earnest phoenix
#

yeah probably because it pulls data from gh pages

mossy vine
#

🤔

earnest phoenix
#

which contains data about commits

#

the entire website is ran on gh pages lol

mossy vine
#

oh thats why everything is rendered client side

earnest phoenix
#

yeah

west spoke
#

xd

mossy vine
#

and he left

west spoke
#

Who

earnest phoenix
#

why doesnt (!message.guild.me.hasPermission("SEND_MESSAGES") work

#

it just ignores it

steel heath
#

message.guild.me.permissions.has("SEND_MESSAGES") is this working

earnest phoenix
#

no

#

it still gives me error in console

#

Missing permissions

#

it works with other permissions

#

just not with send messages

steel heath
#

oh

#

wait a second

#

try with SEND_MESSAGE

#

ok that was dumb it wont work

#

let me try it

earnest phoenix
#

nvalid permission string or number

#

its doesnt exist

west spoke
#

Use the number then

#

Google it

earnest phoenix
#

.

#

if this works

#

if (message.guild.me.hasPermission("ADMINISTRATOR")) {

#

why wouldnt

if (message.guild.me.hasPermissions("SEND_MESSAGES")) {

gleaming tulip
#

why'd you say it's not working

earnest phoenix
#

fdklojasdkg