#placeholder-api

1 messages ยท Page 169 of 1

hard basalt
#

can u expand ur problem

wind fable
#

Now it's fixed it

hard basalt
#

oh ok

hidden pumice
#

i have a rpoblem with placeholder api i need help pls

hard basalt
#

pls

#

can u

#

paste via helpchat paste

#

please

hidden pumice
#

How do you mean that ?

hard basalt
#

read channel topic ๐Ÿ‘€

tender vaporBOT
#
๐Ÿ“‹ Your paste: Jinendra
https://paste.helpch.at/qewosotexi

A member of staff has requested I move your message to a paste,
Most likely because it contains a config/error/code snippet.

#
๐Ÿ“‹ Your paste: Jinendra
https://paste.helpch.at/arubuyowuj

A member of staff has requested I move your message to a paste,
Most likely because it contains a config/error/code snippet.

#
๐Ÿ“‹ Your paste: Jinendra
https://paste.helpch.at/diboneyixi

A member of staff has requested I move your message to a paste,
Most likely because it contains a config/error/code snippet.

hidden pumice
#

sry

turbid tide
#

@hidden pumice just update your server expansion

#

do /papi ecloud download server then /papi reload

hidden pumice
#

ok

#

nice thank you

echo knoll
#

For the math expression do you think its possible for it to pick a random number between the specified number?

#

Or is that not possible

turbid tide
echo knoll
#

Oooh! Ok!

#

Thanks

echo knoll
turbid tide
#

a modifier?

echo knoll
#

Essentially I am doing a dnd roll with the expression

#

So when I do /roll 1d20 it'll pick up the 1 and 20 %rng_0,20% then say I want to add +4 it will add 4 to the total.

turbid tide
#

I mean you can use the math expansion for that. you generate a random number and add whatever you want to it

torn forge
#

It has been a while since I updated, just did so and noticed some errors, so I updated the expansions. Now I have 2 sets of expansions in my folder and one of the player expansions is throwing an error. Can I safely delete one of the expansion files? Currently I have Expansion-player.jar and Expansion-Player.jar. Which would be the correct one to remove?

#

This is on v2.10.10

turbid tide
#

just remove both and use /papi ecloud download player then /papi reload to have the latest

torn forge
#

fixed, thank you.

austere hawk
#

Why statistic doesn't work with animatedscoreboard

#

?

warm topaz
#

I assume animatedscoreboard supports PAPI, so make sure u have downloaded the statistic expansion

/papi reload```
austere hawk
#

I did it

#

Example %statistic_deaths% doesn't work

#

Just show 0

#

Server running on paper 1.16.5

#

Latest version of papi

warm topaz
#

Well do u have 0 deaths? if its returning a number then that indicates that it should be working fine

austere hawk
#

.-.

warm topaz
#

the statistic expansion just returns whatever statistics the server is holding

austere hawk
#

I tried to die but it still show 0

warm topaz
#

if u run /papi parse me %statistic deaths%, is it still 0?

austere hawk
#

Yes

turbid tide
#

that means your server is not recording the statistics correctly then

#

or you just haven't died yet

cold temple
#

Hey what is the placeholder to display the total players within a network?

#

And I assume I can use this placeholder for my backend servers, this is for Velocity

sharp jay
#

@cold temple

cold temple
#

I thought bungee_total was per server

#

Also didn't think it would work on velocity o.O

#

will try now thank you

willow lodge
#

hey! i want to do something like alias for my player_direction but its not working can u help me? There is the code
player:
ping_color:
medium: '&e'
high: '&c'
low: '&a'
player_direction:
w: 'โฌ†'

#

can someone help me with this?

#

@sharp jay ur the only online sorry for pinging u

tender vaporBOT
sharp jay
#

there is 20 other people online

willow lodge
#

oh

#

i dont see

#

but

#

can u help me?

sharp jay
#

Not rn

turbid tide
#

yesterday was today but with a day off

willow lodge
#

and when can u

#

deleted user

#

can u help me

#

@warm topaz can u help me?

tender vaporBOT
willow lodge
#

please

#

i need this

red silo
#

What is?

willow lodge
#

e

willow lodge
# red silo What is?

hey! i want to do something like alias for my player_direction but its not working can u help me? There is the code
player:
ping_color:
medium: '&e'
high: '&c'
low: '&a'
player_direction:
w: 'โฌ†๏ธ'

#

do you understand what i want

#

if the papi parse is W then i want to be it โฌ†๏ธ

#

like

#

west: โฌ†๏ธ'

red silo
#

Dont Really understand it sorry

turbid tide
#

no Fxdvs. you can't just add options to the config as you please. unless you're making your own expansion

#

if you want outputs based on inputs you can do it with a bit of javascript

willow lodge
#

oh

#

i see

turbid tide
#

check out the javascript expansion

#

=links javascript

willow lodge
#

oh

tender vaporBOT
#
Javascript
Useful Links & Information:

An expansion that allows you to use javascript for processing
โ€ข Wiki
โ€ข Community Scripts
โ€ข GitHub
โ€ข eCloud

turbid tide
#

here's the links ^^

willow lodge
#

thank you

#

can

#

can i ask something?

willow lodge
# turbid tide here's the links ^^

var player = BukkitPlayer;
var direction = '%player_direction%';

function direction_alias() {
if ( direction !== 'W' ) {
return "&fWest!"
}
}
direction_alias();

could it work?

#

oh

#

i have the !

turbid tide
#

Yeah

#

=== instead

#

Also you don't need the player variable

willow lodge
#

yea

#

i know

#

var direction = '%player_direction%';
var color = '&3';

function direction_alias() {
switch(direction) {
case 'W':
return color + "โฌ‡"
break
case 'NW':
return color + "โฌ‹"
break
case 'N':
return color + "โฌ…"
break
case 'NE':
return color + "โฌ‰"
break
case 'E':
return color + "โฌ†"
break
case 'SE':
return color + "โฌˆ"
break
case 'S':
return color + "โžก"
break
case 'SW':
return color + "โฌŠ"
break
}
}
direction_alias();

#

this is my final codfe

turbid tide
#

Make sure you select UTF-8 encoding dor the file

willow lodge
#

yea

lilac oxide
#

@trim frost here

willow lodge
#

fred

#

can u help me

trim frost
#

Hello I have a strange problem with the placeholder of the Bentobox plugin, the players who have reached 1 million broken blocks can no longer open a deluxe menu and it returns this error:

I explained the problem to the developer and he referred me to you!

trim frost
lilac oxide
trim frost
#

Thanks, i need help about this !

#

It's really strange

willow lodge
#

fred

#

can

#

u help me too ๐Ÿ˜„

lilac oxide
willow lodge
#

old placeholders

#

try redownloading them

trim frost
frank sinew
#

When making a javascript placeholder, how can I make it allow relational placeholders? As right now, it cant be read as a relational placeholder

willow lodge
#

its your problem ๐Ÿ˜„

#

btw how does

trim frost
willow lodge
#

mysql expansion works

hoary quarry
willow lodge
hoary quarry
willow lodge
#

how can i send placeholder outputs like into database

#

and then show it

#

on like a web

#

or something

stone thorn
#

hey, I have no clue how to use the %randomnumber_number_scale%. anyone know? %randomnumber_number_min_max%? do I replace the min max or how does it work

#

tried replacing, but didnt work

lilac oxide
#

what does that say?

stone thorn
#

it returns the literal placeholder

lilac oxide
#

hm

#

you installed the expansion?

stone thorn
#

I see what's wrong. the placeholder doesn't actually install even after papi reload

lilac oxide
#

ah

stone thorn
#

hmm, what do I do? ๐Ÿ˜‚ placeholder won't let me install it

#

so super strange. it works on one of my servers, but not the other ๐Ÿ˜‚

#

nope I lied. it's on both so I'm back to square 0

hoary quarry
#

is lightshot dont be scare

lilac oxide
#

that screenshot is useless

hoary quarry
#

1sec

silver minnow
#

chances are that the placeholders are lagging, not placeholder api itself

#

also, it's been more than 1 second ๐Ÿฅฒ

gaunt cargo
errant iron
#

Have you tried any of the examples including u?

#

and I don't think uu is correct, it seems like it'd just be one u since it's a single number for the day of the week

gaunt cargo
#

%server_countdown_u_6% does not work either

#

This works fine tho: %server_time_ww-u%

#

I assume I'm typing the placeholder wrong or misunderstanding something but I can't figure out what to type instead

#

The example works but as soon as I simplify it down to just dd for example it'll just return 0

#

This doesn't work either; %server_countdown_yyyy.u_2021.6%, but if I change it to 2022 it works for some reason

#

Same goes for %server_countdown_HH_23%, and adding 2022 to it makes it work but, well, I don't want to countdown to 2022

errant iron
#

maybe because it has to be a time in the future?

#

2021.6 already happened

gaunt cargo
#

u is day in the week though

#

so how would I use the u value

errant iron
#

like you point it to a specific day

#

i don't think you can do like weekly countdowns, i think you have to specify a day per countdown

gaunt cargo
#

I might be able to use the math-related variables in combination with the server_time one to calculate it

errant iron
#

yeah, there's probably some way to get the current time and like, just add to it

#

but I'm pretty sure SimpleDateFormat is just a pretty way to express unix time, not a relative time

gaunt cargo
#

i see, thank you \๐Ÿ‘

modern lynx
#

GemsEconomy have placeholders but not uses commas, is there a way to make them use comma with another expansion?

#

Can I do that with Formatter?

#

?

#

formatter

#

Formatter

#

who sent this...

#

I asked because I couldn't understand how this thing works

austere hawk
turbid tide
modern lynx
#

thank you

vital hound
warm topaz
#

do u have the essentials plugin installed?

vital hound
tender vaporBOT
# vital hound ye
Hey!

Please respect the rules, be patient and don't ping staff members!

vital hound
#

yes

#

sorry, mistake

turbid tide
untold adder
#

can I have a way to check materials, to check if the item is a tool or like it contains the name "Sword", "Pickaxe" "Axe", all in one placeholder?

#

I know about this, but it doesn't work

#

I found this, %checkitem_matcontains:SWORD,matcontains:PICKAXE% but id like to return yes if it only has one of them

#

And there is a way to check if the player's inventory is full? With placeholders?

past raptor
#

Why am I getting the error "/featherboard (Startup error! Are you sure you have installed MVdWPlaceholderAPI) ?

#

I have installed it

lime slate
#

anyone know a way to know the placeholders a plugin internally hardcoded?

#

not an expansion from ecloud

sharp jay
#

@lime slate decompile? or open it with winrar

lime slate
#

I was wondering if there was a way with a command or something like that

#

if not then no problem ๐Ÿ™‚

sharp jay
#

Nope

lime slate
#

okay, thanks for the fast response anyways ๐Ÿ’™

sharp jay
#

np!

hard basalt
turbid tide
# sharp jay Nope

@lime slate I've seen /papi info ExpansionName or /papi list ExpansionName (can't remember exact command) work for some plugins. But not all. Not even sure how you make it work with that. Also the wiki has listed a lot of placeholders. Over 2.5k. the papi wiki I mean. If it's not there then usually it's on the plugin's spigot page or documentation page

turbid tide
turbid tide
lime slate
lime slate
#

but I already changed to another plugin which I did find its placeholders so no need to worry

turbid tide
#

Alr. It is /papi info then. But only works for a few expansions from what I've seen

turbid tide
#

Ohhh i misread the question lmao

errant iron
#

yeah i was gonna say lol, that's like a super simple question

turbid tide
#

I was so confused

untold adder
hard basalt
turbid tide
#

and no don't split them into 2 conditions

#

bcz then it will never work. it will require them to be both a sword and a pickaxe

untold adder
#

I don't know how the %javascript_<your placeholder identifier>% works, so I tried learning but it always returning nothing

turbid tide
#

=links javascript

tender vaporBOT
#
Javascript
Useful Links & Information:

An expansion that allows you to use javascript for processing
โ€ข Wiki
โ€ข Community Scripts
โ€ข GitHub
โ€ข eCloud

turbid tide
#

see first link ^^^

untold adder
#

okok

tame granite
#

Hello, i was wondering if anyone has had the same problem as me before? I have a 1.16.5 server and idk why but the statistic placeholders are not working

#

For example %statistic_kill_entity:PIG%

#

And so on, like %statistic_mine_block:stone%

#

They always show 0

sharp jay
#

Testing this out for you rn

tame granite
#

ty

turbid tide
#

can you try reading the statistics from minecraft?

#

are those 0 as well?

#

bcz it might be that your server doesn't record them at all

sharp jay
#

^ thats a good one

tame granite
#

let me see

#

Oh, they are not being recorded

turbid tide
#

yeah. seen this happen a lot in 1.17 lately but seen it in 1.16 before as well. never found out why or how to fix. you might have to ask in your server software discord

#

so paper or spigot or whatever you use

tame granite
#

I see, that's weird, ty

hard basalt
#

let me check ur script real quick

hard basalt
hard basalt
#

an example visualize my word

var isl = %Level_bskyblock_island_level%;
function colorlevel() {
    if(isl<0){return "&c" + isl}
    else{
        if(isl<=1000){return "&7" + isl}
        else{
            if(isl<=2000){return "&f" + isl}
            else{
                if(isl<=4000){return "&a" + isl}
                else{
                    if(isl<=8000){return "&e" + isl}
                    else{
                        if(isl<=16000){return "&b" + isl}
                        else{
                            if(isl<=32000){return "&d" + isl}
                            else{
                                if(isl<=64000){return "&5" + isl}
                                else{
                                    if(isl<=128000){return "&6" + isl}
                                    else{
                                        return "&4" + isl
                                    };
                                };
                            };
                        };
                    };
                };
            };
        };
    };
};
colorlevel();
molten bison
#

lmao

#

i tried to do it like that but emhm

#

i fucked it even more

hard basalt
#

let me try do it for u XD

molten bison
#

never have i ever seen a console print so faaast

hard basalt
#

that space is what f u up XD

molten bison
#

can u send a correct version? XD

hard basalt
#

sure XD

silver minnow
#

thats one big fat arrow ๐Ÿ‘€

#

๐Ÿ˜ฌ

hard basalt
hard basalt
#

the ghost return will break your script

silver minnow
hard basalt
#

*Star

silver minnow
#

yes

#

arrow code is bad

hard basalt
#

typo real hard

silver minnow
#

Star is also on support team fingerguns

hard basalt
#

i know

molten bison
#

what is this "ghost"

silver minnow
hard basalt
#

basically u trying to make ur script return a value it unable to evaluate aka no condition

molten bison
#

conditions should not be necessary

hard basalt
#

so return "Talk to Reza!"; ?

molten bison
#

yes

hard basalt
#

u want it to always possitive ?

molten bison
#

yes

#

if they have the perm

#

but since if they get a higher perm the placeholder changes

hard basalt
#

why every1 hate arrow code ;-;

silver minnow
#

...

#

google it

#

it's a bad habit

silver minnow
#

helps with readability

molten bison
hard basalt
#

u trying to return too many line like i said

silver minnow
hard basalt
#

there is a non condition return and a conditioned return

#

make it return 2 time

#

which is impossible for the placeholder

#

that why i said ghost return

molten bison
#

but the higher permission should be prioritised? that's how someone explained it to me atleast

silver minnow
#

yes

hard basalt
#

not that

#

the if part is ok but the return "Talk to Reza!"; is not

silver minnow
#

why not?

hard basalt
#

it returning 2 line

silver minnow
#

?

#

what is returning 2 line

#

the script just checks a bunch of perms, if it's true then return whatevers in the if statement, if none are true then return "Talk to Reza!"

molten bison
#

but it's throwing errors?

hard basalt
#

the return "Talk to Reza!"; have no condition make it always possitive and the placeholder will always try to print it, and the if statement above have no link to this 1, so it cuasing the placeholder trouble

silver minnow
#

JS goes top to bottom

#

it won't just go to the bottom..?

hard basalt
#

yes it do but there no stop point

molten bison
#

the return "Talk to Reza!";

silver minnow
molten bison
#

is the stop point ..

silver minnow
hard basalt
#

.....

#

why ur script is missing line ?

silver minnow
#

what line?

molten bison
#

wut?

hard basalt
#

u just send the line to fix the issue then quicky remove it

molten bison
#

the script WORKS but it's throwing errors occationaly

molten bison
hard basalt
#

this is why all the time

#

u missing a line while pasting ?

molten bison
#

no

#

it was never there

#

just thought that was how u wanted it

hard basalt
#

actually that what i want it XD

molten bison
#

thenm

silver minnow
#

btw plz use switch

molten bison
#

oh i just use this one cause it's built into my host xd

#

sowwy

molten bison
#

wait wut is switch

silver minnow
#

๐Ÿฅฒ

#

1 sec

hard basalt
#

.......

silver minnow
molten bison
#

but my issue persist XD

silver minnow
#

btw do you have more scripts than these?

molten bison
#

i get errors on both

#

only these atm

silver minnow
#

hmm

#

so u have more

#

but only these error?

molten bison
#

[02:02:37 ERROR]: [PAPI] [Javascript-Expansion] An error occurred while executing the script 'quest':
Failed to evaluate requested script.

#

yes

silver minnow
molten bison
silver minnow
#

would this be similar

#

๐Ÿ‘€

#

the JS expansion uses J2V8

hard basalt
silver minnow
#

???

#

how does java 16 have to do with this

#

yes i know they released an update for java 16

#

wait no

#

dont

#

i doubt itll fix

#

but

#

ยฏ_(ใƒ„)_/ยฏ

molten bison
#

i get most issues with the quest one tbf

silver minnow
#

hmm

molten bison
#

i think the switch thingi actually fixed this one

silver minnow
molten bison
#

it's not throwing any errors for it yet

hard basalt
silver minnow
#

what

hard basalt
#

i just fix the typo and the free condition return .-.

silver minnow
#

no

hard basalt
#

i know case is better but im doing something else rn so cant change it

molten bison
#

it surely didn't like that one

silver minnow
#

thats basically the same thing but with a redundant ;, no spaces (decreases readability), and a redundant else statement

#

i think

hard basalt
#

the original give error

molten bison
#

both do

hard basalt
#

?

silver minnow
#

lol

#

if u put it in a js compiler

#

it works fine

molten bison
#

they all do..

#

but papi is a lil baby crying over somethin

hard basalt
silver minnow
silver minnow
#

what condition?

molten bison
#

oh fuck

#

it's 04:15

silver minnow
#

๐Ÿฅฒ

molten bison
#

i should probably sleep

silver minnow
#

has the second script errored yet?

molten bison
#

i restarted the serverl ike 1 sec ago but not yet

hard basalt
#

?

#

i though u can reload papi ?

molten bison
#

yes u can

#

but i needed to restart it

#

they both seem to work

#

now

#

ty for help

#

and good night

silver minnow
#

gn

#

and gl

molten bison
grand zenith
#

wut

#

mvdwpapi is dead? :))

lethal sable
#

yeah

grand zenith
#

and for the featherboardapi, i need to add as a dependency featherboard?

#

couldn't find a maven repo or smth

fresh inlet
#

I need help with the %world_players_<world>%. I keep doing the command with my znpcs npc but nothing comes up. Am I doing something wrong or?

nimble talon
#

vault is not working in my server

#

can someone help?

#

@mint fable

tender vaporBOT
nimble talon
#

nice help.

lethal sable
#

Is ecloud down? I can't update or download any new expansions

tender vaporBOT
#
Online!

PlaceholderAPI eCloud is online and responding.

#
FAQ Answer:

Should your host not allow connections to the PlaceholderAPI eCloud, you can manually download expansion from https://placeholderapi.com/ecloud and place them in your /plugins/PlaceholderAPI/expansions/ folder.

fresh inlet
#

Can I have help with the world expansion please?

hard basalt
fresh inlet
#

So in my spawn I have an npc that takes you to another world

turbid tide
#

have you tried the placeholder in /papi parse me ?

fresh inlet
#

no

#

How dose that work?

turbid tide
#

please do.

#

/papi parse me %placeholder%

#

and you change placeholder with the one

#

that doesn't work

#

and see what it returns

fresh inlet
#

So what place holder would I use to see the player count of that world?

turbid tide
#

wait

#

you're using the world expansion for player count?

fresh inlet
#

Ye.

turbid tide
#

don't. use the server expansion

fresh inlet
#

Oh

turbid tide
#

%server_online_<world>%

#

this is the placeholder you should use instead ^

fresh inlet
#

So in the <> do i put my world name?

hard basalt
#

yes

turbid tide
#

yeah. but without <>

#

remove those

fresh inlet
#

Oh

turbid tide
#

when you see <something> usually you have to replace the whole thing whit whatever you want.

fresh inlet
#

My dev said he tried it but it did not work.

turbid tide
#

has he downloaded the server expansion? if not ask him to do /papi ecloud download server then /papi reload

fresh inlet
#

yep

turbid tide
#

and also ask him to test the placeholder with /papi parse me %server_online_WORLDNAME%

#

btw. the world name is case sensitive. so if the world is named World, world won't work

fresh inlet
#

Thanks

molten bison
#

What is the issue with this script?

turbid tide
molten bison
#

it works correctly but it's throwing errors.

turbid tide
#

mind showing the errors?

molten bison
tender vaporBOT
#
๐Ÿ“‹ Paste Converted!
https://paste.helpch.at/zivezefego

A member of staff has requested I move your pastebin.com paste to our paste.helpch.at!

turbid tide
#

hmm. @thorn thunder you got a second to take a look?

turbid tide
molten bison
#

ahhh the latest expansion doesn't enable on 1.16.5

turbid tide
#

oh? did you check the startup logs?

molten bison
#

wrong java version

#

i don't want to use 16

turbid tide
#

you don't have to

molten bison
#

[14:39:33 ERROR]: [PlaceholderAPI] Failed to load expansion class JavascriptExpansion (Is a dependency missing?)
[14:39:33 ERROR]: [PlaceholderAPI]
java.lang.UnsupportedClassVersionError: org/openjdk/nashorn/api/scripting/NashornScriptEngineFactory has been compiled by a more recent version of the Java Runtime (class file version 59.0), this version of the Java Runtime only recognizes class file versions up to 55.0

#

it needs 15 then?

turbid tide
#

oh. hmm

#

wait

#

that's the latest one?

molten bison
#

yes

#

i just downloaded it

turbid tide
#

ughhhh

thorn thunder
#

Oh yea, we had that issue I think, just need to recompile nashorn with java 8

molten bison
#

i am not capable of that

#

what does it mean?

turbid tide
#

@thorn thunder do u mean that the javascript expansion needs to be recompiled?

molten bison
#

where can i find old expansion versions?

hard basalt
#

with the /papi ecloud download <expansion> <version>

molten bison
#

and what is the latest version i can use with java 11?

hard basalt
#

idk try role back 1 version

molten bison
#

[15:01:42 WARN]: [PAPI] [Javascript-Expansion] Failed to set ScriptEngine for javascript placeholder: playerlocation
[15:01:42 WARN]: [PAPI] [Javascript-Expansion] ScriptEngine type for javascript placeholder quest isn't initialized! Defaulting to global

#

what

#

is this supposed to mean

turbid tide
#

you can ignore. you can also disable by going in javascript_placeholders.yml and adding engine: nashorn after the line you declare the file in

#

for each of them

molten bison
turbid tide
#

then add that

#

to it

molten bison
#

okok

tender vaporBOT
# thorn thunder No
Hey!

Please respect the rules, be patient and don't ping staff members!

thorn thunder
#

Nashorn

#

Ffs barry

shut lion
errant iron
#

it means one of your expansion classes is messed up

#

i would delete all of them and start downloading them fresh one by one

#

then you'll know which one is the problem, if any still are

shut lion
#

oh

#

why would this error only sometimes show up when strarting the server?

shut lion
#

But only sometimes. Why would this be?

#

I can restart the server 10 times but only 4 of those times will this error show

turbid tide
#

welll... as Star said. One of your expansion is broken. We don't know why or how it breaks but it does and when it breaks, it breaks the entire expansion loader so PAPI can't load the other expansions

shut lion
#

I deleted all of them and have freshly redownloaded them

#

directly from papi cloud

#

stil does it

turbid tide
#

well

#

that's why star said

#

1 by 1

#

and test them

#

and see when it breaks

shut lion
#

I'm doing that but the error doesn't always show

turbid tide
#

well

#

what you do

#

is get just 1 expansion

#

you do a bunch of /papi reload

#

see it doesn't happen like 0 out of 10 times

#

or something

#

then get the next one

#

try again 10 times

#

etc.

shut lion
#

omg

#

It only shows up when restarting

#

I downloaded all of them and did /papi reload 15 times

#

doesn't show

turbid tide
#

well then you'll have to restart I guess.

calm dawn
#

so i have this JS placeholder which basically returns null if null or the string with a colon and a space in front. however, since players have full access to the message, if they put a quote, it breaks the placeholder with this error: [13:02:46 INFO]: gecko10000 issued server command: /afk " [13:02:46 ERROR]: [PAPI] [Javascript-Expansion] An error occurred while executing the script 'afk javax.script.ScriptException: <eval>:1:10 Missing close quote afk = """; ^ in <eval> at line number 1 at column number 10
how could i either filter out all these unusual characters or stop this from happening?

turbid tide
#

yo @errant iron I've not looked at PAPI code but you've worked with it. I see this being pretty common. is there any chance you can like make a debug message or something you can enable from config.yml telling you which expansion its trying to load or something like that?

turbid tide
#

you have to escape the middle one

#

javascript doesn't know what you're trying to do

calm dawn
#

how would i escape the contents of the placeholder is my question

turbid tide
#

I believe it's just \ in javascript

#

so it would be "\""

calm dawn
#

afk = "%cmi_user_afk_msg%";

turbid tide
#

oh

calm dawn
#

when i do /afk " it breaks from user input

errant iron
#

it's like a weird java thing that it can't read from the file or something

turbid tide
#

so we at least know where to look at

#

instead of having to go 1 by 1

turbid tide
shut lion
#

i think it might be vault

calm dawn
#
afk = "%cmi_user_afk_msg%";

function formatAFK() {
  return afk == "" ? "" : ": " + afk;
}

formatAFK();```
shut lion
#

nvm

turbid tide
#

wait. so you can basically set your own afk message to whatever you want?

shut lion
#

not vault

calm dawn
#

that's all it is and it normally works fine, but since the placeholder is replaced directly it causes issues

#

yes

turbid tide
#

hmm. I wonder if javascript has like an escape method or soemthing to escape entire strings. 1 moment

calm dawn
#

๐Ÿ‘ thank you for looking into it

turbid tide
#

well... we're lucky I guess

#

there's a method

#

called escape()

#

xD

#

hmm

#

but I Don't think it does what we need

calm dawn
#

since the placeholder seems to be replaced directly i don't know if it's possible within the placeholder file itself

#

it would have to be part of the expansion, maybe? a setting in the javascript_placeholders.yml per script?

turbid tide
#

alright. so

#
afk = encodeURI(%cmi_user_afk_msg%);

function formatAFK() {
  return afk == "" ? "" : ": " + afk;
}

decodeURI(formatAFK());``` something like this maybe?
calm dawn
#

without quotes around the placeholder?

turbid tide
#

yeah

#

if that doesn't work try it with quotes

shut lion
#

is there any real benefit to updating expansions? I have the old ones that worked

turbid tide
#

well. I mean. Usually they add new stuff, they might fix bugs etc.

errant iron
calm dawn
#

without quotes does not work
surrounding it with quotes works, but i assume it has the same issue since the placeholder is being literally replaced without being escaped

turbid tide
calm dawn
#

yep, same issue.

#
afk = encodeURI(""");```
turbid tide
pure ore
#
Caused by: java.lang.LinkageError: loader (instance of  org/bukkit/plugin/java/PluginClassLoader): attempted  duplicate class definition for name: "me/clip/placeholderapi/PlaceholderAPI"
shut lion
#

I've restarted the server roughly 20 times now and the error hasn't returned. Seems like that dev version works

#

thank you

errant iron
turbid tide
#

ugh. localtime_timezone_<timezone> is a placeholder

#

localtime_timezone_<format> is not

junior musk
#

use %localtime_time_<format>% instead

rocky ember
#

Is it possible to set this placeholder to display the countdown for each Sunday in deluxe menus? %server_countdown_<SimpleDateFormat>_<time>%

hard basalt
#

use a javascript placeholder to run a timer for this placeholder

stiff lava
#

Hi, i want to use PlaceHolderAPI in my Plugin so other users use the replacements, how can i replace the replacements in my plugin with PlacerHolderAPI?

turbid tide
shut lion
#
[06:51:06 ERROR]: [PlaceholderAPI] Cause: IllegalStateException zip file closed```
#

This error only occasionally happens

#

I've deleted and redownloaded the expansion 4 times

#

@ blitz I think I found the expansion causing the issue from yesterday

shut lion
#

uh?

#

im using java 16

#

and this only sometimes happens

hard basalt
#

...

#

hmmm

#

i think u should re-gen the javascript folder and setting

shut lion
hard basalt
#

wait a sec

#

-_-

shut lion
#

is that to me?

#

Alrighty. If anyone has any insight on @ me please

hard basalt
#

im reading it manually

shut lion
#

oh

hard basalt
#

cause barry have a error and solution function, but it not always work

shut lion
#

ooo

hard basalt
#

i was expecting barry to detect ur error and show the solution

shut lion
#

I switched to an older expansion version and after 6 or so restarts, it's been working fine

balmy marten
#

He's only trained on very frequent simple to fix errors

shut lion
#

so I'm guessing there's an issue with the new version

balmy marten
#

Try uninstalling chatcontrol

#

We've had reports it goes rouge when working with papi js

shut lion
#

I did that before and it doesn't solve it

#

I looked into it and it's an addon because java 16 doesn't ship with the needed... stuff

#

I use deluxechat as the primary source for chat and chatcontrol for everything else

#

a bit redundant but I'm still waiting on the new deluxechat to be released

balmy marten
#

[PlaceholderAPI] Cause: IllegalStateException zip file closed is that really the full error?

shut lion
#

I posted both logs above

#

failed and passed

#

it fails towards the end

balmy marten
#

What did you change between them?

shut lion
#

nothing

balmy marten
#

oh lol

shut lion
#

a few seconds between restarts

hard basalt
#

?

shut lion
#

only the time it took to close my local server and to restart it again

hard basalt
#

wait u use /reload ??????????

shut lion
#

na

hard basalt
#

ok phew XD

balmy marten
#

Not sure why it's reporting in the [ForkJoinPool.commonPool-worker-7/ERROR]: for the broken one?

shut lion
#

ii have no idea

balmy marten
#

almost like something is modify the jar

#

Does it fail more often then it works?

#

or is it random?

shut lion
#

little less than half the time

#

like 3/5 passing

balmy marten
#

I'm gonna be a pain and request something

shut lion
#

I can give you both java expasion verions

balmy marten
#

Mind dragging all ur plugins besides placeholderapi into a folder called _disabled and restarting

shut lion
#

the older one that has yet to fail after 10+ restarts

#

and the one that randomly fails (new version)

balmy marten
#

is it the same js expansion version?

shut lion
#

the old one?

balmy marten
#

as in the older one and randomly fails (new version)

shut lion
#

Honestly not sure but it's from my 1.16.5 sevrer and i haven't updated the expansions in yrs

balmy marten
#

ah

shut lion
#

the new one is from yesterday

balmy marten
#

Probs the non java16 ver

shut lion
#

very likely

balmy marten
#

Anyhow mind doing that _disabled thing?

shut lion
#

but that means the non 16 verions works

#

so just create a file called "_disabled"

balmy marten
#

create a folder called that and drag all the plugin .jars besides papi in it

shut lion
#

I could just delete everything

balmy marten
#

up to you

shut lion
#

same effect?

balmy marten
#

folder just means you can bring back stuff slowly

thorn thunder
#

Updated js expansion has one known issue

#

Nashorn in it is compiled with java 15

#

So it wont load on prior versions

balmy marten
#

Believe Ergenta is on Java 16?

thorn thunder
#

Oh?

balmy marten
#

Checking, could be wrong

thorn thunder
#

Any stacetrace or other info I could look at on what went wrong?

shut lion
#
Java(TM) SE Runtime Environment (build 16.0.2+7-67)
Java HotSpot(TM) 64-Bit Server VM (build 16.0.2+7-67, mixed mode, sharing)``` this is what it's running on
balmy marten
thorn thunder
#

Hmm

balmy marten
#

Ergenta when you get a sec can we have a /papi dump aswell?

shut lion
#

in the expasnion file

#

do you want me to delete everything else besides java?

thorn thunder
#

Uh

balmy marten
#

Keep as is for now

thorn thunder
#

Are you sure the js expansion is having any issues

shut lion
#

essentials failed to load

balmy marten
#

ah yeah, maybe do remove them

#

forgot that happens when plugins are missing

shut lion
#

im on restart 5 now and the error doesn't show

#

I also deleted the old expansion and downloaded a new one

#

old as in from yesterday

balmy marten
#

good good

shut lion
#

this is the entire folder

balmy marten
#

Not something we're going to download, just for our safety

hard basalt
#

how can i get cube ping ?

shut lion
#

is there anything else you want me to test

balmy marten
#

If that's all working try adding back your plugins

#

and if that breaks it, take them all out again and slowly add them back until you find the source, good old trial and error

shut lion
#

I tried that yesterdya but the issue is, it randomly does it

balmy marten
#

Keep trying to get it to fail by itself then I guess

#

report back any stack traces it produces should it do so

shut lion
#

any real downsides to using an old expansion?

balmy marten
#

It shouldn't work on java 16

shut lion
#

it does

lusty socket
#

can someone setup me up a placeholder for the %server_countdown_<SimpleDateFormat>_<ActualDateAndTimeBasedOnSDFSpecified>%

#

for the date

#

18/08/2021

#

and the time 12:00

#

i can do the simple date format is just the datetime thing

turbid tide
#

12 in the middle of the day?

lusty socket
#

Yes

turbid tide
#

%server_countdown_dd/MM/yyyy HH:mm_18/08/2021 12:00%

#

there

tiny kraken
#

hi my placeholderapi just shows what i type in config in chat

#

Default_Format: "{vault_prefix} {vault_suffix} {placeholderapi_guilds_name} {player} &9>&f{message}"

#

everything works but guilds just shows like that in chat

shut lion
#

@ FunnyCube I think I figured out the cause

#

it was because of discordsrv

#

I'm guessing it's because it wasn't connected with a key yet so it was shutting down

#

the process of shutting down some how effected the loading of the expansions... but only some times.

slim axle
#

Can someone help me when I use papi reload i keep getting this error java.lang.IllegalStateException: zip file closed

errant iron
#

try that build

slim axle
#

Kk ill test

versed flax
#

Hi, I have been trying to add a kill and death count to the PlaceholderAPI in the form of the extension KillStats however the placeholder is not parsing (I tested it with /papi parse me %killstats_kills% and it returned %killstats_kills%)

#

Specifically I am trying to use the placeholders in the TAB plugin

#

The server is on 1.16.5

#

Could anyone help out?

#

Oh and before you ask the PlaceholderAPI plugin is fully up to date

#

@lilac oxide sorry for ping but it says you are support aha, do you have any idea why I am having this issue?

tender vaporBOT
versed flax
#

Oh oops sorry

#

When I do /papi register Expansion-killstats.jar it returns this fail message: Failed to register expansion from Expansion-killstats.jar

zenith pebble
#

I want to add my expansion to ecloud

lilac oxide
#

@balmy marten

#

||its for a real reason pls no ban (Ecloud stuff)||

tiny trout
#

Hello, Good Evening I would like to know how mvdw placeholders work I wanted to know how to use a mvdw placeholder on papi already downloaded the extension but did not understand the example of how using someone could help me?

sharp jay
#

mvdw is no longer active

#

use papi

balmy marten
vivid sparrow
#

ok and?

bright pewter
#

oops srry

slim axle
#

When using BaseComponent[] is it possible to parse the placeholders or not?

calm ruin
#

Hi guys , i use %statistic_player_kills% for a leaderboard and it also returns a value (0 cuz i didnt start server yet). But the preoblem is when i kill someone the value doesnt update at all ,always 0 , when i do papi parse for that placeholder too.

#

Could someone help me with that please

tiny trout
# sharp jay use papi

So I'm already using papi but I wanted to use a mvdw placeholder already installed the mvdw expansion, however I still don't understand how to use it.

tender vaporBOT
prime pagoda
#

Hello, the current expansion - skript is outdated, and I have made a new expansion that works with the newer versions of PAPI.
I am unable to register an user, and was forwarded to this discord server.

turbid tide
slim axle
turbid tide
slim axle
#

That will break the Hover event I think

turbid tide
#

well PAPI only supports strings afaik

#

I think 3.0 version will support Components but currently only string is supported

slim axle
#

when is 3.0 comming

trim mist
#

No ETA.

slim axle
#

will it be weeks or months or no idea?

turbid tide
#

definitely not weeks

#

its slowly being worked on in the background

slim axle
#

ok ty

turbid tide
#

like its not something that will come out soon

slim axle
#

I guess ill have to code an API for my token plugin to link to my chat plugin

scarlet yew
#

Anyone know if it's possible to make it so the Statistic expansion can pull data from offline players?

vivid sparrow
#

d;spigot offlineplayer#getstatistic

ionic fractalBOT
#
int getStatistic()
throws IllegalArgumentException, IllegalArgumentException, IllegalArgumentException```
Description:

Gets the value of the given statistic for this player.

Returns:

the value of the given statistic

Throws:

IllegalArgumentException - if statistic is null
IllegalArgumentException - if entityType is null
IllegalArgumentException - if the given parameter is not valid for the statistic

Parameters:

statistic - Statistic to check
entityType - EntityType offset of the statistic

vivid sparrow
#

@turbid tide since 1.15

turbid tide
vivid sparrow
#

Yes, I know

turbid tide
#

that's what I was talking about

tiny trout
#

I'm already using papi, but I wanted to use a mvdw placeholder already installed the mvdw expansion, but I still don't understand how to use it could someone help me?

silver minnow
#

you'll also have to do /papi ecloud download MVdW

tiny trout
#

So I saw it on the site, but I didn't understand it very well I'm Brazilian and sometimes the translation from one language to another goes a bit wrong if it doesn't bother you could you give me an example using any placeholder?

magic rock
#

Hi, what the precision means in %math_[precision]:[rounding]_<expression>% placeholder?

vivid sparrow
#

Number of decimals

magic rock
#

umm thanks then what rounding means xd?

#

i thought rounding is number of decimals

warm oar
#

Anyone know of a placeholder than can display a top 10 list of blocks placed, mobs killed, players killed, blocks broken and such?

prime pagoda
tender vaporBOT
civic bough
#

hello . where do statistic papi expansion get data? cuz i use rankup plugin . and the statistic between rankup plugin and scoreboard are not the same eventhough i use the same placeholder.

smoky sequoia
#

Please ping me for a reply

turbid tide
#

@balmy marten ^

balmy marten
turbid tide
fresh inlet
#

How do you use the Players expansion with discordsrv?

civic bough
#

anyone has javascript for custom tps placeholder? i try to learn javascript but i dont understand it xD

turbid tide
civic bough
#

i want it to show Good instead of numbers. example: 19-20tps= good, 17-18=playable, 15-18= call admin

turbid tide
#
var tps = parseInt("%server_tps_1%");

function convertToText() {
    if (tps < 17) return "Call Admin!";
    if (tps < 18) return "Playable";
    return "Good";
}

convertToText();
#

something like this then

civic bough
#

aye. thanks a lot . ill figure out how to put it on animatedscoreboard. thanks

junior musk
#

otherwise it would return tps from 1, 5 and 15m and wouldn't be able to be parsed as an int

turbid tide
#

Forgot about that

#

@civic bough updated the js bcz the placeholder I was using was not the correct one for getting the tps

#

btw

#

if you don't know how to set up a js placeholder

#

its pretty easy. here's the wiki link:

tender vaporBOT
#
Javascript
Useful Links & Information:

An expansion that allows you to use javascript for processing
โ€ข Wiki
โ€ข Community Scripts
โ€ข GitHub
โ€ข eCloud

civic bough
silver minnow
tender vaporBOT
silver minnow
#

oops

#

ยฏ_(ใƒ„)_/ยฏ

#

ive always seen other scripts do it

turbid tide
#

yeah

#

you do

vestal kiln
#

Hello i have a problem with placeholdersapi ๐Ÿ˜ฆ

i register a placeholders %boat_1% and if y modify the text of %boat_1% is not refresh, if i reconnect it's refresh thank you ^^

burnt canopy
#

can someone help

tender vaporBOT
#
๐Ÿ“‹ Your paste: akbxr
https://paste.helpch.at/tedasusota

A member of staff has requested I move your message to a paste,
Most likely because it contains a config/error/code snippet.

errant iron
#

Do you have outgoing connections blocked in your firewall?

burnt canopy
#

i am using a free server provider, ploudos

civic bough
tender vaporBOT
civic bough
#

opss. sorry .

turbid tide
civic bough
#

oh the convert to text?

turbid tide
civic bough
#

alright. will try out . and its correct right ? the %javascript_custom_tps%

turbid tide
#

well. it really depends how you called it in javascript_placeholders.yml

#

did you call it:

custom_tps:
  file: custom_tps.js``` or something like that?
civic bough
#

yeap.

turbid tide
#

then yeah. that's a correct usage.

civic bough
#

do i need to put engine too?

turbid tide
#

nah. not anymore

#

that's not a thing anymore

civic bough
#

jeezz... it work now.. sorry i didnt realize the last line. thanks a bunch

turbid tide
civic bough
#

thanks. appreciate it a lot. and i should ask you earlier cuz i spend 3 hour to figure it out xD

turbid tide
#

xD yeah. sometimes asking is fine

vestal kiln
#

Hello i have a problem with placeholdersapi ๐Ÿ˜ฆ

i register a placeholders %boat_1% and if i modify the text of %boat_1% is not refresh, if i reconnect it's refresh thank you ^^

tender vaporBOT
#
FAQ Answer:

Paste Services
When asking for help with a config/menu/code issue please use our paste bin:
(we prefer it over pastebin.com)
โ€ข HelpChat Paste - How To Use

turbid tide
#

use this paste bin ^^^

vestal kiln
tender vaporBOT
#
๐Ÿ“‹ Your paste: shark_zekrom
https://paste.helpch.at/xexepetequ

A member of staff has requested I move your message to a paste,
Most likely because it contains a config/error/code snippet.

#
๐Ÿ“‹ Paste Converted!
https://paste.helpch.at/pacutisota

A member of staff has requested I move your pastebin.com paste to our paste.helpch.at!

silver minnow
turbid tide
#

๐Ÿ˜ฆ barry

#

smh

#

xD

#

it definitely isn't my mistake

vestal kiln
#

ho what x)

silver minnow
#

|| why are you using DI and singleton at the same time on the same class ||

turbid tide
#

^^^

#

Main.getInstance().

#

why this?

silver minnow
#

also you can just do plugin.getConfig()

turbid tide
#

when you have an instance of the plugin already?

#

and yes

#

you can just do plugin.getConifg as well

silver minnow
#

and player is never null

#

afaik

turbid tide
#

it is

silver minnow
#

oh what

turbid tide
#

I'm pretty sure the field is nullable

#

or at least for the onRequest method it is

silver minnow
vestal kiln
#

it's "test2"

#

i see the good text

#

but is not refresh for the hologram

silver minnow
#

oh then this isn't a papi issue - but what hologram plugin do you use?

vestal kiln
#

holographic display

turbid tide
#

^^^ its up to the hologram to refresh.

turbid tide
#

are you using HolographicExtension? Or HolograhpicPlaceholders?

vestal kiln
#

HolographicExtension

turbid tide
#

well then just add a tag like {fast} at the start of the hologram line

#

for example

vestal kiln
#

HolographicDisplay addon too

turbid tide
#

{fast}%boat_1% THIS IS A TEST

vestal kiln
#

ho okay i see

#

every 1 sec refresh okay

turbid tide
#

there's like 5 tags in total tho. they're explained on the spigot page

vestal kiln
#

thank you !

zenith pebble
#

How do I get my expansion verified

warm topaz
warm topaz
#

cc: @balmy marten

north crane
#

How do I format Time Played? I want to only show the amount of days and hours

vivid sparrow
#

@north crane statistic expansion

turbid tide
#

^^ %statistic_time_played:days%%statistic_time_played:hours%

#

Those 2 will give you the days and hours

weary dome
#

I want to show the name of the Faction on the scoreboard but when I use the command /papi ecloud dowload Fations it is not available

balmy marten
pseudo nymph
#

Will VoteParty ever support MySQL so votes can count on multiple servers? (Im asking this because I want to buy the plugin if it does/will support)

#

Sorry for asking in the wrong channel but I couldnt find a channel for "pre-buy" questions

vivid sparrow
#

@trim mist

untold adder
#

can I get the world time with placeholders without being formatted? like to be a long and not formatted in pm or am, I only know about these 2

%world_time_<world>%
%world_timein12_<world>%
rigid wharf
turbid tide
pseudo nymph
turbid tide
#

like I Don't really understand what you need here

#

world_time_world should return it formatted as 24 hours instead of 12 AM/PM. if that's what you're looking for

sick turtle
#

I will use the Skript plugin placeholder but it doesnยดt download it
The plugin doesnยดt find the expansion

turbid tide
turbid tide
sick turtle
#

thx its worked

turbid tide
#

๐Ÿ‘ yw

trim mist
latent garden
#

Hi guys! Do I need to use Java 16 even for 1.16.5 server if I want to use JavaScript extension? I am getting this error: org/openjdk/nashorn/api/scripting/NashornScriptEngineFactory has been compiled by a more recent version of the Java Runtime (class file version 59.0), this version of the Java Runtime only recognizes class file versions up to 55.0

errant iron
#

Yes

latent garden
#

What about cloning repo and compiling with Java 11

#

I am almost 100% sure something will break if I update to Java 16 for 1.16.5 server ๐Ÿ˜„ ๐Ÿ˜„

turbid tide
#

why would it break?

errant iron
#

Doubt it, though I think older java versions include Nashorn by default

turbid tide
#

yeah

latent garden
#

Yea I know

turbid tide
#

you can just install old javascript expansion

errant iron
#

So maybe use an older version of the extension if you really want to, but updating to 16 is going to happen sooner or later

turbid tide
#

if you want

#

same shit

errant iron
#

Staying with years-old java versions is never a good idea

latent garden
latent garden
errant iron
#

I mean I would try updating and see what happens

#

LTS doesn't mean shit for people like you who can update a single server for free

#

LTS is for businesses who have tens of millions of lines and aren't so agile

latent garden
#

I am not agile in servers too ๐Ÿ˜„ ๐Ÿ˜„ I like things that work and not keep updating every day ๐Ÿ˜„

errant iron
#

Every day?

#

Java updates every 6 months now, and that's way faster than before

latent garden
#

I meant plugin updates

errant iron
#

I don't see how that's related

latent garden
#

But yea... I will update ๐Ÿ˜„

errant iron
#

You own a single server, updating your JDK version is essentially free

latent garden
#

I already have lobby on Java16 and 1.17 but it was pain

errant iron
#

Worst case? You roll back to 11 in 5 minutes

latent garden
#

yea yea... thanks ๐Ÿ˜„

errant iron
#

It was a pain? Are you using plugins that haven't been updated for 1.17 yet? lol

latent garden
#

Yea... But I ditched them

#

RIP BannerBoard for example

turbid tide
#

o. did glare not finish the update yet? xD

errant iron
#

Ah that's good! Most plugins for Paper servers are up-to-date now, it's really the like 6yo Bungee plugins that aren't seeing a lot of love

#

BB is open source now, so I'm impressed nothing has come up yet lol

turbid tide
#

yeah. glare has worked on it before and I know someone else as well

latent garden
#

It did but 1.17 came with some pretty stinky chunk loading things

turbid tide
#

but idk if any of them finished updating

latent garden
#

And I am not that big Java guy to fix it myself

#

U right... 99% of plugins are updated now...

turbid tide
#

yeah. and those which aren't probably won't be for a long time or at all.

latent garden
#

btw 3.0.0 branch is pre Java 16?

turbid tide
#

nah

#

that is the attempt branch

latent garden
#

ok

turbid tide
#

wait

#

actually

#

yeah I believe so. indeed

errant iron
#

I would give a try compiling BB from Glare's repo if you get a chance, seems promising

turbid tide
#

bcz it was pretty painful to get it to work on java 16

latent garden
turbid tide
#

btw

#

like the one from Sander I mean

errant iron
#

it's 12 commits ahead of Sander ๐Ÿ‘€

latent garden
#

Yea but that have the chunk loading problems

#

At least week ago was

turbid tide
#

so latest from github doesn't work at all?

#

or did you just try the spigot one?

latent garden
#

It works

#

But on reload (or plugin load) boards not show

turbid tide
#

but was it the one from github?

latent garden
#

Yes

turbid tide
#

oh. I see andre has also made some changes

#

have you tried his?

latent garden
#

How I said... I bought InteractiveBoards week ago

turbid tide
#

1 sec. let me link

latent garden
#

No time for that shit

turbid tide
#

ah. alright. nvm then xD

#

missed that message

latent garden
#

Its good plugin btw... Seems much faster than BB

errant iron
#

I don't doubt that lol

#

Wish it was open source though

latent garden
#

Also it have fully dynamic boards

turbid tide
#

yeah. bb turned out to be a mess internally xD

latent garden
#

Its still 2 months old

errant iron
#

can't come soon enough ๐Ÿ˜Œ

latent garden
#

I was testing it week back

errant iron
#

Well which one were you testing?

#

Glare's?

#

Sanders'?

#

Andre's?

latent garden
#

Every single one ๐Ÿ˜„

turbid tide