#placeholder-api
150650 messages · Page 96 of 151
ok i did but the * is still showing
what's the full output?
What?
add .0 here
Ok it works now
no idea
now you wait until someone that knows respond
stop pinging people its annoying
I need help
There is no time to wait! Ask your question @raw prism!
and its not funny
[21:13:35 ERROR]: [PlaceholderAPI] Failed to load class files of expansion.
java.util.concurrent.CompletionException: java.lang.NullPointerException
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:428) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1604) ~[?:1.8.0_312]
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1596) ~[?:1.8.0_312]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) ~[?:1.8.0_312]
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) ~[?:1.8.0_312]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) ~[?:1.8.0_312]
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:175) ~[?:1.8.0_312]
Caused by: java.lang.NullPointerException
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:98) ~[patched_1.8.8.jar:git-PaperSpigot-445]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:87) ~[patched_1.8.8.jar:git-PaperSpigot-445]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[?:1.8.0_312]
at java.lang.ClassLoader.loadClass(ClassLoader.java:405) ~[?:1.8.0_312]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_312]
at me.clip.placeholderapi.util.FileUtil.findClass(FileUtil.java:62) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:405) ~[?:?]
It tells this
papi doesn't parse colors
It's up to the plugin implementing it to parse the color
and deluxetags has support for two formats so make sure your config is setup correctly
- Added hex/rgb colors support. It comes in 2 formats: #aaFF00 aka Standard and &#aaFF00 aka Legacy. (You can toggle between the 2 in config.yml where you'll find the legacy_hex option)
@stable mist
Hey, anyone got a Java 8 javascript jar? eCloud removed all the older versions and I cant download it using /papi ecloud download javascript 1.6.0 (and it's not listed on the website)
@mint fable ecloud not working ?
papi ecloud not working ?
working for me @jaunty parcel
How to use placeholders with gradient
In decent holograms we can use <HEXCODE> %placeholder%<HEXCODE2>
Where do you need, in the chat ?
this, colorizing depends on the plugin and not on placeholder api
why does it looks like this
here first line is with parse me %deluxetags_tag% I am awarer I need to remove & signs
but second line is placeholder in side deluxe chat
and it if destroyed
here
so what is solution here
papi doesnt parse colors, coloring is done by your chat plugin
but deluxtags
should do it
before
deluxe tags is not a chat plugin
Deluxe Chat
check your chat plugin.
well it provides tags which contain color
and it works thru papi parsing
so tag plugin should do it thing
no, then the tag plugin parses them before sending
all you need to know is that it does not get colored in papi
in ChatChat
so talk with your plugin devs to fix the issue
deluxechat is no longer supported afaik
I know
and ChatChat is horrible
to format
🤷♂️
why is Legacy & color codes
you need another chat plugin then
the whole & chat coloring is outdated
i believe chatchat uses kyori adventure to parse
it uses dam <gray>
and so on
like why
yes its minimessage
why not, it allows for concise coloring
you can create an issue to add support for & coloring again
dont think it would be a big deal
in my 30 years I did't saw that stupid way of thinking
it should support & coloring actually
i am looking at chatchat source atm
they internally convert & to adventure coloring
not sure if its fully implemented yet, but it should be on its way
to just make ChatColor.translatAlternateColorCodes
except that thats not how it works internally
no, they use components
its minimessage
I just can't find it
type kyori minimessage
I know bet last line of code for every component could be to translatae alternate color code
why dont you implement yourself if its simple then?
source is on github
because I like to complain
you are not getting any sympathy, mini message formatting is above
your best bet is to either use that or switch to another one until chat chat is fully done
I know I like when people dislike me
scoreboard
D:
well what
like no other plugin is supported
so litterly
placeholders like %vault_prefix% if contains & colors brakes plugin
like lol
They are
Currently with use of the kyorify expansion
Which converts legacy formats to minimessage on the fly
and then what
I need to put each place holder seperatly
in side
%kyorify_<placeholder>%
%kyorify_<placeholder>% for plugins that use legacy formats
Not sure if that works
think about it I mean first thing which needed to be inforced in plugin if you are making something like that is legacy colors
this makes so many complications
Keep in mind chatchat is still in beta, nothing is final
is there maybe source code for DeluxeChat
There won't be
why not
so question
why is all my text bolded
now
bolded should be only on G
but it is passed
to other placeholders now
- '%kyorify_ultraprison_rank% %deluxetags_tag%<dark_gray>[%kyorify_vault_prefix%<dark_gray>]'
You can ask in #chat-chat-beta where it's a bit more relevant
is there an issue with this specific placeholder %player_has_potioneffect_<effect>% ? I have tried leaping, jump , jumpboost and none of these are working. https://imgur.com/a/IazBN7P found the name of the effects from this list here https://minecraft.fandom.com/wiki/Effect#Effect_list and i get the same error for haste, resistance, and strength.
Anyone?
so I am using %statistic_use_item:carrot% and created a top10 who ate the most carrots, but there are players planting carrots and counting how they ate them, is there any way to not count when they plant?
prob need a plugin to track it
this is a little outdated but might still work https://www.spigotmc.org/resources/statz.25969/
@mint fable can you help me on this?
where can I find the source
linked on the cloud
only version 2.1.2 on the cloud
Yeah but it has a github link where all the history of the project is still present. And then you just go to an older commit and build it there
Hello! I've been fighting with Javascript attempting to get it to pick a random command between 2 options for me, I've tried many variations of math.random but no matter what I try I get spammed with errors in console when parsing the file. I'm running on Arclight 1.16.5 and have been trying to use DeluxeMenus to have a makeshift wondertrade for my pixelmon server that doesn't randomly break and crashes the server. I've tried both Blitz's and clip's code but all of them just give me the same error.
Is there anything I'm doing wrong or am I just screwed running Arclight? the server is running on Pterodactyl's standard Java 11 and Forge 32.2.39. I have PAPI Javascript and Player as extensions I'm trying to use for this script and my current script is looking like this: https://pastebin.com/knb9JvF1
what error
dont ask to ask just ask
the PAPI plugin don't register the .jar files
i mean
every single time i restart the server
i have to register all again
don't save the info and idk why
This sounds like an issue where we'd need the startup logs to diagnose. Please provide these logs to our staff via a paste service.
any idea about this :/ ? ^
The errors I'm getting are these : https://justpaste.it/7i2im
Well, confirming my javascript through webtoolkitonline just makes it push out the wanted result, yet when it's loaded into the papi expansion and executed through either server console or a player it just doesn't work :(
so i was using the worldguards placeholder extension, and i noticed that it doesn't format the capitalized placeholder correctly
specifically %worldguard_region_name_capitalized%
I want it to say "The Pit", but it says "The_pit"
Hello! How can i return player's nick by placeholder's value?
%essentials_home_<number> % how this placeholder works?
%player%
isn't it %player_name% with players extension?
idk
Yo. Is there any way for me to figure out which placeholder needs an update and how to update it? (Unless I just redownload it?)
5 placeholder hook(s) registered! 1 placeholder hook(s) have an update available.
I just ran /papi ecloud download, for all 5 of them but 1 keeps saying it has an update for some reason
/papi ecloud update all ?
Something like that
probably has the wrong version coded in
can you /papi dump
what will this do?
tried. it said Bungee has an update, but won't let me update it
bungee is cursed a little
it has 2 expansions in 1 file somehow idk what's up with that, one of them is not updated, one of them is
you can ignore the message if it's working
if it's not working... well somebody gotta fix the bungee expansion idk who/when tho
Anyone knows why placeholders doesnt load before server restart?
i need to use /papi reload each time i restart server :(
no
this will be $100 dolla
function getEllapsedTime() {
return formatMilliseconds(Date() - start);
}
function formatMilliseconds(milliseconds) {
var seconds = milliseconds/ 1000;
var minutes = seconds / 60;
var hours = minutes / 60;
var days = hours / 24;
milliseconds %= 1000;
seconds %= 60;
minutes %= 60;
hours %= 24;
var builder = "";
if (days > 0) {
builder += days + "d";
}
if (hours > 0) {
if (days > 0) builder += " ";
builder += hours + "h";
}
if (minutes > 0) {
if (days > 0 || hours > 0) builder += " ";
builder += minutes + "m";
}
if (seconds > 0) {
if (days > 0 || hours > 0 || minutes > 0) builder += " ";
builder += seconds + "s";
}
return days > 0 || hours > 0 || minutes > 0 || seconds > 0 ? builder : "0s";
}
getEllapsedTime();```
haha thanks Adam, but I just copied the one from Blitz a while ago
function getEllapsedTime() {
return formatMilliseconds(Date.now() - new Date("2022-08-27T00:00:00"));
}
function formatMilliseconds(milliseconds) {
var seconds = milliseconds/ 1000;
var minutes = seconds / 60;
var hours = minutes / 60;
var days = hours / 24;
milliseconds %= 1000;
seconds %= 60;
minutes %= 60;
hours %= 24;
var builder = "";
if (days > 0) {
builder += days.toFixed(0) + "d";
}
if (hours > 0) {
if (days > 0) builder += " ";
builder += hours.toFixed(0) + "h";
}
if (minutes > 0) {
if (days > 0 || hours > 0) builder += " ";
builder += minutes.toFixed(0) + "m";
}
if (seconds > 0) {
if (days > 0 || hours > 0 || minutes > 0) builder += " ";
builder += seconds.toFixed(0) + "s";
}
return days > 0 || hours > 0 || minutes > 0 || seconds > 0 ? builder : "0s";
}
getEllapsedTime();
yup its from blitz
anyone know a <center> placeholder that makes other placeholders like say %vault_prefix% be centered?
center where?
you cannot center stuff universally
In a scoreboard
Hi! im trying to make a leaderboard so I need those placeholders but this is not working. Someone can tell me why?
https://media.discordapp.net/attachments/747517451042029718/1022931286043656273/unknown.png
https://media.discordapp.net/attachments/747517451042029718/1022931286563758080/unknown.png
https://media.discordapp.net/attachments/747517451042029718/1022931287058690058/unknown.png
https://media.discordapp.net/attachments/747517451042029718/1022931287763325078/unknown.png
@mint fable @slow crystal
oh, sorry!
@slow crystal
so can you help me please?
@idle coral do you know how to fix it?
Kicked.
How do I reset a scoreboard? When I try it says I have to reset the data in in the target placeholder? idk what that is
which placeholder(s) are you trying to reset @modern spire ?
DeluxeTags placeholder for chat isn't working how do i get it to work?
which chat plugin
I am currently using EssentialsxChat
its /ajleaderboard reset statistic_player_kill
if thats what your asking
the statistic expansion uses the vanilla statistics stored in the world/stats folder
@modern spire
yes all statistics
and if I delete them it wont affect player items or anything right?
only scoreboards?
correct
maybe?
ok
what am i doing wrong with this check item placeholder? %checkitem_mainhand mat:DIAMOND_PICKAXE,amt:1, enchantments:DIG_SPEED=1;DIG_SPEED%
its only checking if i have a diamond pick in my inv
is that the actual placeholder with spaces in it?
thats the acual placeholder
%checkitem_inhand:main,mat:DIAMOND_PICKAXE,amt:1,enchantments:DIG_SPEED=1;DIG_SPEED%
its still only checking for a diamondpickaxe in my inv and not for a Diamond pickaxe in my main hand with digspeed 1 on it
1.19.2
%checkitem_inhand:main,mat:DIAMOND_PICKAXE,amt:1,enchantments:DIG_SPEED=1%
parse that again
any errors in console
not that i see
when i do /papi parse FizzTags %checkitem_inhand:main,mat:DIAMOND_PICKAXE,amt:1,enchantments:DIG_SPEED=1% it just say no
no errors
it is saying yes now
but in deluxemenu it doesnt want to work
which i don't understand
/dm dump <menu>
that's not the updated placeholder
put this in, save, and reload
ah
i cant download the skript expansion
You have to download it manually
- Issue with quests -
Upon doing:/papi ecloud download Quests 1.0
But doing:/papi ecloud download Quests 1.6
When quests 1.6 is installed:
[PlaceholderAPI] Failed to load class files of expansion.```
When quests 1.0 is installed:
[PlaceholderAPI] Failed to load expansion class QuestsExpansion (Is a dependency missing?)```
Code error when doing 1.6: https://paste.helpch.at/ovabojojaf.rb
Code error when at 1.0: https://paste.helpch.at/upovusisol.rb
Note: Trying to download: PlaceholderExpansion-Quests 1.6 to see if it fixes it does not, I think 2 plugins for quests are colliding.
Can someone help me with this issue
placeholder are not showing, i updated the plugin
You're missing the Quests plugin.
It requires that for the expansion to work
Might be wrong but that's related to an expansion that's made by artemis the gr8. Which I believe has a PlayerStats expansion or something like that
that is 1.16, my server is 1.19.2 😦
sorry
Bruh I said it was outdated even
im trying to parse this %ajpk_stats_top_score_{commandpanels_data-lbstart,Jonathan_Nathan}% but i keep getting the placeholder instead of --- ---
it doesn't look like ajparkour supports using other placeholders with {} from what I can see in the source
is there any other way i can do it
could use the javascript expansion
how would i do %%{}%%
hello, recently it gives an error that occurs at will. I have 3 lobbies that restart daily at night and after restarting the PlaceholderAPI on one of the 3 lobbies, it gives an error that completely stops loading placeholders. How can it be solved?
1:
chance: 100
cooldown: 2
effects:
- '%changeoutput_equals_{player_direction}_N_TELEPORT location=~0|0|-8_WAIT:0%'
- '%changeoutput_equals_{player_direction}_NE_TELEPORT location=~6|0|-6_WAIT:0%'
- '%changeoutput_equals_{player_direction}_E_TELEPORT location=~8|0|0_WAIT:0%'
- '%changeoutput_equals_{player_direction}_SE_TELEPORT location=~6|0|6_WAIT:0%'
- '%changeoutput_equals_{player_direction}_S_TELEPORT location=~0|0|8_WAIT:0%'
- '%changeoutput_equals_{player_direction}_SW_TELEPORT location=~-6|0|6_WAIT:0%'
- '%changeoutput_equals_{player_direction}_W_TELEPORT location=~-8|0|0_WAIT:0%'
- '%changeoutput_equals_{player_direction}_NW_TELEPORT location=~-6|0|-6_WAIT:0%' ```
```[19:49:56] [Server thread/ERROR]: [AdvancedEnchantments] Effect "%changeoutput_equals_{player_direction}_N_TELEPORT location=~0|0|-8_WAIT:0%" used with an invalid location: "0|0|-8_WAIT:0%". Using default location. ```
https://api.extendedclip.com/expansions/changeoutput/
https://pastebin.com/9xMpeLBq
how can I set location? I have error...
I have a huge region with priority 0 and a small region inside the big region with priority 10, how do I get the Placeholders %worldguard<AnyWGPlaceholder><Priority(LowestNumber=HighestPriority)>% to give me the name of the smaller region, when I use %worldguard_region_name_10% it doesn't vote anything but if I use %worldguard_region_name_1% it gives me the name of the big region.
I have already downloaded the extension and cloud download WorldGuard for my respective version.
anyone know how to get %essentials_baltop_player_<rank>% to work on holographic displays? just appears as the placeholder and not the actual info
{papi: essentials_baltop_player_<rank>}
Maybe that will work
If that doesn't then remove <rank> and add number like1
your line and changing rank to a number works! why does that work but the officially documented way doesn't wtff
how can I set default location? Pls help me...
I have a huge region with priority 0 and a small region inside the big region with priority 10, how do I get the Placeholders %worldguard<AnyWGPlaceholder><Priority(LowestNumber=HighestPriority)>% to give me the name of the smaller region, when I use %worldguard_region_name_10% it doesn't vote anything but if I use %worldguard_region_name_1% it gives me the name of the big region.
I have already downloaded the extension and cloud download WorldGuard for my respective version.
please help
como sirve esta api %worldguard<AnyWGPlaceholder><Priority(LowestNumber=HighestPriority)>%
Hi, any know if papi support bungeecord?
Hi! PAPI is giving me this error.
[12:13:18 ERROR]: [PlaceholderAPI] Failed to load class files of expansion.
java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: me/blackvein/quests/quests/IQuest
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?]
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760) ~[?:?]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?]
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?]
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?]
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?]
at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
at java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[?:?]
at java.lang.Class.getDeclaredMethods(Class.java:2504) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:413) ~[PlaceholderAPI-2.11.3-DEV-160 (2).jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
... 6 more
Caused by: java.lang.ClassNotFoundException: me.blackvein.quests.quests.IQuest
at java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:587) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
at java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[?:?]
at java.lang.Class.getDeclaredMethods(Class.java:2504) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:413) ~[PlaceholderAPI-2.11.3-DEV-160 (2).jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
... 6 more```
me/blackvein/quests/quests/IQuest this is the main culprit
Oh, ok, got it
i removed an old plugin
sorry this server dosn't run from 6 months hahaha
What's the resource friendly way of pulling placeholder data from a database?
Who here updates the Player expansion?
@dense trail Glare does
How to contact Glare
There are various issues with the player_item_in_hand_ENCHANTMENT placeholder
@trim mist ^
Open issues here https://github.com/PlaceholderAPI/Player-Expansion/issues
I thought so yeah, but the syntax is so confusing
all I am able to retrieve is "yes"
send me what your trying
Retrieving the level of e.g. fortune from the item the user is holding.
send the placeholder
/papi parse me %player_item_in_hand_level_LOOT_BONUS_BLOCKS%
That's the issue, I don't know how to i'm reading the wiki right now
/papi parse me %checkitem_inhand:main,enchantments:LOOT_BONUS_BLOCKS%
it parses "no"
then it parses "yes"
enchantments:<enchantment=lvl>
oh so =lvl means put a lvl and it will return its level if its the same
for example =1 will return if they got the same one
make sense?
Meaning if item is enchanted with fortune 500 and i do =500 it will display 500 ?
myth busted.
=500 will still show yes/no
what you trying to make?
My own enchantment menu
Before u say anything about other plugins or other things that can do this, not possible xD
I know it's possible because it worked in the past
But since I've updated like all plugins it broke,
rip
Yeah, and binary search won't work here unless I want to to that the next 5 years.
I think it's something to do with the method used to retrieve enchantment levels
since there's a purpur way and a paper way
(I have no coding experiences, i learned all of this in the matter of a few hours by talking to devs lol)
lmao
It's annoying though
such a small little thing
gawd damn enchantment player placeholder.
I've received plenty of offers already, yet they have no clue what they're talking about
lol
Mentioned that it should work flawlessly between Vanilla enchants & EcoEnchants (even though ecoenchants are basically implemented as vanilla enchants)
I've had devs say to me that it's not possible what i want to achieve :_:
while it was working like 2 days ago before i updated 💀
I'll be paying $20 to the dev that fixes it first
Uh
@dense trail
I haven’t read it all
But have you tried vanilla enchants
Like FORTUNE
also lvl needs to be a number
Otherwise just remove =lvl and you check for any level
Tried both all broken
But I got it fixed by a dev
@bleak palm fixed it 🤷♂️
(the original issue from player expansion)
lmao did you really pay
if so I need to know more people like you 😎
and ya, checkitem's getinfo placeholder retrieves a lot of info, but you kind of need to sift through it with javascript or something to probably get a result you need
because the best you could return I think is FORTUNE:50
now because of you and 1 other people I added checking individual enchant levels to checkitem
%checkitem_getinfo:mainhand_enchantments:fortune%
it only works if it's completely by itself
Added individual enchant checking. Example
%checkitem_getinfo:mainhand_enchantments:fortune%would return3. It only works ifenchantmentsis the ONLY modifier, and there is only ONE enchant listed.
I installed the essentials hook however when reloading, it doesn't seem to install it for some reason- I run /papi reload however is just says 0 placeholder hook(s) registered! and the placeholders dont seem to be working which I presumed is something to do with this
/papi dump
is it possible to insert placeholders inside placeholders? like %placeholder1_%placeholder2%%?
@round island can you send that over 
[17:45:23] [Server thread/INFO]: [PlaceholderAPI] Placeholder expansion registration initializing...
[17:45:23] [Server thread/INFO]: [PlaceholderAPI] Fetching available expansion information...
[17:45:23] [Server thread/ERROR]: [PlaceholderAPI] Failed to load expansion class EssentialsExpansion (Is a dependency missing?)
java.lang.NoSuchMethodError: 'net.essentialsx.api.v2.services.BalanceTop com.earth2me.essentials.Essentials.getBalanceTop()'
at com.extendedclip.papi.expansion.essentials.EssentialsExpansion.register(EssentialsExpansion.java:78) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.register(LocalExpansionManager.java:191) ~[?:?]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[?:?]
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$registerAll$4(LocalExpansionManager.java:350) ~[?:?]
at me.clip.placeholderapi.util.Futures.lambda$null$0(Futures.java:46) ~[?:?]
at ```
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:468) ~[patched_1.16.5.jar:git-Paper-"e04368045"]
at net.minecraft.server.v1_16_R3.MinecraftServer.b(MinecraftServer.java:1427) ~[patched_1.16.5.jar:git-Paper-"e04368045"]
at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:436) ~[patched_1.16.5.jar:git-Paper-"e04368045"]
at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1342) ~[patched_1.16.5.jar:git-Paper-"e04368045"]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1130) ~[patched_1.16.5.jar:git-Paper-"e04368045"]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291) ~[patched_1.16.5.jar:git-Paper-"e04368045"]
at java.lang.Thread.run(Thread.java:831) [?:?]```
if you delete the expansion in the directory and type /papi ecloud download essentials then /papi reload does it say the same
not sure if you did those steps before
I have done it before, and it did, yea
can the math placeholder show dots between big numbers ?
e.g. if the result is 300000000 it would display as 300.000.000
@dense trail ya I think if you do math_1 and _2 does something maybe?
how would i integrate that into this
%math_((1/({player_item_in_hand_level_FORTUNE}+2))+(({player_item_in_hand_level_FORTUNE}+1)/2))/10%
oh my
HAHAHAHA
ehh no
you try 2?
did both
doesn't do anything
wait
wrong placeholder
%math_MAX(500,{player_item_in_hand_level_FORTUNE}*1375)%
that one
wdym by internally?
Ah, sorry for the ping, I forgot to disable the reply ping
Phrased it incorrectly
%math_MAX(500,{player_item_in_hand_level_FORTUNE}*1375)%
this placeholder parses e.g. with a fortune level of 2498 3434750.000 but i want it to parse as 3.434.750,000 or 3.434.750
Anything I can do from here?
Otherwise might need formatter expansion/JavaScript
Hm, seems to be
java.lang.NoSuchMethodError: 'net.essentialsx.api.v2.services.BalanceTop com.earth2me.essentials.Essentials.getBalanceTop()'
at com.extendedclip.papi.expansion.essentials.EssentialsExpansion.register(EssentialsExpansion.java:78) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.register(LocalExpansionManager.java:191) ~[?:?]
at me.clip.placeholderapi.commands.impl.local.CommandExpansionRegister.lambda$evaluate$0(CommandExpansionRegister.java:79) ~[?:?]
at me.clip.placeholderapi.util.Futures.lambda$null$0(Futures.java:46) ~[?:?]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(CraftTask.java:100) ~[patched_1.16.5.jar:git-Paper-"e04368045"]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:468) ~[patched_1.16.5.jar:git-Paper-"e04368045"]
at net.minecraft.server.v1_16_R3.MinecraftServer.b(MinecraftServer.java:1427) ~[patched_1.16.5.jar:git-Paper-"e04368045"]
at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:436) ~[patched_1.16.5.jar:git-Paper-"e04368045"]
at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1342) ~[patched_1.16.5.jar:git-Paper-"e04368045"]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1130) ~[patched_1.16.5.jar:git-Paper-"e04368045"]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291) ~[patched_1.16.5.jar:git-Paper-"e04368045"]
at java.lang.Thread.run(Thread.java:831) [?:?]``` which I dont think I can do anything about it can I?
math:
Rounding: Decimals
Decimals: 3
Debug: false
the only stuff thats there about math
prob gonna have to use javascript
because I would suggest formatter expansion but you'd have to nest placeholders which you can't do really
Do you have essentials?
EssentialsX
?startuplog
can you send that over
That always can help
There's no way to nest placeholders?
Please excuse that error my plugin keeps throwing out, haven't found time to fix it yet
I suppose there is this https://api.extendedclip.com/expansions/nestedplaceholders/ but I have no idea how to use it
try updating essentials @round island
newest stable build is 2.19.7
Alright, I'll try it real quick
seems to be outdated
Because it doesn't parse.
/papi parse me %nested_<math_MAX(500,{player_item_in_hand_level_FORTUNE}*1375)>_<formatter_number_format_1234567>%
or maybe you're using it wrong
<> usually is not included in things when used for a format
remove those
Seems to work now, thank you!
we use commas in america
oh ew
that's so confusing xD
isn't it confusing for you that i use . ?
a little, but I understand it
known it for a long time ig so
comes a bit more natural over timme
but however, using js to format your thing
how would that work
well quickly google showed me this https://www.tutorialstonight.com/javascript-number-format#custom-function
which you would just replace , with .
and . with ,
don't got time to help atm but here is info about the js expansion 
Hi there, I'm using the animations expansion (https://api.extendedclip.com/expansions/animationexpansion/) and I was wondering if there was a way a update time could be added?
At the moment it doesn't work with titles and actionbars due to not updating
depending on the animation you can add certain options
iirc the expansion is 1 frame per parse
so you'd need to have it updating
Typewriter doesn't seem to have anything for that
Ya I read the second part after responding
placeholders can't update themselves in something else
huh.. so I'm kind of out of luck there, eh?
typewriter api?
is that not what you were referring to?
Huh? Maybe I misunderstood, I'm just using typwriter in a placeholder.
wouldn't js lag my server?
no?
var price = '%math_MAX(500,{player_item_in_hand_level_FORTUNE}*1375)%';
var nlFormat = price.toLocaleString('nl-NL');
return nlFormat;
what's wrong with this
[05:48:29 ERROR]: [PAPI] [Javascript-Expansion] An error occurred while executing the script 'SortedFortunePrice
javax.script.ScriptException: <eval>:4:0 Invalid return statement
return nlFormat;
^ in <eval> at line number 4 at column number 0
nothing to return from
var price = '%math_MAX(500,{player_item_in_hand_level_FORTUNE}*1375)%';
var nlFormat = price.toLocaleString('nl-NL');
nlFormat;
really don't need the last line, but 🤷♂️
How do i make it return the value like sorted
wym by that
this is not working? What does it say now?
@dense trail
function something() {
var level = Math.max(500, parseInt("%player_item_in_hand_level_FORTUNE%") * 1375);
return PlaceholderAPI.static.setPlaceholders(BukkitPlayer, "%" + "formatter_number_format_nl-NL:" + level + "%");
}
something();```
I guess this should work
Hi, is there placeholder to show how old is world? (days)
Cant find it. Thanks.
no
java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: com/artemis/the/gr8/lib/kyori/adventure/text/TextComponent
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?]
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770) ~[?:?]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.NoClassDefFoundError: com/artemis/the/gr8/lib/kyori/adventure/text/TextComponent
at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
at java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[?:?]
at java.lang.Class.getDeclaredMethods(Class.java:2504) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:413) ~[PlaceholderAPI-2.11.2.jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
... 1 more
Caused by: java.lang.ClassNotFoundException: com.artemis.the.gr8.lib.kyori.adventure.text.TextComponent
at java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:587) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
at java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[?:?]
at java.lang.Class.getDeclaredMethods(Class.java:2504) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:413) ~[PlaceholderAPI-2.11.2.jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
... 1 more```
Why when i try /papi reload it does this in console?
is it possible to use rounding within a placeholder? (math expansion)
( I don't want to round using the config.yml )
%math_[precision]:[rounding]_<expression>%
yes
how does the rounding work
I don't understand it
%math_MAX(500,{player_item_in_hand_level_FORTUNE}*1375)%
it's a number
how to implement it in that
the amount of numbers you want it to show after the decimal
then %math_0_MAX(500,{player_item_in_hand_level_FORTUNE}*1375)%
I love you
That error is caused by trying to use the PlayerStats expansion without the latest version of the PlayerStats plugin present. If you download that, it'll work!
https://www.spigotmc.org/resources/playerstats.102347/
it doesnt load just the Player either tho
That one isn't mine, I can't help you with that one. I'd try updating PlayerStats first, and see if you still get errors then
k
I have a question. Does PlaceholdersAPI automatically detect where a Placeholder is used and update it? For example if I use %player_name% in a gui... Or I have to translate manually?
nope that'd be impossible
the plugin using placeholderapi has to update and re-parse the placeholder itself
Impossible is what I thought xd I was confused
so question, let's say I make a plugin that has it's own values. I register the expansions and all. Now I want that In the creation of an item, the placeholder's in it's lore translate all the placeholders on it. Would I iterate through every line and bring up an updated value provided by PlaceHolders or how would that work? Because in that case I could just do my own replace method.
yo folks, was I just dreaming or bungee placeholders got new format? (Cant find anything about this in papi updates thats why im asking, if I wasnt just trippin)
check pins
ty
yes, but then you wont support placeholders from other plugins
Yeah. What Aki said. The idea of PlaceholderAPI is to bring easy integration between plugins. Otherwise if you were to make those items in another plugin you'd have to hook into your other plugin's API to get those values. And people will want support for thousands of plugins which PlaceholderAPI has fixed by implementing a common API that they all can use in a way that you don't have to worry about other plugins, just yours and then other plugins can worry about their stuff as well.
Instead of me having to go hook into all the thousands of plugins my users might want support for, I just hook into PAPI and let the other plugins make sure they offer the data the users might want to see.
my biggest gripe with papi is that i think it needs to maybe include a caching option by default
the amount of times i have seen (especially when people ask me to redo a plugin) where people use sql queries etc in placeholders is quite high
and its an extremely common use case i feel like

Eh, maybe
People should be responsible of their own shit though
Good evening, the JavaScript extension is not available through the download command?
Download it manually
Where can I find it please ? I don't have any releases on the github
i agree, but people suck

not our problem
(last eco set value is 0.001) @turbid tide does this look good for %vault_eco_balance%? Currently String.valueOf(balance) does some weird stuff when the balance is like 0.001, as mentioned here https://github.com/PlaceholderAPI/Vault-Expansion/issues/18
Economy#fractionalDigits returns -1 by default, that's why I added that Math#max
Sure. As long as it works. Question tho. If I have 2.40 it will show 2.4 right? Looking at the code, it seems like that is true.
yes
though the extra zero doesn't mean anything
Also, I suggest we should remove %statistic_mine_block% because it won't ever work perfectly
umm. isn't that a stat from spigot?
I meant the placeholder for total mined blocks
Which is mine_block, for a specific material you add :MATERIAL
Oh for real? I thought spigot is doing all that for us.
Nah..
why is it not working? I've used it before and it worked alright
We tried to just add all materials together, but some share the same statistic value
E.g. if you mine one dirt it will count as 2, because dirt and grass block share the same value
well. how hard is it to just make a list of all the duplicates, check if name is inside duplicates list and continue
or is this not documented anywhere?
the duplicates I mean
Yes, ofc it is not
hmm. I really don't like the idea of removing it.
Well at least not somewhere that I know
Yeah ik, but it is not working properly so it wont make any difference if we remove it at all
I mean there's situations it might work tho. Not everyone uses it for dirt and sand. Even tho those are small cases, it still works sometimes 😦
We had many people reporting that it doesnt work, wdym xD
Well yeah. but there's servers where you don't deal with duplicates. Mostly minigames. And for those it might still be useful
I think we should look into a fix a bit more than removing it
Hi there, how does the string replacements work? I'm trying to use this but it doesn't parse anything. %string_replace_characters_small_100%
string: replacements: small: '0': ₀
Replace isn't even listed there
Yeah, blitz probably forgot to add it
On the ecloud site it's %string_replace_characters_<configuration>_<input>%, and on github it's %string_replaceCharacters_<configuration>_<string>%
Hm
but neither work so not sure what's up with that
replaceCharacters should
I believe it should be like this: %string_replaceCharacters_small_100%
Which, it doesn't work that way either
huh?
ah.. it has a replace. Shouldn't String's replace be working tho?
I added it
I know. Just don't remember it
Doesn't parse anything
Ah alright
Still nothing sadly
string: replacements: small: '0': "a"
("a" just for testing)
what version of String are you running?
1.0.1
yeah that should be right
Was the replacements section generated when you download the expansion?
Yeah
It should have a default configuration, small-numbers
ah I removed that, I forgot that was default and thought I made that
ok. then yeah. you're on the right version.
I downloaded 1.0.1 a bit ago haha
Try to delete the whole string section and reload papi
Then do %string_replacecharacters_small-numbers_100%
why the hell isn't String verified?
I would use "str" for replace, but I can't
I need it to replace multiple things like String does
replacecharacters

Can you copy paste that same exact command?
/papi parse me %string_replacecharacters_small-numbers_2022%
Just results in %string_replacecharacters_small-numbers_2022% for me
Do you parse it in chat?
you most likely have the wrong version then. Or maybe duplicates
can you execute /papi dump
and send the generated link here?
Yup I ran the parse command
string [Author: BlitzOffline, Version: 1.0.0]
whattt let me check ;-;
maybe restart the server?
StringExpansion-1.0.1.jar is in my expansion folder
and I have no other string expansion, haven't for weeks, it's been the 1.0.1 jar
How can it generate the section but 1.0.0 be loaded?
No idea
The version is right. I downloaded and tested it all.
[23:05:09 INFO]: [PlaceholderAPI] Successfully registered expansion: string [1.0.0]
so yeah.. some kind of duplicate maybe
delete and redownload
that's from /papi reload btw not restart
maybe it's a corrupted jar
will do
or something
Delete this jar and restart then add the new one and /papi reload right?
Because I did just redownload before I asked in support, but I didn't restart just /papi reload
or just add it when the server is stopped
and start again
ah alright
both work
[23:09:58 INFO]: [PlaceholderAPI] Successfully registered expansion: string [1.0.0]
huh.

This confuses the hell out of me. I am thinking duplicated hidden jar
if you completely remove the 1.0.1 jar does it still register the 1.0.0 version?
delete and restart
I stopped the server, deleted the current jar, downloaded from the site above, put it in, started and it says 1.0.0 in console
but the jar says 1.0.1
yeah. but completely delete he 1.0.1 jar
see if it still registers a string expansion
ohhh alright gotcha one sec
nope, deleted it and it doesn't load
So.. that's weird
yeah. very weird
6.13kb
That says 6.13 on discord lol
oh. yeah wtf.
I didn't check on my server files btw, right clicked it and checked properties
???
I believe discord might be compressing some stuff.
yeah
[23:18:47 INFO]: [PlaceholderAPI] Successfully registered expansion: string [1.0.1]
oh
it's a miracle
so yeah. I'm guessing you're having some caching issues with the ecloud
it might've tried to download the new one and that's why it was giving it the new name but it was actually giving you an old jar you maybe have downloaded before.
idk. just a theory. welp. going to sleep. good night
good night, thanks so much lol
Can replace parse other placeholders to replace?
type: custom
custom_event_data:
event: org.bukkit.event.player.PlayerGameModeChangeEvent
player_variable: getPlayer()
variables_to_capture:
- '{gamemode};getNewGameMode()'
actions:
default:
- 'title: 8;12;8;&r;%royalmc_colors_white_no&%Gamemode switched to &a%string_replacecharacters_gamemode_{gamemode}%%royalmc_colors_white_no&%.'```
This is a plugin that allows you to make events to perform actions
And I'm trying to replace {gamemode} with a lowercase version (like CREATIVE to Creative) and it doesn't replace. It just sends CREATIVE
But if I parse it with CREATIVE instead of {gamemode} it works
I mean, if {gamemode} gets replaced by GAMEMODE before the placeholder is parsed, sure.
I would guess it's not the replace feature and it's the plugin though
Is gamemode a registered configuration?
gamemode: 'SURVIVAL': Survival 'CREATIVE': Creative 'SPECTATOR': Spectator 'ADVENTURE': Adventure
/papi parse me %string_replacecharacters_gamemode_SURVIVAL% works, just not the plugins variable
Hmm, I see.
Yeah then it probably replaces the variables after it sets papi placeholders
Dang, all good then
You should contact the dev, because I'm sure that most of the times you would want to use the variables in placeholders, not the other way around
Yeah I'll contact them soon, ty
Np
should have a workaround for now though
Is there any change that script expansions will be verified in the future?
I heard that JsExpansion had a permission error and got unverified
@balmy marten ^
Currently you'll need to download the Javascript expansion manually from the cloud, it may be verified in the future.
Who can rewrite the Expansion for Placeholder API
What do you mean by "rewrite"?
Change
Yes
I need to change the extension to display the days until the end of the privilege
What plugin do you use for limited-time ranks?
LuckPrems + TAB premium
You use /lp user/group <user|group> parent addtemp <group> <duration> [temporary modifier] [context...] to give players limited-time ranks, right? Lemme see...
I have an extension but it doesn't work for me
because it is universal
those. automatically determines the Group And for this there is a bug with the display.
It is necessary that separately for each Group
and when Donat forever beat ∞.
and when it was written 30d for a month
/lp user <user> parent switchprimarygroup <group>
You can use this command to set player's primary group. A player can have a single primary group. The primary group can be fetched with %luckperms_primary_group_name%
%luckperms_group_expiry_time_<group>%
If you use LuckPerms these placeholders are automatically hooked to PlaceholderAPI, so you don't have to install any expansions.
Maybe you want Math expansion to calculate how many days are remaining, though.
@Override
public String onRequest(OfflinePlayer player, @NotNull String group) {
Set<Group> groups = LuckPermsProvider.get().getGroupManager().getLoadedGroups();
for (Group grp : groups) {
if (grp.getName().equals(group)) {
User user = LuckPermsProvider.get().getUserManager().getUser(Objects.requireNonNull(player.getName()));
assert user != null;
for (Node node : user.getNodes()) {
if (node.getKey().equals("group." + group) && Objects.nonNull(node.getExpiryDuration())) {
return Long.toString(node.getExpiryDuration().toDays());
Need something like this
Only with this display if (node.getKey().startsWith("group.") && Objects.nonNull(node.getExpiryDuration())) {
return Long.toString(node.getExpiryDuration().toDays());
}
else if (node.getKey().startsWith("group.") && !Objects.nonNull(node.getExpiryDuration())) {
return "∞";
Yes
Hi! I'm having a problem with my expansion, it registers just fine but when i try to parse it it doesn't work. https://paste.helpch.at/koxodilufo
@Override
public @NotNull String getIdentifier() {
return "DVExpansion";
}
@Override
public @NotNull String getAuthor() {
return "sqlskid";
}
@Override
public @NotNull String getVersion() {
return "1.0.0";
}
@Override
public boolean persist() {
return true;
}
@Override
public @Nullable String onRequest(OfflinePlayer player, @NotNull String params) {
if(params.equals("gems")){
//return DarkVanillaAPI.getGems(player.getUniqueId()) + "";
return "bombales";
}
return null;
}
}```
this is in my onEnable method if(Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) { new DVExpansion().register(); }
[10:33:28 INFO]: Uspesne pripojen k databazi!
[10:33:28 INFO]: [PlaceholderAPI] Successfully registered expansion: DVExpansion [1.0.0]
I have a problem with the detection of an item description.
My goal is to give a potion effect when my item is equipped according to the level of the enchant. When I put only the enchant that should give my life boost on my item, my code works fine. However when I have several on my item, the life effect is not given correctly or not given at all. Can you help me to solve this problem?
what js feature should i use to create a placeholder where i can type out stuff like
%javascript_dataset_try:10% or smthng
i wanna run the value of 10 in a js placeholder and have it return something
show the output of /papi parse me %DVExpansion_gems% (btw I think it's better to register expansions to lowercase identifiers)
you can use arguments https://github.com/PlaceholderAPI/Javascript-Expansion/wiki/Advanced-Scripts#arguments
ok pog that's all i need
ty
oh yeah this works
thanks
why when I add my own plug-in, placeholders work only in it and their raw form is displayed in other plug-ins?
For some reason I cant use essentials place holders in a chat format other than {player}
How do I change %essentials_afk% to say [AFK] instead of just yes or no?
what placeholder i should use to give item to player
How to fix it ?
https://youtu.be/PvjewOykeAU
why do i get an error when i implement the placeholderapi dependencies
?paste
and now?
and my errors https://paste.helpch.at/usivenemoj.bash
@idle coral sorry for ping but i still need help, why my plugin blocks parsing placeholders in another plugin?
I haven't found any solutions on the internet
why @idle coral WHY
anyone can help me? this help Chat has not been of any help to me
Papi dump on the spigot
https://www.spigotmc.org/threads/placeholderapi-only-works-in-my-plugin.574992/
Hello I an Issue with the placehodlers of Vault
So my placeholderAPI version: PlaceholderAPI-2.11.1
my mc version : 1.8
and, I have a issue with the ranking money with vault
%vault_eco_top_player_1%, don't work, I have tried, to reload papi, restart the server nothing works
and in the config of placeholderAPI I Have :
vault:
formatting:
thousands: k
trillions: T
quadrillions: Q
billions: B
millions: M
And nothing other
so if someone know why it does this
https://media.discordapp.net/attachments/1013866457144246417/1026312631973335081/unknown.png
I am trying to make it so if the person looking at the tab menu has the resource pack enabled it shows the custom image as seen in this screenshot. If you see that some people have text prefixes and only 1 person has a image prefix.
This is changing the text based on if the person has the resource pack loaded or not. I want it to change based on the viewing player's resource pack loaded status rather than based on what the person in the row is viewing.
Any ideas?
Using relational fixed it for tab menu.
hello, is it possible to turn this placeholder the number from (1233.00000) to something like (1.2k)? the placeholder is %eps_tokens%
if i do /papi parse me %eps_tokens% it shows my token balance as 1233.0000000 and i want it to turn to 1.2k instead
please anyone?
this support is pointless, no one can help
Hello guys. Any help with this?
I have a leadrboard system and every week the leaderboard resets in sunday. I want to show a countdown timer that shows how much time is left until sunday 12:00
any way to do it?
You could store the date & time as milliseconds and then compare current time to the stored one
private static final Pattern REGEX = compile("(\\d+(?:\\.\\d+)?)([KMG]?)");
private static final String[] KMG = new String[] {"", "K", "M", "G"};
static String formatDbl(double d) {
int i = 0;
while (d >= 1000) { i++; d /= 1000; }
return d + KMG[i];
}
static double parseDbl(String s) {
final Matcher m = REGEX.matcher(s);
if (!m.matches()) throw new RuntimeException("Invalid number format " + s);
int i = 0;
long scale = 1;
while (!m.group(2).equals(KMG[i])) { i++; scale *= 1000; }
return parseDouble(m.group(1)) * scale;
}
Is the placeholder you are trying to use in tab a relational placeholder or is it a regular one.
i think server countdown can do that but i'm freacking out to make it works
ehhh see the video i posted at the top
That's not what I asked.
Is the placeholder you are trying to call to inheriting the relational class or not.
I do not know what you mean
just when my plugin is on the server, the placeholders work only in it, not in other places
I do not know why you ask me about something when I wrote it on this server 10 times and still no help, on spigot although some attempts were made to help me
i finaly fix it
can someone help me make place holders in my plugin?>
Love it
Someone has a placeholderapi expansion for format big numbers? Like giving a 1000000 to return 10M for example, I know there's a javascript but javascript is making me some memory leaks, so I can't use it
thanks 🙂
Hello, I just added a bunch of expansion packages and am now getting this on startup. How do I fix? (What expansion is this comming from?)
https://controlc.com/ffafe525
None of my placeholders are parsing correctly for some reason.
Server version - Paper 1.19.2-R0.1-SNAPSHOT
Placeholder API version - 2.11.2
There is no errors in console and I can't seem to post images in here
i downloaded javascript expansion, and put these script inside example.js. how does this works exactly?
well thats java not javascript so js expansion wouldnt help you
what's that for?
Java
Thats caused by com.artemis.the.gr8, whatever that is
Good morning, I have the following issue with the Placeholder-API plugin:
> papi ecloud update all
[07:32:05 INFO]: Updating expansions: [Bungee]
[07:32:05 INFO]: Successfully downloaded updates, registering new versions.
[07:32:05 INFO]: [PlaceholderAPI] Successfully registered expansion: bungee [1.0.1]
[07:32:05 INFO]: Registered expansions:
bungee 1.0.1
[07:32:10 WARN]: [PlaceholderAPI] Task #93 for PlaceholderAPI v2.11.2 generated an exception
org.bukkit.plugin.messaging.ChannelNotRegisteredException: Attempted to send a plugin message through the unregistered channel `BungeeCord'.
at org.bukkit.plugin.messaging.StandardMessenger.validatePluginMessage(:544) ~[GuardSpigot-1.16.5.jar:git-Airplane-"3fbf522"]
at org.bukkit.craftbukkit.v1_16_R3.entity.CraftPlayer.sendPluginMessage(:1618) ~[GuardSpigot-1.16.5.jar:git-Airplane-"3fbf522"]
at com.extendedclip.papi.bungeeexpansion.BungeeCordExpansion.getServers(BungeeCordExpansion.java:108) ~[?:?]
at com.extendedclip.papi.bungeeexpansion.BungeeCordExpansion.access$100(BungeeCordExpansion.java:45) ~[?:?]
at com.extendedclip.papi.bungeeexpansion.BungeeCordExpansion$1.run(BungeeCordExpansion.java:201) ~[?:?]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(:101) ~[GuardSpigot-1.16.5.jar:git-Airplane-"3fbf522"]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftScheduler.mainThreadHeartbeat(:485) ~[GuardSpigot-1.16.5.jar:git-
Airplane-"3fbf522"]
at net.minecraft.server.v1_16_R3.MinecraftServer.b(:1500) ~[GuardSpigot-1.16.5.jar:git-Airplane-"3fbf522"]
at net.minecraft.server.v1_16_R3.DedicatedServer.b(:451) ~[GuardSpigot-1.16.5.jar:git-Airplane-"3fbf522"]
at net.minecraft.server.v1_16_R3.MinecraftServer.a(:1413) ~[GuardSpigot-1.16.5.jar:git-Airplane-"3fbf522"]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(:1139) ~[GuardSpigot-1.16.5.jar:git-Airplane-"3fbf522"]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$1(:288) ~[GuardSpigot-1.16.5.jar:git-Airplane-"3fbf522"]
at java.lang.Thread.run(Thread.java:831) [?:?]
Done: [07:38:42 INFO]: 9 placeholder hook(s) registered! 1 placeholder hook(s) have an update available.
"GuardSpigot" don't tell me you are using something made by mcprotection
How to remove % from %aoneblock_visited_island_percent_done%?
That error is caused by trying to use the PlayerStats expansion without the latest version of the PlayerStats plugin present. If you download that one, it should work!
https://www.spigotmc.org/resources/playerstats.102347/
When doing /papi ecloud download Player it tells me it successful, but then it tells me to /papi reload which doesn't work and gives this error.
I Do not know what arclight is but I bet it has something to do with it.
Yeah it's one of those bukkit + forge hybrid servers. Those are not supported and are known to just break random stuff.
luckperms expiry time error
Someone now how to do gradients on nicknames player above world on json?
There are problems with Player-Expansion (I'm using Spigot 1.7.10):
- At least this version has no
Ints#tryParse
https://github.com/PlaceholderAPI/Player-Expansion/blob/dabc840d90f3edd2e8a555109de2a9f61cc97984/src/main/java/com/extendedclip/papi/expansion/player/VersionHelper.java#L45 - entityPlayer.e is double field, not int
https://github.com/PlaceholderAPI/Player-Expansion/blob/dabc840d90f3edd2e8a555109de2a9f61cc97984/src/main/java/com/extendedclip/papi/expansion/player/PlayerUtil.java#L66
Are the issues only for 1.7.10?
because there won't be an update just to support 1.7.10
I have not tested on other versions
But second issue is up to 1.12.2 (checked 1.7.10, 1.8.8, 1.12.2)
might get the same thing tbh
1.12.2 is pretty old
have you tried any older player expansions
you can also do /papi ecloud download <expansion> <version>
As i figured out, player expansions didn't have support for older versions before.
And since 1.16.5 the ping field is entityPlayer.ping, so it has always used the getInt method => on any version there was a issue with getting ping
Hi ! I have a problem when i want to download PlayerStats expension
Logs :
[19:35:15 INFO]: NASTOUH issued server command: /papi ecloud download PlayerStats
[19:35:15 INFO]: [PlaceholderAPI] Fetching available expansion information...
[19:35:18 INFO]: NASTOUH issued server command: /papi reload
[19:35:18 INFO]: [PlaceholderAPI] Placeholder expansion registration initializing...
[19:35:18 INFO]: [PlaceholderAPI] Fetching available expansion information...
[19:35:18 ERROR]: [PlaceholderAPI] Failed to load class files of expansion.
java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: com/artemis/the/gr8/playerstats/statistic/request/StatRequest
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?]
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760) ~[?:?]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?]
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?]
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?]
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?]
Caused by: java.lang.NoClassDefFoundError: com/artemis/the/gr8/playerstats/statistic/request/StatRequest
at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:587) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
at java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[?:?]
at java.lang.Class.getDeclaredMethods(Class.java:2504) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:413) ~[PlaceholderAPI v2.11.2.jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
... 6 more
do you have the playerstats plugin
Ouh.. sorry 👀
is there a placeholder then and parse and receive the exact latency of a player to a specific server
like shown here https://gyazo.com/398db39bf3e02582a0f64f51751e9cb0\
@mint fable Unknown expansion.
hmm, not sure
Probably not
¿
How can we use placeholder of one server to another server ?
i have a network of servers
i want to show up some smp placeholder to lobby server
who can i do that
anyone ?
know ?
@sharp jay
Sorry !
bruh
but i am waiting for so long
sorry
which plugin ?
I dont know which ones
Hello i found an error and says that i have an file not allowed, how i do allow it / fix it?
java.lang.NullPointerException: The expansion version is null!
at java.util.Objects.requireNonNull(Objects.java:233) ~[?:?]
at ```
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[?:?]
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$registerAll$4(LocalExpansionManager.java:350) ~[?:?]
at me.clip.placeholderapi.util.Futures.lambda$null$0(Futures.java:46) ~[?:?]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(CraftTask.java:98) ~[forge:?]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:462) ~[forge:?]
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1057) ~[?:?]
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:338) ~[?:?]
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:1003) ~[?:?]
at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:818) ~[?:?]
at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:269) ~[?:?]
at java.lang.Thread.run(Thread.java:831) ~[?:?]```
What exactly is your server software? Forge is mentioned there multiple times, hybrid forks aren't supported
Have mohist software but as far as i know PAPI is supported
mohist is not supported
Can you get the amount of players in a certain bungeecord sub server?
@wind panther 
Thankyou very much!
Why JavaScript doesn't work
Hello all! Does anyone know of a plugin that can store all placeholders into a database? I am trying to make a webapp and a database for all the placeholders would be great.
i made one, its using mongo
im not on pc rn could you ping me tomorrow
well its in private repo and will not make it public but i can send you code snippets
Anyone else know of a plugin that can utilize a db for all placeholder values?
tbh that sounds like a bad idea
storing placeholder values to a db is just yikes
if your talking about getting the string value of a placeholder expansion like %example_placeholder% for every available placeholder, theres not currently a way to detect every placeholder so you would have to store them all manually
like look at the source of every placeholder expansion you want and then add them to the db
and also to find the placeholders that exist in plugin that dont require an expansion aswell
very time consuming
I found the weirdest work around
We stats will store custom placeholders in a mysql db. How they handle there stat pages though was not favorable. So I use the db function and just use an external tool to display the stats from it
I will likely write a plug-in to do it
is there a placeholder for DEATHS AND KILLS PER WORLD?
not per world, ud need a plugin to handle that data
I made a PerWorldDeathCount expansion, I could try to add per-world kills as well if you want
console keeps spamming this msg when player joined
[11:14:27 ERROR]: Could not pass event PlayerJoinEvent to PlaceholderAPI v2.11.2
any reason for that?
?startuplog
send that over with the whole error 
thats the only error msg related to papi
Put that in your Expansions folder and use
%perworld_kills_current%
%perworld_kills_in_<world name>%
%perworld_deaths_current%
%perworld_deaths_in_<world name>%
what a legend
cheers
oh f forgot to rename the jar name
should i keep that as the name or change it aha?
.
send the entire error
?startuplog
send that over please 
?paste
the whole latest.log?
sure
