#development

1 messages · Page 1698 of 1

sudden geyser
#

I believe YouTube has a query parameter for it in the API

earnest phoenix
#

Ah ok 😀 thank you

copper cradle
#

and show what's inside of index.js

sudden geyser
earnest phoenix
#

Are YouTube channel command have nsfw content?

sudden geyser
#

I don't think YouTubers are allowed to upload NSFW content, but that varies.

earnest phoenix
#

YouTube does have NSFW content in its massive platform, I have seen a lot of playlists that are questionable

lusty quest
#

they are sort of, but they wont monetise the content

#

there are a ton of videos from wars where people die, and they still on yt after 8 years

copper cradle
#

I literally saw a dude showing his wiener

#

so yeah, there's nsfw content

sudden geyser
#

Yeah, but then again, that doesn't mean YouTube is allowing that kind of content

earnest phoenix
#

YouTube has a lot of nsfw thumbnails, but little amount of actual nsfw

#

But it is still nsfw

magic zephyr
#

Can anyone recommend me a free bot that can announce youtube videos but I can customize the message

dusky sundial
#

Yes, thumbnails can very easily be considered NSFW

#

especially in those borderline educational videos like breastfeeding tutorials etc.

copper cradle
#

ifttt is pretty easy to use

#

just search for a tutorial on yt

magic zephyr
#

i mean like auto

copper cradle
#

it's auto

#

google ifttt

#

ifttt is actually a pretty useful platform to automate stuff

#

and it's free

#

oh wait

#

apparently they turned it into a paid service

#

sad

#

then your best bet would be just to use mee6

#

although I don't think you can customize the message

magic zephyr
magic zephyr
steep drum
#

That error is saying you're trying to call setlocale, but the object you're trying to call it on is undefined

lone nova
#

See this 2 pic and s say me why my command won't run when I ping someone 😭🙏

#

Pls

#

@earnest phoenix this is with all of my command where I need to ping someone

#

Yes js

paper pilot
#

i cant make snipe command

lone nova
#

@earnest phoenix pls

#

Alr???

old cliff
#

what can we do?

lusty quest
lusty quest
# lone nova What to do
const user = message.author || message.mentions.users.first();
``` should give you the message author when no one mentioned, and give you the mentioned user if mentioned
lone nova
#

Ok I will try

#

And come back

lusty quest
#

if you want to list the roles you have to get the member object not the user object

still musk
#

lone nova
#

@lusty quest no bro

I am not getting any error

My command was working

And now don't know why but my all commands where I have to mention or tag someone it will not work see pic bro I gave

In that 1st) pic see it's working

But in next if I tag anyone no response

lone nova
lusty quest
#

?

#

post the entire command here

#

if its a large snipped use hastebin or something like this

lone nova
#

Ok

#
module.exports = {
    name : 'kick', //command name
    category : 'moderation',
    timeout: 2,
    run : async(client, message, args) => {
        if(!message.guild.me.hasPermission('KICK_MEMBERS')) return message.channel.send('I do not have permission');

        const Member = message.mentions.members.first()
        if(!Member) return message.channel.send('Please specify a member to kick');
        await Member.kick({ reason : args.slice(1).join(" ")})
        message.channel.send(`${Member.user.tag} was kicked from the server!`)
    }
}```
#

See this also same problem

lusty quest
#

you probably also want to check the permissions of the message author. just a thing i notice

#

bit overall it should work

lone nova
#

@lusty quest shall I give u my hole repl and pls see and tell

#

Pls

#

Pls

lusty quest
#

also hasPermission is deprecated use permissions.has() instead

#

also you probably want to check if you can kick the member with Member.isKickable() -> prevents unnecessary API calls

lone nova
#

All is there @lusty quest

See commands will work if I not mention or tag anyone

Wait I shall give u 1 example by pic

#

@lusty quest

lusty quest
#

?

lone nova
#

See this

Is it a api problem ??

lusty quest
#

why do you now take another command with in the mix? fix one then the others

lone nova
#

No I iam just say all having same problem

I am asking is it api problem ???

Maybe ??

lusty quest
#
module.exports = {
    name : 'kick', //command name
    category : 'moderation',
    timeout: 2,
    run : async(client, message, args) => {
        if(!message.guild.me.hasPermission('KICK_MEMBERS')) return message.channel.send('I do not have permission'); //--> hasPermission() is deprecated use permissions.has() instead

        const Member = message.mentions.members.first()
        if(!Member) return message.channel.send('Please specify a member to kick');
        //i suggest to add a check if you can kick the member --> member.isKickable()
        await Member.kick({ reason : args.slice(1).join(" ")})
        message.channel.send(`${Member.user.tag} was kicked from the server!`)
    }
}
```here are a few suggestions
lusty quest
#

and see what it returns

lone nova
#

Ok

magic zephyr
#

Can anyone recommend me a free bot that can announce youtube videos but I can customize the message?

lusty quest
#

i know a bot that can send notifications, but you probably wont find a free one for the customisation unless you make it yourself

magic zephyr
#

but it's down right now

#

so im trying to find a new one

lusty quest
magic zephyr
#

or i need premium

lusty quest
#

premium

#

for modifying messages

#

but its like 1$/month

magic zephyr
#

oh

#

i just want free

#

i cant pay

frigid mountain
#
const Discord = require('discord.js')

module.exports = {
    name: 'serverinfo',
    run: async (message, args) => {
    const logo = ${message.guild.iconURL()}
    const embed = new Discord.MessageEmbed()
    
    .setAuthor(${message.guild.name}, logo)
    .setColor("#FF005B")
    .addField("Server Name", message.guild.name, true)
    .addField("Server Owner", message.guild.owner, true)
    .addField("Total Members", message.guild.memberCount, true)
    .addField("Total Roles", message.guild.roles.cache.size, true)
    .addField("Total Emojis", message.guild.emojis.cache.size, true)
    .addField("Date server was created", message.guild.createdAt.toLocaleDateString("en-us"), true)
    
        message.channel.send(embed)
     }
}

Why the owner code says null

dusky sundial
#

isn't it supposed to be guild.owner.displayName or .nickname?

last tapir
#

hi

#

what does this mean The rest parameter eliminates the need to check the args array and allows us to apply map(), filter() and reduce() on the parameters array.

earnest phoenix
#

How to make the command that only the owner of the server can use ?

dusky sundial
#

In what language?

lament rock
steep drum
lament rock
#

Isn't that the spread operator

steep drum
steep drum
waxen bough
#

it's the ...arg ,right?

steep drum
#

Yeah

last tapir
steep drum
#

Yes

last tapir
#

Basically, when you put it into an array, due to the rest parameter, is it now called an array function?

steep drum
#

No, you don't put it into an array, it's automatically put into an array if you use a rest parameter

lament rock
#

Learn something new every day Smile

last tapir
#

.. and what do you mean by this, please. As opposed to being put in the arguments object when you don't use a rest parameter

steep drum
#

It's all explained in the link

last tapir
#

in summary, please

steep drum
#

What your quoted is the summary...

waxen bough
#

i assume eng is not ur first lang

#

same

#

Basically function (... args){}; the ...args is what rest args are

#

instead of doing Array.from(arguments).slice(1) it gets its own var

lament rock
#

as opposed to function myFn(arg1, arg2, arg3, arg4) {...}

#

Although, you could access that like an Array with the arguments key word

waxen bough
#
var arrayVar = [];
function(some, other, vars, ...restArgs){
  [].push.apply(arrayVar,restArgs);
};
last tapir
#

ah, alrightt

steep drum
wooden rover
#

how could I run my bot and make it online for testing command in vs code

#

i am having some issue

lament rock
#

Object.values(arguments) k_shrug

#

Not that much extra work. It's all ordered as well

#

I'd still rather use spread

lusty quest
steep drum
#

I think they're talking about running it in a debugger

waxen bough
#

Array.from(arguments) work too

#

i just tried

steep drum
#

The spread operator just reduces the amount of work you have to do

waxen bough
#

not here pls

earnest phoenix
#

;-;

earnest phoenix
#

guys pls link to sign to github

quartz saddle
earnest phoenix
#

@quartz saddle do you also got this impossible enigma to solve???,

quartz saddle
#

what enigma?

earnest phoenix
#

give sign up

quartz saddle
#

oh

#

sign up

earnest phoenix
#

i wanna create an acc

quartz saddle
#

ok

quartz saddle
earnest phoenix
#

i got an impossible enigma

#

idk why

quartz saddle
earnest phoenix
#

its for some cubes with numbers

#

and there is 10 like these randomized

#

in a little bit of time

#

!!!

quartz saddle
#

i think thats something on your end, github doesnt use anything like that

#

unless they do and ive never seen it

waxen bough
#

i didn't see that when i was signing up

earnest phoenix
#

..

quartz saddle
#

yeah, me neither

waxen bough
#

or atleast as i remember

quartz saddle
#

and neither have i ever seen it on github ever

earnest phoenix
#

illl try cyber voice

#

like

#

it will says some nubers

#

and i need to write them

#

oof now i signed up

soft glade
#

Is there a way I can make this easier to do so I don’t have to make each one for ever word

#

Dw abt the inspire command right in the middle

earnest phoenix
#

ok

vivid fulcrum
#

don't bother with profanity filters in the first place

soft glade
#

Tbh I just want the n word

#

Oh nvm

vivid fulcrum
#

read from here

soft glade
#

Oh shit

waxen bough
#

oh speaking of where can i find a list of accented chars so members won't use them to sneak a banned word

vivid fulcrum
#

if someone wants to say a slur or a swear word, they'll find a way to say it 🤷‍♂️

soft glade
#

Yeah I should have thought abt that

latent heron
#

I finished my new Website UX design NM_PepeHeadset

soft glade
#

@vivid fulcrum mans basically just said it’s usless @waxen bough

vivid fulcrum
#

yup

waxen bough
#

well

soft glade
latent heron
#

@slender thistle new transword website is done, poggers

vivid fulcrum
#

it's like placing a chair in front of someone to prevent them from walking further

they can just go around the chair

latent heron
#

well

#

idk, it seems most bot devs have a website now these days

#

but i don't think it's a requirement honestly

#

there's no prerequisite to being a bot developer with a webpage

soft glade
#

I just want one so i can store all my commands

latent heron
#

where can you start? i mean just buy a web domain and start coding i guess

soft glade
#

Oh ok

vivid fulcrum
latent heron
#

^

#

github pages are clean

wooden rover
#
const bot = new Discord.Client();
const config = require('./config.json')
const fs = require('fs');
bot.commands = new Discord.Collection();
const mongoose = require('mongoose');

bot.login(config.token);
mongoose.connect(config.mongourl, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
  useFindAndModify: false,
  useCreateIndex: true
}).then(console.log(`Connected To MongoDB !`));

//COMMAND HANDLER 

fs.readdir('./commands',(err,files) =>{
  if(err) console.log(err);
  let jsfiles = files.filter(f=> f.split(".").pop() === "js");
  
  if(jsfiles.length <= 0) {
    console.log(`NO COMMANDS FOUND !`);
  }

  jsfiles.forEach((f,i)=>{
    let sss = require(`./commands/${f}`);
    bot.commands.set(sss.help.name,sss)
  })
console.log(`LOADED ${jsfiles.length} COMMANDS !`);
})

//EVENT HANDLER 

fs.readdir('./events/',(err,files)=>{
  if(err) return console.error();
  files.forEach(file=>{
    if(!file.endsWith('.js')) return;
    const event = require(`./events/${file}`);
    let eventname = file.split('.')[0];
    console.log(`Loaded ${eventname} Event !`);
    bot.on(eventname , event.bind(null , bot));
  });
  console.log(`Loaded Events !`);
})```
#

giving me error

#

is there any issue

earnest phoenix
#

not like that

#
const Discord = require('discord.js');
const bot = new Discord.Client();
const config = require('./config.json')
const fs = require('fs');
bot.commands = new Discord.Collection();
const mongoose = require('mongoose');

bot.login(config.token);
mongoose.connect(config.mongourl, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
  useFindAndModify: false,
  useCreateIndex: true
}).then(console.log(`Connected To MongoDB !`));

//COMMAND HANDLER 

fs.readdir('./commands',(err,files) =>{
  if(err) console.log(err);
  let jsfiles = files.filter(f=> f.split(".").pop() === "js");
  
  if(jsfiles.length <= 0) {
    console.log(`NO COMMANDS FOUND !`);
  }

  jsfiles.forEach((f,i)=>{
    let sss = require(`./commands/${f}`);
    bot.commands.set(sss.help.name,sss)
  })
console.log(`LOADED ${jsfiles.length} COMMANDS !`);
})

//EVENT HANDLER 

fs.readdir('./events/',(err,files)=>{
  if(err) return console.error();
  files.forEach(file=>{
    if(!file.endsWith('.js')) return;
    const event = require(`./events/${file}`);
    let eventname = file.split('.')[0];
    console.log(`Loaded ${eventname} Event !`);
    bot.on(eventname , event.bind(null , bot));
  });
  console.log(`Loaded Events !`);
})```
#

code block

#

whats the error?

swift cloak
#

why is it saying cannot find module "typescript" when i just installed it

#

i ran npm i -g typescript and it still doesnt work

earnest phoenix
#

how are you calling it

latent heron
#

@green kestrel what do you think of this as fitting PSR standards for a logger class?

#
/**
 * Logging events for debugging purposes.
 * The log statement must be used in a conditional
 * statement if the TopError() exception is passed.
 * Otherwise, write to your heart's content!
 *
 * @param int $level  The error level type.
 *
 * @param string $contents  The content that you are logging.
 *
 * @return string
 */
private function log(int $level,
                       $contents)
  {
    // This is the PHP 8 method, un-comment if you would
    // opt to a faster method for logging.

    // $passing = match($contents) {
    //   is_string($contents)  => $contents,
    //   is_array($contents)   => implode("/", $contents),
    //   default               => 0
    // };

    /// PHP 7 moment.
    
    switch($contents)
    {
      case is_string($contents):
        $passing = $contents;
        break;

      case is_array($contents):
        $passing = implode("/", $contents);
        break;

      default:
        $passing = false;
        break;
    }

    if(!$passing) throw new \Errors\TopError("LOG_INVALID");

    $file = fopen("log.txt", "a");
    $timestamp = "[LOGGER] [{$this->levels[$level]}]" . date("F Y, h:i:s A");
    $statement = "{$timestamp} {$attach}\n";

    fwrite($file, "{$timestamp} | {$attach}\n");
    fclose($file);

    return $statement;
  }```
#

Trying to make the changes to fit PSR as you mentioned for TopPHP, I would love to hear your thoughts and feedback on things

#

The other functions basically are just easy accessor methods

#

So instead of having to constantly do \Errors::LoggerBase::log(3, "blah"); you can just do:

$log = new \Errors::LoggerBase();
$log->info("this is an informatory log.");
earnest phoenix
#

guys how do i invite my bot to my server

green kestrel
#

yay library now supports setting presence 😄

latent heron
#

brain sadlonely

green kestrel
#

@latent heron turn that frown upside down 😄

#

@latent heron PSR compliant logger classes derive from a standard PSR\Log class iirc

latent heron
#

i see, i was reading up on the PSR docs so i didn't think there was any actual officially set standard on the exact structure

green kestrel
#

they should derive from this usually

latent heron
#

i looked at various sources though and came together with some sort of compromise

#

i see

#

i'll give this a better look this afternoon then

green kestrel
#

that way you can plug and play any logger that derives the interface as "psr\log"

latent heron
#

the TopPHP wrapper is going through almost a whole rewrite right now

#

to comply with PHP 7 and 8 backwards compatibility, as well as preparations for PHP 8.1 features, PSR standards being enforced, and namespace usage

green kestrel
#

i did something logger related thats similar in my discord library this week, it was using a specific logging library... instead i made it fire on_log events that you can hook and put whatever logger you want there

latent heron
#

mm i see

green kestrel
#

btw

#

if youre going to make it laravel specific i'd never use it

latent heron
#

fuck laravel my guy 😂

green kestrel
#

i dont use frameworks 🙂

latent heron
#

i was heavily debating using like

#

symfony

#

but its for really the backbone stuff on requests

#

i think i want to do this all from scratch though

green kestrel
#

nah go for standalone psr compliant

latent heron
#

i dislike relying on vendors

green kestrel
#

or youre cutting your userbase in half

latent heron
#

gotchga

#

its nice being able to talk to an actual PHP dev

#

thought i was really alone here

green kestrel
#

wanna see how i handle reporting top.gg stats?

latent heron
#

yeah im curious

green kestrel
#

my bot is C++ but my stats reporting is a php cron job

#

one sec

latent heron
#

TopPHP is also a backbone project to me

#

because after this i want to make my first API

green kestrel
#

i have a sql table of about 20 bot lists

#

with field names, post type (formdata or json), api tokens, and urls

#

and a second table of stats

#

the bot clusters update the stats, and then the script runs on cron every 10 mins to post to all the lists

latent heron
#

a reference assignment to stream_context_create and file_get_contents?

green kestrel
#

where?

#

@ isnt reference

#

it silences errors

latent heron
#

oh im sorry

#

im running on fumes of caffeine here 😂 I thought it was a&

#

i have to head to work actually

lament rock
#

Ah yes. Property id does not exist on type { id: string... }
Thank you TypeScript

#

nvm. Why do they put a [] at the end to signify an Array, when they should be using Array<T>

#

So confusing and inconsistent

frigid mountain
#
const Discord = require('discord.js')

module.exports = {
    name: 'serverinfo',
    run: async (message, args) => {
    const logo = ${message.guild.iconURL()}
    const embed = new Discord.MessageEmbed()
    
    .setAuthor(${message.guild.name}, logo)
    .setColor("#FF005B")
    .addField("Server Name", message.guild.name, true)
    .addField("Server Owner", message.guild.owner.displayName, true)
    .addField("Total Members", message.guild.memberCount, true)
    .addField("Total Roles", message.guild.roles.cache.size, true)
    .addField("Total Emojis", message.guild.emojis.cache.size, true)
    .addField("Date server was created", message.guild.createdAt.toLocaleDateString("en-us"), true)
    
        message.channel.send(embed)
     }
}

The command only works for servers I created, when I test it on other servers it doesn't work, when I check my terminal is says can't read display Name and for some reason when other ppl use it, it doesn't work but when I use it it works

vivid fulcrum
#

the owner is not guaranteed to be in cache

#

you need to fetch it

frigid mountain
#

?

#

How

summer torrent
#

@unkempt ocean

sinful belfry
#

@earnest phoenix no promoting your hosting services please

sinful belfry
earnest phoenix
#

why cant i access functions defined in the same file?

#

even naming it doesnt call it

#

how the heck do you delete a page on gitbook

#

i cant find any way to do that

tacit sequoia
#

You can use exports.testFunction()

#

I believe

earnest phoenix
#

im not

tacit sequoia
earnest phoenix
#

how do i make it local function

#

only imports can access it

tacit sequoia
#

To access an exported function, even fron the same file, you can just use exports.exportName

earnest phoenix
#

yeah but how are you accessing the function from the file

tacit sequoia
#

But idk if thats a good method

earnest phoenix
#

lemme try

earnest phoenix
#

it worked lol

tacit sequoia
#

Uh I think hover mouse over it, right click and delete

earnest phoenix
#

javascript moment

tacit sequoia
#

😆

#

You couldve also made a local function and defined the export as the local function

earnest phoenix
tacit sequoia
#

Uhhhh

#

I dont really know

#

I have a gitbook page setup but havent edited it yet

earnest phoenix
#

ok

#

time to google

tacit sequoia
#

Lol

earnest phoenix
#

https://www.Math.pow(10,100).com/

#

guys sorry but how to make a project in github

umbral zealot
earnest phoenix
#

kk

#

@umbral zealot i wanna ask you a question

#

do you have a website

umbral zealot
#

yes I Do

earnest phoenix
#

link

#

What is the problem? Can you help me?

umbral zealot
#

evie.codes and evie.dev

earnest phoenix
#

ok

umbral zealot
earnest phoenix
#

@umbral zealot you're a girl?

umbral zealot
#

export.run is not export.conf now is it

#

you have a command handler expecting a .conf property and you're not providing one

#

so provide one

earnest phoenix
#

coz in your web "she slice she dices shes he teaches"

umbral zealot
#

yes, I am

earnest phoenix
#

kk,i never seen a girl programmed two webs

#

well

#

where did you set your web live

#

hosting

#

@umbral zealot

umbral zealot
#

I have it hosted on a VPS service

earnest phoenix
#

kk

#

@umbral zealot i created a project

#

but html project how?

umbral zealot
#

hold on you want to make a website hosted on github?

earnest phoenix
#

yes

#

nop

umbral zealot
#

https://pages.github.com/ is what you want then

earnest phoenix
#

not hosted

#

i have anoyher one

#

stop

umbral zealot
#

github hosts files, it doesn't do anything else really

earnest phoenix
#

i have a web that

umbral zealot
#

either it hosts your project files, or it hosts a website

earnest phoenix
#

i will make the web there

#

nvm

#

and

umbral zealot
#

Well you have the 2 ways to create a project on github, so, I guess you're good? Unless you can start making sense 😛

earnest phoenix
#

put the project in the hosting web

umbral zealot
#

what

earnest phoenix
#

nvm

#

you know youve experienced true pain when opening gitbook docs crashes your browser because they use too many g jifs

#

i still cant find a way to delete a page on gitbook

#

:( i just realized i was trying to delete the initial page that's why it didnt work

waxen bough
#

puppeteer is a peer dependency

#

can't import it at the top

#

so i can choose not to install it

cinder patio
#

you can

waxen bough
#

but even if it's installed it still throws error

cinder patio
#
let Puppeteer;
try {
  Puppeteer = require("puppeteer");
} catch {}

Maybe the module has a default export

#

try Puppeteer.default

#

if you don't want to use require

waxen bough
waxen bough
pale vessel
#

but only require returns object with default property, no?

opal plank
#

import defaults to default

pale vessel
#

yeah

opal plank
#

require() imports everything

cinder patio
#

yea actually dynamic import shouldn't have .default

#

only require

opal plank
#
import * as a from 'module'
//equivalent of
let a = require('module')
#
import Module from 'module';
//equivalent of
let Module = require('modulee').default
waxen bough
#

ohh it worked now haha

opal plank
#
import {Class} from 'module';
//equivalent of
let {Class} = require('module')
cinder patio
#

it worked when you accessed it through default

#

my question mark key is broken ffs

#

that was a question

waxen bough
#

yes it did

pale vessel
#

bruh

cinder patio
#

weird

waxen bough
#

what

#

uhm could it be better?

cinder patio
#

import should resolve the default by itself but it looks like it doesn't

opal plank
#

import

#

yes

#

import()

#

no

#

import is the equivalent of require()

#

it doesnt resolve on default with import syntax

cinder patio
#

that doesn't sound right

waxen bough
#

and also i had to put await because it's a promise

cinder patio
#

why wouldn't dynamic import also resolve default exports

opal plank
#

import() is the same as require()

#

just async

pale vessel
#

w h y

opal plank
#

cuz dynamic

cinder patio
#

How does that prevent it though

waxen bough
#

these autocomplete that's why i thought (await import('module')).launch() will work

cinder patio
#

even intellisense thinks so

waxen bough
#

idk man at least it worked with .default

#

my problem is no more

opal plank
#

CommonJS would be a good choice for a Node application. All import() expressions will be translated to require() calls, which can conditionally executed at an arbitrary point in your program without having to load, parse, and execute the module upfront.

cinder patio
#

Yes, but typescript already knows which exports are default so it can just do .default for you

#

or I dunno

earnest phoenix
#

const client = new Client({
^

SyntaxError: Identifier 'client' has already been declared
at wrapSafe (internal/modules/cjs/loader.js:979:16)
at Module._compile (internal/modules/cjs/loader.js:1027:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
at internal/main/run_main_module.js:17:47

how can i fix?

waxen bough
#

i will sleep now my mother screaming at me

opal plank
umbral zealot
opal plank
#

i forgot to mention that

#
let Pup: import('puppeteer').Puppeteer;
earnest phoenix
#

so what should i change sorry im not the best

umbral zealot
#

you have 2 lines that say const client = ??? something

#

delete one of them

earnest phoenix
#

okkk

#

thx

rapid wharf
#

my bot has a avatar command its working fine but sometimes like it shows old PFP of the user when the user changes his pfp recently. is it a database problem or my bots problem(curenty i m using my bot throught the terminal, so i thought it can be bots problem), if bots problem what can be the solution???

sudden geyser
#

It's probably a caching issue between the user or your bot not receiving the most up-to-date information.

opal plank
#

discord should be dispatching user changes real time

earnest phoenix
#

guys someone use netifly?

#

host service

opal plank
#

which library you are using @rapid wharf ?

umbral zealot
opal plank
#

hmmm i only know js, but i would assume member intents should affect that

#

let me check the portal rq

earnest phoenix
umbral zealot
#

what's your github repo URL, lemme check?

earnest phoenix
#

?

opal plank
#

found it @rapid wharf

earnest phoenix
opal plank
#

do you have guild intents?

earnest phoenix
#

but

#

ill will make it public

steady raven
umbral zealot
#

did netlify actually log you in to github before it asked for your URL?

rapid wharf
umbral zealot
#

because if it didn't... it can't see private URLs (I've not synced netlify with github so I Dunno)

earnest phoenix
#

it didnt ask for url

opal plank
earnest phoenix
#

it asked for rep

opal plank
#

send a request to the api to /users/user_id

umbral zealot
#

do you have an index.html in there then?

opal plank
#

here ^^

rapid wharf
opal plank
#

either intents, or

#

if you dont wanna bother

#

fetch it from the api

#

just keep in mind ratelimits

rapid wharf
#

ohk

#

thanks

opal plank
#

so be sure to limit your command usage so you dont end up spamming it

earnest phoenix
opal plank
#

no problem

umbral zealot
#

it did show you this screen right? connecting to github?

earnest phoenix
umbral zealot
#

ok so it did actually authorize you. good

earnest phoenix
#

yes

#

but when i click the url of my website

#

uugdngndfvjufn/netifly.app

#

it says page not found

#

wtf

umbral zealot
#

wait what Thonk

#

what's the URL?

earnest phoenix
#

see

#

@umbral zealot

rustic hamlet
#
@bot.command()
@commands.guild_only()
@commands.has_permissions(kick_members=True)
async def mute(ctx, user:discord.Member=None):
    if user is None:
        await ctx.send(":no: **Please specify a user.**")
        return

    mute_role = get(ctx.guild.roles, name="Mute")
    if not mute_role:
        await ctx.send(":no: **Create a mute-role first. It has to be named `Mute`. Remember that it's case sensitive too...**")
        return

    if mute_role and mute_role in user.roles:
        await ctx.send(":no: This user is muted already.")
        return

    try:
        await user.add_roles(mute_role)
        await ctx.send(f":yes: **Muted {user.name + "#" + user.discriminator}**")
    except:
        await ctx.send(":no: **I can't mute this user...**")```

I get this Error, can somebody help me?
```C:\Users\MYUSERNAME\Desktop\Programmieren\Python\Discord\Discord Bots\Bot>python "Bot.py"
  File "Bot.py", line 86
    except:
    ^
SyntaxError: invalid syntax
#

line 86 is line 21 here

#

the lowest except:

umbral zealot
#

¯_(ツ)_/¯

#

did it successfully complete all 3 of these steps?

rustic hamlet
scenic cove
#

Plz how to do : ban, unban and kick

sudden geyser
#

be more specific

opal plank
#

i got this

rustic hamlet
scenic cove
#

no im in discord.js

opal plank
#

aaaw

scenic cove
opal plank
sudden geyser
opal plank
#

i was going to reply with this

green kestrel
#

anyone here who knows js but little to no C++ mind looking over my mini tutorial and pointing out anything that doesnt seem clear so i can expand on it on the page?
https://dpp.brainbox.cc/a00008.html

green kestrel
#

damnit sec

opal plank
#

you said its d.js

#

let me get the mthod

scenic cove
#

ok im waiting

green kestrel
#

there, updated the url to an actual url

opal plank
scenic cove
#

thk u very much @opal plank

#

ur bot is discord.js?

opal plank
#

dont spoonfeed, second he is using js, not py

rustic hamlet
#

No its python

scenic cove
#

im not in python

rustic hamlet
rustic hamlet
opal plank
#

i dont know py well enough to give advice, so thats why im not replying creeper

#

prob better to just wait someone who knows py well enough

#

actually

#

nah fam

#

i gotchua

earnest phoenix
#

hey, what is the properties for stages channel?? please

opal plank
#

@slender thistle you got a customer

opal plank
#

the only difference is the type

#

which is 13

opal plank
scenic cove
# opal plank its in the example

That ? :

guild.members.ban('84484653687267328')
  .then(user => console.log(`Banned ${user.username || user.id || user} from ${guild.name}`))
  .catch(console.error);```
earnest phoenix
#

same? because when i make a join command my bot return "please join a vc"

opal plank
#

that is an example, yeah

scenic cove
#

but is for ban

opal plank
#

staging channels are still in development

scenic cove
#

i want unban

opal plank
#

from unban

scenic cove
#

Their is NO unban!

opal plank
earnest phoenix
opal plank
#

i sent you 3 links

#

check them

opal plank
#

its not in the docs

scenic cove
earnest phoenix
#

where du u find it :'(

scenic cove
#

The 3 isn't a unban

#

aaaaa

#

i found it

#

sorry

opal plank
opal plank
#

you need to send 2 requests outside

#

one is for the actual join of voice

#

the second is request to speak along with a topic payload

earnest phoenix
#

@umbral zealot what was the problem

scenic cove
#

i did kick

#

is it that ?

#
if (message.content.startsWith(prefix + "kick")) {
        const user = message.mentions.users.first();
       if (user) {
         const member = message.guild.member(user);
          if (member) {
            member
              .kick('Optional reason that will display in the audit logs')
              .then(() => {
                
                message.reply(`Successfully kicked ${user.tag}`);
              })
              .catch(err => {
                
                message.reply('I was unable to kick the member');

                console.error(err);
              });
          } else {

            message.reply("That user isn't in this guild!");
          }

        } else {
          message.reply("You didn't mention the user to kick!");
        }
      }```
umbral zealot
earnest phoenix
#

but he dont join

slender thistle
#

man

opal plank
#

thats why i told you

#

you need to first join

#

then send 2 other requests

#

one for topic

earnest phoenix
#
  if (message.content === '/join') {
    // Only try to join the sender's voice channel if they are in one themselves
    if (message.member.voice.channel) {
      const connection = await message.member.voice.channel.join();
    } else {
      message.reply('You need to join a voice channel first!');
    }
  }``` (its an exemple on the doc, so that cant work no?)
opal plank
#

and one for requesting to join

#

which requires checking the permissions

#

REQUEST_TO_SPEAK is a new permission

#

a lot of libs dont have it

#

we have it in detritus already

#

i asked cake to add it

#

but still

earnest phoenix
#

oaky

opal plank
#

its super early in dev, you should wait for your lib to support stage channels in all honesty

#

its not that hard, but im getting a im new to this vibe from you

#

but in case you want to attempt it

rapid wharf
#

@opal plank i tried that add bot thing on yr status, but i was unseccesfull in running that js file do i have to install node through my terminal like
intall node

earnest phoenix
#

okay, thx

opal plank
#

you need one for this

#

/channels/:channelId

#

with the payload for topic

#

if theres none

#

the second is '/guilds/:guildId/voice-states/:userId'

opal plank
#

requesting to join

vivid fulcrum
#

do you send that through rest or websocket

opal plank
#

rest

#

both rest

vivid fulcrum
#

stupid design

#

lol

opal plank
#

theres a LOT of caveats tpo that endpoint

#

let me see if i can get the docs rq

#

fuck where is it

#

they closed it

vivid fulcrum
#

lmfao

#

i can spell

opal plank
#

@vivid fulcrum

#

to put it bluntly, its annoying

vivid fulcrum
#

messy

opal plank
#

theres quite a few checklists you gotta do

#

thats why i dont recommend touching them yet

#

until more libs support it

vivid fulcrum
#

it's also so weird they made that a rest request

opal plank
#

afaik detritus is the only one with it yet

#

i went to bother him to add it as soon as it came out

slender thistle
#

LMFAO

earnest phoenix
#

@umbral zealot

umbral zealot
#

what

#

gotta sit here adn wait for you to type your question now

#

smh

earnest phoenix
#

i wanna create on netifly like a web(i did) and shortcut like
my web/contact.com

#

how

umbral zealot
#

I asked you a question about your netflix deployment screen earlier

#

and you never answered

opal plank
umbral zealot
#

errr netlify sure

#

blame my brain's autocorrect

earnest phoenix
#

lol

opal plank
earnest phoenix
#

well

#

how

#

to

umbral zealot
#

I literally just did it for the first time and it was flawless

#

so I dunno where you missed a queue buddy but it works perfectly fine for me

earnest phoenix
#

ok

earnest phoenix
#

like

umbral zealot
#

dude first, stop pinging me, it's obnoxious

#

Second, what do you mean by "Shortcut"

earnest phoenix
#

example/about.com

scenic cove
#

how to do ping ?

umbral zealot
#

that's a URL, not a "shortcut"

scenic cove
#

like : the ping is 9485885385848ms

earnest phoenix
#

@scenic cove

scenic cove
#

what?

earnest phoenix
#

@ your name

scenic cove
#

?

umbral zealot
#

no they mean a bot ping command you derp

earnest phoenix
#

that is ping

scenic cove
#

xD

opal plank
earnest phoenix
opal plank
#

or do a request to users/@ me

scenic cove
opal plank
#

that IS discord.js

scenic cove
#

ok

opal plank
#

also

bleak solar
#

guys i need some help. why i cannot vote. it said i already vote but i didnt

opal plank
#

half of your questions you're asking can be looked up easily on google@scenic cove

earnest phoenix
bleak solar
#

thank you

umbral zealot
earnest phoenix
#

ok

scenic cove
opal plank
#

search for latency

#

not ping command

scenic cove
#

didn't working : use websocket.ping() @opal plank

opal plank
#

what EXACTLY did you write?

scenic cove
#

ping command bot discord

earnest phoenix
#

would updating role every 10 secs be considered api abuse

opal plank
#

you said what i wrote doesnt work

#

so what did u write in ur code

opal plank
#

rainbowroles

scenic cove
earnest phoenix
#

nah its not color

scenic cove
#

@opal plank

earnest phoenix
#

what

#

r u dumb

earnest phoenix
#

its says use it

opal plank
# earnest phoenix would updating role every 10 secs be considered api abuse

Discord has a very loose interpretation of API abuse; as quoted by them:

@​​Danny automating the API in that way /is/ abuse. Automatically doing "X" every N is generally not a good idea. Where X could be posting a message, changing someone s nickname, renaming a role, changing a channel topic, etc... 

Generally bots should only react to user actions... 

Although, for very large N we generally don t care. But for small N, we do care. Think rainbow bots, etc....```


"N" is not really defined, as rate limits are not a good thing to try to get very close to. You re going to have to mostly use common sense here, compare how close you are the rate limit, how often you do this, etc.
https://cdn.discordapp.com/attachments/272764566411149314/604449094680707072/unknown.png
earnest phoenix
#

not write it on code

scenic cove
#

ok????

opal plank
#

@scenic cove Before you make a Discord Bot, you should have a good understanding of JavaScript. This means you should have a basic understanding of the following topics:

  • proper syntax
  • debuging code
  • basic features (vars, arrays, objects, functions)
  • read and understand docs
  • nodejs module system

As much as we d like to assist everyone with making their bots, we rarely have the time and/or patience to handhold beginners through learning javascript. We highly recommend understanding the basics before trying to make bots, which use advanced programming concepts.

Here are good resources to learn both Javascript and NodeJS:

Javascriptinfo: https://javascript.info/
Codecademy: https://www.codecademy.com/learn/javascript
FreeCodeCamp: https://www.freecodecamp.org/
Udemy: https://www.udemy.com/javascript-essentials/
Eloquent JavaScript, free book: http://eloquentjavascript.net/
You-Dont-Know-JS: https://github.com/getify/You-Dont-Know-JS
NodeSchool: https://nodeschool.io/
CodeSchool: https://www.codeschool.com/courses/real-time-web-with-node-js
Evie s Accelerated JS: https://js.evie.dev/

Please take a couple of weeks/months to get acquainted with the language before trying to make bots!

scenic cove
#

WHAAAAT?

opal plank
#

read what i sent blaker

scenic cove
earnest phoenix
#

yea,you writed use websocket.ping

scenic cove
earnest phoenix
opal plank
lone nova
#

any pls see this
what is this error how is it possible

#

pla

scenic cove
lone nova
#

pls

earnest phoenix
lone nova
#

pls

earnest phoenix
earnest phoenix
#

you litteraly copied code

opal plank
umbral zealot
lone nova
cosmic forum
#

lol

opal plank
#

you dont know enough javascript to code a bot right now

umbral zealot
earnest phoenix
#

guys how to publish web on netifly

umbral zealot
#

the error says bot.on isn't a function

lone nova
umbral zealot
#

uhhh use the same variable name

cosmic forum
#

@lone nova dont directly copy paste code without first understanding/editing it

lone nova
#

const client = require("../../index")
const { MessageEmbed } = require('discord.js');
const logsChannel = '828994844634382386';

client.on('guildCreate', (guild) => {
    client.channels.cache.get(logsChannel).send(
        new MessageEmbed()
        .setTitle('NEW SERVER')
        .addField('Name', `${guild.name}` )
        .addField('ID', `${guild.id}`) 
        .addField('MEMBERS', `**${guild.memberCount} members!**`)
        .addField('OWNER INFO', `${guild.owner} (${guild.owner.id})`)
        .setFotter(`Currently in ${client.guilds.cache.size} guilds!`)
        .settThumbnail(guils.iconURL({ dynamic: true }))
        .setTimestamp()
        .setColour('GREEN')
    )
})

client.on('guildDelete', (guild) => {
    client.channels.cache.get(logsChannel).send(
        new MessageEmbed()
        .setTitle('NEW SERVER')
        .addField('GUILD INFO', `${guild.name}` )
        .addField('GUILD ID', `${guild.id}`) 
        .addField('GUILD MEMBERS', `**${guild.memberCount} members!**`)
        .addField('OWNER INFO', `${guild.owner} (${guild.owner.id})`)
        .setFotter(`Currently in ${client.guilds.cache.size} guilds!`)
        .settThumbnail(guils.iconURL({ dynamic: true }))
        .setTimestamp()
        .setColour('GREEN')
    )
})```
umbral zealot
#

like do'nt use different words for the same thing

lone nova
#

my code

umbral zealot
#

this doesn't match your error

scenic cove
#

PLZ

opal plank
#

its against the rules

#

learn javascript first

umbral zealot
earnest phoenix
#

@scenic cove u can start without knowing, thats how u learn lol

opal plank
lone nova
umbral zealot
#

yeah just start the bot right now

#

lol

cosmic forum
lone nova
opal plank
earnest phoenix
umbral zealot
#

no it's not, repl currently isn't running because of the error state

#

click the button buddy

earnest phoenix
#

lol

umbral zealot
#

trust the person that you're asking help from

lone nova
#

see this

scenic cove
umbral zealot
#

oy hold on

opal plank
#

oh

lone nova
#

@umbral zealot this is the error

opal plank
#

i see whats going on

umbral zealot
#

why do you have a new client in a folder

opal plank
#

turn it into a function

cosmic forum
opal plank
#

its not a constructor

umbral zealot
opal plank
#

he's trying to import a client module

#

i suppose ht creates a client in index

lone nova
opal plank
#

and is trying to import it

lone nova
#

ok i will remove and say

opal plank
#

you gotta turn it into a function

umbral zealot
earnest phoenix
umbral zealot
#

those 2 are different things

cosmic forum
umbral zealot
#

if you're trying to reach the guildMemberAdd event you should create events/guildMemberAdd.js

#

like your other events

umbral zealot
#

and don't just copy/paste those codes, you need to make them look different

#

like your other events

earnest phoenix
#

@umbral zealot are you transgender

umbral zealot
#

why would that matter to you or this conversation

earnest phoenix
#

its very important at the moment

umbral zealot
#

do you wanna know what's between my legs? is that a thing that you're obsessed with?

earnest phoenix
#

na, simple question

#

ye or na

umbral zealot
#

I'm a human being, fuck off

slender thistle
earnest phoenix
#

not trying to be rude ait

lone nova
#

sir its showing client.on is not afunction

umbral zealot
#

match your existing events and the format of those files

#

use your brain not your CTRL+C and V keys

lone nova
umbral zealot
#

no you d'nt

#

not with an event handler

lone nova
#

but i am not making a event bro

umbral zealot
#

could have fooled me

earnest phoenix
umbral zealot
#

those are literally events

lone nova
earnest phoenix
#

😳

umbral zealot
#

bro that's the very fucking definition of an event

earnest phoenix
#

Its a event

umbral zealot
#

.on() is a function of EventEmitter, a function that receives and emits events

#

literally an actual event

earnest phoenix
lone nova
earnest phoenix
umbral zealot
#

what do you want to do ? a command?

lone nova
#

ya

umbral zealot
#

then make a new command in your commands folder

#

built like your other commands you clearly already have

lone nova
#

logs of server join and leave for bot

umbral zealot
#

those aren't commands

#

if you want to know when the bot joins and leaves you can use the guildCreate and guildDelete events

#

those aren't comands.

#

see this folder right here?

opal plank
#

i smell copy pasted materials

umbral zealot
#

those are your events

lone nova
#

see this this is exactly in commands folder

umbral zealot
#

alright I'm done, go learn JS buddy, you clearly have no clue what you're doing

earnest phoenix
#

Its a event dude

pale vessel
#

are you sure?

#

i think it's an event

opal plank
#

i see it as a string

#

or a listener

umbral zealot
#

Or... and hear me out here.... maybe it's an event listener

opal plank
umbral zealot
opal plank
slender thistle
#

Y'all need to be educated

#

It's clearly a script

opal plank
#

its clearly code

pale vessel
#

erwin what happened to the me!me!me!

opal plank
#

if you dont see, its probably a bug on your client

slender thistle
#

Gaslighting

leaden rover
#
    @commands.command(name="subreddit", aliases=["sr"])
    async def subreddit(self, ctx, subreddit):
        """Shows a non-NSFW subreddit post?"""
        submission = reddit.subreddit(f"{subreddit}").random()
        if submission == submission.over_18:
            return
        else:
            embed = discord.Embed(title=f"{submission.title}")
            embed.set_image(url=submission.url)
            await ctx.send(embed=embed)```
I just want to see if this code MAY work, but because I don't know how to filter posts from a non-nsfw subreddit, idk if this would work ![thonk_but_cool](https://cdn.discordapp.com/emojis/809950752272547910.webp?size=128 "thonk_but_cool")
#

Yes this is sponsored by randomcode™

slender thistle
#

sync module with async bot

leaden rover
#

Well, I'm using the commands.Bot thingy :/

slender thistle
#

So am I

leaden rover
#

Ok

slender thistle
leaden rover
#

Use import sync?

slender thistle
#

Do you know what sync means

leaden rover
slender thistle
#

short for synchronous

leaden rover
#

ok

lone nova
#

@umbral zealot it worked bro thanks

i missed line in index.js module.exports = client;

#

thanks\

umbral zealot
#

yeah you shouldn't be doing that

leaden rover
#

Even though I have an IQ of 120+ (true), I stink at Python lol

umbral zealot
#

and I didn't say you should do that

opal plank
#

use a fancy fonktion

umbral zealot
#

and it's wrong to do that

#

but ok fine

#

My pleasure!

lone nova
#

🙃

leaden rover
#

I need to read 123456 pages of "Python for n00bs: 69th Edition" unless I have to get a life

opal plank
#

make sure to share here the counterpart for js

#

quite a few people might need it too

umbral zealot
#

it only has 420 pages kekface

leaden rover
#

That's the joke lol

pale vessel
#

no you read mushoku not python for noobs
~ erwin, alternate universe

leaden rover
#

Ok enough joking, let's stick to coding crap

opal plank
#

mushoku tensei will teach you more about how to handle your anger issue than coding, just saying

leaden rover
#

Ok

crimson vapor
#

How lmao

opal plank
#

just saying

slender thistle
#

Why not just stick to aiohttp and manual parsing

leaden rover
#

Good idea

slender thistle
#

It's async and helps you learn

leaden rover
#

Yeah... ok thx

opal plank
#

imagine using await/async and not callback hell

#

yikes

#

actually

#

is there even callbacks in py?

leaden rover
opal plank
#

js

#

and scratch

slender thistle
#

Brainfuck

opal plank
#

preferrably scratch

umbral zealot
#

there's google's Blockly

leaden rover
#

B-but scratch doesn't have a discord thingy

earnest phoenix
opal plank
#

says who?

crimson vapor
#

scratch >>>>

umbral zealot
#

yeah but it's simpler

leaden rover
#

ok nvm

earnest phoenix
#

@earnest phoenix

pale vessel
#

You can't mix async and sync in python?

leaden rover
#

I'll go discord.js (again after 69,420 years)

crimson vapor
#

@opal plank make discord wrapper in scratch

opal plank
#

while im not fully jesting, there IS a discord http someone made as a joke for scratch

#

but dont even do it

slender thistle
#
async def a():
    return await b("ha")

async def b(s: str):
    return s[::-1]

# :)

asyncio.ensure_future(a())
leaden rover
#

yeah

opal plank
#

use js if you want premade shit

#

you like dippers?

slender thistle
opal plank
#

use js

leaden rover
#

nah, I'll stick with pi

opal plank
#

js will spoonfeed you shit code all the way

crimson vapor
#

Js is super easy honestly

slender thistle
#

Your bot will hang in case the blocking requests take too much time to process

leaden rover
#

I meant python

slender thistle
#

Say, time.sleep()

opal plank
#

let me welcome you to what i like to call the garbage dump of coders

leaden rover
#

Yeah

opal plank
#

its like a thrift shop

#

but for homeless people

crimson vapor
feral aspen
#

Hello!!

leaden rover
#

imagine coding in JavaScript lol what weebs and freeloaders 6691_smg4_point

opal plank
#

so you get shit for free at the worst possible quality possible, but you can find one or 2 decent packages in there

feral aspen
#
for (let i = 0; i < items.length; i++) {                            
    noArgsEmbed.addField(`**\`${i + 1}\`**) ${items[i].name}`, [
        `**Description:** ${items[i].description}`,
        `**Price:** ${(items[i].price).toLocaleString()}`,
        `\`ID: ${items[i].id}\``
    ], true);
};

I am currently having this code which loops through the array of objects.

Is there a way to make a check where if an object's items[i].price is equal to This item cannot be bought. then it wouldn't show in the loop/field?

leaden rover
#

its meant to be a insult joke

crimson vapor
#

I get that but what’s the grounds of the joke

opal plank
#

Ts is pog as fuck, js is pog too, the issue is the devs

#

not the language

slender thistle
#

if items[i].price !== "This item cannot be bought." { addfield }

leaden rover
#

ok

#

I'll stick eitth [python

#

with python*

opal plank
#

for a bargain of 19.99$ you can hire @slender thistle as your personal slave coach for questions here

cinder patio
leaden rover
#

"personal slave"

opal plank
#

he knows py

slender thistle
#

I'M A STUDENT I NEED MONEY

leaden rover
#

Ok calm down, I'll get a life then

opal plank
#

he maintains the py library for the top.gg thing

#

look at his fancy role

leaden rover
#

ok

opal plank
#

lib dev

crimson vapor
#

Erwin why are you making it even worse for shiv?

leaden rover
#

Welp, I'm removing the command then kekez

feral aspen
leaden rover
#

I'm getting political, SHIT

opal plank
slender thistle
crimson vapor
#

Wait so did Erwin change his pfp or is this a bug?

slender thistle
#

bug

opal plank
#

probably a bug

crimson vapor
#

Ok that’s a strange bug

opal plank
crimson vapor
#

When will you change your pfp to :loli_dance:?

opal plank
#

I wont change pfp

crimson vapor
#

It would be funny tho

#

Anyway you never rated the code I told u to

#

I even finished the season

crimson vapor
#

Reee

opal plank
rapid wharf
#

🙃

feral aspen
#

Kind of curious, am I supposed to use a switch() statement if I'm willing to add aliases to arguments or is there a better way?

cinder patio
#

Put all aliases in an array

tacit sequoia
#

Theres always a better way CH_whyme

cinder patio
#

Using switch is just messy

#

imagine if you had 100 commands

#

and I just noticed that they said aliases to arguments, not commands

#

Can you elaborate @feral aspen ?

feral aspen
#

Yes.

#

I'm talking about arguments, not commands.

feral aspen
umbral zealot
#

show an example of your current setup and what's problematic about it

umbral zealot
#

which library and programming language are you writing your bot in?

#

you mean discord.js javascript (your language is not your editor for future reference)

#

in which case, client.user.setStatus is what you want

#

or setActivity even

#

right, great, that's correct.

#

sure just wrap it in a setInterval

#

note that you shoudl not do this too fast

#

every 10, 15 minutes owuld be recommended

#

with what

#

setInterval takes a function that will run on the interval, as well as an interval in milliseconds

#

around setActivity

#

setACtivity will be inside the function

#

right so... you... do'nt understand the words "wrap in" or "put inside"?

#

y'know. one thing inside the other

pale vessel
#

put inside FLOOSHED

#

i'm sorry

cinder patio
#

you're new and yet you have all these files with fancy names

umbral zealot
#

and set up to host on heroku too

#

I'll take "Bots copied from github" for $400, alec!

slender thistle
#

Can we share those 400 dollars as I'm a student and I need money plzty

crimson vapor
#

newbies using eslint, yeah sureeee

pale vessel
#

i don't even use eslint, sadly

#

maybe because i'm n00b

crimson vapor
#

It’s pog

pale vessel
#

i personally don't need it since i think my code is clean *enough*

crimson vapor
#

Eslint and ts catches most errors

#

as well

pale vessel
#

also, eslint has some broken rules so i try to avoid those

crimson vapor
#

just disable them

pale vessel
#

tru

pale sapphire
#

‫message ‫ this is an

crimson vapor
#

@pale vessel aeon-rose when?

pale vessel
#

bru

pale vessel
crimson vapor
#

does that abuse rtl?

pale sapphire
pale vessel
#

all‫right ‫

pale vessel