#placeholder-api

1 messages · Page 117 of 1

trim mist
#

When CCP loaded after PAPI, it was nullifying the engine after reloading the expansion.

#

I just forced it to always get it again as a new one until I made a proper fix.

rancid minnow
#

nullying, as in legit setting it to null?

trim mist
#

I'd show you but I'm on mobile and they just moved everything to another git repo

#

They are forcing people to use their mineacademy now for ticket crap

rancid minnow
#

gross

vivid sparrow
#

Ew

gusty heron
#

Can placeholders be checked for OfflinePlayer?

mint fable
#

only if the placeholder itself supports it

gusty heron
#

ah i see. Do you know if that's a problem for many placeholders off hand?

mint fable
#

it really depends, do you have any in mind?

gusty heron
#

basically just common ones that users might use - this is AVPN and people can set placeholders in the kick message for using a VPN, so probably things like Player and Server and maybe Luckperms/other common ones for chat/utilities

mint fable
#

oh you're not talking about using them yourself

#

luckperms doesn't work offline

#

i know

#

i think most of player works

#

server isn't related to the player

gusty heron
#

vault maybe?

#

it should

mint fable
#

not sure

gusty heron
#

it works for checking perms so id hope it works for papi

mint fable
#

but shouldn't the kick message be made before the player is disconnected?

gusty heron
#

it's during AsyncPlayerPreLoginEvent

#

so they're not really online or offline

mint fable
#

a kick message?

gusty heron
#

can't use Player cause that's only during/after PlayerLoginEvent

#

and yeah the whole thing

#

all during the good ol' APPLE

mint fable
#

icic

#

🤷‍♂️

#

you can test it

gusty heron
#

fair enough lol

mint fable
#

/papi parse <player> <placeholder>

gusty heron
#

if users complain that's on them :kek:

mint fable
#

yep

#

🤷‍♂️

gusty heron
#

hey random unrelated feature suggestion

#

/papi parse <OfflinePlayer> <placeholder>

#

loads the user to memory and then does the thing

mint fable
#

i'm pretty sure it works for offline

#

hence why i said you can test it with that...

gusty heron
#

oh fancy, thanks!

#

❤️

rare lily
#

@austere hawk you here?

#

I will replace the code from that wiki to the one i will give to you

austere hawk
#

Hello?

#

I am reading that right now.

#

Your gonna be editing the wiki with the world names code?

rare lily
#

Not possibly

#
    function getWorldNames() {
        var server = BukkitServer;
        var worlds = server.getWorlds();
        var worldNames = [];
        for (int i = 0; i < worlds.length; i++) {
            worldNames.push(worlds[i]);
        }
        return worldNames.join(", ");
    }
    getWorldNames();```
austere hawk
#

oh okay i gotchu

#

So the placeholder would be %javascript_getworldnames%?

brisk coral
#

Whatever your file is named

austere hawk
#

returns this error

rare lily
#

I figured it out

#
    function getWorldNames() {
        var server = BukkitServer;
        var worlds = server.getWorlds();
        var worldNames = [];
        for (i = 0; i < worlds.length; i++) {
            worldNames.push(worlds[i]);
        }
        return worldNames.join(", ");
    }
    getWorldNames();```
#

I messed up between Java and js, whoops

austere hawk
#

ah okay thanks, that returns CraftWorld{name= world}, etc. Is it possible to just list them out like world1, world2, world3?

brisk coral
#
    function getWorldNames() {
        var server = BukkitServer;
        var worlds = server.getWorlds();
        var worldNames = [];
        for (i = 0; i < worlds.length; i++) {
            worldNames.push(worlds[i].getName());
        }
        return worldNames.join(", ");
    }
    getWorldNames();
rare lily
#

That is funky

#

server.getWorlds() supposely return a List<Worlds>, i think

brisk coral
#

I mean yea, the objects

austere hawk
#

appreciate it, that works. going to learn javascript now 👍

rare lily
#

I forgot about that..

vivid sparrow
#

@brisk coral try BukkitServer.getWorlds().map(world => world.getName()).join(", ");

brisk coral
#

Imagine pinging me smh, ping thien

austere hawk
#

@brisk coral

rare lily
#

@vivid sparrow i wish I can use that on ECMA5...

tender vaporBOT
#

@rare lily,

Hey!

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

rare lily
#

Shush barry

#

Apparently Nashorn doesn't support lambda function

rancid minnow
#

prime reason placeholders should be kotlin

vivid sparrow
#

Make the kotlin script expansion then @rancid minnow

rancid minnow
#

@vivid sparrow ok

turbid tide
#

that will be an amazing addition

tender vaporBOT
last mesa
#

https://paste.helpch.at/pegacabewu.md
Exception in thread "AsyncPlayerJoinThread" java.lang.NoSuchMethodError: me/clip/placeholderapi/PlaceholderAPI.setPlaceholders(Lorg/bukkit/entity/Player;Ljava/lang/String;)Ljava/lang/String; (loaded from file:/E:/Eien/plugins/PlaceholderAPI-2.10.7-DEV-107.jar by PluginClassLoader{plugin=PlaceholderAPI v2.10.7-DEV-107, pluginEnabled=true, url=plugins\PlaceholderAPI-2.10.7-DEV-107.jar}) called from class studio.trc.bukkit.litesignin.config.MessageUtil (loaded from file:/E:/Eien/plugins/LiteSignIn.jar by PluginClassLoader{plugin=LiteSignIn v1.3.5, pluginEnabled=true, url=plugins\LiteSignIn.jar}).

rancid minnow
#

Thats only mildly annoying

#

@last mesa do you mind reporting that deprecation to the maintainers of those plugins?

last mesa
#

sure

#

This problem occurred after I updated the placeholderapi from dev96 to dev107 today

rancid minnow
#

@last mesa you should be able to run the latest build when it finishes compiling

#

Yeah, technically they would only just have to recompile their plugins and the issue would be gone, but for now I added back that method

last mesa
#

thank you

brisk coral
#

smh Sx

lime light
#

so i know you've probably heard about that often. Statistics expansion not working with 1.12. it's even showing on the damn github.
Stop bitching about it not working on 1.12
but okay, i need to find a way to make it work no matter what, even if it means paying devs to add its support idc

warm topaz
#

try the jar in the pinned messages

amber dirge
tender vaporBOT
#

@amber dirge,

Possible Solution Found:

Looks like your server can't connect to our API,
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.

amber dirge
#

Bruh

austere hawk
#

😆

rancid minnow
#

@amber dirge What happened to trigger that?

#

nvm, I see it

dapper temple
#

i get this on startup in 1.16, will 1.16 support be added soon or is there a different scriptengine i should be choosing?

#

"[PlaceholderAPI] Failed to set ScriptEngine for javascript placeholder:"

warm topaz
#

u can use the dev builds in the pinned messages for 1.16 support

#

@rancid minnow what build is stable now?

#

ik u were messing about with them

rancid minnow
#

the one thats on spigot?

warm topaz
#

😐

rancid minnow
#

?

dapper temple
#

i switched to the dev build today but got the same error

warm topaz
#

after 90 u were messing about with them

#

so i wanna know if its all good now

rancid minnow
#

@dapper temple is there a stacktrace that accompanies that message?

#

@warm topaz I'm saying none of them are really stable

#

You don't find stability in dev builds

#

You get that with releases

warm topaz
#

@dapper temple add
engine: 'nashorn' to ur javascript file in javascript_placeholders.yml

#

¯\_(ツ)_/¯

dapper temple
#

no it happens on startup

#

and yeah that's what i had before: nashorn

rancid minnow
#

omg...

#

it has a catch on NPE

#

I'm gonna literally vomit

warm topaz
#

LOL

#

🙂

rancid minnow
#

@dapper temple remove that entry from the config

#

Also, which JVM are you using?

dapper temple
#

if i remove it from the config it won't load my javascript, why would i do that

rancid minnow
#

Remove the engine entry

dapper temple
#

still throws the error even with that removed

#

java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)

rancid minnow
#

It seems that your jvm doesnt have the nashorn engine in it then

dapper temple
#

that seems unlikely since i didn't have this problem when running 1.15.2 on the same machine

rancid minnow
#

Add a debug entry to root of the javascript config section

#

and set it to true

#

That will make it print out the available script engine factories

dapper temple
#

not sure what you mean by the "root of the javascript config section"... i tried this but it did nothing:
expansions:
javascript:
debug: true
engine: javascript

rancid minnow
#

Oh, its actually using the debug value in the root of the papi config itself

dapper temple
#

so then above the expansions bit even then

rancid minnow
#

Yes

#

It should be there already

#

set it to true

dapper temple
#

no, is not there already. i placed it there, again: no effect.

rancid minnow
#

send your config

#

Its definitely there by default xD

dapper temple
#

in yours just not in mine

rancid minnow
#

?

#

The same default config gets generated for everyone

#

Can you send your current config please?

dapper temple
#

can't seem to no let me try again....

rancid minnow
dapper temple
#

it won't let me put a file let me pastebin if i can put a link

rancid minnow
#

Why do you have engine set to javascript?

dapper temple
#

i don't, it does that auto. I tried removing it and it just puts it back tehre again when the plugin loads

mental night
#

sxtanna do you ever sleep?

rancid minnow
#

Um...

#

I dont think thats true actually

#

The default value it writes is "nashorn"

#

Can you turn the server completely off

#

Change that value to nashorn, save it, and then start the server

dapper temple
#

it says "nashorn" in the javascript_placeholders.yml, yes

#

and i could remove that line without any difficulty... this one in config on the other hand seems unrelated and self-spawning

rancid minnow
#

@mental night no

dapper temple
#

sure i can try that hold on

mental night
#

smart move

rancid minnow
#

@mental night sleep is for the weak

#

😈

warm topaz
#

indeed

mental night
#

sleep with one eye open when kalibear is here

warm topaz
#

👀

mental night
#

i know what you did last summer

dapper temple
#

ok it kept the setting if i changed it while the server was off, but this had no effect, still cannot load my javascript_placeholder and i have no indication that debugging has done anything

rancid minnow
#

Do you get literally 0 messages when the javascript placeholder is loading?

#

If debugging is set to true it prints a couple of things

dapper temple
#

just the same one I've been getting for forever: [20:14:57] [Server thread/WARN]: [PlaceholderAPI] Failed to set ScriptEngine for javascript placeholder: showping , nothing else... shows the registring of every other expansion as usual, says nothing else in regards to javascript, not a single extra character about it

rancid minnow
#

can you send whats inside of latest.log please?

dapper temple
warm topaz
#

i know what you did last summer
@mental night this seems familiar

#

cant figure out what from

rancid minnow
#

This just straight up doesnt make sense

dapper temple
#

i'll be back in like 30 or so mintes maybe message me if you come up with something new for me to attempt, i thought the dev build would magically fix this and since it hasn't i'm not really sure how this isn't a known issue so... anyway i'll be back in a bit

rancid minnow
#

can you delete the javascript expansion you have

#

and redownload it

dapper temple
#

sure i'll try that after

rancid minnow
#

It looks like youre using a REALLY old version, that error message was changed like 4 months ago

dapper temple
#

unregistered it, downloaded new off ecloud says version is 1.5.3 on reload gave identical error

rancid minnow
#

Welp

#

¯_(ツ)_/¯

dapper temple
#

yeah i guess this is broken on my 1.15.2 machine too now for i guess the same reason

#

and it has a somewhat older version of java on it still, yet it still isn't doing nashorn anymore either i guess? wonder when they took it out

#

and if they did what are our other options

rancid minnow
#

@dapper temple I mean.... if were considering all options here

#

You can download the kotlin scripting expansion

#

lol

dapper temple
#

so you're saying nashorn is the only availble engine for javascript so people just can't use javascript at all now because java itself no longer supports it?

rancid minnow
#

I suspect theres more fuckery going on here than what is obvious

#

nashorn is only deprecated atm

#

It should still work

dapper temple
#

only information i'm finding so far is that it's the only engine included in the jdk, but any engine should work and... i'm not sure what's in the runtime environment - if anything

hasty dome
#

[DeluxeMenus] Error in requirement javascript syntax - %luckperms_groups% >= helper

#

help me

vivid sparrow
#

= it's used for numbers

hasty dome
#

I can not do . to buy only a certain degree that I put it?

dapper temple
#

that placeholder returns a list of groups inherited by the player you couldn't use >= a list

#

you'd have to like %luckperms_groups%.forEach(item,index) {and check each item >= some value}

vivid sparrow
#

it doesnt work like that

odd jay
#

Hello, is there a way to cancel/stop all the following actions if the first condition you put isn't met?

random hazel
#

Hello, using placeholder API v2.10.6 works fine, but when using the DEV version 2.10.7 this error is created:

Caused by: java.lang.NullPointerException
        at me.clip.placeholderapi.PlaceholderAPI.setPlaceholders(PlaceholderAPI.java:99) ~[?:?]
        at me.clip.placeholderapi.PlaceholderAPI.setPlaceholders(PlaceholderAPI.java:301) ~[?:?]
        at me.clip.placeholderapi.PlaceholderAPI.setPlaceholders(PlaceholderAPI.java:630) ~[?:?]
        at me.rockyhawk.commandPanels.commandpanels.openGui(commandpanels.java:432) ~[?:?]
        at me.rockyhawk.commandPanels.commands.commandpanel.onCommand(commandpanel.java:343) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[patched_1.16.1.jar:git-Paper-103]
        ... 27 more

Is there some API changes or does anyone know what the issue is?

brisk coral
#

smh Sxtanna

#

One of those methods was removed iirc

random hazel
#

.setPlaceholders() is removed?

brisk coral
#

Show me where you're using it

random hazel
#
PlaceholderAPI.setPlaceholders(p, (List<String>) pconfig.getList("panels." + panels + ".item." + item.split("\\s")[c] + section + ".lore"))
#

I have a feeling it might have to do with using a List<String> but it was working before

brisk coral
#

It takes a string..

#

Also, you can use getStringList and remove the cast

random hazel
#

oh yeah I forgot lol,
it only takes a string now?

brisk coral
#

I think it always took a string did it not?

random hazel
#

idk because version 2.10.6 works fine but 2.10.7 DEV doesn't work anymore

austere hawk
#

Will OtherPlayer Expansion work if the player I m trying to parse is offline ?

junior musk
#

depends on the placeholders

#

and you can also use the ParseOther expansion, it will let you use all PAPI placeholders

night owl
#

Is there a way to use math expressions with placeholders? For example having 10*%vault_eco_balance% output the player's balance multiplied by 10

junior musk
#

%math_{vault_eco_balance}*10%

#

if you want to round, add [precision:0] before the last %

night owl
#

Is this built in, or does it need an expansion?

brisk coral
#

expansion

night owl
#

Thank you!

reef holly
#

hi, im having problems with a custom placeholder done with javascript_expansion. It just subtract a part of the number it gets from args. Now the problem is, i want to make this placeholder work with commands (ej: /bank deposit %javascript_example_100%), but it returns NaN, and i can't figure out why.

I checked that without putting it on a command line and it work just fine (papi parse me %javascript_example_100% return the desire ammount) and i also checked that "/bank deposit %player_name%" return the player name just fine, so i know for sure is an error on my placeholder

https://pastebin.com/mG3wvRaA

brisk coral
#

javascript_example_100

reef holly
#

sorry i put just example, but is javascript_example

tender vaporBOT
#
📋 Paste Converted!
https://paste.helpch.at/izodoxutil

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

reef holly
#

alright i just checked something

#

the problem is i'm using the placeholder as %javascript_example_{money}%, being money the first args you pass when you open a deluxemenu, and it seems to not work this way, i doubled checked that %javascript_example_100% works fine inside a command

https://paste.helpch.at/rejitanipi.bash

#

also %javascriptexample{money}% works fine if not put on a command line (see line:19)

austere hawk
#

Is there some placeholder similar to Kills Stats ?

warm topaz
#

soon™️ fingerguns

odd jay
#

Hello! Can someone please help me make a javascript for this placeholder? %vault_eco_balance_fixed%
So the placeholder displays your currency without any decimals or commas, but I want it to have commas between the 3 digits, is it possible to add them?

warm topaz
#

vault_eco_balance_commas @odd jay ?

odd jay
#

Thanks!

odd jay
#

Now I wanted to replace all commas with dots since that is how currency works in my country, but there is something I'm missing on my placeholder, and it turns empty: https://hastebin.com/ujevuxaver.js
What could be wrong? can someone help please?

vivid sparrow
#

You have no return

odd jay
#

Thanks!!!

#

it works

rancid minnow
#

@brisk coral removing a method would not cause an NPE

tender vaporBOT
#

@rancid minnow,

Hey!

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

rancid minnow
#

It would cause a NSME

gleaming charm
#

Indeed

rancid minnow
#

@random hazel You're passing null in somewhere

#

I've been changing papi internals to no longer consume exceptions

#

If you do something wrong, it's going to tell you now

gleaming charm
#

I do love useless error messages though like “fatal error occurred” with no more information is great fun

odd jay
brisk coral
#

Shut up @rancid minnow

rancid minnow
#

@gleaming charm The will be no more of that

#

@brisk coral fight me noob

brisk coral
#

Words yes

gleaming charm
#

He messed up both sentences 🤦‍♂️

rancid minnow
#

You're still a noob

#

Lol

#

I just woke up, leave me alone

brisk coral
#

What time is it for you?

gleaming charm
#

5pm likely

brisk coral
#

He's american

gleaming charm
#

he just sleeps

brisk coral
#

It's 4:30pm here

gleaming charm
#

ohh right about 10 then

rancid minnow
#

It's 10 am

odd jay
#

.replace only changes 1 or does it change all the values that it found? and if only replace 1, what should be used to replace all?

#

my bad

#

*.replace

rancid minnow
#

replace replaces all the values

#

replaceAll uses regex to do the same thing

heady falcon
#

"Error has occured: error"

rancid minnow
#

oh wait

#

youre talking about js

#

No, in JS, if its not regex, it only replaces the first value it finds

odd jay
#

Thax stana

#

thanks

#

sxtanna*

rancid minnow
#

youre a mess

#

lmfao

odd jay
rancid minnow
odd lance
#

Uhhhh, I don't see an update for 1.16; does it work? (latest version). ||Sorry for nub||

brisk coral
#

Of what plugin?

#

If papi, pinned messages

odd lance
#

👌 ❤️

rose rain
#

Hey guys, I'm having an issue with PAPI.

#

I have the Player extension installed but %player_name% remains the same.

rare lily
#

Use the commands provided in that

rose rain
#

What do you mean?

#

I'm pretty new to this, so bear with me 😂

rotund pendant
#

do /papi parse me %player_name% @rose rain

rose rain
#

But i want everyone to be able to have it.

#

It's for my scoreboard.

#

I deleted PAPI and reinstalled it, hopefully that helps.

rotund pendant
#

What scoreboard plugin are you using?

rose rain
#

RealScoreboard

#

I just switched from Scoreboard-R

rotund pendant
#

Use %displayname%

#

FYI, doesn't look like RealScoreBoard supports PAPI

rose rain
#

im switching to infinitescoreboard

#

WHat do you suggest

rotund pendant
#

KiteBoard

wide gulch
#

is placeholderapo been updated for 1.16

trim mist
#

Pins.

wide gulch
#

yea was just checking if that was an actuall 1.16

#

thanks

#

sorry to download do i click on #110 build

trim mist
#

I wouldn't do anything over 98

wide gulch
#

and with 98 still work for 1.16

leaden kraken
#

yes

final shadow
#

Use the latest so we have feedback on if the latest is broken lol

unborn smelt
#

How do I get papi to work with bungeechat?

balmy marten
#

huh?

#

Papi doesn't support bungee

unborn smelt
#

I've noticed multiple servers that have the %server_unique_joins% placeholder on their bungee network

#

Do you know they are accomplishing this?

balmy marten
#

Would just be on the lobby server if it was using papi

heavy surge
#

Im setting up goldencrates & I would like to ask what the place holder would be if I want to use money as a reward

#

./eco give %player% 100 doesn't seen to be working

#

it sets it to my name

brisk coral
#

?player

tender vaporBOT
#
FAQ Answer:

Player placeholder not working? If you are using a plugin which supports PlaceholderAPI, and the %player% placeholder doesn't work, then change it to %player_name% and download the player expansion.
Commands:
/papi ecloud download player
/papi reload

heavy surge
#

thank you

lone cipher
#

hi

#

are their placeholders for ezblocks blocks mined?

#

how would i use this on holograms

#

holographic displays

brisk coral
#

You need to get the holographic extension plugin, and then use it with {} instead of %%

austere hawk
#

Is there any Placeholder Similar to %askyblock_leaderboard_level_<1-10>% ?

vivid sparrow
#

Leaderheads

austere hawk
#

any other ?

brisk coral
#

doubtful

austere hawk
#

ok thx

ivory fjord
#

Hello! Sponge's download servers are down, does anyone happen to have a mirror for the sponge version of PlaceholderAPI?

junior musk
#

PlaceholderAPI doesn't have an official Sponge version

brisk coral
#

papi3 😏

junior musk
#

yet*

balmy marten
#

Hello! Sponge's download servers are down, does anyone happen to have a mirror for the sponge version of PlaceholderAPI?
@ivory fjord

#

We're not associated with that sponge version

#

We're working on an official build, but that is still some time away.

ivory fjord
#

ohh, oops

#

alright thank you, i'll use a different solution for now

balmy marten
#

np

night owl
#

Where can I find documentation on how to write JavaScript placeholders?

night owl
#

Thank you!

warm edge
#

Hey I am looking to talk to the Dev in private chat is that possible?

balmy marten
#

In regards to?

warm edge
#

It's about using the logo

rare lily
#

How does Dev have any relation to logo

balmy marten
#

dw its sorted

night owl
#

Is it possible to use placeholders within a scipt? Or would those placeholders need to be passed as arguments to the javascript placeholder?

rotund pendant
#

@brisk coral One for you ^

tender vaporBOT
#

@rotund pendant,

Hey!

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

balmy marten
#

Is it possible to use placeholders within a scipt? Or would those placeholders need to be passed as arguments to the within javascript placeholder?
@night owl Yeah it's possible, not sure how off the top of my head, but if you have a google around you'll find it

night owl
#

Thank you!

rare lily
#

The answer is certainly

brisk coral
#

var placeholder = "%deluxetags_tag%";

#

?

austere hawk
#

Javascript expansion can't be used as %javascript_top_#% (where # = any number, Something like a leaderboard)

brisk coral
#

Well technically it can

austere hawk
#

huh ok thx for info

brisk zinc
#

is there a dev build for papi?

turbid tide
#

yep

#

link in pinned messages

brisk zinc
#

sweet thanks!

stone parcel
turbid tide
stone parcel
#

lol i searched everywhere and didnt found it

#

thank you blitztztztz :)

turbid tide
#

welp not everywhere xD. You are welcome

stone parcel
#

i dont have to download the ecloud thing, do i?

turbid tide
#

well if they work you don't

#

if they don't you probably do

#

hmm seems like there is an expansion

#

to be downloaded

stone parcel
#

because it didtn work and I do /papi ecloud download quests it downloads the extention for quests from the other person

#

ah thanks

#

oh well no, this is the other quests plugin

turbid tide
#

hmm

#

I see and it doesn't work without downloading the expansion?

stone parcel
#

yes

turbid tide
#

try going into plugins/PlaceholderAPI/expansions and delete the Quests one then restart the server and try the placehodlers again without downloading it

#

it = expansion

stone parcel
#

okay ill try it

#

you are godly

#

it works now lol

#

thank u very much!!

turbid tide
#

no problem

fervent jackal
#

Javascript Placeholder
Why array.includes(element) doesn't work?

junior musk
#

try .contains?

fervent jackal
#

Still not working

rancid minnow
#

@fervent jackal can you send the code youre using?

fervent jackal
#

Forget it, i replaced that part with array.indexOf(element) !== -1

rancid minnow
#

lol

warm topaz
#

cant embed images here

#

lol

rancid minnow
#

I am aware

warm topaz
#

fc be giving development more perms 😠

fervent jackal
wispy dove
#

Hey ! Is it possible to get a placeholder value of another server in a bungee cord network ?

tender vaporBOT
#
Globalholders
Information

Fetch placeholders from PlaceholderAPI across your BungeeCord network.
Thread URL
Homepage
Wiki

wispy dove
#

This plugin seems be dead

#

Not updated since 1.14

warm topaz
#

¯\_(ツ)_/¯

brisk coral
#

Charlie ded fingerguns

warm topaz
#

thats the only way i know of

heady falcon
#

charlie not dead

warm topaz
#

he isnt dead frosty

brisk coral
#

I know Kali smh, I got a 200 SC streak with em :p

warm topaz
#

o

junior musk
#

yeah I forgot about that

heady falcon
#

🤨

junior musk
#

I was saying, remember the site where it is posted

heady falcon
#

Also I've just realised, is your profile picture a helicopter in minecraft?

warm topaz
#

i can test it to see if it works on 1.16 when i get on pc

#

but i assume it does already

junior musk
#

Also I've just realised, is your profile picture a helicopter in minecraft?
@Niall yeah, I was using MC Heli on 1.7.10 when I started to play Minecraft =)

heady falcon
#

Lol nice

rancid minnow
#

nerds

junior musk
#

still hasn't been updated 😭

heady falcon
#

I always wanted to try out the flans mod or something

#

With vehicles

#

I could never get it to work

junior musk
#

In the end I went with MrCrayfish's Vehicle Mod ¯_(ツ)_/¯

night owl
#

can placeholders be passed as arguments inside javascript placeholders?

warm topaz
#

didnt u get answered earlier?

turbid tide
#

{placeholder}

night owl
#

like this? %javascript_titleprice,{luckperms_check_permission_title.healer}%

fervent jackal
#

Javascript Placeholder
I want to do something a little complex, I've already tried it in several ways and none of them have worked for me.

There are 3 lists:

var list1 = [];
var list2 = ["perm.one", "perm.two", "perm.three"];
var list3 = ["text1", "text2", "text3"];

I want to verify each element of the second list, if the player has the permission, the text of the third list that is in the same position of the permission will put in the first list

For example, if the player has perm.one and perm.three the first list would look like this:

var list1 = ["text1", "text3"];
rancid minnow
#

index loop

brisk coral
#

:what:

turbid tide
#

@night owl no. between the javascript name and first argument there needs to be an underscore not a comma %javascript_titleprice_{luckperms_check_permission_title.healer}%

rancid minnow
#
list2.forEach(function (value, i) {
  if (player.hasPermission(value)) {
    list1.push(list3[i]);
  }
});
#

@fervent jackal

#

something like that

#

I dont know JS like that, but should be along those lines

brisk coral
#

Does forEach even work in js?

rancid minnow
#

yes?

brisk coral
#

Interesting

night owl
#

That was it, thank you!

fervent jackal
#

@rancid minnow
Thanks, i will try with that

main kettle
#

hello

#

%mcmmo_level_swords%

#

this mcmmo placeholder not work

#

how to solve it

balmy marten
#

/papi ecloud download mcMMO /papi reload

main kettle
#

`/papi ecloud download mcMMO
/papi reload
sure i have all did

#

only
mcmmo_power_level
mcmmo_power_level_cap
work

#

but mcmmo_level_<skillname>

mcmmo_rank_<skillname>

#

not work

trim mist
#

mcMMO maintains their own expansion. You might have better luck in their Discord since they are actively updating that.

main kettle
#

but i ask them they said this

#
you might need to go talk to the papi guys, I don't know how that stuff works
trim mist
#

I responded in their support channel and tagged the proper person for you.

main kettle
#

okay thx 🙂

rancid minnow
#

@main kettle did you try %mcmmo_level_SWORDS%?

main kettle
#

let me try

#

same

rancid minnow
#

jesus since when does mcmmo cost money??

rare lily
#

A long time ago

#

I don't remember they cost 15$ actually

#

It was 10$ back then

trim mist
#

It's going up to 20 soon.

rare lily
#

These dudes..

rancid minnow
#

@main kettle uhhhh

#

the placeholder totally works

#

what the hell?

#

Why did I think that would embed...

rare lily
#

Weird

main kettle
#

hmmmmm

#

%mcmmo_level_swords% not work but %mcmmo_power_level% work

austere hawk
#

@main kettle can u try /papi parse me %mcmmo_level_swords% ?

#

also check if u have levels in swords

main kettle
#

sure

#

wait a minute

austere hawk
#

can't reach (can't open the page )

rancid minnow
#

its cause he pasted twice

#

just remove the second link

main kettle
vivid sparrow
#

jesus since when does mcmmo cost money??
@rancid minnow it always did

#

||but you can download it for free from their CI pls dont do this||

main kettle
#

ok i have fund why

#

when i change en_US to zh_TW

#

then the %mcmmo_level_swords% placeholder will not work

#

Locale: zh_TW

trim mist
#

The locale in mcmMO?

main kettle
#

yes

trim mist
#

I would report that to them.

main kettle
#

ok

#

i have solved by using chinese characters

#

/papi parse me %mcmmo_ level _劍術%

final shadow
#

So what’s up

#

How is it looking for a papi update today

trim mist
#

There's an open PR waiting for you.

rancid minnow
#

Theres also a design change discussion we need to have when youre free @final shadow

coarse wedge
#

Heya

#

Is there an "update all expansions" command?

#

i.e. /papi ecloud update all

rancid minnow
#

no.

#

wait

#

make an issue for it

#

and I'll probably do it

#

idk

#

maybe not

coarse wedge
#

Well that was a roller coaster

rancid minnow
#

¯_(ツ)_/¯

coarse wedge
#

Are ya'll adding relational placeholders or is that just mvdw?

rancid minnow
#

thats already a thing

#

I might remove it though

#

idk

coarse wedge
#

Is there somewhere I can read about that to learn what it is?

rancid minnow
#

?

coarse wedge
#

I have no idea what relational placeholders are

#

I think I read somewhere that it's got to do with multiple plugins interacting or something

#

I've only read that mvdw is working on adding them and not actually found anything explaining what they are.

rancid minnow
#

I know nothing about anything else

#

I barely know about papi

#

but papi has had relational placeholders for a while

#

since 2018 at least

coarse wedge
#

Oh it's relationships between two -players- got it

#

that's really cool

rancid minnow
#

What...

#

were you expecting?

coarse wedge
#

I can see how that would be useful

#

Like I said I had heard that it was between two plugins

#

That was literally what my question was

rancid minnow
#

Im...

#

wtf are you talking about dude

mint fable
#

between 2 plugins?

#

what

coarse wedge
#

I mean that's kind of why I was confused

trim mist
#

It's between 2 players.

coarse wedge
#

Well I got that part from the java code ^

mint fable
#

I think I read somewhere that it's got to do with multiple plugins interacting or something

brisk coral
#

Petition for papi3 to be kotlin fingerguns

rancid minnow
#

That would be very fucking dumb

coarse wedge
#

I have no idea if that would be very fucking dumb or not

#

I can't imagine why it would be useful

#

It seems to me like if two plugins have any kind of interaction then you could get the data you want from just one of them

#

I mean I can give you examples of how that could work

#

There could be for instance a placeholder checking a player's location against multiple land claim systems to see if the land is protected, I.E. towny and worldguard

rancid minnow
#

That would not be something thats relational

#

That doesnt make sense

coarse wedge
#

Yeah I suppose not

#

Are there operator placeholders?

rancid minnow
#

wdym?

coarse wedge
#

so imagine you had something like %worldguard_protected% and %townyadvanced_protected%

#

you could use some kind of an operator placeholder like ||

#

so it would become %worldguard_protected_||_townyadvanced_protected% and would be true or false

tender vaporBOT
#
Javascript
Useful Links & Information:

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

mint fable
#

you can do a lot with javascript

rancid minnow
#

You could also use kotlin

coarse wedge
#

Ah I forgot about that

rancid minnow
#

because kotlin is better than javascript

final shadow
#

Go to bed

rancid minnow
#

You could also use the math expansion

coarse wedge
#

I don't know kotlin, I barely know Java

rancid minnow
#

which supports boolean operands

mint fable
#

math for true false?

rancid minnow
#

yes

#

It uses evalex (a project I contributed to btw) to evaluate the expression

coarse wedge
#

clip i dun wanna

mint fable
#

&& or &? @rancid minnow

rancid minnow
#

&&

mint fable
#

v nice

#

good to know

coarse wedge
#

that guy looks like Ron Weasley's dad minus the red hair

rancid minnow
#

Damn.... 3 years ago

mint fable
#

time flies when you're breaking papi

#

||fucking arrows||

final shadow
#

Would be nice if we could push an update

#

Would be nice if the arrows were grey

#

Would be nice if you could push so we have arrows

rancid minnow
#

Would be nice if you didnt SQUASH my 53 commits into 1

brisk coral
#

Would be nice if we had colored commands fingerguns

balmy marten
#

centered arrows?

final shadow
#

Would be nice if you don’t do so much in one pr

rancid minnow
#

fuck. that.

#

@final shadow WHAT

#

How... DARE you

final shadow
#

That should have been 53 prs

rancid minnow
#

LMFAO

#

Absolutely fucking not

coarse wedge
#

My team has a bad tendancy of piling everyone's changes into one branch and then making prgeddon

carmine veldt
#

how are you meant to get your commit numbers up on your profile page if you don't make 53 commits in a pr

mint fable
#

you should hear about how I'm going to boost my expansion downloads 😉

rancid minnow
#

Its not even about commit count, its about actually using commits the way theyre supposed to be used

coarse wedge
#

How am I meant to get my commit numbers up if my employer has something proprietary instead of github

rancid minnow
#

and not completely SQUASHING them when you merge

#

@final shadow cough

coarse wedge
#

x_x

carmine veldt
#

mirror it to github obviously vergil

final shadow
#

Don’t ask me to merge from my phone

coarse wedge
#

boom fired

rancid minnow
#

LMFAO

#

Here, let me go ahead and revert the merge, and then remerge it

final shadow
#

Fuck that

#

It’s done

carmine veldt
#

i'm merging gradle sx

rancid minnow
#

I demand my 53 commits be tracked

final shadow
rancid minnow
#

@carmine veldt thank you

#

Im fucking sick of xml

coarse wedge
#

Yall make me blush, I don't even know how to revert changes without fucking up my whole local repository

rancid minnow
#

Probably cause youre a 4head

brisk coral
#

Now all that needs done is everything converted to kotlin and we're on a good path fingerguns_reversed

final shadow
#

Hell no

coarse wedge
#

I don't know what that means but it's entirely possible.

rancid minnow
#

YES

#

I fully support this initiative

carmine veldt
#

sx is that sourceset configuration necessary?

rancid minnow
#

duh

#

Dont touch what I changed 4head

final shadow
#

Break everything

coarse wedge
#

Burn it all

mint fable
#

break barry

rancid minnow
#

I've never broken anything

coarse wedge
#

break him

final shadow
#

We did

coarse wedge
#

On this week's episode of Breaking Barry

carmine veldt
#

@final shadow your jenkins is going to break

#

just an fyi

rancid minnow
#

fuck jenkins

final shadow
#

What’s new

coarse wedge
#

Who will be promoted? Who will be fired? Who will be banned from the Discord? Is it Vergil? It's probably Vergil.

rancid minnow
#

He's old and crusty anyway

#

use github actions instead

coarse wedge
#

What 😮

#

what's wrong with Jenkins

rancid minnow
#

Its gross

carmine veldt
#

maven's being taken out back and getting a bullet in the head clip

final shadow
#

Btw Vergil we made a rule that if you submit an issue to papi you get banned from discord

rancid minnow
#

LOL

coarse wedge
#

:I

carmine veldt
#

didn't squash them sx

#

be happy

coarse wedge
#

I can't even use my own emoji to demonstrate the depth of my :I

final shadow
#

So what do I need to do to Jenkins

carmine veldt
#

change it to use gradle isntead of maven

rancid minnow
#

@carmine veldt unless it restores all of my commits, I dont care

#

I will forever have this burden upon my heart

#

A reminder of the day I was betrayed by git

carmine veldt
#

when is github renaming master to main

#

ay

coarse wedge
carmine veldt
#

ew

#

wtf is that

coarse wedge
#

I recognize this is Maxim's fault

carmine veldt
#

please just use hastebin

coarse wedge
#

no

carmine veldt
#

I literally can't read this

rancid minnow
#

thats not maxim's fault

#

That version of the json library was outdated

#

so it doesnt work on 1.16

#

However comma, its updated in latest dev

balmy marten
#

converted

carmine veldt
#

thanks

rancid minnow
#

wait... I accidentally typed a comma

#

fuck

trim mist
#

Hoverever, comma,

rancid minnow
#

SHUT UP

coarse wedge
#

yeah I was wondering

rancid minnow
#

Its 4 am

coarse wedge
#

It was an oxford comma

#

just go with it

rancid minnow
#

And I've had to read @final shadow 's code all day

#

give me a break

#

😈

coarse wedge
#

So that means Maxim has to update his json library though right?/

rancid minnow
#

Its not his?

coarse wedge
#

It's not?

rancid minnow
#

no...

carmine veldt
#

nothing todo with maxim vergil

rancid minnow
#
JSONMessage.create("I am a title")
              .color(ChatColor.GREEN)
              .style(ChatColor.ITALIC)
            .title(10, 20, 10, player);
#

so fucking ugly

#

gross

coarse wedge
#

I read shit out of order and thought that was when tab did something

carmine veldt
#

okie dokie

#

gradle merged

#

both branches deleted

rancid minnow
#

delete that old dev branch too

#

pls

carmine veldt
#

time to fix sx's trash formatting

coarse wedge
#

so what do I need to do to fix this then?

rancid minnow
#

dont FUCKING touch my files

carmine veldt
#

you need the latest version of papi vergil

#

dev build

coarse wedge
#

On it boss

mint fable
#

i don't even need to pr the arrow changes either @rancid minnow

coarse wedge
#

Anything I need to know before I plop this new build in?

carmine veldt
#

probably

rancid minnow
#

prepare for your server to implode

final shadow
#

Uh

rancid minnow
#

@mint fable dont touch shit

#

I'm playing with internals

final shadow
#

Join voice pig

mint fable
#

arrows aren't even there

trim mist
#

Wait did you wipe all the old builds

carmine veldt
#

yes

trim mist
#

Bruh

carmine veldt
#

he was using some weird ass maven jenkins plugin

#

that made it impossible to convert to gradle

junior musk
turbid tide
#

xD

junior musk
#

I wanted to upload my PlayerList expansion ;-;

turbid tide
#

oh you've finished it?

junior musk
#

yay

turbid tide
#

nice

junior musk
#

but I didn't find a way to check a player's permissions with Vault yet x)

#

so RIP my offline and all lists with permissions =/

turbid tide
#

well I mean someone might be able to help you

rancid minnow
#

You don't need vault to check permissions

turbid tide
#

he wants to list all players who have a permission

junior musk
#

You don't need vault to check permissions
I do if I want it for offline players

rancid minnow
#

Ok?

junior musk
#

since the Bukkit .hasPermission("permission") only supports online players, I can't make a list of offline players with a permission, that's why I wanted to use Vault's API for that

#

I can't register on the eCloud =/
btw, if I try to login, apparently it finds my user name but tells me
You must verify your email to login.
but I didn't receive any emails =/

balmy marten
#

I can't register on the eCloud =/
@junior musk did you have a capital letter?

junior musk
#

ah

#

T

#

I'll try again

balmy marten
#

dw

#

its created

#

i just have to validate it

#

1 sec

junior musk
#

oki

balmy marten
#

aight should let you login now

#

use a lowercase t

junior musk
#

yup, it works, thanks !

balmy marten
#

np

#

rewrite is fixing these random issues

junior musk
#

btw, if I want to verify it I have to upload it to github and put the link in the source URL right ?

warm topaz
#

i dont think so

#

do it anyway fingerguns

junior musk
#

oki ¯_(ツ)_/¯

turbid tide
#

xD

warm topaz
#

tang, is it all rewritten in java now?

balmy marten
#

Yea

warm topaz
#

nice

balmy marten
#

btw, if I want to verify it I have to upload it to github and put the link in the source URL right ?
@junior musk It's preferred but not strictly required

rancid minnow
#

I was talking to blitz when I said "Ok?" btw

warm topaz
#

Ok?

junior musk
#

tang, is it all rewritten in java now?
yup, but you're probably all going to yell at me because of how I did it x)

#

I'm sure I did something wrong

warm topaz
#

shouldve done it in kotlin fingerguns_reversed

junior musk
#

fak, I called it PlayersList instead of PlayerList ;-;

warm topaz
#

get cube to remove clips listplayers, and call it that fingerguns

junior musk
#

Now gotta upload the expansion to GitHub and mess with the license thingies ;-;

warm topaz
#

license thingies?

#

like GPL and stuff?

junior musk
#

yeah

warm topaz
#

pretty sure it just defaults to gpl

junior musk
#

I've never uploaded to GitHub before so idk x)

warm topaz
#

i mean even if u dont specify a license in gh

#

idk i could be wrong

junior musk
#

I'll see ¯_(ツ)_/¯

#

yup it does

#

not

balmy marten
junior musk
#

thanks 🙂

#

Now I gotta re add support for [placeholder] :D

warm topaz
#

how do i get verified author? thonking

brisk coral
#

You get gud

balmy marten
#

Pretty much

warm topaz
#

😕

balmy marten
#

Basically for those who upload a few trusted expansions

#

or have a popular plugin

warm topaz
#

time to make 10 more shit expansions

balmy marten
#

trusted != shit

warm topaz
shrewd salmon
#

whats the placeholder for players online on a bungee server

#

i cant find it

#

ok so like

#

is %bungee_(name)%

#

the players online

#

on that names server?

warm topaz
#

remove () and yes

shrewd salmon
#

okay

#

why isnt it working?

warm topaz
#

did u run the comnands?

#

is the server name correct?

shrewd salmon
#

yes

warm topaz
#

do /papi parse me %bungee_skyblock%

shrewd salmon
#

it just shows up %bungee_skyblock%

rancid minnow
#

The bungeecord expansion updates the values every 30 seconds

#

You should be able to modify this interval in the config.yml of papi

shrewd salmon
#

i dont think you read the conversation correctly lol

rancid minnow
#

What did I miss exactly?

shrewd salmon
#

your talking about when it updates

#

this is my issue

warm topaz
#

ok run /papi parse me %bungee_total%

#

this will eliminate an issue

rancid minnow
#

It does not retrieve values immediately

shrewd salmon
#

it just shows up %bungee_total%

warm topaz
#

if it returns the %% u didnt download the expansion correctly

shrewd salmon
#

huh

#

ok lemme try again

warm topaz
#
/papi reload```
rancid minnow
#

@warm topaz or the expansion returns null

#

lol

#

Which it shouldn't do.

shrewd salmon
#

thanks it works now

#

uh

#

it still doesntr work for the hologram doe

warm topaz
#

what hologram plugin

shrewd salmon
#

holographicdisplays + holographicextention

warm topaz
#

is holographic extension enabled?

shrewd salmon
#

unless its disabled by default yes

warm topaz
#

is it red in /pl

shrewd salmon
#

nope

rancid minnow
#

Did you set it to a refreshing value?

warm topaz
#

did u add an update placeholder to the line?

rancid minnow
#

Holograms dont update by themselves

warm topaz
#

{fast} for example

shrewd salmon
#

ohh

rancid minnow
#

{fast}%bungee_skyblock%

shrewd salmon
#

nope

warm topaz
#

🤔

shrewd salmon
#

am i missing a dependencie (idk how to spell that)

rancid minnow
#

What was the result of you doing that?

shrewd salmon
#

same issue as before

#

the placeholder doesnt get replaced

rancid minnow
#

Does it show "{fast}" on the hologram?

shrewd salmon
#

yes

rancid minnow
#

It shouldnt

#

Are you sure you have holographicextension?

shrewd salmon
#

Yes

rancid minnow
#

What version?

shrewd salmon
#

1.8

warm topaz
#

do u have protocol lib? it shouldnt affect this but still

shrewd salmon
#

ah

#

let me get that

warm topaz
#

i think the plugin would disable without plib anyway, not surr

#

unless its soft depend

rancid minnow
#

Wait, were you saying youre on minecraft 1.8? or holographicextension version 1.8?

shrewd salmon
#

server 1.8

#

the plugin latest

rancid minnow
#

That wasnt what I was asking

#

lol

shrewd salmon
#

oh

#

sorry im dumb

rancid minnow
#

Yeah, it requires protocollib for placeholders

shrewd salmon
#

installing it rn

#

thanks it worked!

warm topaz
#

👍

rancid minnow
#

👏

undone crag
#

Ok so I have a very specific question; when I plugman reload a plugin that uses PAPI placeholders PAPI then becomes unable to access the values in memory of the plugin. That's annoying.
Now what's really weird is that the plugin has a default behavior where no values are found for player data it will get them from the database - which PAPI does after a plugman reload. Which is weird.
This would balance itself out except that it seems like some servers (read: one very specific chinese server) seem to crash when they get overloaded with papi requests to access db data.
So I guess my question is two-fold:

  1. how the hell is this even happening
  2. is it possible to "reconnect" my plugin to papi is it is fully unloaded and loaded back in during runtime
    I will say upfront that my sqlite implementation is not perfect and probably not even good in general, I'm still trying to learn how to use sql dbs in general, but it should be a fallback feature that is only accessed once in a while, not at the frequency that PAPI seems to fire when trying to fill 70+ users worth of tab list info or filling scoreboard info.
warm topaz
#

Ok so I have a very specific question; when I plugman reload a plugin that uses PAPI placeholders PAPI then becomes unable to access the values in memory of the plugin. That's annoying.

#

this says it all

rancid minnow
#

Plugman should not be used in production

undone crag
#

if that was all there was to it I wouldn't ask any questions honestly

brisk coral
#

Because plugman is shit and should not be used for this, there's reasons why you restart the server instead of just reload

undone crag
#

how is it even falling back to my db though

#

that's the thing that sort of baffles me

brisk coral
#

I mean are you caching data?

undone crag
#

yes

austere hawk
#

papi 1.16 bless

undone crag
#

papi just can't see the cached data, it bypasses the cache and goes to the db

rancid minnow
#

Where are you caching the data?

shrewd salmon
#

whats the placeholder for the player name? i want to use citizens cmd to switch my server, but i dont want people to be able to do /server, so i run the command through console

rancid minnow
#

It's player_name

shrewd salmon
#

ty

#

%player_name% u mean?

undone crag
#

I mean I've tested it by accessing the same method directly through the plugin and through papi, they genuinely give two different assertions as to whether the data is cached within instants of accessing that data

rancid minnow
#

Yes

undone crag
#

and as for where I'm putting it, I keep a playedata hashmap for online players which I load from db when they log in

rancid minnow
#

This is probably classloader fuckery

#

I briefly spoke with @final shadow about this yesterday

tender vaporBOT
#

@rancid minnow,

Hey!

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

undone crag
#

I know how i can prevent a reconnection manually to papi after a plugman reload but is there a way to actually reconnect correctly instead? that would sort of be preferable

rancid minnow
#

Is your expansion in your plugin?

undone crag
#

currently expansionless, I never really looked too much into making those or the advantages thereof

rancid minnow
#

What... ?

final shadow
#

I think he means he packs the placeholder class with his plugin

undone crag
#

yes

rancid minnow
#

That's what I just said

undone crag
#

sorry I was pulling up the documentation again because it's been a minute

rancid minnow
#

??

#

If the expansion is in your plugin, do you have persist returning true?

undone crag
#

yes

rancid minnow
#

That's strange

undone crag
#

oh yeah one more fun note on the issue from before

#

papi can only read old cached data

#

it desyncs from the plugin's cached data upon reload

#

so anything that was in the old cached data is still going to show up but it'll never update

brisk coral
#

"upon reload" upon plugman reload I'm guessing?

undone crag
#

yes

warm topaz
#

pLuGmAn

undone crag
#

thoughts, insights other than plugman bad?

warm topaz
#

i mean does it work fine if u dont use plugman?

undone crag
#

yes

#

except for chinese servers but that's another story

final shadow
#

Are you unregistering the papi hook on disable of your plugin?

undone crag
#

I don't believe I am

#

nope I am not

final shadow
#

Idk how plugman handles reloads but I assume it disables the plugin

undone crag
#

it does

#

it fires the onDIsable

#

I'm also not purging player data on shutdown which I assume is why the old data stays up there for papi (somehow)

rancid minnow
#

So basically you're just like... Doing everything wrong

#

And you expected a good outcome from that?

#

Just by magic?

undone crag
#

no?

final shadow
#

Be nice sx

undone crag
#

I was mostly just curious as to how papi was getting data like that

rancid minnow
#

I'm not trying to be mean, I'm just saying

#

You know you're not doing things correctly

#

You're not deleting the old data

#

And you're not unregistering the old hook

#

By simple deduction, you should know why this is happening

final shadow
#

The new hook would never register in that case

rancid minnow
#

^

final shadow
#

Since papi still has the old hook class stored

#

Is the data cache stored in the placeholder class too?

undone crag
#

no

#

it's stored in its own playedata class

final shadow
#

Start with unregistering on disable

undone crag
#

I'm guessing it's PlaceholderAPI.unregisterExpansion ? does the unregisterAllProvidedExpansions work or would that affect expansions other than mine?

final shadow
#

But yeah as sx said earlier> This is probably classloader fuckery
@rancid minnow

undone crag
#

yeah that is probably very true

final shadow
#

Ya the first one

rancid minnow
#

This is going to be changed in the future btw, so keep that in mind

undone crag
#

alright I think I got it

#

and thanks for the heads up

rancid minnow
#

Actually, from an API perspective it might not change

undone crag
#

also that got me curious

final shadow
#

I think he means the classloading

rancid minnow
#

I mean the classloading and the method upon which registration is handled

#

Right now it's kinda all over the place

undone crag
#

I unload a lot of data on shutdown but some I never bothered because, well, it's shut down so 99% of the time that's it

#

is it really that bad that I'm not clearing player data specifically to handle reloads?

final shadow
#

I mean it’s in one class so it’s not all over the place in that sense

#

Lol

undone crag
#

the hashmap gets initialized anew during startup

rancid minnow
#

You should always handle all of your shutdown logic

#

Always

#

Make no assumptions

undone crag
#

hm

rancid minnow
#

@final shadow there's 3 different places you can poll for an expansion by name

#

And 3 different ways those expansions can be presented in the API

#

And 4 different ways to get to those endpoints

#

It's all over the place.

undone crag
#

sort of reminds me of discordsrv

#

yeah that did the trick perfectly

#

thanks for the help clip, sxtanna

rancid minnow
#

I think I'm gonna do this now actually

final shadow
#

Want to entertain me in room 1 sx

rancid minnow
#

suuuuurrrreeee

undone crag
#

now I should probably figure out why it is that my dbs are so bad they crash chinese servers

final shadow
#

1 min gonna hop on my pc

grand blade
#

What happened to the nice one-line-per-expansion ecloud list ?

rancid minnow
grand blade
#

Is there no way to the the one-line-per list now?

#

Please return it to service.

rancid minnow
#

???

#

Read the PR dude...

grand blade
#

I read it. It does not say how to get the one-line-per output.

rancid minnow
#

You did not read it.

#

The entire PR was to restore the single expansion per line

#

Look at the image.

grand blade
#

Oh, well that's clear.

#

Thanks.

#

I just d/l b18. papi ecloud list installed prints 4 lines per expansion. No other command options are listed.

rancid minnow
#

@grand blade ?

grand blade
#

Please see issue #367

mint fable
#

@junior musk 😮

junior musk
#

?

#

ah

#

the expansion ?

mint fable
#

V nice

junior musk
#

yeah

#

I'm currently trying to make [placeholder] work again x)

mint fable
#

setSquareBracketPlaceholder

#

Ye?

junior musk
#

👀

#

nah

mint fable
#

wot

junior musk
#

only setBracketPlaceholders

mint fable
#

page <= 1 ? ChatColor.GRAY : ChatColor.DARK_GRAY

#

the fuck is this