#development

1 messages · Page 340 of 1

earnest phoenix
#

And do first().ban

languid dragon
#

message.mentions.first()

#

you want to tag the user, get that

#

just put that in a string, it'll automatically tag the user

earnest phoenix
#

Well no

#

Im still working on the ban command

#

This mention system works tho

languid dragon
#
let user = message.mentions.first();

message.channel.send(user + " is getting banned.");

user.ban();
scenic crest
#

message.mentions.first() will give u a MessageMentions object

#

I think

earnest phoenix
#

?

#

Ohh

#

Wait

#

Thats the same code you told me

#

It didnt work...

scenic crest
#

then u an do

languid dragon
#

right

#

my bad

#

this is how i do it

#

mentions.members.first();

earnest phoenix
#

I knew it!

languid dragon
#

My apologies.

earnest phoenix
#

Message.mentions.members

#

Eh its fine bro

#

But thank you!

#

Wait what are you splitting

#

In the code

#

Just curious

languid dragon
#

thats just the way i did my args

earnest phoenix
#

Okie 👍

languid dragon
#

-kick @user here are the args

earnest phoenix
#

Ik

languid dragon
#

it would return here are the args

earnest phoenix
#

Oh!

scenic crest
#

k

earnest phoenix
#

Okay so it would return the args

#

And then use them

#

👍

#

Thank you so much

#

Wait

#

I think something is wrong with my if statement

#
if (message.content.startsWith('---ban')) {
#

This doesnt seem right 🤔

#

Okay wait

#

Nvm

#
if (message.content === `---ban <@${message.mentions.members.first().user.id}>`) {
languid dragon
#

why

earnest phoenix
#

Because it still didnt work

languid dragon
#

thats so extra

earnest phoenix
#

Ik but then why is it still not working >.>

languid dragon
#

startsWith should work fine

#

its probably not the if statement at all

earnest phoenix
#

🤔

#

.

#

🤦

#

Omg I forgot to log it into the main index file ommmggggg

#

😐

#

Well it should work now

#

Thank you!

uncut slate
#

@earnest phoenix that logic is pretty horrible

earnest phoenix
#

Which

uncut slate
#

this

#
if (message.content === `---ban <@${message.mentions.members.first().user.id}>`) {
earnest phoenix
#

Oh lol ik

uncut slate
#

so many things wrong with this

earnest phoenix
#

I ran out of ideas of what was wrong

uncut slate
#

jesus

earnest phoenix
#

I just use

#
if (message.content.startsWith('---ban')) {
languid dragon
#

dies

earnest phoenix
#

Which is much better

#

I only changed that because I thought something was wrong with it

scenic crest
#

learn js :((

earnest phoenix
#

I am lol

#

Oh it got an error

#

Wait

#

Why would args not be defined

tawny lava
#

because you didn't define it Thonk

scenic crest
#

did you declare a variable as args?

earnest phoenix
#

Lmao ya dont say

#

Ill do that now

#

client.on("message", (message) => {

#

Whoops

thorny hinge
#

How can I use the "a" variable outside the sqlite function? 🤔
js sql.get(`SELECT * FROM something WHERE guildId =${msg.guild.id}`).then(row => { if(!row) { let a = 0; } else { let a = row.number; } }); //How can I use the "a" variable outside the sqlite function?

earnest phoenix
#

Woah

#
let args = args[1];
languid dragon
#

declare it outside the thing and set it on the inside

scenic crest
#

can you not do like

thorny hinge
#

But

scenic crest
#
let a;
if(blah){ 
    a = dis;
} else {
    a = dat;
}```
thorny hinge
#

Sqlite

#

Is slow Thonk

languid dragon
#

yes that

scenic crest
#

can you not do that

inner jewel
#

sqlite isn't actually slow

#

but it's not concurrent

safe cloak
#

I guess I'm the only one using prepared statements even when getting data from events directly from the discord library I use...

uncut slate
#

@thorny hinge use prepared statements

safe cloak
#

LUL

thorny hinge
#

wew

safe cloak
#

seemsgood Prepared Statements are smart, and you should use them

uncut slate
#

no excuses not to

safe cloak
#

otherwise some shit will figure it out and do derp'; DROP ALL DATABASES; --

earnest phoenix
#

Wait how would I put args into a variable

uncut slate
#

next level

#

you tell us, bubba

inner jewel
#

!setprefix a');DROP * --

scenic crest
#

learn js to find out?

earnest phoenix
#

👍

#

Okay well thank you

thorny hinge
#

What's a prepared statement

scenic crest
#

@thorny hinge google is your friend

uneven sonnet
#

google is

#

gAY

scenic crest
#

me too

thorny hinge
#

Google didnt't help Thonk

scenic crest
#

then you don't know how to google

thorny hinge
#

ok

#

Oh i see

#

A prepared statement is a feature used to execute the same (or similar) SQL statements repeatedly with high efficiency. Prepared statementsbasically work like this: Prepare: An SQL statement template is created and sent to the database.

#

But how do you make one GWchadThinkeyes

scenic crest
#

what lib

thorny hinge
#

discord.js

#

using

#

sqlite @scenic crest

quiet bobcat
#

How do I make an uptime command? In discord.js

prime cliff
#

^ .js

thorny hinge
#

client.uptime

#

Its ms

#

So do the math

quiet bobcat
#

Ok thank you

earnest phoenix
#

Hey guys

#

I found out how to put arrys into variables

scenic crest
#

what

earnest phoenix
#

Okay wait

#

This command still doesnt work

#

"args.join" isnt a function

#

client.on("message", (message) => {
    let args = message.content[1];
    if (message.content.startsWith('---ban')) {
        if (message.guild) {
            message.mentions.members.first().ban(args.join(' ').split(1).join(' '));
    } else {
    message.reply('You need to be in a guild to do that!');
    }
console.log(`Command run: Ban in ${message.guild.name} in ${message.channel.name} by ${message.author.username}`)
    }
});
scenic crest
#

args is not an array

earnest phoenix
#

Ik

#

An arry is a string of values

wispy jolt
#

no...?

scenic crest
#

idk how JS treats strings but in some langs a string is an array of characters

#

either way

#

it's not an array in this case

clear kernel
#

let args = message.content[1];

#

I don't know exactly, but that either won't work or just sets it to the second letter in the message

#

and that's a string

earnest phoenix
#

Not the second one

#

Well

clear kernel
#

args.join(' ').split(1).join(' ')); this .join() and is only for arrays

earnest phoenix
#

What it does is it sets args to the second half of the message

wispy jolt
#

that's the 2nd letter

earnest phoenix
#

What

#

Out of three phrases

#

Arg 1 would be the second phrase

#

Because its zero-indexed

scenic crest
#

exactly

wispy jolt
#

it's a string

scenic crest
#

zero index

earnest phoenix
#

Yes its a string

scenic crest
#

its a part of the array

#

thats

#

index 0

#

.join

#

does not work

#

on strings

#

it requires

earnest phoenix
#

Oh

scenic crest
#

an array

clear kernel
#

message.content is a string, and [1] is takign the second letter. If you want to take a second thing, separated by space you need to split it

#

Splitting it makes it into an array which it seems you want

earnest phoenix
#

The second letter?

#

Okay yes

#

My code does have a splitter

#

Do I not need to join the args then?

clear kernel
#

You cant .join() a string, as you currently just grabbing second letter

#

so on args = message.content you would want to .split(" ")

earnest phoenix
#

Okay

#

Im gonna put a comma inside the ""

#

Wait

#

No

#

But then there would be two splitters

#
client.on("message", (message) => {
    let args = message.content.split(" ")
    if (message.content.startsWith('---ban')) {
        if (message.guild) {
            message.mentions.members.first().ban(args.join(' ').split(1).join(' '));
    } else {
    message.reply('You need to be in a guild to do that!');
    }
console.log(`Command run: Ban in ${message.guild.name} in ${message.channel.name} by ${message.author.username}`)
    }
});
#

Theres a second splitter

#

".split(1)"

scenic crest
#

split 1? 👀

earnest phoenix
#

Im assuming arg 1

#

Okay hold on

#

Why is there two join statements here Thonk

scenic crest
#

idk ask ken

#

he made the code :l

earnest phoenix
#

Okay hold on

#

Okay what

#

This isnt

#

This code shouldnt be correct

#

Theres two splitters and two joins

#

I got rid of a join

#

And a split

#

Now its saying ban is undefined

#

This is so annoying

scenic crest
#

it'd be a lot easier if you learned js first sigh

earnest phoenix
#

I do know js

#

I get what he means by its grabbing the second letter

#

So you need a splitter

#

There is a splitter

#

But then why were there doubles of each

thorny hinge
#

How do I make a prepared sqlite statement Thonk

#

js

scenic crest
#

literally took me 2 seconds to google

#

:l

thorny hinge
#

What if I use microsoft edge

quiet bobcat
median lintel
#

hecking use bing

thorny hinge
#
int sqlite3_prepare_v2( sqlite3 *db, /* Database handle */ const char *zSql, /* SQL statement, UTF-8 encoded */ int nByte, /* Maximum length of zSql in bytes. */ sqlite3_stmt **ppStmt, /* OUT: Statement handle */ const char **pzTail /* OUT: Pointer to unused portion of zSql */ );
#

So thats a prepared statement? Thonk

#

And that will solve my issue of getting the values at the same time the database is accessed? GWchadThink

earnest phoenix
#

Boi

#

OMG

#

I DID IT

#

I CREATED MY BAN COMMAND

#

BIJGUKWAGWDWAKHJVWFQJKWF

#

And it works

#

It was so simple!

sinful meadow
#

-_-

#

i could have helped

#

lol

earnest phoenix
#

Lol someone tried

sinful meadow
#

Im more of a js guy and i just got on

earnest phoenix
#

The code they showed was completely useless

#

No offence to them

#

And lol okay

sinful meadow
#

@earnest phoenix Well for now on

#

ignore them

#

and tag me

#

😛

earnest phoenix
#

Okay lmao

sinful meadow
#

-bots

gilded plankBOT
#
Zambia😎#8363
Bots <:certifieddev:308880841382297610>

@atomic sierra certifiedbot
@reef nexus

earnest phoenix
#

Now that I made a working ban command

#

I can make a working kick command

sinful meadow
#

Yep

earnest phoenix
#

Omg that took me forever

#

Im in the middle of a javascript course and I just got to arrys lol

sinful meadow
#

Wanna see how easy it is to ban

#

@earnest phoenix

#
message.guild.fetchMember('376147022660632587').ban()
earnest phoenix
#

Sure

sinful meadow
#

¯_(ツ)_/¯

earnest phoenix
#

Lol srsly

sinful meadow
#

That is your id btw

earnest phoenix
#

My code

#

client.on("message", (message) => {
    let args = [message.content]
    if (message.content.startsWith('---ban')) {
        if (message.guild) {
            message.mentions.members.first().ban(args[1]);
    } else {
    message.reply('You need to be in a guild to do that!');
    }
console.log(`Command run: Ban in ${message.guild.name} in ${message.channel.name} by ${message.author.username}`)
    }
});
#

It uses args

sinful meadow
#

Yep

#

most of my commands also use args

#

Anyways

#

Yea

#

If you need help tag me @earnest phoenix

#

Most devs here dont like js

earnest phoenix
#

Okay

#

Lol I saw that

sinful meadow
#

and im like the only one that devs for it

#

Well

#

Good* dev

#

😛

earnest phoenix
#

Lmao

#

Well ill be sure to contact you

#

If I need help

sinful meadow
#

👍

vale orbit
#

I love JS

#

👌

sinful meadow
#

@vale orbit It really isnt that bad

#

People just think it is

earnest phoenix
#

Wait

#

Sir

vale orbit
#

True

earnest phoenix
#

I have a question for you

sinful meadow
#

Sure

earnest phoenix
#

What is the listing system

#

That uses case

sinful meadow
#

you mean

#

cases and breaks

earnest phoenix
#

Yes

sinful meadow
#

otherwise known as a switch

earnest phoenix
#

Oh thx!

#

I forgot the name lol

sinful meadow
#

rip

#

;p

vale orbit
#

xD

earnest phoenix
#

Uh k then

sinful meadow
#

Did you get a message @earnest phoenix

earnest phoenix
#

Omg yep

#

wait

sinful meadow
#

That is my bot

earnest phoenix
#

I need to create a DM help system

#

Lel

sinful meadow
#

Take a idea from this code

#
message.guild.fetchMember('376147022660632587').then(e => e.send("This is mybot btw its String(\"Cheese\")"))
earnest phoenix
#

Okay

vale orbit
#

xD

sinful meadow
#

Ignore the \

vale orbit
#

I use

earnest phoenix
#

I can replace the ID with a userID

sinful meadow
#

Yea

vale orbit
#

bot.fetchUser()

sinful meadow
#

that will also work @vale orbit

#

But

#

i was just going to use it for this guild

#

lol

vale orbit
#

😂

sinful meadow
#

Kappa

vale orbit
#

Oh

sinful meadow
#

Thats a server that my bot is in

#

hahahha

vale orbit
#

My bot was in Discord Collection, so I warned the owner of that server using dm command

sinful meadow
#

👍

earnest phoenix
#

Wait

vale orbit
#

?

earnest phoenix
#

Is the ID that was shwon the guildID or the userID

#

*shown

sinful meadow
#

UserID

earnest phoenix
#

Okie

vale orbit
#

xD

earnest phoenix
#

Thx

#

Created a rough help system

#

@sinful meadow

#

Erm I need a bit of help

#

If your even online lel

sinful meadow
#

Hi @earnest phoenix

#

i am

#

i was afk

#

hello xD @earnest phoenix

#

did you die?

earnest phoenix
#

@sinful meadow

#

No lmao

sinful meadow
#

hmm

earnest phoenix
#

I need a bit of help

sinful meadow
#

With

earnest phoenix
#

People can easily crash my bot

#

By using commands in the DM

#

Or by not providing a mention

#

I have tried coming up with solutions

#

But nothing is working

sinful meadow
#

just use this tiny piece of code @earnest phoenix

#
if(!message.guild) return;
earnest phoenix
#

I tried that ;-;

#

NVM

sinful meadow
#

xDDDDD

earnest phoenix
#

I did the if part

#

But

#

Wait what would return do

sinful meadow
#

return is like

#

returning and legit doing nothing

#

lmao

earnest phoenix
#

Oh lel

#

Well thx

#

That fixes the DM problem

sinful meadow
#

Yep

earnest phoenix
#

But

sinful meadow
#

I dont use it like that

#

i have some advanced shite

#

lol

earnest phoenix
#

It still crashes when no mention is provided

#

And lmao k

sinful meadow
#

use something like

#

if(message.mentions.users.size === 0)

#

Then do something

earnest phoenix
#

Okay

#

Thx u

sinful meadow
#

Like reply

#

saying

#

Hey

rich kiln
#

if(!messsage.mentions.length >= 1)

sinful meadow
#

That also @rich kiln

earnest phoenix
#

Okie ill add this to all oh meh code

#

*of

#

Thank you!

#

I see how it works

#

I tried something like that tho

#
if (args[1] === null) {
    message.channel.send('Stuff')
}
#

I think I used the variable wrong tho

sinful meadow
#

Yea

#

you did

#

normally

#

args aint null

#

they are undefined

#

null is if it is a value

#

as in

#

1

#

2

#

3

earnest phoenix
#

Ah, understood

#

So args cannot be null

#

Since its only on a vlue

#

*value

sinful meadow
#

It can be undefined

earnest phoenix
#

How would you work that?

#

Just for future reference

sinful meadow
#

if(args[1] === undefiend

earnest phoenix
#

Ah

#

Okie

#

Well thank you very much!

sinful meadow
#

np

earnest phoenix
#

Wait

#

Okay wait

sinful meadow
#

hmmm

sinful meadow
#

@vital lark

#

Hey mate

#

Mind helping me?

quiet bobcat
#

How do I get a avatar for a specific id?

#

On discord.js

sinful meadow
#

@quiet bobcat

#
message.guild.fetchMember('ID').then(e => e.avatarURL)
#

¯_(ツ)_/¯

#

i dont know if you need the .then

#

but i still did it

quiet bobcat
#

Ok

#

Thanks

#

``INPUT:
message.guild.fetchMember("297433416998191127").then(e => e.avatarURL)

OUTPUT:
Promise { <pending> }``

sinful meadow
#

Well no shit

#

Do something with it

#

lmfao

quiet bobcat
#

Alright

vital lark
#

Need help with what @sinful meadow

sinful meadow
vital lark
#

oh, you need a key

sinful meadow
#

i have that

#

lel

#

Getting it set up is weird

vital lark
#

Show me your command thing

#

I will write it.

sinful meadow
#

Do you do it like this? ```js
clev.create(function (err, session) {
clev.ask("Just a small town girl", function (err, response) {
console.log(response); // Will likely be: "Living in a lonely world"
})
})

#

since like

#

its weird

vital lark
#

yea, that's from the docs.

#

for Discord, its different.

sinful meadow
#

it it spose to be like that

#

well shit

#

Mind helping fix it lol

vital lark
sinful meadow
#

Weird @vital lark

#

For some odd reason

#

that isnt working

vital lark
#

show code

sinful meadow
#

1 sec

#

@vital lark ```js
let dankarg = message.content.split(" ").slice(1)
let arg = dankarg.join(" ")
clev.ask(arg, (err, data) => {
message.channel.send(data);
});

#

Ignroe the arg crap i have a command handler i just have that for now

#

ive tried your code

#

and that doesnt work either

vital lark
#

Thonk Did you define clev?

sinful meadow
#

Yep

vital lark
#

hm...

sinful meadow
vital lark
#

I might have to make a cleverbot modle fuck.

#

module*

sinful meadow
#

@vital lark See

#

My command works

#

Just isnt outputting anything

vital lark
#

I have to make it.

#

but I can't upload it to npm

sinful meadow
#

Tried console logging the data also

#

nothing

#

console.log(data)

#

¯_(ツ)_/¯

#

rip

lethal sun
#

How to change the text color in the whole bot page?

vital lark
#
color: white;
lethal sun
#

exp?

sinful meadow
#

exp? @lethal sun

#

Tf you mean by that

lethal sun
#

example...

sinful meadow
#

-_-

#

its basic css

#

cmon man

prime cliff
#

@earnest phoenix Bad user

umbral pelican
prime cliff
#

Wew

woven drum
#

it shall be a bean

umbral pelican
#

they joined 5 minutes ago as well bloblul

prime cliff
#

@fossil oxide Bad user saying the N word and also quick deleting DMs with it

fossil oxide
#

I'm hungry

#

Like really hungry

umbral pelican
#

for pizza?

neat falcon
#

i should make a bot

woven drum
#

lol

neat falcon
#

discord.css looks good

lethal sun
#

@fossil oxide homemade fresh pizza made from 0,0.1% horse meat

winged vapor
#

@neat falcon discord.css?? HOW

#

nvm its hooked up with d.js

neat falcon
#

:^)

earnest phoenix
#

Help: How do I connect my codes to discord bot, when my it said the .Connect is "No overload..."?
(Using C# Console)

public MyBot{
discord.ExecuteAndWait(async () =>
{ await discord.Connect("AppBotToken'sCodes"); });
}

sinful meadow
#

Lib? @earnest phoenix

thorny hinge
#

How can I make a prepared sqlite statement GWflamesThonking

earnest phoenix
#

@sinful meadow what is Lib? By the way, I'm using C# language

sinful meadow
#

SOz i cant help

neon pasture
#

Hello

earnest phoenix
#

@earnest phoenix lib is library

#

Aka d.js

#

Is an example

median lintel
#

lib is the thing u using to connect to discord

earnest phoenix
#

Wot

#

Lib is library

#

I believe

#

Yes it connects to discord

median lintel
#

THE DISCORD BOT LIBRARY IS THE THING U USE TO CONECT TO DISCORD

earnest phoenix
#

Lol ik

median lintel
#

OK THEN

earnest phoenix
#

But it doesn't do just that

#

Like

#

It allows you to reference the bot in your code and use discord methods

median lintel
#

...

uncut pulsar
#

Mad kids?

earnest phoenix
#

@median lintel basically what you said

#

Because it's in general to make your bot connect

vale orbit
#

^

thorny hinge
#

What is the function name for a prepared sqlite statement Thonk

earnest phoenix
#

a prepared sqlite statement

#

or prepare()?

lethal sun
#

How to merge two pictures in jimp? discord.js

glossy sand
#

why not read the jimp docs lol

lethal sun
#

yeah but how to make 2 pics in one. like for example. a grey bg and the message authors avatar on the bg

glossy sand
#

have you even read the docs?

pale light
#

no

lethal sun
#

guess im blind

#

there

#

glasses

lethal sun
#

@glossy sand i dont want to merge a Jimp image and an image from a directory

#

i want to merge 2 images from a directory

restive totem
#

then do it :p

earnest phoenix
#

@earnest phoenix can I see your php upload script pls, and your htaccess file... my stuff won't work

hardy knot
earnest phoenix
#

ugh need help

#

@hardy knot canu help me?

quiet bobcat
#

With what @earnest phoenix

earnest phoenix
#

making a bot i tried it gives me unknown error

quiet bobcat
#

Ok what language?

earnest phoenix
#

@hardy knot yes

#

english

quiet bobcat
#

...

earnest phoenix
#

-botinfo @worn relic

gilded plankBOT
#
Bot info <:certifiedbot:308880575379275776>
ID

330416853971107840

Username

Welcomer

Discriminator

5491

Short Description

IT DOESNT JUST WELCOME PEOPLE (╯°□°)╯︵ ┻━┻

Library
Prefix
Upvotes

2383

Server Count

12605 Servers | 13 Shards

Owner(s)

@supple shale certifieddev

Links
quiet bobcat
#

What programming language

hardy knot
#

Hmmm..

earnest phoenix
#

All I know it needs to be english

quiet bobcat
#

Node.js, ruby, python

#

Java, javascript

earnest phoenix
#

javascript

quiet bobcat
#

Ok

hardy knot
#

Is there a bot SIMILAR to Welcomer?

quiet bobcat
#

Do you have node.js or just javascript?

earnest phoenix
#

uhhh

#

I dont have either

#

idk if u do

quiet bobcat
#

Can you send code please

earnest phoenix
#

uhhhhh wht code

quiet bobcat
#

The code for the bot?

earnest phoenix
#

this is my first

quiet bobcat
#

Alright

#

But do you have the code for it?

earnest phoenix
#

is this it? 2146958591

quiet bobcat
#

Thats not it

#

The thing you wrote to make the bot

earnest phoenix
#

wont let me go backkk

#

UGHHH

#

i never got to make the bot I wanna make the bot

quiet bobcat
#

?

#

Did you download a bot?

earnest phoenix
#

Oh my

#

no

#

;-;???

#

i messed up didnt i

#

You need to write a program

#

To make the bot run

quiet bobcat
#

I dont even understand what you did GWchadLENNYTHINK

earnest phoenix
#

I never got to make it tho

#

Make what

#

I don't understand

quiet bobcat
#

Ok

#

I recommend to watch a tutorial

earnest phoenix
#

The bot

uncut pulsar
#

U can create a png welcomw msg w python

quiet bobcat
#

What bot do you want to make @earnest phoenix

#

@earnest phoenix I would recommend this one https://www.youtube.com/watch?v=-5jJaO17Gjs

earnest phoenix
#

an xp and mod bot

#

;-;

quiet bobcat
#

Xp and mod.

#

Hmm

earnest phoenix
#

the xp bot is just to level people up

#

and the mod is just for like banning and ranking

quiet bobcat
#

Ok

earnest phoenix
#

like all do for mods

quiet bobcat
#

Watch this tutorial https://www.youtube.com/watch?v=024upsEuHaU

#

Should be good

#

ep 6 is for xp

#

Its good for learning to code

earnest phoenix
#

I cant install things on chromebook it says cant open file

quiet bobcat
#

Hmm

earnest phoenix
#

UGHHHH

quiet bobcat
#

What does it say exactly?

earnest phoenix
#

Chrome Cant Install This File, Need Window 10

quiet bobcat
#

What os does chromebook have?

earnest phoenix
#

os6

#

i need os higher than 6

quiet bobcat
#

Hmmm

#

https://www.youtube.com/watch?v=xWxmIDnwwFI see if that helps you

earnest phoenix
#

wish someone could do it for me

quiet bobcat
#

Ye

earnest phoenix
#

:/

#

?

#

Ye what

quiet bobcat
#

I wish that someone could do stuff for me aswell

earnest phoenix
#

its a school chromebook tho ;_;

quiet bobcat
#

Then idk

earnest phoenix
#

ARGH

quiet bobcat
#

:/

earnest phoenix
#

hey guys, can you help?
i want to know how to make me bot DM everyone, literally everyone

inner jewel
#

don't do that

#

you'll most likely get an api ban

earnest phoenix
#

makes sense ok

clear kernel
#

but why

thorny hinge
#

discord.js
client.users.send()

#

kek

earnest phoenix
#

wanted to share my patreon page, but it does seem like a bad idea

thorny hinge
#

You'll probs run into errors tho because bots and blocked users

earnest phoenix
#

so i did it on the contact owner command instead

thorny hinge
#

But its a bad idea in general

earnest phoenix
#

it sure is

thorny hinge
#

99.999999% risk of api banb1nzyhyperban

earnest phoenix
#

lol true

inner jewel
#

100% risk of botlist ban

earnest phoenix
#

101%

quiet bobcat
#

Im trying to make a music bot but I just get this error Error: Cannot find module './settingsforbot.js'

#

const settings = require("./settingsforbot.js"); and thats the code

earnest phoenix
#

Any Idea why this wont work?

if(command.startsWith("+8ball")) {
  let supportserver = client.guilds.find("378923069521133589")
  if(message.author.memberOf(supportserver)) {
    return message.reply("You are a member of the Mod Bot Support Server!")
  } else {
    return message.reply("You are not in the Mod Bot Support Server!")
  }
}

USING JAVASCRIPT

quiet bobcat
#
if(command.startsWith(prefix + "8ball")) {
  let supportserver = client.guilds.find("378923069521133589")
  if(message.author.memberOf(supportserver)) {
    return message.reply("You are a member of the Mod Bot Support Server!")
  } else {
    return message.reply("You are not in the Mod Bot Support Server!")
  }
}

#

That should do it

earnest phoenix
#

:/

quiet bobcat
#

You forgot the prefix

#

lol

earnest phoenix
#
  • is the prefix
quiet bobcat
#

hmm

earnest phoenix
#

is .memberOf even a function?

quiet bobcat
#

Don't think so

#

No its not

earnest phoenix
#

hmm, idk what it would be then

quiet bobcat
#

Are you trying to find a member with that role?

earnest phoenix
#

No, If a user is in my Support Server, the command will work, If they are not in my server. Then the command must not work

quiet bobcat
#

Hmmmm

wispy jolt
#

hmmmmm

earnest phoenix
#

hmmmmm

quiet bobcat
#

You're using d.js right?

earnest phoenix
#

yeas

quiet bobcat
#

I can ask on their server

earnest phoenix
#

Sure

#

hmmmmmmm

quiet bobcat
#

They told me this <Message>.guild.id

#

Idk how it works or anything

earnest phoenix
#

kk uhmm me neither xD

quiet bobcat
earnest phoenix
#

No. I dont want it to be only typed in the support servers guild

#

can i use mybot here or what?

#

No

quiet bobcat
#

No

earnest phoenix
#

A Person is able to use the command outside of my support server, however if they are a member of my support server then the command works, If they are not a member of my support server then the command will not work for them

languid dragon
earnest phoenix
quiet bobcat
#

Can someone help me? Im trying to make a music bot but I just get this error javascript Error: Cannot find module './settingsforbot.js'

const settings = require("./settingsforbot.js");``` and thats the code
#

Im using d.js lib

languid dragon
#

Try __dirname+"/settingsforbot.js"

#

Thats if its in the main directory

#

And use a json for settings

quiet bobcat
#

I maybe labeled it wrong

#

Its code

languid dragon
#

Unless it serves functionality beyond just configuration

quiet bobcat
#

So it has to be as a js

languid dragon
#

Show?

inner jewel
#

looks like file doesn't exist

quiet bobcat
#
var google = require('googleapis');

module.exports = {
    getVideo: function (query) {
        return new Promise(function (resolve, reject) {
            var service = google.youtube('v3');
            service.search.list({
                auth: `Token`,
                part: 'id,snippet',
                type: `video`,
                q: query,
            }, function (err, response) {
                if (err) {
                    reject('The API returned an error: ' + err);
                }
                if (response.items.length == 0) {
                    reject('No video found.');
                } else {
                    var video = {
                        title: response.items[0].snippet.title,
                        url: `https://www.youtube.com/watch?v=${response.items[0].id.videoId}`,
                        thumbnail: response.items[0].snippet.thumbnails.high.url,
                        description: response.items[0].snippet.description,
                        publishedDate: response.items[0].snippet.publishedAt
                    };
                    resolve(video);
                }
            });
        });
    }
}
#

Well it does

languid dragon
#

Where in your folder is it

#

Relative to your main.js

quiet bobcat
#

The same folder as everything else

languid dragon
#

Try my first suggestion

#

__dirname+

quiet bobcat
#

With the __ aswell?

languid dragon
#

Yes

quiet bobcat
#
Error: Cannot find module 'C:\Users\Jonas\Desktop\Lion./botcode.js'```
languid dragon
#

Whats your foldername lmao

quiet bobcat
#

My bots name?

#

Why?

languid dragon
#

Remove ./

quiet bobcat
#

It was an extra

#

sorry

languid dragon
#

Just have /file.js

#

__dirname + "/file.js"

quiet bobcat
#
Error: Cannot find module 'C:\Users\Jonas\Desktop\Lion/botcode.js'```
#

I got that now

languid dragon
#

I get the feeling that youve named it wrong

#

Or youve done something silly and misplaced it in another folder

quiet bobcat
#

Are you kidding me... I spelled it wrong -.-

#

Sorry for taking your time

#

And thanks

languid dragon
#

Lmfao np

hardy knot
#

May anyone help me with the bot @gentle ether . I want to change it's custom message...

#

to.

#

This.

languid dragon
#

Use jimp

hardy knot
#

A what?

#

Is that a bot?

languid dragon
#

What lib do you use

hardy knot
#

Code?

#

Dumb it down to English

languid dragon
#

Yes. What is your bot coded in

inner jewel
#

kick old bot

#

invite new one

#

profit

hardy knot
#

Dunno..

languid dragon
#

Sigh

hardy knot
#

I don't know how bots work

#

¯_(ツ)_/¯

languid dragon
#

Then why dont you invite that bot you wanna mimic

#

Instead of trying to mimic it

hardy knot
#

I did..

languid dragon
#

then youve probably done something wrong :-]

#

Look at the documentation for the bot

#

Im sure theres some for it

#

Or actually go to the bots discord and ask for help

hardy knot
#

Alright.

rich kiln
#

dont use jimp

#

use canvas

hardy knot
#

I don't freaking code.

#

Don't you just love when the bot gives you NO info?

#

"

Server based prefix and other settings.
General, moderation and fun commands.
Permission based help command i.e. see only commands which you can use when you do `!help`
24/7 Uptime
And many more
#

All it gave me.

#

No discord.

languid dragon
#

get a better bot

hardy knot
#

Which bot does this... 🤔

languid dragon
#

Idk dude theres way over 800

hardy knot
#

Alright.

earnest phoenix
#

Im having another problem...

var patreonlist = ["274923987480346635"] //Tobramas User ID
var patreonlist = ["223460406398550016"] //Jopety / Zeus' User ID
let question = message.content.split(/\s+/g).slice(1).join(" ")
if(command.startsWith(prefix + "8ball")) {
  if(!message.author.id===patreonlist) {
    return message.reply("You do not have access to Patreon commands!").catch(console.error);
  } else {
    return message.reply("Your allowed to use this command!")
  }
}

It just allows everyone to use the command. Not the people with the id's specified

languid dragon
#

Reverse the if statement then?

#

Lmao

drowsy lily
#

ur comparing a single id to a list of ids? that looks off already

languid dragon
earnest phoenix
#

are you kidding me? XD

thorny hinge
#

How can I return a value within an sql function

sql.get(blablabla.then(blablabla => {
//stuff
return hi;
});
``` I can console.log() stuff fine but returning it gives me undefined ;-;
#

I tried sql.prepare() too GWflamesThonking no luck

vale orbit
#

What are you trying to return?

languid quiver
#

Bit

safe cloak
#

aTmG, what language?

languid dragon
#

js

safe cloak
#

I assume mysqljs...

#

google solves all the things

languid dragon
#
safe cloak
#

Eww

#

but still, google

thorny hinge
#

Thanks GWchadThink

cerulean zinc
#

What's the cheapest vps I can get for web hosting

clear kernel
#

$3 from ovh is the cheapest I know of for VPS's
there is one $2.50 but it sucks as no paypal and shady

abstract mango
#

vultr has 512 for 2.50

#

but it might be out of stock

cerulean zinc
#

There was a 40GB for $5 on OVH

trim steppe
#
[01:01:22] [ ERROR] [SocketServer] Caught exception in websocket
java.lang.RuntimeException: java.io.EOFException
        at lavalink.server.io.SocketServer.onMessage(SocketServer.java:176)
        at org.java_websocket.server.WebSocketServer.onWebsocketMessage(WebSocketServer.java:524)
        at org.java_websocket.WebSocketImpl.decodeFrames(WebSocketImpl.java:417)
        at org.java_websocket.WebSocketImpl.decode(WebSocketImpl.java:170)
        at org.java_websocket.server.WebSocketServer$WebSocketWorker.run(WebSocketServer.java:781)
Caused by: java.io.EOFException: null
        at java.io.DataInputStream.readFully(DataInputStream.java:197)
        at java.io.DataInputStream.readUTF(DataInputStream.java:609)
        at java.io.DataInputStream.readUTF(DataInputStream.java:564)
        at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.decodeTrack(DefaultAudioPlayerManager.java:272)
        at lavalink.server.util.Util.toAudioTrack(Util.java:44)
        at lavalink.server.io.SocketServer.onMessage(SocketServer.java:156)
        ... 4 common frames omitted
#

has anyone seen this before?

pale light
#

no termination of a loop?

#

you forgot to terminate maybe

trim steppe
#

That's lavalink

#

I have no idea how it works

#

lol

earnest phoenix
#

In python, for the logging module, is it possible to run a function after logging something?

bitter pivot
#

i have a problem ```JAVA
if(message.getAuthor().getId() != Main.jda.getSelfUser().getId()) {
LevelSystem.addPoints(message.getAuthor().getId());

        if(level.levels.containsKey(level.getLiveLevel(LevelSystem.getPoints(message.getAuthor().getId())))) {
            int levelcount = level.levels.get(LevelSystem.getPoints(message.getAuthor().getId()));
            message.getChannel().sendMessage(Embed.simpleColorMessage("**Nice! " + message.getAuthor().getAsMention() + " has now level `" + levelcount + "` !**", Embed.defaultColor)).queue();
        }
    }```
sinful meadow
#

getAsMention Thonk

formal falcon
#

what programming language?

sinful meadow
#

What lib are u using

#

Im guessing d.js

languid dragon
#

looks like JDA

sinful meadow
#

True now that i look at ot

#

It*

trim steppe
#

ignore my stupidity using lavalink

earnest phoenix
#

@languid dragon what made u think that

languid dragon
earnest phoenix
#
const Discord = require('discord.js')
const request = require('request')
exports.run = async(client, message) => {
    let args1 = message.content.split(' ').slice(1)
    let args = args1.join(' ')
    if(!args) return message.reply('search something')
    let url = "https://api.redtube.com/?data=redtube.Videos.searchVideos&output=json&search=" + args + "&tags[]=Teen&thumbsize=medium"
    request(url, (error, resp, body) => {
        try {
            let json = JSON.parse(body);
            let videos = json.videos;

            let firstVidImg = videos[0].video.default_thumb;

            let firstVidTitle = videos[0].video.title;
            let firstVidUrl = videos[0].video.url;

            var embed = new Discord.RichEmbed()
                .setImage(firstVidImg)
                .setTitle(firstVidTitle)
                .setURL(firstVidUrl);
            message.channel.send({
                embed
            });
        } catch (e) {
            console.log(e)
        }
    });
}

exports.conf = {
    aliases: []
}

exports.help = {
    name: 'rt',
    description: 'redtube vids',
    usage: 'rt'
}
#

how could i get it

#

to show the video

#

and i can watch it

karmic lake
#

.

earnest phoenix
#

aaa

#

d.js

#

this works just cant watch it

karmic lake
#

🤔

earnest phoenix
#

xD

#

for redtube lol

#

get youtube_dl

#

it supports redtube

#

hm

#

and a lot of other stuff

#

i have it

#

but dont know how to use it

#

:/

#

🤦

#

google.

#

xD

#

it'll help you better than we can help anybody

gilded plankBOT
#
Rainbowdashboygamer#2846
Bots

@edgy dew

earnest phoenix
#

r u even old enough to be on redtube

#

...

#

brb

topaz fjord
#
      snekfetch.get(`https://discordbots.org/api/bots/348205766127124480/votes`)
        .set('Authorization', 'bish no')
        .then((r) => console.log(r.text))
#
[  
   {  
      "username":"TurtleGamingFTW",
      "discriminator":"4822",
      "id":"220271040658407424",
      "avatar":"9bb5f79b5070883c33f701fd60db42c7"
   },
   {  
      "username":"Cheiftan",
      "discriminator":"9948",
      "id":"183871141759156225",
      "avatar":"c4a9ab0f815f71f81750e6a5ff1d7a60"
   }
]
#

thats how r.text

languid dragon
earnest phoenix
earnest phoenix
#

is this good

#

ping me

#

for replies

#

pong

languid dragon
earnest phoenix
#

...

languid dragon
#

ty, very helpful :]

karmic lake
#

hm

#

because

#

xD

#

lmao

karmic lake
#

kek

languid dragon
#
app.use(express.static("/uploads/", {
  extensions: [ "png", "jpg", "gif", "mp4", "mp3", "txt", "jpeg", "tiff", "bmp", "ico", "psd", "eps", "raw", "cr2", "nef", "sr2", "orf", "svg", "wav", "webm", "aac", "flac", "ogg", "wma", "m4a", "gifv" ],
}));
app.post('/url-to-send-post', (req, res)=>{
  res.setHeader('Content-Type', 'text/text');
  var file_name = randomToken(6);
  var form = new formidable.IncomingForm();
  form.parse(req, function (err, fields, files) {
    if(fields.key !== "YOUR KEY HERE"){
      res.write("INVALID KEY");
      return res.end();
    }
    var oldpath = files.fdata.path;
    var newpath = __dirname+"/uploads/"+file_name+files.fdata.name.toString().match(/(\.)+([a-zA-Z]+)+/g, '').toString();
    fs.rename(oldpath, newpath, function (err) {
      if (err) return res.write(err);
      res.write("http://"+req.headers.host+"/"+file_name);
      return res.end();
    });
  });
});
#
const bodyParser = require('body-parser');
const formidable = require('formidable');
const randomToken = require('random-token');

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
earnest phoenix
languid dragon
#

app.listen(8030);

#

const express = require('express');
const fs = require('fs');
const app = express();
#

const path = require("path");
restive totem
#

uh

bitter pivot
#

OMG, http://senpai.ga, your website is not motion design !! IN 2017 not motion design ?! 👉🏽 🚪

bitter sundial
#

motion design?

#

only thing I can think of is material design

#

lol

languid dragon
#

LOL?

earnest phoenix
#

Any Idea why the roles come up as undefined?

let roletag = args[1]
if(command.startsWith("+roleinfo")) {
  let modrole=message.guild.roles.find("name", "Mod");
  if(!modrole) {
    return message.reply("Please create a Role called 'Mod'.").catch(console.error);
  }
  if(!message.member.roles.has(modrole.id)) {
    return message.reply("You do not have access to Moderation Commands!").catch(console.error);
  }
  if(!roletag) {
    return message.reply("Please specify a role!").catch(console.error);
  } else {
    return message.author.send({embed: {
    color: aqua,
    author: {
      name: "",
      icon_url: ""
    },
    title: "Role Info",
    description: `
    __**Displaying information about the specified Role!**__

    **Selected Role:** ${roletag}
    **Position of Role:** ${roletag.calculatedPosition}
    **Colour Of Role:** ${roletag.color}
    **Role Created At:** ${roletag.createdAt}
    **Role Editable:** ${roletag.editable}
    **Role ID:** ${roletag.id}
    **Role Members:** ${roletag.members}
    **Role Permissions:** ${roletag.permissions}

    `,
    timestamp: "",
    footer: {
      icon_url: "",
      text: `© Support us on Patreon to get access to Fun Commands!`
    }
  }
  }).catch(console.error);
  }
}
#

JavaScript*

#

Nevermind, I got it

median lintel
#

wow

earnest phoenix
#

Lmao

#

Sup?

#

Any Idea how i would do a command that would tell me all the names of the servers my bot is in? I dont exactly know how to use arrays 100%
Javascript*

thorny hinge
#

Discord.js im assuming

#

client.guilds.map(g => g.name)

#

client.guilds.map(g => g.name).join(", ")

neon pasture
bitter sundial
#

yes

neon pasture
#

That's why, thank you

#

And how do I get id's only?

#

That was simple, sorry

uncut delta
#

@hardy knot ask @shy flicker

earnest phoenix
#

How Do i get my bot to send a new message when the max 1000 characters is exceeded?
I want my bot to be able to tell when its sent over 1000 characters and It will create a new message but carrying it on...

#

My bot wont reply with all of thge members in the guild...

let guildname = message.content.split(/\s+/g).slice(1).join(" ");
if(command.startsWith("+guildsearch")) {
  if(!message.author.id==="277917944866930689") {
    return message.reply("You are strictly forbidden to use this command!").catch(console.error);
  }
  let guild = client.guilds.find("name", guildname);
  if(!guild) {
    return message.reply("Cannot find a guild named that...").catch(console.error);
  } else {
    let guildmembernames = guild.members.map(g => g.name).join("\n")
    return message.author.send({embed: {
    color: orange,
    author: {
      name: message.author.tag,
      icon_url: message.author.avatarURL
    },
    title: `${message.guild.name}`,
    description: `
    **Displaying Guild information:**

    **Guild Name:** ${guild.name}
    **Guild ID:** ${guild.id}
    **Guild Owner:** ${guild.owner}
    **Guild Owner ID:** ${guild.ownerID}
    **Guild AFK Channel:** ${guild.afkChannel}
    **Guild AFK Channel ID:** ${guild.afkChannelID}
    **Guild Created At:** ${guild.createdAt}
    **Guild Default Role:** ${guild.defaultRole}
    **Guild Member Count:** ${guild.memberCount}
    **Guild Region:** ${guild.region}
    **Guild Icon:** ${guild.iconURL}
    **Guild Members:** ${guildmembernames}
    `,
    timestamp: new Date(),
    footer: {
      icon_url: client.user.avatarURL,
      text: ${client.guilds.size} Servers. ${client.users.size} Users.`
    }
  }
  }).catch(console.error);
  }
}
slow folio
#

Is there a good discord oAuth library for java?

toxic forum
#

There probably are a lot of generic oauth Java libs. Oauth is a standard so it should be pretty easy to integrate

ornate shadow
#

anyone here using raspberry pi to host their bots and also using mysql/mariadb willing to help me?

#
/home/pi/.djsbots/yasashii/PBE/node_modules/mysql/lib/protocol/Parser.js:80
        throw err; // Rethrow non-MySQL errors
        ^

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MariaDB client
#

I'm using the RPI through SSH if that matters

#

I trued using insecureAuth: true aswell but to no avail

#
var con = mysql.createConnection({
    host: `localhost`,
    user: `root`,
    password: `xxx`,
    database: `yasashii`,
    insecureAuth: true
});
hardy knot
#

@uncut delta By DMs?

earnest phoenix
#

Any idea why the bloody hell this wont work?
JavaScript

client.on('roleUpdate', (oldRole, newRole) => {
  if(!guild.id==="378923069521133589") {
    return;
  }
  let patreonrole = guild.roles.find("name", "Patreon - Honoured")
  if(!patreonrole) {
    return;
  }
  if(patreonrole===newRole) {
    client.channels.get("378926234073169931").send.send(`@everyone, Shoutout to ${guild.member.name} For supporting us on patreon and getting the Honoured Role!`.toString())
  }
})
median lintel
#

u said that 3 times

earnest phoenix
#

?

median lintel
#

.send.send() wat

earnest phoenix
#

wait wtf lmao

#

Fixed it but it still wont post anything into chat and it is not giving me errors on console

#
client.on('roleUpdate', (oldRole, newRole) => {
  if(!guild.id==="378923069521133589") {
    return;
  }
  let patreonrole = guild.roles.find("name", "Patreon - Honoured")
  if(!patreonrole) {
    return;
  }
  if(newRole===patreonrole.id) {
    client.channels.get("378926234073169931").send(`@everyone, Shoutout to ${guild.member.name} For supporting us on patreon and getting the Honoured Role!`.toString())
  }
})
ornate shadow
#

why the .toString() though?

earnest phoenix
#

The everyone tag lol

ornate shadow
#

it is already a string

earnest phoenix
#

Got rid of the .toString() But still happening... No errors on console and no message appears in the specified channel

ornate shadow
#

you should try adding a console.log() near the .send to check if it even reaches that part of the code

#

that's how I debug at least

earnest phoenix
#

kk lol

ornate shadow
#

if there are no errors but it still doesn't work, that might be it

earnest phoenix
#

Tried it and it doesnt even fucking get to the

if(!client.guild.id==="378923069521133589") {
``` line :/
#

So annoyed rn :/

#

@ornate shadow

tawny lava
earnest phoenix
#

oh

#

Yup

#

Still nothin even after i changed that :/

#

😢

tawny lava
#

what did you change it to

earnest phoenix
tawny lava
#

that won't work either

earnest phoenix
tawny lava
#

nope

languid dragon
#

messsage.guild.id Thonk

earnest phoenix
#

No

tawny lava
#

that won't work too

earnest phoenix
#

No messages are being sent

tawny lava
#

cuz it's in the roleUpdate event

languid dragon
#

lol

earnest phoenix
#

guildMemberUpdate?

tawny lava
#

?

earnest phoenix
#

is it that one?

#

the guildMemberUpdate event?

tawny lava
#

depends on what you're trying to do

languid dragon
#

have you looked at the documentation?

earnest phoenix
#

When a user gets given the Patreon - Honoured role, A Message is sent into a specified channel

#

yep

tawny lava
#

ye that's not the event you want

tawny lava
#

guildMemberUpdate is the one you want

earnest phoenix
#

Thanks lmao ffs. Everything else is right i guess?

earnest phoenix
#

Its the guild.id that is now causing me problems

#

hmmm...

languid dragon
earnest phoenix
#

lmao ohh

languid dragon
#

your event would look like client.on('guildMemberUpdate', (oldMember, newMember)=>{});

#

to get guild id, follow my gif and do newMember.guild.id

ornate shadow
#

I gave up

#

and submitted a question on stackoverflow

#

I'm trying for 2 days now

#

gonna take a break and play some LoL until someone may know a solution

topaz fjord
#

can i ask another question

ornate shadow
#

you're free as a bird

#

I mean as a turtle

topaz fjord
#
   {  
      "username":"TurtleGamingFTW",
      "discriminator":"4822",
      "id":"220271040658407424",
      "avatar":"9bb5f79b5070883c33f701fd60db42c7"
   },
   {  
      "username":"Cheiftan",
      "discriminator":"9948",
      "id":"183871141759156225",
      "avatar":"c4a9ab0f815f71f81750e6a5ff1d7a60"
   }
#

is there a way

#

to retrive all the ids

#

instead of just 1

ornate shadow
#

you may loop

#

store it in an array

#

using forEach

topaz fjord
#
      snekfetch.get(`https://discordbots.org/api/bots/348205766127124480/votes`)
        .set('Authorization', 'hahahahah')
        .then(r => console.log(JSON.parse(r.text)))
#

thats the way i get it out of array

languid dragon
#
var ids = [];
for(var i=0;objectArray.length>i;i++){
    ids.push(objectArray[i].id);
}
#

if you want all ID's in an array

#

that's how i'd do it

ornate shadow
#

don't forget to close the bracket 😄

languid dragon
#

ty, my bad

ornate shadow
#

xD

earnest phoenix
#

why doesnt this work

#

client.user.setPresence({
activity: {
name: "you 😉",
type: 3
}
})

#
client.user.setPresence({
              activity: {
                  name: "you 😉", 
                  type: 3
              }
          })
topaz fjord
#

@languid dragon i still dontunderstand how to put that in my snekfetch

languid dragon
#

yh idk what ur doing, u best ask someone else cos im sleeping goodluck x

topaz fjord
#

i want to get all the ids of who voted and push it into an array

thorny hinge
#

...cant you just do client.user.setGame() @earnest phoenix

earnest phoenix
#

this isnt setting games @thorny hinge

#

type 2 + type 3 are new things

#

Watching and Listening

#

instead of just Playing

thorny hinge
earnest phoenix
#

or Streaming

thorny hinge
#

waw

#

Thats lit

earnest phoenix
#

Boobbot has it

#

and my friend uses it on his bot too

quiet bobcat
earnest phoenix
#

<?php
        $uri = $_SERVER['REQUEST_URI'];
    $url = "https://cdn.itsmoose.space/pls/";
        $uritrim = substr($uri, 7);
        echo $url . $uritrim;
        echo '<meta property="og:image" content="' . $url . $uritrim . '" />';
?>
#
.........wut is this?!!?!?!?
#

mmmm

#

blue

topaz fjord
#

how are you supposed to edit buttons in the bot page

earnest phoenix
#

Have to use js

#

And you're not certified so you cant

median lintel
#

edit what exactally

topaz fjord
#

like you know how they have that header and the icon stuff

median lintel
#

wat

topaz fjord
#

like how poeple move icons

earnest phoenix
#

i wish i could do that