#papi-updates
1 messages ยท Page 1 of 1 (latest)
Pull Request
Type
- [X ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [ ] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Fixed json / click components not working on eCloud commands
Closes N/A
Pull Request
Type
- [X] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [ ] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Move us back to dev track so we don't have multiple commits under the release
Closes N/A
Build: 159
Status: success
Changes:
83261eUpdate canned responses. - noreply452c8cBump to 2.11.3-dev - admin
Artifacts:
- https://ci.extendedclip.com/job/PlaceholderAPI/159/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-159-javadoc.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/159/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-159-sources.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/159/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-159.jar
Jenkins v2.346.1, Discord Notifier v1.4.11
Build: 160
Status: success
Changes:
054c78Updated Adventure - admin
Artifacts:
- https://ci.extendedclip.com/job/PlaceholderAPI/160/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-160-javadoc.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/160/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-160-sources.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/160/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-160.jar
Jenkins v2.346.1, Discord Notifier v1.4.11
[PlaceholderAPI/PlaceholderAPI] branch deleted: 1\.18
[PlaceholderAPI/PlaceholderAPI] branch deleted: fix/771\-identifier\-replacement
Clip does have the code, but it's kept private for reason I don't know myself (Could be anything from fear of copy-cats to simply not liking the current state of the code).
Perhaps in the future the plugin will be made open source, but for now is this the situation we have.
ok we understand
will we ever get patched version of DeluxeMenus for MC 1.8 (compiled on java8)
thanks in advance
I will push to get deluxemenus in a public repo this week. It is currently in a private repo managed by helpchat.
I will push to get deluxemenus in a public repo this week. It is currently in a private repo managed by helpchat.
I'm sorry, what? When did this happen?
Clip does have the code, but it's kept private for reason I don't know myself (Could be anything from fear of copy-cats to simply not liking the current state of the code).
Perhaps in the future the plugin will be made open source, but for now is this the situation we have.ok we understand will we ever get patched version of DeluxeMenus for MC 1.8 (compiled on java8)
thanks in advance
Making it OS, won't add 1.8 compatibilty but now people can maintain their own for...
omg thank you so much
if nothing at all, please give us at least some source for any version we (me, someone else, whoever) will fork and possibly make it work with MC 1.8
it's hard to change plugin when you depend with so much stuff on it, i really can't switch
Clip does have the code, but it's kept private for reason I don't know myself (Could be anything from fear of copy-cats to simply not liking the current state of the code).
Perhaps in the future the plugin will be made open source, but for now is this the situation we have.ok we understand will we ever get patched version of DeluxeMenus for MC 1.8 (compiled on java8)
thanks in advanceMaking it OS, won't add 1.8 compatibilty but now people can mainta...
ok i 100% understand, but we can't even fork it i hope we will at least get some source code, at least from 10 versions behind latest one, ANY source so we can do stuff, because for now we can't anyhow update any DeluxeMenus source to again be compatible with latest PAPI (because no source is public)
Thanks a lot for answer
The source of DeluxeMenus was already here on GitHub. It just is private as of right now. And as clip said, the code will be made available in the near future.
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
API Bug
What happens?
Right now is PlaceholderAPI's expansion loading broken in a sense that it may load the same e...
I personally don't think there's a reason to struggle with replacing jars that are named differently but have the same expansion name but it would be nice to only load one of them and warn the user that there's 2 or more expansions with the same name installed.
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Added P-LifeSteal to list of plugins with placeholders.
Closes N/A
As mentioned in the wiki readme should Spigot links be sanitized to not contain extra text.
- **[P-LifeSteal](https://www.spigotmc.org/resources/101967/)**
- [x] Provides own placeholders. [**[[Link|Placeholders#p-lifesteal]]**]
- ### **[P-LifeSteal](https://www.spigotmc.org/resources/101967/)**
I personally don't think there's a reason to struggle with replacing jars that are named differently but have the same expansion name but it would be nice to only load one of them and warn the user that there's 2 or more expansions with the same name installed.
yeah. It would be difficult as PlaceholderAPI would need to "remember" the jar names used for a particular expansion (Which could be done through a txt file for caching) which isn't that good of an option tbh.
I'm currently wor...
1b0b3ba Fix duplicate expansion loading - Andre601
[PlaceholderAPI/PlaceholderAPI] New branch created: fix/duplicate\-expansion\-loading
Pull Request
Type
- [x] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [ ] Wiki (Changes towards the [Wiki]).
- [ ] Other: __________
Description
Closes #864
Fixes an issue where the same expansion would be loaded twice, if the jar file used has a slightly different name.
Now PlaceholderAPI checks if the used identifier is already registered and in such a case prints a warning and doesn't load the expansion.
...
I will push to get deluxemenus in a public repo this week. It is currently in a private repo managed by helpchat.
Hey! Sorry to refer to but this week has ended 3 days ago .-.
will we get it?
I will push to get deluxemenus in a public repo this week. It is currently in a private repo managed by helpchat.
Hey! Sorry to refer to but this week has ended 3 days ago .-. will we get it?
I'm afraid not. We've realised there's some major changes we need to make before we do this. We're working on it but it might be slower than clip expected since he wasn't around for a while, he did not know about these changes.
I will push to get deluxemenus in a public repo this week. It is currently in a private repo managed by helpchat.
Hey! Sorry to refer to but this week has ended 3 days ago .-. will we get it?
I'm afraid not. We've realised there's some major changes we need to make before we do this. We're working on it but it might be slower than clip expected since he wasn't around for a while, he did not know about these changes.
ok thanks a lot for blitz-fast response, c...
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Added BasicQuests plugin to Placeholders.md and Plugins-using-PlaceholderAPI.md.
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
Plugin Bug
What happens?
Plugin won't start properly, after starting the server palceholders won't work so I have t...
I will mention that I've seen reports of this happening before to other people as well. I've never had it happen to me but here are some logs from other people:
https://paste.helpch.at/aliletibor.sql
https://pastebin.com/n46Wxdsn
https://paste.helpch.at/acugididec.sql
https://paste.helpch.at/dovatagucu.sql
These are just a few I got from the helpchat discord server. So it clearly is a very common issue, but not sure where. hopefully these extra logs can be of a bit more assistance to...
What I notice, is this particular part here:
Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Class.getClassLoader()" because "result" is null
at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:113) ~[pufferfish-api-1.19.2-R0.1-SNAPSHOT.jar:?]
It seems to somehow mess up the Class loader in the FileUtils maybe?
Or Pufferfish and Purpur changed something in the PluginClassLoader that causes this, since the NPE first points to that...
@matipoirierg Is it possible for you to try and replicate this issue using spigot/paper please instead of using pufferfish
tried latest dev build and the issue is gone
tried latest dev build and the issue is gone
Latest dev build of what? PlaceholderAPI or Server?
My bad issue persist, I'll try with paper. I was refering to PAPI.
[PlaceholderAPI/PlaceholderAPI] New branch created: remove\-ecloud\-toggle\-command
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [x] External change (Does affect end-user).
- [ ] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Closes N/A
remove the command from the help command too
d888d97 remove from help - Gabriel Dumitru
We got another report in the discord server. Its purpur once again: https://paste.helpch.at/tuzukibiwa.sql
Their full message was:
Good evening - I have a second time error with placeholderapi (dev build 160)
https://paste.helpch.at/tuzukibiwa.sql
Server restart solves the problem, but it's a second time this month. How can I prevent from that or maybe a fix please?
Waiting for a dump and will edit the message with it when I get it.
We got another report in the discord server. Its purpur once again: https://paste.helpch.at/tuzukibiwa.sql
That error is somewhat different tho.
Most if not all other errors you shared have a CompletionException <- NullPointerException combination, while this one is a CompletionException <- ConcurrentModificationException
Also, there seems to be a possible issue: https://github.com/pufferfish-gg/Pufferfish/blob/ver/1.19/patches/api/0003-Ignore-lookups-if-closed.patch
This patch on Pufferfish (Which by extension was added to Purpur) is probably the cause of these issues.
Purpur devs told me they may remove this patch, so at least there will the plugin (hopefully) work again in the near future.
Removing this patch breaks flare. Why is PAPI trying to look up classes from unloaded plugins?
Removing this patch breaks flare. Why is PAPI trying to look up classes from unloaded plugins?
From my understanding: It doesn't.
PlaceholderAPI's FileUtils creates a URL from whatever File it is given - which in this case is the Expansion Jar file - and with the PlaceholderExpansion.class as its parent.
So technically should it not "try to look up other plugin classes"
Perhaps it's an unwanted side effect of Expansions that use instances of a Plugin in their register method or ...
Just did some more analysis and root-cause'd the issue. This should fix the issue.
Just did some more analysis and root-cause'd the issue. This should fix the issue.
Not sure where swapping one exception out for another really fixes the issue, considering the FileUtils.findClass method is used like this
try {
final Class<? extends PlaceholderExpansion> expansionClass = FileUtil.findClass(file, PlaceholderExpansion.class);
// Do other stuff
} catch...
Not sure where swapping one exception out for another really fixes the issue, considering the FileUtils.findClass method is used like this
It fixes it further up the chain in the big long convoluted maze that is classloader inheritance. Returning null results in an NPE being thrown later on. But a ClassNotFoundException exception is caught, handled, and eventually re-thrown as a NoClassDefFoundError, which is caught by FileUtils.findClass. Thus solving the root cause of the probl...
There's currently no escaping of _ causing webhook messages about new expansions to have the Placeholders list malformed and displayed incorrectly.
The system should automatically escape these kinds of things.
Example image

basically a new modifier that covers dye/color
format:
dye:
example of use:
%checkitem_getinfo:mainhand_dye:% parses #FFFFFF
Just did some more analysis and root-cause'd the issue. This should fix the issue.
can confirm it fixed it, thanks.
0c08f1c [Wiki] Add question about PlaceholderExpansion - Andre601
[PlaceholderAPI/PlaceholderAPI] New branch created: feature/wiki\-add\-faq\-question
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Closes N/A
Adds the question what a PlaceholderExpansion actually is.
Since OP said this is fixed am I closing it. Thanks to Pufferfish and PurpurMC devs for implementing fixes.
[PlaceholderAPI/PlaceholderAPI] Issue opened: #871 Importing Error \- Creating Expansion placeholder
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
API Bug
What happens?
When importing PlaceholderAPI into code I'm getting errors
It's allowing me to import Pla...
Do you have the artifact and repo on your pom/build file?
As Gaby pointed out, make sure to properly import the right repository and API version, as explained on the wiki: https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/Hook-into-PlaceholderAPI#first-steps
As Gaby pointed out, make sure to properly import the right repository and API version, as explained on the wiki: https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/Hook-into-PlaceholderAPI#first-steps
Well how would I go about this though since I'm using eclipse? I was to believe I was able to just add the jar file to the libraries directory and it would work that way?
Well how would I go about this though since I'm using eclipse? I was to believe I was able to just add the jar file to the libraries/java build path directory and it would work that way?
I'm sure you can google the answer. It's usually better to use maven or gradle to manage dependencies and Eclipse should support both (Maybe through plugins/add-ons)
Well how would I go about this though since I'm using eclipse? I was to believe I was able to just add the jar file to the libraries/java build path directory and it would work that way?
I'm sure you can google the answer. It's usually better to use maven or gradle to manage dependencies and Eclipse should support both (Maybe through plugins/add-ons)
No idea why but I fixed this issue by downgrading to version 2.10 of PlaceholderAPI
I guess in the newer versions it only allows ...
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
Plugin Bug
What happens?
Currently the /papi bcparse/parse command has different behavior for different senders a...
c3cfc82 Fix inconsistent parsing command behaviour - Andre601
[PlaceholderAPI/PlaceholderAPI] New branch created: fix/872\-fix\-inxonsisten\-parsing
[PlaceholderAPI/PlaceholderAPI] Pull request opened: #873 Fix inconsistent parsing command behaviour
Pull Request
Type
- [x] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [ ] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Closes #872
Makes the parsing command more consistent by simply not parsing colors and sending the results either through CommandSender#sendMessage(String) or Bukkit.broadcastMessage(String)
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Added PlayerStats and a brief list of its placeholders to the wiki.
Closes N/A
[PlaceholderAPI/PlaceholderAPI] New review comment on pull request #874: Add PlayerStats to the wiki
- [x] Provides own placeholders. [**[[Link|Placeholders#playerstats]]**]
9a2274f Update Placeholders.md - Artemis-the-gr8
2db2d23 Update Plugins-using-PlaceholderAPI.md - Artemis-the-gr8
cd9c616 Update Placeholders.md - Artemis-the-gr8
dc5ff8f Update Plugins-using-PlaceholderAPI.md - Artemis-the-gr8
119b669 Merge pull request #874 from Artemis-the-gr8/wiki - Andre601
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Updated the PlayerStats placeholders to reflect the latest version
Closes N/A
547bd79 Update Placeholders.md - Artemis-the-gr8
1bb3159 Merge pull request #875 from Artemis-the-gr8/wiki - Andre601
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Closes N/A
I don't think right now this is being done but I'd love to see the argument separator provided inside each script context. The separator is currently configurable from the config. This would be helpful if all people wanted was 1 long argument that could also contain whatever the separator is. This way people can just take the arguments and join them together and they don't have to hard code the separator everywhere.
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
P-LifeSteal placeholders update.
Closes N/A
04d122d Update Placeholders.md - dewPrzemuS
6f64967 Merge pull request #877 from dewPrzemuS/wiki - Andre601
This PR updates the expansion to support HuskHomes v3.x
I am also having this same issue. but on a 1.19.2 server with Via backwards back to 1.17.x listed here: https://paste.helpch.at/qidupirusi Server software being Purpur. I have also replicated the same issue on 1.19.2 paper Spigot listed here: https://paste.helpch.at/agegaqusaf I don't know if this will help your diagnostics but I have only been getting this issue with 1.19.x servers we had a 1.18.x server that didn't have this issue. Hope it helps to resolve this :) It is worth noting that I ...
I am also having this same issue. but on a 1.19.2 server with Via backwards back to 1.17.x listed here: https://paste.helpch.at/qidupirusi Server software being Purpur. I have also replicated the same issue on 1.19.2 paper Spigot listed here: https://paste.helpch.at/agegaqusaf I don't know if this will help your diagnostics but I have only been getting this issue with 1.19.x servers we had a 1.18.x server that didn't have this issue. Hope it helps to resolve this :) It is worth noting that ...
I am also having this same issue. but on a 1.19.2 server with Via backwards back to 1.17.x listed here: https://paste.helpch.at/qidupirusi Server software being Purpur. I have also replicated the same issue on 1.19.2 paper Spigot listed here: https://paste.helpch.at/agegaqusaf I don't know if this will help your diagnostics but I have only been getting this issue with 1.19.x servers we had a 1.18.x server that didn't have this issue. Hope it helps to resolve this :) It is worth noting tha...
unfortunately the same issue is still occurring on my local test server. dump after removing a broken placeholder expansion on my local server due to a missing plugin and via backwards: https://paste.helpch.at/ivutatacuj also appears to still occur even after removing ViaVersion itself.
The dump itself doesn't help us at all understanding the issue.
Please open a separate issue to track this properly as I doubt this is related to this issue here.
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
Plugin Bug
What happens?
Placeholder API using 1.19.2 server software PurpurMC (1762) or Paper Spigot (135) doesn't...
2 things:
- You are not on latest Purpur dev build, so maybe consider updating
- "Zip file closed" usually indicates that the jar was closed before the classloader (or whatever opened the jar) has finished whatever it did. In this case would my guess be that something (forcefully) closed the jar of an expansion before PAPI had the chance to complete anything.
Could you for the sake of testing quickly test if the error also appears on latest Purpur with just PlaceholderAPI installed?
...
I want to use a the placeholder %checkitem_nameequals:&7Cube &8- &aLevel 4% on a condition to show an item or not in a BossShopPro menu but the placeholder can't be used by the plugin due to the spaces on them.
When i do a /papi parse me with the placeholder no problem to get yes or no
Is it possible for you to implement a method to replace those spaces by something (maybe double underscore to replace spaces or another thing you thing will be easier) ?
7cc0548 add placeholders for the attribute expansion - iGabyTM
[PlaceholderAPI/PlaceholderAPI] New branch created: add\-attribute\-placeholders
[PlaceholderAPI/PlaceholderAPI] branch deleted: add\-attribute\-placeholders
Hi, how can i get a placeholder to count the lowest value as the "top" place? For instance, lowest time on a parkour should be first place.
Example using Parkour plugin:
ajlb_lb_parkour_player_personal_best_Easy_milliseconds_1_alltime_value%'
I want line to return the lowest time. In my example, it returns the highest time."
I am trying to create a leaderboard for best times on a parkour course. It should look like:
- Name: Time
- Name: Time
- ect.
I think it would be best to ask the dev of AJLeaderboards this question as their plugin handles what value is displayed at what position.
2 things:
- You are not on latest Purpur dev build, so maybe consider updating
- "Zip file closed" usually indicates that the jar was closed before the classloader (or whatever opened the jar) has finished whatever it did. In this case would my guess be that something (forcefully) closed the jar of an expansion before PAPI had the chance to complete anything.
Could you for the sake of testing quickly test if the error also appears on latest Purpur with just PlaceholderAPI...


These are the mentioned scripts
When changing to QuickJS I get this error instead.

Hi please help this error?:
21:09:04[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(Unknown Source) ~[?:?]
at java.util.concurrent.CompletableFuture.completeThrowable(Unknown Source) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(Unknown Source) ~[?:?]
at jav...
2 things:
You are not on latest Purpur dev build, so maybe consider updating
"Zip file closed" usually indicates that the jar was closed before the classloader (or whatever opened the jar) has finished whatever it did. In this case would my guess be that something (forcefully) closed the jar of an expansion before PAPI had the chance to complete anything.
Could you for the sake of testing quickly test if the error also appears on latest Purpur with just Plac...
This seems to be an error with a Placeholder expansion missing a class.
This error occurs when you try to use the PlayerStats expansion without the PlayerStats plugin, so if you download this plugin, it should work: https://www.spigotmc.org/resources/playerstats.102347/
This error occurs when you try to use the PlayerStats expansion without the PlayerStats plugin, so if you download this plugin, it should work: https://www.spigotmc.org/resources/playerstats.102347/
[22:22:33 WARN]: java.lang.NullPointerException: Cannot invoke "String.replace(java.lang.CharSequence, java.lang.CharSequence)" because "localeStr" is null
[22:22:33 WARN]: at com.extendedclip.papi.expansion.player.PlayerExpansion.onRequest(PlayerExpansion.java:200)
[22:22:33 WARN]: at PlaceholderAPI-2.11.3-DEV-160.jar//me.clip.placeholderapi.replacer.CharsReplacer.apply(CharsReplacer.java:119)
[22:22:33 WARN]: at PlaceholderAPI-2.11.3-DEV-160.jar//me.clip.placeho...
Basically what the title says, return true or false whether or not clear inventory is confirmed.
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Added new placeholders for Parkour Maker plugin.
%tokenenchant__occurrence_% has been added.
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x ] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Closes N/A
95bfc5c Update Placeholders.md - vk2gpz
993a50b Merge pull request #883 from TeamVK/wiki - Andre601
Describe the bug
The placeholder %player_item_in_hand_ENCHANTMENT% e.g. %player_item_in_hand_LOOT_BONUS_BLOCKS% parses up to 255 and not higher.
To Reproduce
Steps to reproduce the behavior:
- Enchant any item with fortune (higher than 255) e.g. 500
- Use the command /papi parse me %player_item_in_hand_LOOT_BONUS_BLOCKS%
- As you will see it will parse 255 instead of 500
Screenshots
.
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Updated identifier and added few new placeholders.
e643766 Update Placeholders.md - Liinx
0157965 Merge pull request #884 from Liinx/wiki - Andre601
@WillFP adding this means the expansion will support only 1.13+. Please add a version check and use the right method for legacy and 1.13+.
If you are on 1.14+ put the item in a chest and press CTRL+I while pointing the crosshair at that chest and send the /setblock command here, my guess is the enchantment isn't really set on the item. There's no limit set, we just return whatever spigot give to us.
https://github.com/PlaceholderAPI/Player-Expansion/blob/dabc840d90f3edd2e8a555109de2a9f61cc97984/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java#L186
- Placeholder that would display the level of set potion type that player has applied? For example if I have strength potion of level 3 the placeholder would be smth like: %player_potionlevel_strength% and it would display a number 3 (for as long as the player has the effect)
I will add this to the to-do list
- Placeholder that would display the amount of set attribute on the item that's player currently holding? Example: Player holds a sword with attribute attack_damage in it, ...
[PlaceholderAPI/Vault-Expansion] branch deleted: rewrite
[PlaceholderAPI/Vault-Expansion] New branch created: fix\-registration
I've accidentally @Override the wrong method, register instead of canRegister
[PlaceholderAPI/Vault-Expansion] branch deleted: fix\-registration
90d6fbf replace String.valueOf(balance) with `Economy... - iGabyTM
[PlaceholderAPI/Vault-Expansion] New branch created: change\-the\-eco\_balance\-placeholder
[PlaceholderAPI/Essentials-Expansion] New branch created: fix\-53
a720e34 add %essentials_is_clearinventory_confirm% (clo... - iGabyTM
[PlaceholderAPI/Essentials-Expansion] New branch created: add\-is\_clearinventory\_confirm
Hey @BeakerThe1st are you going to finish this? ๐
Seems like the issue was fixed

[PlaceholderAPI/Statistics-Expansion] New branch created: change\-format\-time\-method
75860d8 change StatisticUtils#formatTime - iGabyTM
What if we use https://docs.docdex.helpch.at/ instead? The reason why I didn't made it return the spigot javadoc link is because different versions have different statistics @BlitzOffline
What if we use docs.docdex.helpch.at instead? The reason why I didn't made it return the spigot javadoc link is because different versions have different statistics @BlitzOffline
I know why you haven't but I am thinking that somehow, make it so that it returns the spigot link when you're on the latest version. Idk how it would detect that, but it's what I actually meant in my comment.
d8ec42a add ServerVersion and clean some code - iGabyTM
[PlaceholderAPI/Statistics-Expansion] New branch created: add\-server\-version
should I download this to the expansions folder?
yes, replace the existing expansion jar with this and try the placeholder @Aadi-mone
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
Plugin Bug
What happens?
i am using maven to get placeholderapi dependence but when i insert it in my pom.xml it do...
I solved, it was a small problem, I feel so stupid, you can close the issues
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
Plugin Bug
What happens?
In PR #354, CharReplacer and RegexReplacer added.
The CharReplacer allows using s...
This is intentional.
The placeholder's identifier may only have alphanummeric characters.
Also, RegexReplacer isn't used at all in PlaceholderAPI. It was only added for performance benchmarking and comparing it to the CharsReplacer.
The issue you encounter is not considered a bug and rather an intentional behaviour of PlaceholderAPI and/or one of its expansions.
If you still believe that it is a bug, provide more information and a maintainer of this repository may look at it more closely.
Before providing more info, always make sure to use the latest version of PlaceholderAPI, as the issue you encounter might already be fixed in a newer version.
Optionally can you also try out [development builds](https://ci.extendedc...
We don't even have regex replacer anymore, look at the current codebase.
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
Plugin Bug
What happens?
Placeholder API (2.11.2) using (Paper(138) 1.19.2-R0.1-SNAPSHOT Dosn't parse placeholders...
I believe thisissue is caused by CMI and not PlaceholderAPI itself.
Nothing in PlaceholderAPI would add extra % symbols. It checks if a placeholder is a valid format, if the expansion for it is present and if said expansion returns a non-null value.
If any of the above fails does PlaceholderAPI just return the unchanged String.
Tl;dr: Ask the CMI dev for help as this is most likely not a PlaceholderAPI issue.
I'll leave this issue open for now.
oh, I guess it's solved:

[PlaceholderAPI/Essentials-Expansion] branch deleted: fix\-53
[PlaceholderAPI/Statistics-Expansion] branch deleted: add\-server\-version
[PlaceholderAPI/Essentials-Expansion] branch deleted: add\-is\_clearinventory\_confirm
On older versions of minecraft player ping is double, not int.
https://github.com/PlaceholderAPI/Player-Expansion/blob/dabc840d90f3edd2e8a555109de2a9f61cc97984/src/main/java/com/extendedclip/papi/expansion/player/PlayerUtil.java#L66
https://github.com/PlaceholderAPI/Player-Expansion/blob/dabc840d90f3edd2e8a555109de2a9f61cc97984/src/main/java/com/extendedclip/papi/expansion/player/PlayerUtil.java#L80
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
Plugin/Server Incompatability
What happens?
[23:30:19] [placeholderapi-io-#0/INFO]: Successfully downloaded expansi...
We do not support modded/hybrid servers.
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Adds a new page about using placeholders and placeholder expansions in plugins.
Fixed valid slots link for checkitem
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Fixed valid slots link for checkitem
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Fixed inslot stuff for checkitem
Relevant code line
https://github.com/PlaceholderAPI/eCloud-backend/blob/98415b4bef4d7fc30d3c83ddf28969bcc0051c09/api/main/views.py#L319
On 9 Aug 2022, at 15:00, Andre_601 @.***> wrote:
There's currently no escaping of _ causing webhook messages about new expansions to have the Placeholders list malformed and displayed incorrectly.
The system should automatically escape these kinds of things.
Example image
[image]<https://user-images.githubusercontent.com/11576465/1836...
1ab31c9 Update Placeholders.md - cj89898
6b5b606 Update Placeholders.md - cj89898
018a8c0 Merge pull request #891 from cj89898/wiki - Andre601
b6fa09e Create Using-Placeholders.md - Andre601
5aa8942 Add to nav - Andre601
acb9361 Update _Sidebar.md - Andre601
8a3673b newline fix - Andre601
62d3d96 Update Using-Placeholders.md - Andre601
[10:14:09 ERROR]: [PlaceholderAPI] Failed to load expansion class JavascriptExpansion (Is a dependency missing?)
java.lang.NoClassDefFoundError: Could not initialize class com.koushikdutta.quack.QuackContext
at com.extendedclip.papi.expansion.javascript.evaluator.QuickJsScriptEvaluator.execute(QuickJsScriptEvaluator.java:17) ~[?:?]
at com.extendedclip.papi.expansion.javascript.evaluator.QuickJsScriptEvaluatorFactory.attemptBasicEvaluation(QuickJsScriptEvaluatorFactory....
Enchantments on enchanted books are not checked properly
Basically, I use AnimatedScoreboard and I would like a placeholder added to show how many blocks that player has for claiming in a region and how many claims are set.
Not really a feature of WorldGuard I would assume?
It is a feature in their config to allow X amount of blocks and to set how many claims yes.
Is there any way to run Javascript-Expansion on ARM cpu?
[16:36:17 ERROR]: [PlaceholderAPI] Failed to load expansion class JavascriptExpansion (Is a dependency missing?)
java.lang.UnsatisfiedLinkError: /tmp/quickjs-1.0.0/libquickjs.so: /tmp/quickjs-1.0.0/libquickjs.so: cannot open shared object file: No such file or directory (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
at jdk.internal.loader.NativeLibraries.load(Native Method) ~[?:?]
at jdk.inte...
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
API Bug
What happens?
ok when you do /papi ecould download essentials while using essentials 2.17.8 with essentials...
i forgot to say that im on 1.17 (i closed it by a mistake)
forgot to say that im on pufferfish 1.17.1
Judging by the multiple hundreds of lines of stack overflow errors, I'd say the Essentials expansion not loading is the least of your issues... Get rid of MOTD.jar and see if that resolves it.
Judging by the multiple hundreds of lines of stack overflow errors, I'd say the Essentials expansion not loading is the least of your issues... Get rid of
MOTD.jarand see if that resolves it.
alright i will try that out
Judging by the multiple hundreds of lines of stack overflow errors, I'd say the Essentials expansion not loading is the least of your issues... Get rid of
MOTD.jarand see if that resolves it.
oh my god thanks for helping the motd plugin was the issue :)
It returns nothing, and that causes problems with plugins.
Thank you in advance!
What placeholder are you using and what plugin is it breaking in?
%checkitem_getinfo:mainhand_enchantments:Unbreaking%
That returns a number if the item has unbreaking, returns the level.
If it doesn't have the enchant, it returns a blank message, instead of 0.
That causes problems with conditional events, a plugin similar to Skript, since it doesn't get a number to compare with.
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
Plugin/Server Incompatability
What happens?
Plugin unable to parse ALL placeholder when an invalid expansion is ins...
[18:54:57 ERROR]: [PlaceholderAPI] Failed to load class files of expansion.
yes, it did see that error then remove Quests expansion which fixed it, but it suppose only not to load that expansion, and not causing all placeholders failed to parse
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
API Bug
What happens?
The placeholder API jar defines META-INF/versions/9/module-info.class.
Decompiled contents...
One question I have is, where this happens.
Like do all placeholders across different plugins fail to parse, or is only one specific location/plugin (i.e. chat) affected?
If it is the second one, then it may be an issue within that plugin itself.
Either way, it would be of great help if you could share your full logs through https://paste.helpch.at, as that usually provides extra info for us to work with.
all placeholders across different plugins fail to parse, every registered one
You're using Pufferfish it seems.
PlaceholderAPI encountered issues with it in the past, namely that it would close jars while PlaceholderAPI was loading them, causing errors (https://github.com/PlaceholderAPI/PlaceholderAPI/issues/868).
The devs since have implemented a fix for it, tho I wouldn't be surprised if they messed up again.
Could you try it with a Paper server and see if everything resolves?
You're using Pufferfish it seems.
PlaceholderAPI encountered issues with it in the past, namely that it would close jars while PlaceholderAPI was loading them, causing errors (#868). The devs since have implemented a fix for it, tho I wouldn't be surprised if they messed up again.
Could you try it with a Paper server and see if everything resolves?
https://paste.helpch.at/tulatacoki
seems no, also, i have tested few other expansions but only Quests getting make Placeholder...
Hello,
With the placeholder %checkitem_getinfo:mainhand_nbtints:% I get the list of nbts.
But I want to get the value of a specific nbt in my case that of "INTEGER:ae_enchantment;haste:3" And therefore get the number 3.
The %checkitem_getinfo:mainhand_nbtints:ae_enchantment% displays the list of nbts. Same for %checkitem_getinfo:mainhand_nbtints:ae_enchantment=% / %checkitem_getinfo:mainhand_nbtints:ae_enchantment=haste% / %checkitem_getinfo:mainhand_nbtints:ae_enchantment=1%
Confirmation
- [X] I checked the Issues and Pull request tab for any existing issues or PRs.
- [X] My Feature Request is for PlaceholderAPI and not any expansion or other plugin.
Type
New API feature, Major Code improvement (Will affect Servers)
Description
See https://discord.com/channels/164280494874165248/1040979624039022602
Code Example
No response
Jar file
No response
Additional Information
No response
Could you also share the full context?
The link doesn't work on mobile and people may not share the server this is in.
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
API Bug
What happens?
PlaceholderAPI (Statistical) does not work. I'm trying to make time in the game, but when I e...
Hello @SMServers,
The issue you encountered is caused by an Expansion and not PlaceholderAPI itself.
This issue-tracker is reserved for Bug reports and feature requests towards PlaceholderAPI.
Please report this issue to the Expansion's main issue-tracker.
A list of known Expansion repositories and their issue trackers can be found here.
Note
*This is an automated response created by a **...
PlaceholderAPI (Statistical) does not work. I'm trying to make time in the game, but when I entered the necessary placeholders, the digit '0' stands at the place of time and time does not go. What to do? I'm from Russia
Here is a screenshot that time is not going - https://ibb.co/FnT3CVK
Here is a photo from the plugin config for board - https://ibb.co/Npb7Xjk
As mentioned in your issue, report this to the issue tracker of the expansion.
In your case: https://github.com/PlaceholderAPI/Statistics-Expansion
I'm trying to make time in the game, but when I entered the necessary placeholders, the digit '0' stands at the place of time and time does not go. What to do? I'm from Russia
Here is a screenshot that time is not going - https://ibb.co/FnT3CVK
Here is a photo from the plugin config for board - https://ibb.co/Npb7Xjk
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
Plugin Bug
What happens?
Having an issue with placeholder API registering placholders. If I manually reload the plu...
This is most likely not caused by PlaceholderAPI.
The error mentions this:
java.util.concurrent.CompletionException: java.lang.IllegalStateException: zip file closed
This line means that the Jar file has been closed by something while PlaceholderAPI was loading.
Usually, this is caused by either the server (see #868) or another plugin, if they happen to interact with any kind of ClassLoader.
Your best option could be to remove half the plugins and see if that fixes it. If not, re...
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Added HyacinthHello wiki placeholder link.
Closes N/A
This seems to be happening whenever I install any type of shop plugin,
IE:
ChestShop > https://www.spigotmc.org/resources/chestshop.51856/
QuickShop > https://www.spigotmc.org/resources/quickshop-reremake-1-19-ready-multi-currency.62575/
InsaneShops > https://www.spigotmc.org/resources/insane-shops.67352/
06aa2ab Update Placeholders.md - livelaughlemon
9a8306b Merge pull request #898 from livelaughlemon/wiki - Andre601
5edf1af [Wiki] Add note about master branch checkbox - Andre601
I am not able to reproduce. I installed PAPI 2.11.2 & ChestShop 3.12.2 on paper 1.19.2-307, Temurin-17.0.3+7.
Installed the player expansion, restarted the server, and immediately parsed %player_name% once the server had started again. Placeholder parsed fine, no exceptions in console.
Does the issue happen when you have only PAPI + a shop plugin installed? Or does it happen when you have papi, all your other plugins, and a shop plugin installed?
[PlaceholderAPI/PlaceholderAPI] branch deleted: feature/expansion\-queue
So when I install QuickShop >
I get this error in console and it breaks all of my placeholders.
https://paste.helpch.at/abitaligek.rb
Agree, but not only with enchants. I'd also like to get the "RepairCost" of the nbt of the item

hoping for that to return 100000 instead of all the nbtints.
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
Plugin/Server Incompatability
What happens?
[08:44:03] [Server thread/ERROR]: [PlaceholderAPI] Failed to load class...
Talking about color, I'd like to add RGB Support for the %checkitem_give% for loreequals and nameequals.
I tried most known combinations: &RRGGBB, #RRGGBB, &#RRGGBB, &{RRGGBB}, #{RRGGBB}, &#{RRGGBB}
And it doesn't work.
Talking about color, I'd like RGB (Hex) Support to be added for the %checkitem_give% for loreequals and nameequals.
I tried most known combinations: &RRGGBB, #RRGGBB, &#RRGGBB, &{RRGGBB}, #{RRGGBB}, &#{RRGGBB}
And it doesn't work.
Please create a separate issue.
[PlaceholderAPI/Statistics-Expansion] Issue opened: #38 PlaceholderAPI \(Statistic\) does not work\.
[PlaceholderAPI] Failed to load expansion class StatisticsExpansion - One of its properties is null which is not allowed!
java.lang.NullPointerException: The expansion version is null!
at java.util.Objects.requireNonNull(Objects.java:228) ~[?:1.8.0_312]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.register(LocalExpansionManager.java:181) ~[?:?]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_312]
...
Core - Crucible
Version - 1.7.10
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [X] External change (Does affect end-user).
- [ ] Wiki (Changes towards the Wiki).
- [ ] Other:
Description
Add a missing space to the ecloud status message shown in the following picture.

Closes N/A
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
Plugin Bug
What happens?
The expansion version isn't checked in the right way, so PlaceholderAPI is updating the ex...
Perhaps this should respect the check_interval key in the config, and instead set the default interval to 1.
After investigating, it seems that the problem is a mismatched version rather than a PlaceholderAPI issue.
The version on the eCloud is set to 5.4 but the version set inside the expansion is 5.1-R2. There is nothing we can do. The expansion author will have to update the expansion with the correct version.
I feel like I should probably update a bit on my message as it is incomplete:
PlaceholderAPI doesn't actually downgrade the version. It still gets the latest version from the eCloud but since the built in version is wrong, it thinks that there's still a new version available on the eCloud.
If we take a look deeper into implementation, we will see that every placeholder request, simply creating new object of the engine which is generally unnecessary and destructive to GC.
Current code doing smth like that (nashorn):
import javax.script.ScriptException;
import org.openjdk.nashorn.api.scripting.NashornScriptEngineFactory;
public class Leak {
public static void main(String[] args) throws ScriptException {
var factory = new NashornScriptEngineFactory...

i also have this problem, but it doesn't happen everytime.
/papi reload fixes this
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Added EnderPlus to list of plugins with placeholders.
Closes N/A
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Added EnderPlus to list of plugins with placeholders.
Closes N/A
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Added PrefiX to the plugin & placeholder pages
Closes N/A
e19db2c Add PrefiX to placeholders.md - martijnpu
f40f902 Add PrefiX to Plugins-using-PlaceholderAPI.md - martijnpu
af7859b Merge pull request #905 from martijnpu/wiki - Andre601
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x ] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
added an entry for NumberFormatter
Added new Placeholders to the PlaytimeRewards section in Placeholders.md
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Added Placeholders to the Wiki Placeholders.md for the Plugin PlaytimeRewards.
Closes N/A
Mind sorting them a bit?
Would make stuff a bit more readable imo
%ptr_playtime%
%ptr_playtime_days%
%ptr_playtime_days_trimmed%
%ptr_playtime_hours%
%ptr_playtime_hours_trimmed%
%ptr_playtime_minutes%
%ptr_playtime_minutes_trimmed%
%ptr_playtime_seconds%
%ptr_playtime_seconds_trimmed%
%ptr_sessiontime%
%ptr_sessiontime_days%
%ptr_sessiontime_days_trimmed%
%ptr_sessiontime_hours%
%ptr_sessiontime_hours_trimmed%
%ptr_sessiontime_mi...
I made a Commit that uses the order you specified. Thanks for the suggestion!
08f124a Updated PlaytimeRewards in Placeholders.md - ExoBiTe
d3953ab Updated Sorting on Placeholders.md#PlaytimeRewards - ExoBiTe
3056325 Merge pull request #907 from ExoBiTe/wiki - Andre601
please add NumberFormatter Expansion, I didn't see any explanation of the usage of it, even on its original site
This discussion only lists expansions which have a GitHub or other Code Repository.
i also had this issue today when i uninstalled Quests. I am running a paper server. removing the expansion manually in the files fixed it, but even sending a /papi command would not work and returned the same error
How can I use the bukkit method in the file, such as org.bukkit.chaatcolor, instead of obtaining it from the BukkitPlayer method
What exactly are you trying to do?
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
Plugin Bug
What happens?
I'm trying to make a countdown for a certain hour, but the plugin keeps returning 0.
Pla...
Hello @matipoirierg,
The issue you encountered is caused by an Expansion and not PlaceholderAPI itself.
This issue-tracker is reserved for Bug reports and feature requests towards PlaceholderAPI.
Please report this issue to the Expansion's main issue-tracker.
A list of known Expansion repositories and their issue trackers can be found here.
Note
*This is an automated response created by a...
I'm trying to make a countdown for a certain hour, but the plugin keeps returning 0.
Placeholder used: %server_countdown_HH.mm_16.00%
The placeholder should return a countdown showing the time left for 16:00 and reset after that time is reached.
I'm not an expert, but I think Java's SimpleDateFormat (which is used for the HH.mm pattern) doesn't support just providing the hour and minute without any real date.
It's just a guess, but I assume that Java doesn't know what date to use, so it perhaps default to a very low value (Perhaps start of the epoch timestamp?).
What the expansion does is essentially take the provided date (in your...
I've looked into it a bit more closely and my guess got confirmed.
The Date instance returned by the parse(String) method (Now parse(String, ParsePosition) it seems?) defaults to specific values if a specific part for the date (i.e. year) is missing.
Quote:
All of the calendar's date-time fields are [cleared](https://docs.oracle.com/en/java...
I see, thank you very much for your explanation, I ended up using %server_countdown_dd/yyyy/HH:mm_{server_time_dd}/{server_time_yyyy}/16:30% and it's working fine.
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Added LotterySix to the Wiki
Closes N/A
You should add an empty line between the quote and the code block for readability.
As the title said, whenever I use the checkitem placeholder to check for enchantments for certain items. It would sometimes print out an error. It's very random as well, like it would behave differently on different types of items. For example I was checking if the first slot on the hotbar has a protection enchantment using this placeholder %checkitem_getinfo:0_enchantments:protection%. If there's not item in that slot it would return blank , which means it works. If I put a tool/armor for ex...
I don't think this is any useful anymore, mainly because PAPI itself no longer uses Regex patterns but also the suggestion for a more distinct placeholder pattern (See #36 for more details) would be beneficial to have here.
Add the ability to check if the player has health boost:
%has_health_boost%
Add the ability to check how much total health the health boost is adding:
%health_boost%
This would be useful for developers making RPG-style tools or armor sets that increase the health of a player.
No, all placeholders have to be async
90d6fbf replace String.valueOf(balance) with Economy... - iGabyTM [bd484e1`](https://github.com/PlaceholderAPI/Vault-Expansion/commit/bd484e17ec984c2d00f899d11f6192a6c3ea5684) Merge pull request #38 from PlaceholderAPI/chan... - iGabyTM
[PlaceholderAPI/Vault-Expansion] branch deleted: change\-the\-eco\_balance\-placeholder
No, all placeholders have to be async
I don't think that would be the right aproach. Async-only placeholder handling could cause issues in certain situations, especially those where Spigot will complain that something can only be executed sync/async.
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Added new and fixed incorrect placeholders for LotterySix
Closes N/A
With the method provided by Bukkit, if you cancel the support for JDK8, you cannot use java.type (), and you cannot use the method provided by Bukkit
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
API Bug
What happens?
When using the bungee extension I get an error (shown below)
.
- [ ] External change (Does affect end-user).
- [ ] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
It's adding my plugin's placeholders weight-rpg
Closes N/A
Please order it alphabetically.
7ea9e26 Update Placeholders.md - jdoulke
84917d2 Update Placeholders.md - jdoulke
c2bf9d1 Merge pull request #913 from jdoulke/wiki - Andre601
Why do you say I want to open this isues? If I can find it, I won't come to ask
I have the same problem, only already in 2023
https://paste.helpch.at/dadikobaqa
Are there any errors? Please attach latest.log
One issue I can already find from the dump is that you have 2 Javascript expansions installed: Javascript-Expansion-2.1.2.jar and Expansion-Javascript.jar
NumberFormattre now supports DecimalFormat style in Metric Formating.
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
added new placeholder description for NumberFormatter.
From what I understand when looking at the code are volume and pitch a multiple of ten.
Like instead of
1.0is it10
But
From what I understand when looking at the code are volume and pitch a multiple of ten.
Like instead of
1.0is it10
But actually it's 1.0, as the same as the vanilla Minecraft /sound command
I rewrite the expansion myself and it works fine now, the fact proves it shouldn't be "Interger" here
%checkitem_getinfo:mainhand_enchantments:Unbreaking%
That returns a number if the item has unbreaking, returns the level.
If it doesn't have the enchant, it returns a blank message, instead of 0.
That causes problems with conditional events, a plugin similar to Skript, since it doesn't get a number to compare with.
In fact it has a variable called %empty% that equals to a "blank"
e3b56f1 Update Placeholders.md - vk2gpz
0e56d10 Merge pull request #914 from TeamVK/wiki - Andre601
Can %essentials_home__world% be added aswel?
Just show where the home in about world
Confirmation
- [X] I checked the Issues and Pull request tab for any existing issues or PRs.
- [X] My Feature Request is for PlaceholderAPI and not any expansion or other plugin.
Type
New API feature
Description
Hello, is it possible to add a new placeholder to check the placed block data (when a player looking/interact with block)?
Like anvil face direction, and other blocks screen example:
?
Like anvil face direction, and other blocks screen example:

Hello, is it possible to add a new placeholder to check the placed block data (when a player looking/interact with block)?
Like anvil face direction, and other blocks screen example how the placeholder must return:

This isn't the place for placeholder requests, as said in your closed issue.
sorry for that!!!! it says ideas , where can i request for placeholders ? i cant find it.
Hello, is it possible to add a new placeholder to check the placed block data (when a player looking/interact with block)?
(Maybe %player_block_data%)
Like anvil face direction, and other blocks, screen example how the placeholder must return:

Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [X] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Updated Player Placeholders for the 2.0.4 version release.
Closes N/A
This will break on older versions. Needs to handle a fallback to PLAY_ONE_TICK.
[PlaceholderAPI/Essentials-Expansion] New branch created: misc\-fixes
Implements %essentials_home__w% - Returns the world the home is set in
Formats %essentials_home__x/z% to 3 decimal places.
Closes: #51
Closes: #58
33c01b9 Implemented muted_time_remaining placeholder - darbyjack
To my knowledge there is no way to get the creation date of a home.
d2ee91b Implemented geolocation placeholder - darbyjack
[PlaceholderAPI/Essentials-Expansion] branch deleted: misc\-fixes
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [X] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Updated Essentials Placeholders for v1.5.2
Closes N/A
The only thing I'd really change is the message.
From Failed to load expansion %s. Identifier is already registered.
To Failed to load expansion %s because another expansion with the same identifier is already registered.
Since the identifier isn't registered, the expansion with that identifier is.
Feels s bit word...
Perhaps Failed to load expansion '%s'. Identifier '%s' is already in use.
Oh god no. Please do not return error messages in placeholder results. Just return an empty string or maybe null.
Also, depending on how frequent the placeholder is called could this cause spam in the console too, so perhaps also remove the logger line too (or find a way to have a sort of cooldown for the log message sending)
[PlaceholderAPI/PlaceholderAPI] New branch created: update\_vault\_placeholders
f94f6a7 update vault placeholders - iGabyTM
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Update vault placeholders
Closes N/A
2b9947f use "<position>" instead of "#" - iGabyTM
6cf9875 remove the eCloud toggle command - Gabriel Dumitru
4c228ca make the eCloud disable by default - Gabriel Dumitru
d888d97 remove from help - Gabriel Dumitru
3afb634 revert 4c228ca4fb5b1f32296b873843d7b6207941bead - iGabyTM
a0b177b Merge pull request #869 from PlaceholderAPI/rem... - PiggyPiglet
Build: 164
Status: failure
Changes:
6cf987remove the eCloud toggle command - Gabriel Dumitru4c228cmake the eCloud disable by default - Gabriel Dumitrud888d9remove from help - Gabriel Dumitru3afb63revert 4c228ca4fb5b1f32296b873843d7b6207941bead - Gabriel Dumitru
Artifacts:
Jenkins v2.375.1, Discord Notifier v1.4.11
Build: 165
Status: success
No changes.
Artifacts:
- https://ci.extendedclip.com/job/PlaceholderAPI/165/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-165-javadoc.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/165/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-165-sources.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/165/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-165.jar
Jenkins v2.375.1, Discord Notifier v1.4.11
[PlaceholderAPI/PlaceholderAPI] branch deleted: fix/872\-fix\-inxonsisten\-parsing
cd18d20 Improve log message - Andre601
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Updated LotterySix Placeholders
Closes N/A
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x ] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
added an entry for CoordinateTool plugin.
893b324 Update Placeholders.md - vk2gpz
a142d84 Update Placeholders.md - vk2gpz
08c7223 Merge pull request #921 from TeamVK/wiki - Andre601
[PlaceholderAPI/PlaceholderAPI] branch deleted: feature/wiki\-add\-faq\-question
formatted the examples.
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x ] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Reformatted the examples.
โฆrough eCloud but through a plugin, if this is true, there is no need to check against eCloud entries.
Pull Request
Type
- [x ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [ ] Wiki (Changes towards the [Wiki]).
- [ ] Other: __________
Description
Since .persist() is to indicate that the expansion is not provided through eCloud but through a plugin, if this is true, there is no need to check against eCloud entri...
I doubt it's only for those included in a plugin. Sure, it's the main use, but I wouldn't be surprised if some expansions exist that use this method too for whatever reason...
Just my opinion tho.
0361095 Update Placeholders.md - vk2gpz
e932af6 Merge branch 'PlaceholderAPI:wiki' into wiki - vk2gpz
c2e417e Merge pull request #922 from TeamVK/wiki - Andre601
This issue occurs frequently with Paper 1.19.3-420, and has since many previous releases.
> papi list
[13:42:26 INFO]: A total of 32 placeholder hook(s) are active:
atr, bentobox, biomeremap, bskyblock, citizensplaceholder, cmil, combatlogx, coordinatetool, deluxemenus, disease
essentials, extrahardmode, frp, level, luckperms, multiverse, plan, player, pyroweatherpro, quests
residence, server, shortcut, spark, stat, statistic, str, thirst, treefeller, vault
wesv, worldguard
> pap...
Yes, one scenario I can think of is that someone started an expansion as the plugin-provided, but later move to eCloud, and the eCloud version is newer.
The best solution would be to implement a proper version number check rather than using equalsIgnoreCase. Then we don't need to check local.persist() and rely on proper version check.
However, in order for the version number check to work properly, PlaceholderAPI team should set the version number convention so that PAPI can implement ...
Once a proper version number checking is implemented '!local.persist()' can be removed and replace 'equalIgnoreCase()' with the new version checking method.
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
Plugin Bug
What happens?
When an expansion is locally provided (through a local file or plugin-provided), even if t...
However, in order for the version number check to work properly, PlaceholderAPI team should set the version number convention so that PAPI can implement a proper version check.
I don't think it's needed too much. Most Expansions I know of use a proper SemVer format (or SemVer-like).
And for the checks could a simple lib like FlexVer be used to allow a more flexible version check to be done here.
Alternatively could we put the version check in ...
If PAPI is going to dump this on devs, then PAPI needs to include checkVersion(versionStr1, versionStr2) method for the expansion class to implement.
However, in order for the version number check to work properly, PlaceholderAPI team should set the version number convention so that PAPI can implement a proper version check.
I don't think it's needed too much. Most Expansions I know of use a proper SemVer format (or SemVer-like). And for the checks could a simple lib like FlexVer be used to allow a more flexible version check to be done here.
Alternatively could we put the version ...
or should separate the process of checking update is needed and do not include in the process of generating the elcoud installed list.
This is not a feature request. It is a bug.
PAPI does not recognise 3.0.0 is newer than 2.0.0
"most"... you should not make such an assumption. when it comes to version numbering, one can define anything.
x.x.x, x.x.x-RCx, x.x.x.build#, x.x-beta, x.x.x-alpha....
If you guys think some lib like FlexVer is good enough, you should implement it instead of equalsIgnoreCase.
FlexVer would be a lib to cover the most common cases here like the ones you mentioned, as it was made for MC mods in mind, which have all kinds of... interesting formats for their versions like f.e. `1.2.3...
It's a bug report that asks for a feature to change, therefore the https://github.com/PlaceholderAPI/PlaceholderAPI/labels/Type%3A Feature (change) request label is imo valid to be added here. Checking the expansion version is a feature of PAPI.
The only real other fix I can imagine for the local (part of plugin) vs cloud expansion issue is to have some way for the dev to tell PAPI that their expansion is part of a plugin and not the ecloud (i.e. a getter they can override that returns a boolean value). Issue with that is, that it again depends on the dev to do the work, which most will not bother with.
According to the document, this is exactly "persist()"'s purpose, that's why I originally submitted this PR. but I guess...
Here is the bug:
expansion.setShouldUpdate(
!local.getVersion().equalsIgnoreCase(expansion.getLatestVersion()));
equalsIgnoreCase should not be used to determine whether it should update or not.
It's a bug report that asks for a feature to change, therefore the Type: Feature (change) request Request for a new feature, or to change an existing one. label is imo valid to be added here. Checking the expansion version is a feature of PAPI.
If you believe a new feature is needed, please submit a feature request.
simply providing a new feature, which checks version won't solve the i...
5970ef4 Can retrieve specific lore lines: getinfo + lor... - cj89898
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Updated checkitem
This issue is still present as of today with the latest version of PlaceholderAPI and Statistic. Pretty annoying for me as I use a leaderboards plugin that makes use of this placeholder, but it counts double on the leaderboards.
a832abe Check PAPI Debug before printing the error - darbyjack
Should be resolved with the latest commit.
d6bc40a Bump PAPI Dep + Maven Plugins - darbyjack
Among other things, it would be useful if the error messages identified the expansion that caused the issue.
Paper 1.19.3-431 (and previous for quite some time)
> version PlaceholderAPI
[11:14:45 INFO]: PlaceholderAPI version 2.11.3-DEV-165
> papi list
[11:15:16 INFO]: A total of 20 placeholder hook(s) are active:
atr, bentobox, biomeremap, bskyblock, citizensplaceholder, cmil, combatlogx, coordinatetool, deluxemenus, extrahardmode
frp, level, plan, pyroweatherpro, residence, server, spark, stat, treefeller, wesv
> papi ecloud list installed
[11:15:33 INFO]: Installed Expansions
...
After a fair amount of isolation testing, it looks like this issue is caused by PAPI-Expansion-Server-2.6.1.
Seee https://github.com/PlaceholderAPI/Server-Expansion/issues/49
It would be useful if the error message identified the expansion that caused the issue.
I definitely agree. I've asked for this feature before. While it is true that each expansion should deal with it's own problems, I think PlaceholderAPI should probably safely load each expansion and if it fails, it shouldn't break the entire loader but instead it should catch the exception, log it with more information such as expansion it is coming from and then continue loading the other expansions....
Looks to be fixed in PAPI-Expansion-Server 2.6.2. Thanks.
Looks to be fixed in PAPI-Expansion-Server 2.6.2 and a lot of other clip expansions.
Yeah, the difference between 2.6.1 and 2.6.2 is that the former version used some external library for cache, interesting ๐ค
There remains the issue of PAPI identifying an expansion that causes an issue.
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Added the new PlayerStats placeholder to the wiki
Closes N/A
a8801f1 Update Placeholders.md - Artemis-the-gr8
cb9022b Merge pull request #926 from Artemis-the-gr8/wiki - Andre601
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Updates placeholders list of VotingPlugin
This is still happening. %pinger_motd% returns whatever is in the server.config file in your Minecraft server.
Pretty sure this can't be fixed at all.
All the expansion does is ping the server. Whatever is returned by that ping is what the expansion uses.
Not sure if the MC client sends some specific data that makes it receive diffrent data, including a different MOTD, but it could be exactly that to be honest here.
Either way, if you understand a bit of Java code, look at this section here:
https://github.com/PlaceholderAPI/Pinger-Expansion/blob/master/src/main/java/com/extendedclip/papi/expa...
I think it is an issue with this expansion, I stepped through the code with a debugger and found that the expansion runs into an ArrayIndexOutOfBoundsException here: https://github.com/PlaceholderAPI/Pinger-Expansion/blob/34d9492eb438b6dc5b77254cbddeb3d13860ce93/src/main/java/com/extendedclip/papi/expansion/pinger/PingerExpansion.java#L308
The exception is just swallowed here: https://github.com/PlaceholderAPI/Pinger-Expansion/blob/34d9492eb438b6dc5b77254cbddeb3d13860ce93/src/main/java/c...
In addition to splitting on ยง, it's also important that we check ยง as the first character, not &.
I think the current code is trying to support two different ping formats. If the packet starts with ยง, the code should read according to this format: https://wiki.vg/Server_List_Ping#1.6. Otherwise, it should read according to this format: https://wiki.vg/Server_List_Ping#1.4_to_1.5, which is why it has to split on ยง.
Huh, okay, this issue is weirder than I originally thought. I've now done some more testing, and the problem is definitely that ยง is supposed to be used instead of & when handling the ping packets. But, to my surprise (after a bunch of debugging), I can't reproduce this issue when using the Pinger expansion from eCloud, only when building the source code from this repository. It turns out that there have been changes here in the source code which have not been built and released on eCloud...
Relates to #2, but does not fix the issue
As explained in https://github.com/PlaceholderAPI/Pinger-Expansion/issues/2#issuecomment-1453463643, the source code uploaded to this repository differs from the source code that was used to build the JAR file which has been uploaded to eCloud. Commit 0128494c1104e666d696f4abbb10838371734394 reverts the seemingly accidental change to the source code, which means that the plugin once again works if built from this source code. Commit 2c8819528...
I have now provided a fix for the packet decoding in #8, as well as some code cleanup and comments to explain what the current code is doing.
As far as fixing this issue goes (again, it only happens on Minecraft 1.8 - 1.12), the only solution I see is to change the code to use the Minecraft 1.7+ ping request format, which is not affected by the Spigot MOTD bug. I am not interested in working on this, especially since there is already an alternative plugin (based on, or at least inspired by...
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
Plugin Bug
What happens?
When server starts, and placeholders load, %bungee_servername% shows 0 players even if tha...
[PlaceholderAPI/PlaceholderAPI] New comment on issue #928: PlaceholderApi bungee server name shows 0
Hello @RETAMROVEC,
The issue you encountered is caused by an Expansion and not PlaceholderAPI itself.
This issue-tracker is reserved for Bug reports and feature requests towards PlaceholderAPI.
Please report this issue to the Expansion's main issue-tracker.
A list of known Expansion repositories and their issue trackers can be found here.
Note
*This is an automated response created by a *...
Hello, when i use %bungee_servername%, it shows 0 always even if its not true.
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [X] External change (Does affect end-user).
- [ ] Wiki (Changes towards the [Wiki]).
- [ ] Other: __________
Description
This PR adds a convenient base class for PlaceholderExpansion with constructor, so people no longer need to implement getVersion(), getIdentifier(), getAuthor() as they're annoying as hell to read.
Example from my actual plugin:
.
- [ ] External change (Does affect end-user).
- [x ] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
added a new placeholder for TokenEnchant.
860a08a Update Placeholders.md - vk2gpz
f0f6d2f Merge pull request #930 from TeamVK/wiki - Andre601
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Removes download command from deluxetags
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x ] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
added a new placeholder entry to TokenEnchant.
EssentialsX Placeholderapi expansion baltop placeholders only uptaded If I do /papi reload What can I do for reload itself? Normally automatic update is required.
Enable this to also log all transactions from other plugins through Vault.
This can cause the economy log to fill up quickly so should only be enabled for testing purposes!
economy-log-update-enabled: true
The only setting I can find remotely related is this one - I enabled it and restarted and the results were still th...
4afad7f Update Kyori Adventure to 4.3.0 - Andre601
[PlaceholderAPI/PlaceholderAPI] New branch created: feature/update\-adventure
Pull Request
Type
- [x] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [ ] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Closes N/A
Bumps Adventure platform to 4.3.0 to fix some exception during Player join on a 1.19.4 server.
Build: 166
Status: success
Changes:
4afad7Update Kyori Adventure to 4.3.0 - github
Artifacts:
- https://ci.extendedclip.com/job/PlaceholderAPI/166/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-166-javadoc.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/166/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-166-sources.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/166/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-166.jar
Jenkins v2.375.3, Discord Notifier v1.4.11
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [x] External change (Does affect end-user).
- [ ] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Move project to use Gradle KTS and update Gradle wrapper to 8.0.2
Build: 167
Status: success
Changes:
d5c371Fix duplicate expansion loading (#866) - github
Artifacts:
- https://ci.extendedclip.com/job/PlaceholderAPI/167/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-167-javadoc.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/167/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-167-sources.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/167/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-167.jar
Jenkins v2.375.3, Discord Notifier v1.4.11
[PlaceholderAPI/PlaceholderAPI] branch deleted: fix/duplicate\-expansion\-loading
7e902ca Fixed variables in the plugin.yml not being cre... - darbyjack
[PlaceholderAPI/PlaceholderAPI] New branch created: fix/kotlin\-build\-system
3d00d48 Tell build to depend on shadowJar and publish f... - darbyjack
Pull Request
Type
- [X] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [ ] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Closes N/A
@SlimeDog are you still able to replicate this exception? https://github.com/PlaceholderAPI/PlaceholderAPI/issues/899#issuecomment-1365485606
[PlaceholderAPI/PlaceholderAPI] branch deleted: feature/update\-adventure
The issue with Server expansion was resolved over there. However, the issue with PAPI not identifying the offending expansion remains.
Builds fine and runs on my desktop-server (Java 17, Paper 1.19.4 on Windows 10)
[PlaceholderAPI/PlaceholderAPI] New branch created: fix/missing\-class\-exception\-breaks\-expansion\-loading
5613561 fix: catch NoClassDefFoundError in order for th... - iGabyTM
Yeah, I'm working on that, but I need a server that has that zip file closed problem because for the sake of god I can not seem to be able to reproduce it ๐ค
[PlaceholderAPI/PlaceholderAPI] branch deleted: fix/kotlin\-build\-system
Build: 169
Status: success
Changes:
7e902cFixed variables in the plugin.yml not being created properly - admin3d00d4Tell build to depend on shadowJar and publish for build - admin
Artifacts:
- https://ci.extendedclip.com/job/PlaceholderAPI/169/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-169-javadoc.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/169/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-169-sources.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/169/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-169.jar
Jenkins v2.375.3, Discord Notifier v1.4.11
7e902ca Fixed variables in the plugin.yml not being cre... - darbyjack
3d00d48 Tell build to depend on shadowJar and publish f... - darbyjack
28b58ba chore: add missing space - iGabyTM
0ae0ddc Merge pull request #935 from PlaceholderAPI/fix... - iGabyTM
c85670a Merge branch 'master' into fix/missing-class-ex... - iGabyTM
Build: 170
Status: success
No changes.
Artifacts:
- https://ci.extendedclip.com/job/PlaceholderAPI/170/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-170-javadoc.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/170/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-170-sources.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/170/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-170.jar
Jenkins v2.375.3, Discord Notifier v1.4.11
Currently if an expansion throws that exception no expansion is loaded
Pull Request
Type
- [x] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [ ] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Closes N/A
81ef464 fix: catch NoClassDefFoundError in order for th... - iGabyTM
[PlaceholderAPI/PlaceholderAPI] branch deleted: fix/missing\-class\-exception\-breaks\-expansion\-loading
Build: 171
Status: success
Changes:
81ef46fix: catch NoClassDefFoundError in order for the other expansions to be loaded (#936) - github
Artifacts:
- https://ci.extendedclip.com/job/PlaceholderAPI/171/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-171-javadoc.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/171/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-171-sources.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/171/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-171.jar
Jenkins v2.375.3, Discord Notifier v1.4.11
The team expansion is not made by use, open an issue here: https://github.com/Paul19988/TeamsExpansion/
I myself can't really see the overall benefit of this...
Like how is a super("identifier", "version", "author") any better to read than the getters?
IMO do the getters actually help clarify what the value returned is: The identifer, the version or the author. With the constructor, it's more difficult to know what is what exactly.
I think you might be able to reproduce it if you downgrade to
Paper 1.19.3-420
PlacehoIderAPI-2.11.2-DEV-160
PAPI-Expansion-Server-2.6.1
I myself can't really see the overall benefit of this... Like how is a
super("identifier", "version", "author")any better to read than the getters?IMO do the getters actually help clarify what the value returned is: The identifer, the version or the author. With the constructor, it's more difficult to know what is what exactly.
Tho, obviously is this just my opinion.
Nothing is changed functionality-wise. It makes no sense to enforce 3 getters instead of a constructor for...
Pull Request
Type
- [x] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [ ] Wiki (Changes towards the [Wiki]).
- [ ] Other: __________
Description
Added shouldUpdate() method to PlaceholderExpansion.ย The default implementation is equalsIgnoreCase() as implemented in CloudExpansionManager.ย This will maintain the current behaviour. This implementation should be replaced by the proper version string check.ย In the me...
e01b2d9 Update the NMS options up to the latest 1.19 R3 - darbyjack
[PlaceholderAPI/PlaceholderAPI] New branch created: feat/update\-nms\-options
Pull Request
Type
- [X] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [ ] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Closes N/A
5ab61e0 Update the NMS options up to the latest 1.19 R3... - darbyjack
Build: 172
Status: success
Changes:
5ab61eUpdate the NMS options up to the latest 1.19 R3 (#938) - github
Artifacts:
- https://ci.extendedclip.com/job/PlaceholderAPI/172/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-172-javadoc.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/172/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-172-sources.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/172/artifact/build/libs/PlaceholderAPI-2.11.3-DEV-172.jar
Jenkins v2.375.3, Discord Notifier v1.4.11
Build: 173
Status: success
Changes:
2d9466Release 2.11.3 - admin
Artifacts:
- https://ci.extendedclip.com/job/PlaceholderAPI/173/artifact/build/libs/PlaceholderAPI-2.11.3-javadoc.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/173/artifact/build/libs/PlaceholderAPI-2.11.3-sources.jar
- https://ci.extendedclip.com/job/PlaceholderAPI/173/artifact/build/libs/PlaceholderAPI-2.11.3.jar
Jenkins v2.375.3, Discord Notifier v1.4.11
[PlaceholderAPI/PlaceholderAPI] New tag created: 2\.11\.3
What's Changed
Changes
- remove the eCloud toggle command by @iGabyTM in https://github.com/PlaceholderAPI/PlaceholderAPI/pull/869
Fixes
- Fix inconsistent parsing command behaviour by @Andre601 in https://github.com/PlaceholderAPI/PlaceholderAPI/pull/873
- Fix duplicate expansion loading by @Andre601 in https://github.com/PlaceholderAPI/PlaceholderAPI/pull/866
- Fix NoClassDefFoundError in order for the other expansions to be loaded by @iGabyTM in https://github.com/Pl...
No luck @SlimeDog, please let us know if you can reproduce this with papi 2.11.3
The placeholder was removed.
https://github.com/PlaceholderAPI/Vault-Expansion/blob/c520fa4eb9668acd3fa56579b87176e91361f2a1/src/main/java/at/helpch/placeholderapi/expansion/vault/EconomyHook.java#L20
For example, Romania uses #.###,## while USA uses #,###.##
I can reliably reproduce it, as described in https://github.com/PlaceholderAPI/Server-Expansion/issues/49
Do you think you can zip the files and send them over? @SlimeDog
I don't see why it matters. The issue is resolved with updated PAPI-Expansion-Server-2.6.2.
Because other users are having a similar issue and it is not caused by the server expansion. I need a way to replicate the issue so I can look for a fix.
Sorry, I cannot share a complete server.
Understandable, I thought it is a test server.
The current version of the code automatically converted the identifier from request to lowercase. However, this was not done for the server name, so servers containing a capital letter in the name could not be retrieved.
This actually makes... A lot of sense.
Will get this merged and released today, thank you.
I am having the same issue. Was this ever resolved or did you just give up?
I think i resolved somehow.. that was why i closed it. But i don't remember how and my server is currently not working and the files are stored on "damaged" HDD on linux format ext4 so for now i cannot help because the process of restoring rougly 1TB disk takes some time.
Try to not use the domain but the raw ip of the server.
Mine is pingable, I think my error has to do with the ping coming from an internal docker container. Seems other people have had similar issues.
This is specifically useful for add/remove actions. In my use case the text is always displayed as there's no way to disable it. It'd be great if we could silently add/remove items, so empty string would be returned from placeholder.
I'd imagine it as: %checkitem_remove_mat:COAL,amt:10,nooutput%
This should be done with something like the changeoutput expansion to change the output to an empty string. If you need assistance, visit the HelpChat Discord
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Added an entry for AntiCombatLogging plugin.
Request to revert this merge as the actual identifier for the expansion should never be changed. Which in turn causes stuff to break when reloading.
Request to revert this merge as the actual identifier for the expansion should never be changed. Which in turn causes stuff to break when reloading.
?
Request to revert this merge as the actual identifier for the expansion should never be changed. Which in turn causes stuff to break when reloading.
Do you have proof that reload doesn't work or is just a guess? Iirc the expansions map is cleared on reload.
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
API Bug
What happens?
It seems like creating a relational expansion requires you to have an underscore to be able t...
I believe this to be intentional behaviour.
Normal placeholders have a %<identifier>_<values>% format, and relational ones are no different to this with the only change being prefixed with rel_.
So your issue is essentially that you're not providing any basic value for PlaceholderAPI to recognize.
Thing is, normal placeholders DO work without values, so if this weren't a relational placeholder, and you were to use %distance%, it works, whereas if you don't use the values part in the relational placeholder, it DOESN'T work, which makes it inconsistant.
normal placeholders are %<identifer>_value% (i.e. %player_name%), so if one like %player% works is it not PlaceholderAPI but whatever plugin you use the placeholder in that parses it.
The parsing logic acts like that for all placeholders and relational ones just have the difference of the afforementioned rel_ prefix and that it uses 2 players instead of just one.
Andre is wrong this time. While I agree with him that it shouldn't work if it doesn't have at least one _ to split the identifier from the rest of the arguments, it is currently inconsistent and normal placeholders work without it. I've reported this before in discord but my message got lost to time and other conversations.
Yeah, my bad. Never noticed that the charsreplacer accepts a %identifier% pattern as valid placeholder.
To be honest, the relational placeholder system seems a bit dated in my opinion as the rel_ requirement is weird...
Perhaps merging it and making the CharsReplacer check for if the expansion is a relational one could be useful here to do and get rid of that rel_ prefix requirement...
Tho, at the same time do I fear that it would break existing placeholder expansions that may offe...
Andre is wrong this time. While I agree with him that it shouldn't work if it doesn't have at least one
_to split the identifier from the rest of the arguments, it is currently inconsistent and normal placeholders work without it. I've reported this before in discord but my message got lost to time and other conversations.
I don't mind either or, it's just that what would be nice would be for this to be specified in the wiki and also made consistent.
87cb3ea feat: fetch all expansions - iGabyTM
[PlaceholderAPI/PlaceholderAPI] New branch created: feature/fetch\-all\-expansions
Not gonna lie, I wanted to change this myself a while back but didn't do it. Good thing I'm not the only one who got annoyed by this. ๐คฃ
95786e3 Started working on Folia support - darbyjack
[PlaceholderAPI/PlaceholderAPI] New branch created: feature/folia\-support
Pull Request
Type
- [x] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [ ] Wiki (Changes towards the [Wiki]).
- [ ] Other: __________
Description
Relational placeholders require an underscore after the identifier to be considered valid. For example: %rel_chatchat_% is valid but %rel_chatchat% is not. Normal placeholders did not require this and %chatchat% worked the same as %chatchat_%.
This can be considere...
There are currently no placeholders for the global region(s).
It would be a great addition to the expansion to be able to use data from global regions.
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
Plugin Bug
What happens?
When using %parseother_{offline_player}_{player_online} returns an error and doesnt output...
Hello @ItzRonaldMLG,
The issue you encountered is caused by an Expansion and not PlaceholderAPI itself.
This issue-tracker is reserved for Bug reports and feature requests towards PlaceholderAPI.
Please report this issue to the Expansion's main issue-tracker.
A list of known Expansion repositories and their issue trackers can be found here.
Note
*This is an automated response created by a...
Type
Plugin Bug
What happens?
When using %parseother_{offline_player}_{player_online} returns an error and doesnt output a value.
Expected Behaviour
value "false"
How to Reproduce
Use the placeholder like this "%parseother_{offline_player}_{player_online}" or just %player_online%
/papi dump Output
https://paste.helpch.at/otimonecil
Console Log
https://pastebin.com/G4QRMMmx
Errors
No response
Additional Info
Im using this in another plugin, but every plugin i use t...
[PlaceholderAPI/PlaceholderAPI] New branch created: feat/improve\-placeholderexpansion\-page
[PlaceholderAPI/PlaceholderAPI] Pull request opened: #944 \[Wiki\] Improve PlaceholderExpansion Page
Pull Request
Type
- [ ] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [x] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
Closes N/A
Improves the PlaceholderExpansion page for the wiki by recommending the internal use of an expansion over external use.
3784c1c Don't make a header GitHub... - Andre601
On the double, this is definitely an improvement, though I definitely still think it could be made even more clear not to create external expansions if you're the plugin developer, as they really are intended more for developers wishing to provide additional placeholders for existing other projects.
I also think this would be better split into multiple pages given its length;
- the introduction and common elements
- registering an internal expansion provider
- creating an external PAP...
Some of these examples can get quite long -- perhaps surround with GitHub's collapsible detail elements to make reading this a little easier?
<details>
<summary>Example registration through dependency inejction</summary>
\```java
#foo
\```
</details>
May I suggest adding something even more obvious than this to below the header line?
> โ ๏ธ If you'd like to provide PlaceholderAPI expansions for your own plugin, this is not recommended. Instead, [register an internal expansion provider](#making-an-internal-expansion).
Afaik does GitHub not allow markdown within HTML details, meaning this wouldn't work and would require some additional changes.
I feel like this would be too biased here.
It already states the main cases this type of expansion can be used for, so I think that's fine enough.
It does. Just need a space between the HTML tag and markdown
It does. Just need a space between the HTML tag and markdown
This came up in the HelpChat Discord the other day. We came to a conclusion that automatically updating the baltop is something that shouldn't be left to a PAPI expansion to handle.
Normally the baltop updates when a user runs a /baltop command, with a time limit.
In the discord I suggested using a CommandScheduler plugin to schedule a /baltop force command to be run every x minutes.
Is it as simple as just adding:
if (playTime == 0) {
playTime = user.getBase().getStatistic(Statistic.PLAY_ONE_TICK) / 1200;
}
?
This came up in the HelpChat Discord the other day. We came to a conclusion that automatically updating the baltop is something that shouldn't be left to a PAPI expansion to handle.
Reason being it can't be done every time a placeholder is requested, as the calculations would be way too much to handle since placeholders could be called multiple times per second and thousands of users need to be calculated. It would need a custom scheduler.
Normally...
/papi parse Whiskey %essentials_baltop_player_1% - HalilTest
/papi parse Whiskey %essentials_baltop_balance_formatted_1% - 10
Apologies for the late response.
So the issue I'm facing is reloading an expansion (by reloading a plugin - shutting it down and reregistering) while the server is running results in PAPI not being able to reregister is, thus resulting in it erroring out - and since 90% of the plugins do not actually unregister the expansions themselves, this causes issues.
As for the reasoning behind this issue in the first place, sounds to be more of an issue with the implementing plugin, rather tha...
The issue in your case would more be doing stuff that nobody encourages.
Reloading the server (or in your case individual plugins) is something no plugin dev would recommend to you. And the issues you describe are one reason why.
PlaceholderAPI doesn't monitor plugins that register expansions to then unload them when the plugin itself shuts down. This at most happens with expansions that defined a required plugin (See [here](https://github.com/PlaceholderAPI/PlaceholderAPI/blob/81ef464d...
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
Plugin Bug
What happens?
Reloading a plugin that provides an expansion through [ServerUtils](https://github.com/Fra...
I have had this issue for years and havent bothered reporting it, since installing Papi Essentails, every boot I get hundreads of these messages:
[10:40:35] [Craft Scheduler Thread - 21 - Essentials/INFO]: [Essentials] Found UUID 7cfc8a43-14b5-408d-bae8-8afedd3a692b for player JayKay47, but player already has a UUID (73e1e507-b683-45dd-ae88-ab807f45213e). Not replacing UUID in usermap.
java.lang.RuntimeException: null
at com.earth2me.essentials.UserMap.trackUUID(UserMap.java:155) ~...
Have you consider not reloading plugins?
Have you considered not reloading plugins? Just wondering.
It's already been noted what the general stance is on reloading plugins. Reiterating, it "is generally unsafe and not supported". However, also noted in my post above, it's not the root of this issue. It's that #866 prevents an expansion from registering only if a user attempts to register two expansions with the same id. To me, it makes sense that PAPI does not restrict this and whatever happens afterwards is only on the user.
You state yourself that reloading plugins is "unsafe and not supported". So why do you believe we would want to add some way to allow this unsafe method?
For me personally is it that simple: Reloading plugins isn't good, so don't do it.
Tho, we can't stop you either way...
Also, just to clarify here a bit further (In case some people are confused):
The pull request was made to fix an existing issue where two expansion jars with the same identifier, but different file name could be registered, causing one to override the other.
This had bad side-effects like an older version of the same expansion overriding the newer one, making PAPI think that it is outdated, even tho you got the latest version.
The only other solution I myself could see back then was ...
Pull Request
Type
- [x] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [ ] Wiki (Changes towards the [Wiki]).
- [ ] Other: __________
Description
This pull request prevents loading expansions from folders other than the expansions folder.
In previous versions, you could use path traversal with ../ to load expansions from other directories, e.g. /papi register ../../../world/expansion.jar would load an expansion from the w...
Pull Request
Type
- [x] Internal change (Doesn't affect end-user).
- [ ] External change (Does affect end-user).
- [ ] Wiki (Changes towards the Wiki).
- [ ] Other: __________
Description
This commit adds the environment variable "PAPI_BLOCKED_EXPANSIONS" which can contain a case-insensitive, comma separated list of blocked expansions. Expansions on this list can no longer be downloaded using commands.
By default, all extensions will remain downloadable.
Confirmation
- [X] My issue isn't already found on the Issue tracker.
- [X] My issue is about PlaceholderAPI and not any expansion or external plugin
- [X] The issue isn't already fixed in a Spigot Release or Development Build.
- [X] The Common Issues page doesn't mention this issue.
Type
Plugin Bug
What happens?
- Unloading all placeholders when reloading the "/papi reload" plugin
- No message that...









