#development

1 messages · Page 1079 of 1

slender thistle
#

There's no "better" way, it's more about preferences

tranquil sandal
#

What I need is to automatically update the servers that is

#

what is the code for this?

slender thistle
#

The code from the first example will work for you

#

autopost too catshrug

#

Whichever one you want to use

tranquil sandal
#

Ok tnx 😄 bq i don't know too of ur api

#

ok

#

let's see if works 😄

delicate shore
#

how to do like ths

#

in embed

#

that

tranquil sandal
#

and how i should wait untill the bot post the serverount?

delicate shore
#

|Invite Me | Support Server |

slender thistle
#

It should immediately try to post it

delicate shore
#

if person clicks he go there

slender thistle
#

That's hyperlinks, PGamerX

delicate shore
#

how to do in embed?

slender thistle
#

[Your text](Your URL)

delicate shore
#

.setDescription(poop)

#

like this?

slender thistle
#

in quotation marks

delicate shore
#

alr

slender thistle
#

aka inside the string

tranquil sandal
#

:V failed to post because i don't put the token GWpingKanyeLUL :V

delicate shore
#

thansk

#

thanks

acoustic orchid
#

Nvm I am just gonna give up

tranquil sandal
#

gonna let u down

#

Works!!!!!

#

yay

#

now says 24 servers

#

not N/A

#

TNX

delicate shore
#

what is this?

#

is ityour webiste?

#

it your website*

tranquil sandal
#

now the api works

hollow crypt
#

I give up! ! !

tranquil sandal
#

gonna let u down

delicate shore
#

ok

#

i have a question

#

i am making a website

#

on glitch

#

how can i change this

#

i know the wording

#

but the logo

#

that i don't know

misty sigil
#

using favicon

#

and <title> tags

#

this is really basic html

acoustic orchid
#

Can someone maybe help me in dms

tranquil sandal
#

@acoustic orchid what's ur problem?

acoustic orchid
#

Idk how to make the commands looking nice and let them all work @tranquil sandal

summer torrent
#

do you know any programming language

acoustic orchid
#

Uhmm idk how to use js

summer torrent
#

then learn

misty sigil
#

then learn.

acoustic orchid
#

Lol I mean I have never did something like this before

summer torrent
#

follow tutorials

tight plinth
#

Learn and u'll be able to

#

follow tutorials
No youtube tutorials plz

acoustic orchid
#

Wich tutorials do u mean then

summer torrent
misty sigil
#

and then https://discord.js.org/ for more complex in-depth info about stuff

acoustic orchid
#

Oh I am to broke for this stuff

hazy sparrow
#

mybot.js

 client.commands.find(cmd => cmd.aliases && cmd.name).execute(message);

if (!command) return;

ping.js

module.exports = {
   name: 'ping',
   description: "this is a ping command!",
   aliases: ['hi', 'testping'],
   execute(message){
       message.channel.send('pong!');
    }
}
silver dust
#

Hiii

#

Need help

earnest phoenix
#

@hazy sparrow from what im seeing your find method is just filtering for commands which have aliases and name properties defined

hazy sparrow
#

i have name property defined for everything

earnest phoenix
#

which would explain why it pulls up the incorrect command

hazy sparrow
#

okay so how can i make it check for the filename

earnest phoenix
#

compare the strings 👁️ 👄 👁️

hazy sparrow
#

ill try that wait

earnest phoenix
#

i don't use js so i can't help you much

#

but i'd suggest doing research

#

beleive me or not creating a bot for faccebook using the official way is a real fucking pain in the ass

#

here the error

obtuse jolt
#

how do i check if they user doesn't have the permission from this?
if($yes->permissions & 0x00000020)

pale vessel
#

why is that a bmp file

earnest phoenix
#

idk

#

i use my print screen

lusty quest
#

i dont download random files from discord. either paste them in a pastebin or hastebin site or use a different format

obtuse jolt
#

that would be the perfect time to plug my site

#

lmao

earnest phoenix
#

ah then wait to send as image

#

ah again

obtuse jolt
#

thats

#

thats the error

earnest phoenix
#

yes

#

and code

#

1min

#

idk why i cant send as image

valid holly
#

Discord JS

Would it be better if I load objects in a variable before, like:

const someVar = client.users.cache.get("someID");

Instead of requesting that resource every get() ?

obtuse jolt
valid holly
#

I'm using the same resource and exporting it in other files

earnest phoenix
#

const commandFiles = readdirSync(join(__dirname, "commands")).filter(file => file.endsWith(".js"));
for (const file of commandFiles) {
const command = require(join(__dirname, "commands", ${file}));
client.commands.set(command.name, command);
}

lusty quest
#

@valid holly you request it from the cache so i dont think there is a difference

#

if you would fetch it i would only do it once and then use the cache

valid holly
#

That is what I was thinking aswell, but wasn't sure.

lusty quest
#

did it resulted in undefined?

sterile minnow
#

Does anyone know a good WORKING Lavalink client for discord.js?

#

The one in the Lavalink git rep doesnt work

honest perch
#

Theres multiple listed there iirc

sterile minnow
#

I tried lavacord too etc

honest perch
#

It probably does work, you're just doing it wrong

sterile minnow
#

i literally copied the example tho

#

And it didnt work

honest perch
#

Did you supply the correct port, ip and password?

#

To the lavalink server

sterile minnow
#

yes

#

Gonna try erela now

#

Ah yes

#

Erela errors:

(node:16180) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'id' of undefined
    at Map.spawn (F:\Github\Little-Music\node_modules\erela.js\dist\lib\stores\PlayerStore.js:40:50)
    at Object.execute (F:\Github\Little-Music\commands\lavalink.js:16:45)
    at Client.<anonymous> (F:\Github\Little-Music\index.js:94:15)
    at Client.emit (events.js:311:20)
    at MessageCreateAction.handle (F:\Github\Little-Music\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
    at Object.module.exports [as MESSAGE_CREATE] (F:\Github\Little-Music\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (F:\Github\Little-Music\node_modules\discord.js\src\client\websocket\WebSocketManager.js:386:31)
    at WebSocketShard.onPacket (F:\Github\Little-Music\node_modules\discord.js\src\client\websocket\WebSocketShard.js:436:22)
    at WebSocketShard.onMessage (F:\Github\Little-Music\node_modules\discord.js\src\client\websocket\WebSocketShard.js:293:10)
    at WebSocket.onMessage (F:\Github\Little-Music\node_modules\ws\lib\event-target.js:125:16)
(node:16180) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:16180) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.```
honest perch
#

Because you're doing it wrong

#

Multiple people here use erela fine

sterile minnow
#

Now it works. The VoiceChannel of the user was wrong defined

earnest phoenix
#

SyntaxError: Invalid or unexpected token
2:23 PM
at Module._compile (internal/modules/cjs/loader.js:703:23)
2:23 PM
at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)
2:23 PM
at Module.load (internal/modules/cjs/loader.js:628:32)
2:23 PM
at Function.Module._load (internal/modules/cjs/loader.js:555:12)
2:23 PM
at Module.require (internal/modules/cjs/loader.js:666:19)
2:23 PM
at require (internal/modules/cjs/helpers.js:16:16)
2:23 PM
Jump Toat Object.<anonymous> (/app/index.js:47:19)
2:23 PM
at Module._compile (internal/modules/cjs/loader.js:759:30)
2:23 PM
at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)
2:23 PM
at Module.load (internal/modules/cjs/loader.js:628:32)

#

const commandFiles = readdirSync(join(__dirname, "commands")).filter(file => file.endsWith(".js"));
for (const file of commandFiles) {
const command = require(join(__dirname, "commands", ${file}));
client.commands.set(command.name, command);
}

client.on("message", async message => {
if (message.author.bot) return;
if (!message.guild) return;

#

i get the error and here is the code

honest perch
#

Please learn how to use codeblocks

earnest phoenix
#

where can i learn

honest perch
#

Just add ```

#

Before and after

sterile minnow
#

Misly how can i like set the volume and get infos abt the node etc do you know that?

honest perch
#

Check their documentation

sterile minnow
#

ty

earnest phoenix
#

now i get this

#

SyntaxError: Unexpected identifier

#

SyntaxError: Unexpected identifier

honest perch
#

What

earnest phoenix
#

at Module._compile (internal/modules/cjs/loader.js:703:23)
2:27 PM
at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)
2:27 PM
at Module.load (internal/modules/cjs/loader.js:628:32)
2:27 PM
at Function.Module._load (internal/modules/cjs/loader.js:555:12)
2:27 PM
at Function.Module.runMain (internal/modules/cjs/loader.js:826:10)
2:27 PM
at internal/main/run_main_module.js:17:11

honest perch
#

Add ``` before the text

#

To make a code block

#

And after

#

On discord

earnest phoenix
#

onst commandFiles = readdirSync(join(__dirname, "commands")).filter(file => file.endsWith(".js"));
for (const file of commandFiles) {
const command = require(join(__dirname, "commands", `${file}`));
client.commands.set(command.name, command);
}

#

like this?

honest perch
#

Please learn how to to use JavaScript

sterile minnow
#

/ learn how to use discord

earnest phoenix
#

:/

honest perch
#

I'll show you a code block real quick

#
This 
Is
A
Code
Block
finite bough
#

lol that doesnt help

earnest phoenix
#

or even a better idea

#

don't copypaste your big ass blocks of code here and instead send a link to a text sharing service

#

🧠

honest perch
#

I mean

#

It is the development channel

earnest phoenix
#

yes but it's cluttering the channel

#

it reduces readability and clutters the chat preventing other questions from really being seen

delicate shore
#

using favicon
@misty sigil but i am not sure how to do that in glitch

#

the thing whereb we need to tell file

#

location

#

and name etc

half bison
#

My Monitor Down GWrverifyPunch

misty sigil
#

Learn html

delicate shore
#

ok

#

ok

sterile minnow
#

Does anyone know how i get the stats from the 1. Node?

 nodes: NodeStore [Map] {
    'IP' => Node {
      erela: [Circular],
      websocket: [WebSocket],
      reconnectAttempts: 0,
      calls: 1,
      options: [Object],
      retryAmount: 5,
      retryDelay: 30000,
      stats: [Object]
    },```

I tried: ``client.music.nodes[0]``
delicate shore
#

e

tight plinth
#

erm

#

do you know how maps works in js

digital ibex
#

hi

#

does anyone know how I can fix Promise { { _misc: [ 'Only dictionaries may be used in a DictType' ] } } ?
my code:

async function sendWebhook(content, username, avatarURL, webhook) {
   const fetch = require('node-fetch');
   const hook = await fetch(`https://discord.com/api/webhooks/${webhook.id}/${webhook.token}`, {
   method: 'post',
   body: { content: JSON.stringify(content), username: JSON.stringify(username) }
   }).then((e) => e.json());
   return hook;
}```
what im doing: ```js
await sendWebhook('hi', 'hi', 'https://bob.png', webhook);
#

i believe the error is coming from body:.., and i dont know how to fix it

earnest phoenix
#

why are you stringifying the content

#

it should already be a string

#

same goes for username

delicate shore
#

hey

#

i am not good at html

#

how can i bring it in centre

#

it has something to do with p

earnest phoenix
#

use a flexbox

crystal plank
#

Can someone tell me why the custom status does not work

#
module.exports = {
    TOKEN: 'private token' )    
    PREFIX: '.', 
    STATUSMSG: 'Yee'
}
delicate shore
#

use a flexbox
@earnest phoenix how

earnest phoenix
delicate shore
#
          </br></br><h1 class="ariel" style="font-size:60px;"><span style="color: #ffffff;"><p style = "text-align:centre;">Black Sheep</p></span></h1>
#

i tried this but never worked

#

@earnest phoenix is this supposed to work

earnest phoenix
#

you misspelled center

#

also

#

you have a space after equals

#

you should also use a flexbox for aligning regardless

delicate shore
#

ok

#

thanks

earnest phoenix
#

it's modern web design 101

slender thistle
#

margin: 0 auto; 😎

earnest phoenix
delicate shore
#

nvm

delicate shore
#

See her bot and mine

#

Why clearity of her bot is better

#

Than mine ?

white drum
#

How can I get my bot to properly restart with a command? Eg !restart

tight plinth
#

depends how you host it

misty sigil
#

pm2

digital ibex
#

oh ok

delicate shore
#

depends how you host it
@tight plinth
Glitch

#

She also hosts on glitch

sudden geyser
#

that's not reliable

analog kestrel
#

If a bot is made from a website will it get approved if its nice bot

digital ibex
#

if it works

#

@earnest phoenix hi, any ideas why im getting { message: 'Cannot send an empty message', code: 50006 } ?

#
method: 'post',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: { content: 'hi', username: 'bob' }
earnest phoenix
#

isnt the content type supposed to be application/json

digital ibex
#

it can be that one too

#

when i didn't put a content type

#

i got this

earnest phoenix
#

if you're sending form urlencoded

#

the body can't be json

#

also you're sending an object again

#

instead of a string

#

use application/json since it's easier

digital ibex
#

kk

#

so

#

would I do, content: JSON.stringify(content), username: JSON.stringify(username).... ?

amber fractal
#

you'd want to make the entire body json

#

afaik

#

I mean I have no context and idk what you're using

still merlin
#

Can I have some help please.


ReferenceError: SpiderBotUptime is not defined
    at Object.<anonymous> (C:\Users\Jon\Desktop\SpiderBot Project\index.js:52:13)
    at Module._compile (internal/modules/cjs/loader.js:1200:30)``` I get this error when Ive defined SpiderBotUptime function. 
--
```js
function SpiderBotUptime() {```
amber fractal
#

but I think that may be what you want

digital ibex
#

make the body json?

earnest phoenix
#

we already talked about this

#

content and username are already strings

#

you do not

digital ibex
#

like body: { content, username } ?

earnest phoenix
#

need to stringify them

#

you need to stringify the actual body object

#

which again

#

i told you this the other day too

#

if you're doing it for something as simple as that

#

stringifying takes time so you should just use string literals

digital ibex
#

yeah

idle rampart
#

evet

#

kardeş

#

@misty sigil geçtik

misty sigil
#

heroku temelde VPS'dir, ancak ücretsiz olarak github ile de senkronize edebilirsiniz.

idle rampart
#

yani

pale vessel
idle rampart
#

napacam

digital ibex
#

how can i use template literals instead of json.stringify?

idle rampart
#

kardeş benim botum klasör olarak yaptım

#

botumu

digital ibex
#

this i confusing me

pale vessel
#

use `

#
`{ "valid": "json" }`
digital ibex
#

oh

#

ok

tight plinth
#

so I have a test bot developed with git auto deploy and a git repo, and the main bot in aother folder on the same vps. my idea is to, with a command, transfer every edited file from the test bot folder to the main bot folder and make it restart to apply the update, but my brain os too slamm to do that. anyone have an idea on how i can do this?

digital ibex
#

so like

idle rampart
#

@misty sigil napacam

misty sigil
#

depo olarak github'a klasör ekleyebilirsiniz.

still merlin
#

Can I have some help please.


ReferenceError: SpiderBotUptime is not defined
    at Object.<anonymous> (C:\Users\Jon\Desktop\SpiderBot Project\index.js:52:13)
    at Module._compile (internal/modules/cjs/loader.js:1200:30)``` I get this error when Ive defined SpiderBotUptime function. 
--
```js
e.Uptime = function SpiderBotUptime() {```
idle rampart
#

onu aradım

tight plinth
#

define it smh

sudden geyser
#

did you define it in the scope

idle rampart
#

yapamadım

digital ibex
#

thats-

idle rampart
#

ki

pale vessel
#

@misty sigil bruh

idle rampart
#

lan

#

bir

pale vessel
#

off topic

idle rampart
#

susun

#

ya

tight plinth
#

@idle rampart no spam plz

#

@still merlin dont put function name

still merlin
#

ohk

pale vessel
#

no that should work

#

nm i'm not sure it should work

misty sigil
#

ok im just gonna stay here and ask
how long does an embed field value get

tight plinth
#

1024

pale vessel
#

field = 1024

misty sigil
#

ok nice

pale vessel
#

desc = 2048

#

field title = 256

digital ibex
#

im getting this, js { message: '400: Bad Request', code: 0 }

tight plinth
#

total=6000

digital ibex
#

what i done: ```js
body: { content: 'bob' }

tight plinth
#

try without ``

pale vessel
#

what

#

no.

opal plank
#

"

sudden geyser
#

content

still merlin
#

Nvm i fixed my issue

sudden geyser
#

it's missing its quotes

pale vessel
#

that's not a valid json

digital ibex
#

oh

#

oh

#

wait

#

thats meanrt to be json

#

?

opal plank
#

json is an object

pale vessel
#

yes, as you can see

digital ibex
#

yeah 1 sec lemme change

tight plinth
#

so i have 2 bot folders with almost the same files, but one is more recent. i just want, thanks to js code, to transfer files from a folder to another. how can i do that

digital ibex
#

okay

#

it sends the webhook

#

but i get this error

opal plank
#

@tight plinth you... drag and drop...?

tight plinth
#

i mean

opal plank
#

not sure i understand what you want to do tbh

tight plinth
#

i want to do it with a command

#

like

#

k i'll explain

idle rampart
#

@tight plinth no @

tight plinth
#

@idle rampart shut

digital ibex
#

his is the code: js await fetch(`https://discord.com/api/webhooks/${webhook.id}/${webhook.token}`, { // <--- here method: 'post', headers: { 'Content-Type': 'application/json' }, body: `{ "content": "bob" }` }).then((e) => e.json()).then((e) => { return e });

opal plank
#

fs.Rename @tight plinth , though im unsure how to check file timestamp/date

tight plinth
#

so i have a github repo linked to a test bot. this bot is only for testing. the testing bot restarts each time the github repo has a new commit. i also have the main bot, in another folder. i want a command that somehow pushes the commits to the main bot in one time

opal plank
#

stat might be able to do it

tight plinth
#

am i clear enough

opal plank
#

why not git clone?

#

just re-clone the repo onto the folder

tight plinth
#

so you want me to have the same github repo linked to 2 folders?

#

hm

opal plank
#

you could

tight plinth
#

why not

opal plank
#

script the command to run git with a target instead of using FS

#

THOUGH

#

the alternative COULD be doing a fs.stat

#

i think that should give a modification timestamp

#

THEN you could use fs.rename

#

git clone might also be able to do just that and check files size/modification date before attempting to replace them

still merlin
#

I'm trying to call a function but its undefined partly. But I've defined the name when I made my function-

#

I can console.log it and it returns as [Function SpiderBot~~~~] because i didnt call it

#

but when i try call it i cant start my bot o.o

finite bough
#

@digital ibex are u trying to like use webhooks?

#

in d.js?

delicate shore
#

ok so

#

guys

#

i wana say one thing

#

wanna

misty sigil
#

yes

delicate shore
#

some of you guys are best in world

#

like erwin and clarkson and beoing and dice

#

and flapeze

#

and one more

#

tim

#

and some more i forgot the name

misty sigil
#

tim KEKW

#

best of us all

delicate shore
#

he helped me a lot

#

yeh

digital ibex
#

no @finite bough

#

i am trying to send a webhook

#

but not using d.js

idle rampart
#

@misty sigil knk

#

şu

#

işi

#

nasıl

#

yapacaz

analog kestrel
earnest phoenix
#

go ask in their support server

#

Also,he is not turk...

pale vessel
#

it's <:name:id>

#

just look at it

#

it's your code

#

oh my fucking god

earnest phoenix
#

your bot isn't in the guild the emoji is in

#

does the bot have use external emoji perm

analog kestrel
summer torrent
#

frick

earnest phoenix
#

enable it explicitly

#

you might be overwriting it with some other roles or channel overwrites

#

if not

#

then the bot isn't in the guild

#

or you have the wrong id

#

yeah

#

that should be fine

opal plank
#

@delicate shore theres an hierarchy, @quartz kindle stands atop of us all

quartz kindle
#

lmao

opal plank
#

just here to give back ASakashrug aint fair if im just asking questions and not helping back, no?

#

sense of community

#

also, tim, finally ported my shit to Typescript

#

what a foken nightmare it was. Wasnt too hard but the amount of fixes that had to be done was well over the three digits

#

Js never again

sudden geyser
#

JavaScript will always haunt you.

digital ibex
#

is there a way to find the content of a webhook?

opal plank
#

fuck that, Js just says 'fuck it all' and runs the code even though there are plenty of bugs around

#

Ts was good enough to point me them out

solid falcon
#

Mobile users can't create webhook?

digital ibex
#

if so, can u link me to the discord docs pls

pale vessel
fringe axle
digital ibex
#

no d.js

#

no library

pale vessel
#

OH

#

lmao

opal plank
#

@solid falcon i dont see a way rn, though log onto the mobile website rather than the app

pale vessel
#

you don't even use djs

digital ibex
#

yeah

fringe axle
#

Anyone?

opal plank
#

webhooks come as message events, no?

digital ibex
#

no

opal plank
#

should have a payload the same as message

analog kestrel
#

How to know id of a person for example 1994947102038 how to know the id

digital ibex
#

i dont believe so anyways

#

<user>.id

opal plank
#

lemme check something rq

pale vessel
#

it should

analog kestrel
#

<@opal plank>.id

#

Hmm

opal plank
#

webhooks have message ID

#

are you sure you cant fetch it @digital ibex ?

digital ibex
#

how am i meant to get the id?

opal plank
#

well, judging that it has a message ID it usually leads me to believe its treated as message

digital ibex
#

u cant right click on the webhook

opal plank
#

you can tho

digital ibex
#

u cant

#

public discord one anyways

opal plank
#

i'll try sending a webhook, one sec

digital ibex
opal plank
#

not the BOT

digital ibex
#

right click and nothing happens

opal plank
#

the message

digital ibex
#

what

pale vessel
#

right click the message

opal plank
digital ibex
#

well

#

yeah

opal plank
#

here, not on the avatar

digital ibex
#

but i need get the content, is it the same for webhooks as a ergular message?

opal plank
pale vessel
opal plank
#

works just fine

#

has same payload as message from what i can tell

#

treat it as message

fringe axle
digital ibex
#

no i mean

opal plank
#

im unsure what the issue is tbh

fringe axle
#

Canvas Error

pale vessel
opal plank
#

the message payload HAS the content, embed fields on it

pale vessel
#

you can treat it as a message

fringe axle
#

But idk why

digital ibex
#

if i make the api request using the webhook message id- ah

#

oki, lemme see what i can do

#

thank

opal plank
#

same as you would do for message

#

here

fringe axle
#

Someone? D:

digital ibex
#

get channel message is what i need, thank though :)

fringe axle
opal plank
#

np

pale vessel
opal plank
fringe axle
#

Someone knows what's wrong?

molten yarrow
#

Vale did u copy your node_modules folder to somewhere else?

solemn latch
#

Initilize client first

fringe axle
#

Vale did u copy your node_modules folder to somewhere else?
@molten yarrow Yes

#

I did

#

To my bot hoster

opal plank
#

clearly not

molten yarrow
#

you need to rebuild it and not copy

fringe axle
#

Uh

#

Means?

molten yarrow
#

just npm install

pale vessel
#

it should work if you copy

opal plank
#

unless you use absolute path

molten yarrow
#

not if its another architecture

pale vessel
#

or at least it has been working for me

fringe axle
#

just npm install
@molten yarrow Don't work in my bot hoster

#

It's WinSCP

#

Here

opal plank
#

@earnest phoenix stop using vars

fringe axle
#

Left my folder and right the hoster

pale vessel
#

it has nothing to do with that

fringe axle
#

@molten yarrow

#

Look above

analog kestrel
#

Code:-

%{DOL}%onlyAdmin⦍You do not have permission to do this Command!⦐
%{DOL}%clear⦍999999⦐

%{DOL}%title⦍**Reset Chat**⦐
%{DOL}%description⦍
ballot_box_with_checkSuccesfully reset the chat
⦐
%{DOL}%footer⦍%{DOL}%username reseted the chat⦐
%{DOL}%color⦍ffffff⦐

%{DOL}%deletecommand

%{DOL}%deleteIn⦍10s⦐

%{DOL}%suppressErrors```

Is this code correct
earnest phoenix
#

whats this

fringe axle
#

BDScript

#

Discord Bot Maker

earnest phoenix
#

lol

fringe axle
#

XD

pale vessel
molten yarrow
#

oh

earnest phoenix
#

Scratch

pale vessel
#

discord.scratch better

fringe axle
#

I can't install things on it

#

Just paste them in

pale vessel
fringe axle
#

;__;

pale vessel
#

it has nothing to do with your host

fringe axle
#

No

#

That was the wrong error

#

;_;

pale vessel
earnest phoenix
#

???? waitWhatSpin

fringe axle
#

;_;

pale vessel
#

that's canvas

#

so gyp

solemn latch
#

Canvas is real picky about how its installed

earnest phoenix
#

You arent even showing the full error smh

pale vessel
#

try reinstalling canvas

fringe axle
#

Did that already

#

Not working

pale vessel
#

on your host

molten yarrow
#

yeah i had same error when copy over my canvas folder
from win10 on winserver

earnest phoenix
#

"Several people are typing..."

fringe axle
#

@molten yarrow and?

#

How you fixed it?

pale vessel
#

i guess it's because it's a native module

delicate shore
#

i successfully made an eval coommand 🥳

pale vessel
molten yarrow
#

deleted node_modules folder and installed again but on winserver

fringe axle
#

Uh

#

You mean deinstall it on WinSCP server?

#

And reinstall it?

molten yarrow
#

yep

fringe axle
#

Okay

#

That will be a long time

solemn latch
#

Iirc your error said you used .count on undefined

#

Let variable = stuff

pale vessel
#

by defining it

summer torrent
#

smh

solemn latch
#

🤔

#

??

fringe axle
#

@molten yarrow and this will work 100%?

summer torrent
#

🤦‍♂️

#

it is property of MessageReaction object

fringe axle
#

Because it's a level system with Canvas Rank Card

summer torrent
#

<your message reaction object>.count

earnest phoenix
#

What version djs?

summer torrent
#

yes

earnest phoenix
#

vote kick?

#

🤦‍♂️

#

lol

summer torrent
#

isn't it reactions.cache ?

earnest phoenix
#

Stop there

#

go there to learn about djs

solemn latch
#

Depends on the version

earnest phoenix
#

you clearly are guessing properties

#

Try it

lone pond
#

How do i get the track id of a playlists track in spotify with the spotify web api?

summer torrent
#

ID of all tracks?

opal plank
#

prob check api docs

summer torrent
#

read the guide

lone pond
#

@summer torrent no of one single track

summer torrent
earnest phoenix
#

You won't understand if you dont grasp js or djs

#

If you don't understand this, you shouldn't make a bot.

opal plank
#

you are collecting those reactions i assume

#

check whats returned from the collector

#

either you are collecting those reactions

#

OR you are checking for one message

#

in which case client is what contains the emoji

#

idk what your 'reactions' is set to

#

awaitReactions?

#

aight lets see

#

what does it say it returns?

digital ibex
#

tf is msg.awaitReactions... d.js 🤦‍♂️

#

its probably a thing idk

opal plank
#

it is, i just linked above

digital ibex
#

yeah

opal plank
#

im guessing his issue is that he isnt chaining his code on the returned promised

digital ibex
#

but msg.awaitReactions..

#

the code must be erroring before that

#

cuz agree/disagree isnt a variable, its a string

opal plank
#

chain the returned collection onto a .then

#

should work better

#

this is why you look at the docs

digital ibex
#

it litterally

#

shows u the code

#

moyai

delicate shore
digital ibex
#

u tell me

#

:moyai:

delicate shore
#
if(command === "eval"){
   
const owners_id = ["587663056046391302"];
    if (!owners_id.includes(msg.author.id))
      return msg.channel.send("You not owner boi");  const args2 = msg.content.split(" ").slice(1);

    const clean = text => {
  if (typeof(text) === "string")
    return text.replace(/`/g, "`" + String.fromCharCode(8203)).replace(/@/g, "@" + String.fromCharCode(8203));
  else
      return text;
}
    
    try {
      const code = args2.join(" ");
      let evaled = eval(code);
 
       const eval2 = new Discord.MessageEmbed()
       .setTitle("Output")
      .setDescription(`${clean(evaled)}` ,{code:"xl"})
      
      
      if (typeof evaled !== "string")
        evaled = require("util").inspect(evaled);
 
     msg.channel.send(clean(evaled));
      msg.channel.send(eval2)
    } catch (err) {
      msg.channel.send(`\`ERROR\` \`\`\`xl\n${clean(err)}\n\`\`\``);
    }
  
};```
#

what should i do 😭

opal plank
digital ibex
#

what

#

whats so special about vsc version control lol

#

just use bash/linux subsystem lmfao

earnest phoenix
#

sa

#

babuş

delicate shore
#

guys what have i done wrong

earnest phoenix
summer torrent
#

@earnest phoenix awaitReactions returns as collection of message reactions

digital ibex
#

it looks fine to me

#

pc gamer

delicate shore
#

it looks fine to me
@digital ibex but see the output

digital ibex
#

i saw

opal plank
#

@summer torrent already told them, and provided a guide and shit

digital ibex
#

it looks fine

spark willow
#

it looks fine

summer torrent
#

😩

restive furnace
#

varisk

opal plank
#

this better

digital ibex
#

it doesn't really teach u why

opal plank
#

as long as you're not butchering js, im fine

#

also people wouldnt read anyways

opal plank
#

error?

digital ibex
#

theres nothing wrong with it, i ask u and u just ignored

opal plank
#

that eval shall error btw

#

what would happen if it doesnt have perm to send message?

delicate shore
#

it has

#

it has admin

#

and no error

digital ibex
#

ignoring again 🗿

opal plank
#

readlly now?

delicate shore
#

theres nothing wrong with it, i ask u and u just ignored
@digital ibex i dind't

digital ibex
#

then whats wrong with it?

opal plank
#

if im not owner, it'll try to send msg

#

if it doesnt have send message

#

console spam

#

cuz theres no catch block nor perm check there

digital ibex
#

you said look at the picture

earnest phoenix
#

Yeah

digital ibex
#

and i said whats wrong with it

#

u ignored me

delicate shore
#

me?

digital ibex
#

yes

delicate shore
#

i said nothing wrong

digital ibex
#

moyai

#

🗿

delicate shore
#

i said see picture

opal plank
#

🗿

delicate shore
#

it should tell the promise etc

digital ibex
#

🗿 🗿

earnest phoenix
#

@delicate shore try with indexOf()

#

Its happened to me somewhat using includes
and when I tried with indexOf() it worked. Still dont know whats the problem

opal plank
#

should work absolutely fine with includes(

earnest phoenix
#

Yeah, but dont know whats the issue

#

Happened to me like that once

opal plank
earnest phoenix
#

Wow!

opal plank
#

works fine lol

#

even with one array element

earnest phoenix
#

Lol

opal plank
#

also he pointed out something with 'output'

#

so i assume it passed that check fine

#

with include

earnest phoenix
opal plank
#

this

solemn latch
#

eval?

opal plank
#

literally gave an example above

earnest phoenix
#

eval is basically running commands as console

opal plank
#

that eval

digital ibex
#

no it doesn't

#

lmfao

solemn latch
#

you can try things without modifying any code of your bot.

digital ibex
#

wdym ur main code?

opal plank
#

actully , my bad

#

wrong bot

#

ignore what i said

#

its all bs

scenic grotto
#

hello
Im having a problem in my bot, it's first time to host a discord bot on linux vps

#

can anyone help me in it

opal plank
delicate shore
#

So erwin

opal plank
#

sup

delicate shore
#

Way should i do ?

opal plank
#

as?

delicate shore
#

What*

#

For eval

opal plank
#

idk whats the output

#

you gave me code but no errors

delicate shore
#

There was no erro

#

In logs

quartz kindle
#

@scenic grotto which linux? ubuntu? amazon linux?

opal plank
#

afaik it should work fine

scenic grotto
#

@quartz kindle ubuntu

delicate shore
#

it was working without embed

#

But not with embed

opal plank
#

log evaled

#
if(command === "eval"){
   
const owners_id = ["587663056046391302"];
    if (!owners_id.includes(msg.author.id))
      return msg.channel.send("You not owner boi");  const args2 = msg.content.split(" ").slice(1);

    const clean = text => {
  if (typeof(text) === "string")
    return text.replace(/`/g, "`" + String.fromCharCode(8203)).replace(/@/g, "@" + String.fromCharCode(8203));
  else
      return text;
}
    
    try {
      const code = args2.join(" ");
      let evaled = eval(code);
 
       const eval2 = new Discord.MessageEmbed()
       .setTitle("Output")
      .setDescription(`${clean(evaled)}` ,{code:"xl"})
      
      
      if (typeof evaled !== "string")
        evaled = require("util").inspect(evaled);
 
     msg.channel.send(clean(evaled));
      msg.channel.send(eval2)
    } catch (err) {
      msg.channel.send(`\`ERROR\` \`\`\`xl\n${clean(err)}\n\`\`\``);
    }
  
};```
delicate shore
#

Holy

opal plank
#

copying it over cuz im tired of going back and fourth

quartz kindle
#

@scenic grotto run apt install build-essential

delicate shore
#

This is old code

scenic grotto
#

then i try to node server.js ?

quartz kindle
#

then reinstall your node modules

opal plank
#

then give me recent code

earnest phoenix
#

@delicate shore Are you running that embed in Try or outside Try?

opal plank
#

and show result

scenic grotto
#

so i delete this

quartz kindle
#

yes

delicate shore
#
if(command === "eval"){
   
const owners_id = ["587663056046391302"];
    if (!owners_id.includes(msg.author.id))
      return msg.channel.send("You not owner boi");  const args2 = msg.content.split(" ").slice(1);

    const clean = text => {
  if (typeof(text) === "string")
    return text.replace(/`/g, "`" + String.fromCharCode(8203)).replace(/@/g, "@" + String.fromCharCode(8203));
  else
      return text;
}
    
    try {
      const code = args2.join(" ");
      let evaled = eval(code);
 
       const eval2 = new Discord.MessageEmbed()
       .setTitle(clean(evaled), {code:"xl"})
      .setDescription(`\`\`\`js\n${clean(evaled)}\`\`\``)
      
      
      if (typeof evaled !== "string")
        evaled = require("util").inspect(evaled);
 
    // msg.channel.send(clean(evaled));
      msg.channel.send(eval2)
    } catch (err) {
      msg.channel.send(`\`ERROR\` \`\`\`xl\n${clean(err)}\n\`\`\``);
    }
  
};
    
#

Latest code

#

Output

opal plank
#

await it

scenic grotto
#

what is the command to download or create node modules ? because i was watching multiple videos and i did't understand very well

delicate shore
#

Await what ?

#

The output ?

opal plank
#

await the eval

delicate shore
#

Ok

earnest phoenix
#

use the node package manager

opal plank
#

actually

quartz kindle
#

npm install will reinstall all node modules from your package.json file

opal plank
#

holdup

scenic grotto
opal plank
#

what are you even running on that?

#

@delicate shore

delicate shore
#

What

scenic grotto
#

it says Error

opal plank
#

what command did u run?

delicate shore
#

Eval

quartz kindle
#

@scenic grotto doesnt matter, the process is continuing

opal plank
#

no shit sherlock

#

what were u eval'ing

delicate shore
#

Code ?

scenic grotto
#

it's stuck?

opal plank
quartz kindle
#

wait some more

delicate shore
#

msg.channel.send("Boooooooomer")

opal plank
#

of course its going to return a promise

#

resolve that promise first

delicate shore
#

How

opal plank
#

the eval is fine

delicate shore
#

Ok

opal plank
#

new Promise()

earnest phoenix
#

you should be able to just await it

scenic grotto
earnest phoenix
#

he can make it asynchronous ig

scenic grotto
#

Errors were encountered while processing: redis-server

opal plank
#

await is in async

#

his eval is sync

quartz kindle
#

its fine, redis-server is not a requirement

opal plank
#

just resolve the promise

quartz kindle
#

@delicate shore what do you event want to show? the message is sent successfully regardless

brittle horizon
#

Hi

opal plank
#

his eval is fine

#

its the fact that .send() is a promise

#

thats logging that

#

he just isnt resolving his promise

#

same reason why console.log() stuff returns undefined but also logs

earnest phoenix
#

they might want to eval 1+1 and show that output instead of console.logging

scenic grotto
#

is there a command i could write and it deletes a folder ? bec im deleting node modules and it's taking so much time

quartz kindle
#

but if he resolves the promise, then his eval command will output a huge wall of text containing a message object, or simply return [object Object] if not using inspect

delicate shore
#

Tim lime this

earnest phoenix
#

prob isnt only going to be for sending messages/other things that make noticeable changes in the client

delicate shore
#

Like*

quartz kindle
#

so you want to show the input before being evaled

#

just show it as a string lol

delicate shore
#

No

#

The output

#

Part

#

Where it tells that promise is pending

quartz kindle
#

@scenic grotto rm -r node_modules

#

its much faster than deleting through an ssh client

scenic grotto
#

now npm install

quartz kindle
#

yes

opal plank
#

didnt need that resolve

scenic grotto
opal plank
#

just copied a snippet i had before

scenic grotto
#

so much errors

delicate shore
#

Ok nvm

#

I got it

#

Thanks

scenic grotto
#

idk what's happening

delicate shore
#

But now this is happening

opal plank
delicate shore
#

It says 0 servers

scenic grotto
#

it stopped

#

@quartz kindle after npm install i do node server.js?

opal plank
#

no clue about that tbh

delicate shore
#

Ok

opal plank
#

it should just read cache

scenic grotto
#
root@vmi380150:~/bot# node server.js
(node:11790) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 message listeners added to [Client]. Use emitter.setMaxListeners() to increase limit
(node:11790) UnhandledPromiseRejectionWarning: Error: Incorrect login details were provided.
    at WebSocketConnection.<anonymous> (/root/bot/node_modules/discord.js/src/client/ClientManager.js:48:41)
    at Object.onceWrapper (events.js:422:26)
    at WebSocketConnection.emit (events.js:315:20)
    at WebSocketConnection.onClose (/root/bot/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:393:10)
    at WebSocket.onClose (/root/bot/node_modules/ws/lib/event-target.js:124:16)
    at WebSocket.emit (events.js:315:20)
    at WebSocket.emitClose (/root/bot/node_modules/ws/lib/websocket.js:191:10)
    at TLSSocket.socketOnClose (/root/bot/node_modules/ws/lib/websocket.js:850:15)
    at TLSSocket.emit (events.js:327:22)
    at net.js:674:12
    at TCP.done (_tls_wrap.js:567:7)
(node:11790) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:11790) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
root@vmi380150:~/bot#```
opal plank
#

aight, time to eat and then code more Ts shit

earnest phoenix
#

👍

quartz kindle
#

@scenic grotto one of your packages failed to build, it looks like you have a log of dependencies that you're not using in your package.json

#

you should clean it up and remove everything that you dont need

scenic grotto
#

i was using the same code before in a windows vps

#

and it was working fine

#

you should clean it up and remove everything that you dont need
what should i remove ?
im new to discord bots and these stuff

quartz kindle
#

still, you have 526 packages, many of them outdated with vulnerabilities

#

show your package.json

delicate shore
#

Alright so what is this

#

My bot is so had

#

Bad£

#

Bad*

scenic grotto
opal plank
#

any adventurous soul willing to give me a hand?

earnest phoenix
#

on?

delicate shore
#

For me ?

opal plank
#

since i ported all the code to Ts, i need to check the commands to make sure there arent any issues before i push it to the main branch

delicate shore
#

Ok

opal plank
#

if anyone willing to go thru my docs and test it, i'd appreciate it

earnest phoenix
#

I'm but I dont know Ts.

quartz kindle
#

@scenic grotto you probably dont need all of those, check which ones you're actually using in your code, for example, that you have require("package-name") somewhere in your files

#

and remove what you're not using

opal plank
#

its just to test the commands, nothing related to the language

earnest phoenix
#

Okay

#

in then

scenic grotto
#

i didn't understamd

quartz kindle
#

for example env and dotenv both do the same thing, but one is 8 years old and outdated

scenic grotto
#

how do i know if i use or don't in my bot?

quartz kindle
#

in your code

#

if you're using a package, you will have require(packagename) in your code

feral aspen
#

Guys

scenic grotto
#

so i search with CTRL+F require(package name?)

feral aspen
#

Atm, if I want to buy dev license, I will still get the perks right? Like announcment channels and stuff?

quartz kindle
#

you can search for require yes

scenic grotto
#

only these on top?

quartz kindle
#

why do you have canvas twice lol

solemn latch
#

twice as fast ;p

quartz kindle
#

also, are you actually using all of those in your code?

summer torrent
#

Canvas and canvas GWrjkKappaLUL

quartz kindle
#

or are you just requiring them and then not using them at all?

earnest phoenix
#

i would hope not in the same file

#

fuck\

scenic grotto
#

idk , someone made the code for me

quartz kindle
#

oh boy

earnest phoenix
#

the fucking level of spoonfed this boy just got is insane

scenic grotto
#

ok sorry idk if u can help me

quartz kindle
#

anyway, you have dependency issues and bad code, but that is not the main problem

#

the actual reason your bot fails to start is because your token is wrong

scenic grotto
#

my token is wrong?

#

only?

quartz kindle
#

despite all other problems you have, this problem in particular is the reason it doesnt start

scenic grotto
#

omg ;/ i was sarching for the problem for about 4 hours and it was just this 🤦‍♂️

earnest phoenix
#

i mean the error is pretty self explanatory

quartz kindle
#

also, good luck in a few months, you will need it :^)

earnest phoenix
#

i dont see how you couldnt picture that yourself

quartz kindle
#

when djs v11 stops working

scenic grotto
#

thanks for helping me

delicate shore
#

Like it's working without embed

#

See it says promise pending

opal plank
#

did u see what i posted above?

slender thistle
#

@quartz kindle updating d.js for 10 USD

#

Ez money

quartz kindle
#

lmao

#

im not gonna update a 200 command turkish bot for 10 bucks

slender thistle
#

30

quartz kindle
#

@delicate shore you are stringifying it

delicate shore
#

ok

#

But I was not getting it Erwin

quartz kindle
#

use util.inspect on it

#

and you'll get Promise{<pending>}

wooden ember
#

any one know why muy command handler wont work? cuz I had it working but needed async and that broke it so I rewrote it like 3 times and now it wont run saying that "files" is not defined however the code in the events file to define it is there. it is ```js
let msgArray = msg.content.split(" ")
let cmd = msgArray[0]
let args = msgArray.slice(1)
let files = client.commands.get(cmd.slice(prefix.length)) || client.aliases.get(cmd.slice(prefix.length));
}

#

any clues to why this is happening

tight plinth
#

Try my command handler mmLol

quartz kindle
#

what is that } doing there?

wooden ember
#

?

quartz kindle
#

let and const are block scoped and {} is a block.
if you defined them inside a block, for example {let a = 10} they will only exist inside that block

tight plinth
#

Do you even know js?

wooden ember
#

yeah but not well

tight plinth
#

So it's a no

#

Go learn it

quartz kindle
#

hence why i asked, that is that } doing there

wooden ember
#

fair enough

quartz kindle
#

is that code inside a block? if so, you'd need to show more code

tight plinth
#

Probably end of a block

wooden ember
#

yeah that is use out side of the block

quartz kindle
#

so one option is to define it outside of the block

#

for example

wooden ember
#

that was worded badly

#

yeah I know how to fix it now

#

thx for the help

quartz kindle
#
let files;
... dosomethingelse {
  files = bla
}
console.log(files)
earnest phoenix
#

Is it possible to somehow make the eval accept the await without including it inside an async function like this?

(async () => {
await //some promise
})()``` but instead do this
```js
await //some promise```
tight plinth
#

I don't think so

#

But you can do js eval(`async function h(){ ${args.join(' ')} } h() `)

amber fractal
#

you'll just get Promise<Pending>

tame hinge
#

how i get my project in glich to gethub ?

summer torrent
earnest phoenix
#

@amber fractal i won't, i have a check if the evaluation is an instance of a promise, if so await it

#

But in async function to return a result, you have to do
return <result> but you can't do

<result>```
golden condor
#

Hello, I am trying to docs page for my npm package. I know of some docs pages like gitbook but I am looking to use one that can make a nice site that I can customize. Does anyone know of any program/builder I can use that is free?

peak shard
#

@golden condor Use Discord Bot maker

golden condor
#

That's not what I meant

summer torrent
#

jsdoc

quartz kindle
#

Lol

#

@earnest phoenix what i do is layer it

#

have multiple eval functions, each for resolving a specific situation

#

its not perfect, but it supports almost everything i throw at it

peak shard
#

Oh

#

i didnt saw the full msg

#

lmfao

#

srry

acoustic orchid
#

Can anyone pls help me in dm I am trying to make my first bot with only like 2-6 mod commands

solemn latch
#

are you looking for something specific?

stiff stream
#

i want to make meme command and i know how, to make it take them from reddit i need to type npm install reddit?

delicate shore
#

My bot knows me well

#

And don't worry

earnest phoenix
#

Got any idea why a voiceConnection#dispatcher can be null

delicate shore
#

The links are expired

#

Which you see above

stiff stream
#

i want to make meme command and i know how, to make it take them from reddit i need to type npm install reddit?

delicate shore
#

Random Puppy

solemn latch
#

you dont have to repeat yourself 20 seconds later

#

🤔

delicate shore
#

RandomPuppy @stiff stream

earnest phoenix
#

reddit is even a package

delicate shore
#

^

solemn latch
#

if theres a module named reddit, you can use it. if thats what you want

delicate shore
#

But RandomPuppy

#

Is easy

acoustic orchid
#

are you looking for something specific?
@solemn latch not really something spesific I only want to make a simple moderation bot that works smoothly

earnest phoenix
#

Use node-fetch and do whatever

solemn latch
#

well, this is more help with specifics @acoustic orchid

earnest phoenix
#

@stiff stream

delicate shore
#

Yws

#

Fetch APIs like heroku.gimme

#

And etc

finite bough
#

dispatcher not found = null

#

lol

acoustic orchid
#

well, this is more help with specifics @acoustic orchid
@solemn latch wdym

delicate shore
#

Then you use JSON and function

finite bough
#

webhooks prob

earnest phoenix
#

@finite bough bruh, a voice connection's dispatcher can't be null

#

:facepalm-3:

#

And emojis on discord is fucked

stiff stream
#

RandomPuppy @stiff stream
@delicate shore how do i download it?
npm install Randompuppy?

finite bough
#

maybe not in discord.js

#

lol

solemn latch
#

if you need help with an error, or a specific thing, we can help.
general questions, like yours isnt easy to answer @acoustic orchid

earnest phoenix
#

@finite bough oi come to testing 1 i'll show ya

finite bough
#

rip spotify

#

me: on testing 1 , voltrex on music 1

delicate shore
#

@delicate shore how do i download it?
npm install Randompuppy?
@stiff stream
Watch tutorials on YouTube

#

It's of 5 mins only

stiff stream
#

k

near ether
#

what are some common fixes i can make to stop getting ratelimited?

solemn latch
#

dont do things more often than the ratelimit

#

🤔

near ether
#

how can i do that when there are thousands of users on my bot?

#

the same thing always happens - bot stays active and runs perfectly fine, but then i announce a new update and it gets ratelimited immediately bc of all the user activity

wanton nova
#

add a cooldown perhaps?

near ether
#

i do have an 8 second cooldown between commands

wanton nova
#

oh dang

#

which command do you think requires the most requests to discord api?

delicate shore
#

lol

wanton nova
#

or which command is the most used

delicate shore
#

I have 3 seconds cooldown on meme and covid and weather commands

near ether
#

and also i increased restTimeOffset to 750 in my client options

delicate shore
#

That is it

solemn latch
#

i have multiple staging of cooldown on my commands 🤔

delicate shore
#

Like ?

#

How to do that

solemn latch
#

spamming commands gets you temp ignored for a few minutes.

delicate shore
#

I get it