#placeholder-api
150650 messages · Page 129 of 151
also download the Ascii expansion
ah 😩
well it's not replacing % but the {brackets}
and I fuvked up
change the second ascii to 124
ok
would there be any other way that wouldn't require an extra expansion to solve this issue?
glhf
yeah 😬
I still don't get it sorry, I tried but I don't find the solution I just need to know what I should use as input
😅
enjoy
hey! do you know what input should I use with this placeholder? worldguard_region_has_flag_pvp
no idea, ive never used wg placeholder
😔 alright thanks
' &#FBE200&l| &fPvp &b%changeoutput_equals_input:_matcher:{worldguard_region_has_flag_pvp}_ifmatch:&aEnabled _else:&cDisabled &m%'
I mean im trying to do a changeout that for example when you enter in a pvp zone it says that the pvp is enabled and the opposite
i'm not even sure what this placheolder output would be
yeah do that
lol
it might just list you all the region with the pvp flag
cuz i don't see how it could understand what region you're talking about
that is the solution thanks
xd

Is it possible, to use placeholder as luckperms-context?
Luckperms context is basicly said "circumstances where something will apply". You're able to bind the permissions to special cases. e.g. the player only has the permission for gamemode, if he is in world XY. I wanna now, if some of you maybe know for an integration of this for Luckperms
https://github.com/LuckPerms/ExtraContexts @languid jasper
Ohhh damn, thank you ^^ didnt know about that one
hello,
is it possible to use placeholder inside of second argument for ParseOther expansion?
%parseother_{player_name}_{player_has_permission_test.permission}%
this does not work, player_name doesn't get parsed
with your expansion works perfectly
oki
player_has_permission...
i tested with custom placeholder, Utils expansion does work, ParseOther does not
oki, weird
maybe it's intended(?) to target usernames specifically and not via placeholder?
%parseother_{player_name}_{player_has_permission_test.permission}%- does not work%utils_parseother:[player_name]_player_name%- works
alright I'll remove it in the next update
jk
it happened with vault_colorprefix
or something like that
just stopped working
but that's ok
now i only need to wait for kangarko to implement sender placeholder in his chcred formats so i can use
%utils_parseother:[sender]_<whateverineedhere>%
😭

🥲
It was actually changed for security purposes, might I recommend to do the same
could at least check the wiki 😉 https://wiki.placeholderapi.com/users/placeholder-list/#parseother
it made sense for parseother because of the widespread usage it already had when we learned about the vulnerabilities
||if people put player_name as an argument for a deluxemenus menu, then it could parse inside of parseother; makes it very easy for somebody to parse/abuse any placeholder||
Tell me how to force JavaScript not to parse the placeholder?
If I write function stat() {return '%javascript_stat%';}
but I don't call it, the %javascript_stat% placeholder is still processed (it writes data every time it is called)
Maybe there is a method similar to this: PlaceholderAPI.parse?
Tell me where to find all PlaceholderAPI methods
I tried it, it doesn't work
outputs empty value
function stat() {return st;}
stat();```
that's... weird
it shouldn't be
it parses %placeholder% before the script runs
but when you separate it...
I'm sorry, this method is still parsed
[06:45:39 INFO]: Javascript expansion v: 2.1.2
[06:45:39 INFO]: Created by: clip
[06:45:39 INFO]: Wiki: https://github.com/PlaceholderAPI/Javascript-Expansion/wiki
var st = сс+'javascript_stat%';
function stat() {return st;}```
this method is still parsed
this returns %player_name%
this returns empty, you never call stat
var сс = '%';
var st = сс+'player_name%';
function stat() {return st;}
stat();
this returns %player_name% for me
when I type /papi parse cj89898 %javascript_test%
do you have an engine defined? @finite imp
the fact is that there is a stat script assigned to it with a placeholder %javascript_stat%
The script contains huge statistics collection, and I need it to work only when I tell it to
The second script %javascript_exdata% writes the result of the first script %javascript_stat% into memory and updates the data from %javascript_stat% every minute
I see
but it doesn't change the fact that your results are somehow different than mine
you are saying the script is parsing %javascript_stat%, right?
even when you seperate it?
This is how it seems to work as it should
a = '_stat%';
return '%javascript'+a;
}```
there is a stat_data.yml file and it is no longer updated
Thanks for the help, but it doesn't work as it should.
Somewhere there is a cache memory of the placeholders themselves
I used the TAB plugin to call placeholders cyclically (for testing) and reload did not help, so I removed the placeholder and put it back in place, everything became
As a result, the placeholder does not work a little correctly
//file statt.js - papi parse cj89898 %javascript_statt%
var st = '%'+'player_name%';
function stat(s) {return s;}
stat(st); // displays %player_name%
//file statt.js - papi parse cj89898 %javascript_statt%
var st = '%player_name%';
function stat(s) {return s;}
stat(st); // displays cj89898
//file statt.js - papi parse cj89898 %javascript_statt%
function stat(s) {return '%player'+s;}
stat('_name%'); // displays %player_name%
@mint fable
//my work for the test was:
//TAB scoreboards: %javascript_statt%
//file stat.js
var statdata = Data.exists('ff') ? Data.get('ff') : 0;
statdata++;
Data.set('ff', statdata);
Placeholder.saveData();
statdata; //for example 23 and growing
//stat_data.yml
ff: 23.0
//file statt.js
function stat(a) {return '%javascript'+a;}
//stat('_stat%');
'1'; //displays 1
//everything works and %javascript_stat% is not parsed
//=====================================
//I change it to
//papi reload
//tab reload
//file statt.js
function stat(a) {return '%javascript'+a;}
stat('_stat%'); //displays 28 >
//'1';
//this is right
//=====================================
//I change it back to
//papi reload
//tab reload
//file statt.js
function stat(a) {return '%javascript'+a;}
//stat('_stat%'); //but statdata continues to grow 36 >
'1'; //displays 1
//for some reason %javascript_stat% continues to be parsed
//stat_data.yml
ff: 36.0
Since I can’t work through the placeholder database, I wanted to use the bikkit methods, but again the problem is that this method gives an error:
var player = BukkitPlayer;
var stplayer = player.getStatistic('DROP_COUNT');
[09:36:45 ERROR]: [PAPI] [Javascript-Expansion] An error occurred while executing the script 'stat
javax.script.ScriptException: TypeError: Can not invoke method [jdk.dynalink.beans.OverloadedDynamicMethod
int org.bukkit.craftbukkit.v1_20_R1.entity.CraftPlayer.getStatistic(Statistic,EntityType)
int org.bukkit.craftbukkit.v1_20_R1.entity.CraftPlayer.getStatistic(Statistic,Material)
int org.bukkit.craftbukkit.v1_20_R1.entity.CraftPlayer.getStatistic(Statistic)
] with the passed arguments; they do not match any of its method signatures. in <eval> at line number 28
what's wrong? help, I want to crash my PC already
oh nice, and I think I'm already not parsing placeholders by default if you just use utils_parseother:[Tanguygab], so Utils > ParseOther still
(jk)
maybe I am actually, I'll double check
yeah I am, I'll change that too
what is the syntax for the uuid of a certain player in an event (for skript variables)
kill: '&c%player% was killed by %killer% &6(%skript_killstreak.{uuid}%)'
Currently the skript_killstreak.{uuid} returns the killstreak of the victim and not the killer
so get killer uuid
for example?
dont know, i dont use skript
So I wanted it to show the speed attribute but it kept giving me a 1.000001 something something I wonder how to round the number
placeholder ?
Is there still a way in the javascript expansion to use PlaceholderAPI.setPlaceholders (so I can dynamically parse placeholders)
PlaceholderAPI.static.setPlaceholders(BukkitPlayer,"%"+"placeholder%");
the first % needs to be separated otherwise it may not parse correctly if you use variables inside the string
ok I never would have figured out that you need to do .static to get the static methods lol
@carmine veldt
please help why is it working, checking two permissions, changing nothing works, who can help if there is a volley.
https://ibb.co/7n4b9YG
I tried that too, it doesn’t work either, you need 2 checks for permission
https://i.ibb.co/xm90knw/222122.png
it's has permission
not has_all_permissions
all requirement types are listed here
can you help please, I don’t know exactly how, what can provide the setting if it’s not difficult that would require 2 permissions for access
I was fiddling around all day yesterday and it didn't work
yes, yesterday I ate ATK too, but nothing worked
can you help please, I’ve probably already made a billion changes, issued these solutions and they are not available..
send your menu file
accept the friend request, I’ll send the file there
hey
guys i wanna something show luckperms for example police group online members like that:
PD Onlines: (Number Of Online Members In Police Group Luckperm)
anyone have idea about that ?
stop pinging everyone
and the placeholder was broken
idk if it got fixed
it wasn't
well it was but the jar hasn't been uploaded to the ecloud for some reason
here it is
go in your /plugins/PlaceholderAPI/expansions folder and replace the old Vault-Expansion.jar by this
ok
guys anyone ?
all of this works as intended
//file statt.js
function stat(a) {return '%javascript'+a;}
//stat('_stat%');
'1'; //displays 1
//everything works and %javascript_stat% is not parsed
//=====================================
//I change it to
//papi reload
//tab reload
//file statt.js
function stat(a) {return '%javascript'+a;}
stat('_stat%'); //displays 28 >
//'1';
//this is right
//=====================================
//I change it back to
//papi reload
//tab reload
//file statt.js
function stat(a) {return '%javascript'+a;}
//stat('_stat%'); //but statdata continues to grow 36 >
'1'; //displays 1
//for some reason %javascript_stat% continues to be parsed
//stat_data.yml
ff: 36.0
For this though, I have absolutely no idea what is going on
because, as you state at the top: the script works
I also think, after looking at it after I re-posted it, that some of the commented out lines you included are incorrect
like this one https://i.imgur.com/SRQYFSM.jpeg
how would %javscript_stat% even get parsed if it's commented out
But if you are literally saying that the EXACT same script functions DIFFERENTLY when you papi reload, tab reload, then I have no idea what is happening
guys anyone know that ? i need it
how do i prevent rounding with the math addon
%math_2_{statistic_player_kills}/MAX(1,{statistic_deaths})%
still rounds with this
(for kdr)
just remove 2_
thats the part that keeps the decimal %math_[precision]:[rounding]_<expression>%
give me a example with spectific number
200/13 =15.38
so %math_2_{statistic_player_kills}/MAX(1,{statistic_deaths})% is right ?
looks right to me but it still returned "15"
try remove 2_, the default value have to be decimal to 5 numbers
didn't NEZ already answer you saying that the belowname doesn't support decimals due to client limitations on <1.20.3?
if you check in /papi parse me %math_... you'll see that the placeholder parses decimals correctly
it's really just MC that didn't support decimals in the belowname number before 1.20.3
how can i use the server placeholder from placeholderapi to get a server that is not the current one max players
i use velocity
Thank you for your response, of course I can record a video, but where should I post it?
I’m shocked that this is happening, but presumably something is being cached and that’s why it works.
Please help me on this topic: #placeholder-api message
blud did not ping a staff member lol
hi
how can i use
anyone know how to get an output like this with the Formatter extension where the decimal stops after 2:
62,676,825,459.56 -> 62.68b
Right now im using %formatter_number_shorten_<number>% and its doing:
62,676,825,459.56 -> 62.67682545955999b
when replying to someone you have the option to ping them or not. If you click reply in the little bar saying Replying to "user" on the far right side it has the @ symbol saying "ON" or "OFF" this option defines whether you are going to ping them or not when sending the message even if you dont actually @"user" them
Cool but can you help me with this
you could use the Pinger expansion with the IP and port of the other server
Tysm
Is it possible to add a cooldown for sell/buy items in the shop?
vault give me this error why [15:56:53 WARN]: A economy plugin from VAULT was not found. The VAULT economy type will not work.
Because you don't have an economy plugin such as essentials like its requesting.
im using vault plugins
Show your plugin list.
Vault is only a bridge between economy plugins (like Essentials or TNE) and plugins that get money info from players (like DeluxeMenus)
Vault isn't an economy plugin on its own, so you'll need to find one online
hey
guys i wanna something show luckperms police group online members like that:
PD Onlines: %luckperm_police_online%
anyone have idea about that ?
Or if there is luckperm itself, send it to me because I did not find it
use the playerlist expansion and create a list for the permission group.police
ok
why is /papi bcparse EthanGarey %pinger_players_ethannetwork.net:25565%
returning 0?
oh wait I fixed it
is there a palceholder in 1.8 to see if player is in water ?
How would I use this to just display days, hours and minutes, not seconds? %server_countdown_<SimpleDateFormat>_<actualdateandtimebasedonsdfspecified>%
dd HH:mm
wait wait
i misunderstood the question
gimme a moment
Or I'm wondering, is there a better way to do a countdown, maybe?
can you tell me what it returns right now exactly? @silk cipher
/papi parse Ibotmealot %server_countdown_dd-MM-yyyy hh:mm_18-2-2024 19:00% shows this: https://cdn.discordapp.com/attachments/857029139672727563/1206744339020124221/image.png?ex=65dd1f3e&is=65caaa3e&hm=ee1fd64e661920a20b16028739dfece7f149d15cc0827b02ec6523250bb1b33b&
try this, download formatter
%formatter_text_replace_{{r= \d\ds$}}__{server_countdown_dd-MM-yyyy hh:mm_18-2-2024 19:00}%
@silk cipher
That worked, thank you ❤️
[01:03:03] [Server thread/INFO]: [PlaceholderAPI] Placeholder expansion registration initializing...
[01:03:03] [Server thread/INFO]: [PlaceholderAPI] Fetching available expansion information...
[01:03:03] [Server thread/ERROR]: [PlaceholderAPI] Failed to load class files of expansion.
java.util.concurrent.CompletionException: java.lang.UnsupportedClassVersionError: at/helpch/placeholderapi/expansion/vault/EconomyHook has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 60.0
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314) ~[?:?]
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1766) ~[?:?]
at java.lang.Thread.run(Thread.java:831) [?:?]
Caused by: java.lang.UnsupportedClassVersionError: at/helpch/placeholderapi/expansion/vault/EconomyHook has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 60.0
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:1010) ~[?:?]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[?:?]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:512) ~[?:?]
at java.net.URLClassLoader$1.run(URLClassLoader.java:420) ~[?:?]
at java.net.URLClassLoader$1.run(URLClassLoader.java:414) ~[?:?]
at java.security.AccessController.doPrivileged(AccessController.java:691) ~[?:?]
at java.net.URLClassLoader.findClass(URLClassLoader.java:413) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:586) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:519) ~[?:?]
at me.clip.placeholderapi.util.FileUtil.findClass(FileUtil.java:62) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:421) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1764) ~[?:?]
... 1 more
[01:17:18] [Server thread/ERROR]: [PlaceholderAPI] Failed to load class files of expansion.
java.util.concurrent.CompletionException: java.lang.UnsupportedClassVersionError: at/helpch/placeholderapi/expansion/vault/EconomyHook has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314) ~[?:?]
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1702) ~[?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.lang.UnsupportedClassVersionError: at/helpch/placeholderapi/expansion/vault/EconomyHook has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:1017) ~[?:?]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) ~[?:?]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:555) ~[?:?]
at java.net.URLClassLoader$1.run(URLClassLoader.java:458) ~[?:?]
at java.net.URLClassLoader$1.run(URLClassLoader.java:452) ~[?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at java.net.URLClassLoader.findClass(URLClassLoader.java:451) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:589) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?]
at me.clip.placeholderapi.util.FileUtil.findClass(FileUtil.java:62) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:421) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700) ~[?:?]
... 1 more
not working
you are running your server with java 17?
Hello! I am trying to check if server is online with %pinger_online_ip% but even if the server is running I got "disabled" message. As I understand that is cause of closed ports. How can I fix it or are there another placeholders to check if the server online?
The port has to be open for the server to be up and running and joinable. Your issue is not with the ports but most likely the IP
how can I make a shop (plugin used playerpoints)
I want to make a custom shop with a custom order
can i be helped?
How to CheckItem Enchantments (Unbreaking 255)
%checkitem_inhand,enchantments:unbreaking=255%
That checks for the item in hand (both off hand and main hand)
And then checks if it has enchantments unbreaking 255
@carmine veldt How I could register on ecloud?
Do you have an expansion ready to publish? @lean temple
is there a palceholder in 1.8 to see if player is in water ?
Why i download?
What?
/papi ecloud download Player
/papi reload
Hello, I am currently having a big problem with the PlaceHolderAPI plugin. I'm close to killing myself. I installed the Statistic 2.0.1 version, but some placeholders do not work properly. For example, the one that counts deaths works, but the one that counts kills does not work. I receive an unknown placeholder message. It directed me to a site, but I could not understand much of anything on the site. I need help urgently, please help, thank you.
Oh yea, it did work thanks!
Is there a placeholder API for bungee so that e.g. syncbungee plugins have the correct placeholders in the tab list?
I know what placeholder is, I already use it, but when I use it, it gives an unknown placeholder error and sends me to the help site.
send a screenshot of the result of /papi parse me %statstic_player_kills% in the chat
?imgur
I tried this too, it says unknown placeholder and it sends the site link again.
what's your server version?
1.19.4
are you on Spigot, Paper or another fork?
and can you send a screenshot of the message in the chat?
I'm not at the computer right now but I can upload a screenshot tomorrow but I'm using paper as a fork.
Does anyone know if a papi expansion allows to transform an input that is not fully made of numbers, into something else ?
like if input is !abcd4efg%, transform it into 0
if input is 4, don't do anything
Alternatively, something that could automatically transform a text of a specific number of caracter into something else could work in my case 🤔
i've searchhed a bit on the wiki with no success, since my request is very specific ahah
check general-plugins-2
Hello ! Im using Javascript-Extension and I have a question, is it possible to have the result of a Placeholder for a specific player.
I have found this code:
var hasKit = PlaceholderAPI.static.setPlaceholders(BukkitPlayer, "%" + placeholder + "%");
but it take the player who "execute" the placeholder..
I have found this code(https://github.com/PlaceholderAPI/Javascript-Expansion/wiki/Community-Scripts#checkremove-item)
var vbukkit = org.bukkit.Bukkit;
var playerArg = arg[1];
var player= vbukkit.getPlayer(playerArg);```
But when I copy this code, I have an error who said that org. is not found.. Any idea ? ^^
BukkitServer.getPlayer(args[1]) instead of BukkitPlayer in the PlaceholderAPI.static.setPlaceholders
function randomjobs() {
if (args.length === 1) {
const metiersString= PlaceholderAPI.static.setPlaceholders(BukkitServer.getPlayer(args[0]), "%jobsr_user_jobs%");
const metiers = metiersString.split(',');
const indexAleatoire = Math.floor(Math.random() * metiers.length);
const metierAleatoire = metiers[indexAleatoire].trim();
return metierAleatoire;
}
}
randomjobs();
oh and since you're using QuickJS you don't need the static
so just PlaceholderAPI.setPlaceholders
Thnks u a lot !
who can helo me with this?
hours of the players are not showing up, and the money is only the money they have out of the bank
i want to add both in and out
Hello, is there a placeholderapi extension that could display** true or false**, with a range between 2 values?
Like :
%checkrange_[placeholder]_[min_value]_[max_value]%
display whatever you want
Yes but I can't put for example that it must be between 1 and 30
I can't do a range number
default value is 0 ?
you cant do <= 30 ?
I want the value of the changeoutput to display the match only the value is between 50 and 100 for example
or you can make a javascript
%utils_parse_changeoutput_>=_input:{PLACEHOLDER}_matcher:MIN-VALUE_ifmatch:{changeoutput_<=_input:{PLACEHOLDER}_matcher:MAX-VALUE_ifmatch:yes_else:no}_else:no%
/papi ecloud download Utils
/papi ecloud download ChangeOutput
/papi reload
delete % after the first no

Incredible, thx !
how do i add balance to my simplescore scoreboard
Is it really necessary to spam FOUR CHANNELS @silk hull ?
sorry i just wanna have the anwer fast
@silk hull Unknown expansion.
any1 know placeholders for top 10 blocks broken?
Hey, i am trying to upload a new expansion to ecloud, but i forgot my password i think 💀
this is what i want to put on ecloud
nvm i didn't set the password myself i was provided one by funnycube lol 💀
can you verify it?
isn't there Kyorify already?
idk what that is but i created this to fix an issue i was facing when configuring a plugin
i tried to find and found none so i made my own
well at least replacing & isn't required anymore
Kyorify does that too
Hello I have the following javascript
any1 know placeholders for top 10 blocks broken?
?codeblocks
`var exp = parseInt("%vault_eco_balance_fixed%");
function formatNum(num){
var suffixes = ['', 'ഫ', 'ഭ', 'മ', 'ബ'];
var decimals = 2;]
for(i=0;i<suffixes.length;i++){
if(num>=1000){
num = (num/1000);
} else {
return num.toFixed(decimals)+suffixes[i];
}
}
return (num*1000).toFixed(decimals)+suffixes[suffixes.length-1];
}
`
How do I make it replace the dot with a unicode?
`var exp = parseInt("%vault_eco_balance_fixed%");
function formatNum(num){
var suffixes = ['', 'ഫ', 'ഭ', 'മ', 'ബ'];
var decimals = 2;
for(i=0;i<suffixes.length;i++){
if(num>=1000){
num = (num/1000);
} else {
return num.toFixed(decimals)+suffixes[i];
}
}
return (num*1000).toFixed(decimals)+suffixes[suffixes.length-1];
}
formatNum(exp).replace('.', "⒑");`
doesn't seem to work
what does it output in chat?
Someone know placeholders for top 10 blocks broken?
idk it says on the README of the source code that you need to change & to § lol
it's funny that due to the name i wasn't able to quickly find it
well MiniMessage uses Kyori, so Kyorify seems like an adequate name
yeah but Kyori (Adventure) has many serializers, not just MiniMessage
i didn't think of searching that
🤷
The vault expansion lets you customize the prefixes btw
he wasn't using the script at all 😅
he did use the vault prefixes
the issue was that somehow, String's replaceCharacters placeholder doesn't support replacing .
I forgot that the prefixes were set from vault and not from that script. Tanguygab helped me sorting it out. Thanks for all the support
Not sure if a placeholder api issue or CMI, but when players use /cmi msg, they can use placeholders which return the results. Which is an issue when parse other, and data related placehodlers, like IP. Is there a permission to prevent player using placeholders?
no, that sort of issue should be patched within cmi
it shouldn't be parsing placeholders from player input
ok thanks
I downloaded the placeholderAPI plugin In TitleManager I inserted the required Placeholder I go into the Game I write /papi ecloud download OtherPlayer then /papi reload and /tm reload and nothing works
Should I modify it like that in the JSext cfg folder
Hey guys, so, I have a purchasable rank on my server where I grant it with the following command lp user <player> parent addtemp patron 10d accumulate server=survival, and I want to display the formatted time left in a DeluxeMenu, and then have it say something like "You do not have this rank. Click here to purchase" if they don't have it.
What would be the easiet way of doing so?
I know lp had a placeholder for that
luckperms_group_expiry_time_<group>
for the "You don't have this rank" msg, you could make 2 items, one with a view requirement that checks if you have the group and shows you the expiry time placeholder, and another item with a lower priority that displays instead telling you to buy the rank
Hey can someone verify my expansion lol https://api.extendedclip.com/expansions/minimexpansion/
Does it add anything over the already existing kyorify expansion? @timid fox
yes, it also supports colors with ampersand
i did not know kyorify existed lol
kyorify also supports ampersand from what i can tell
we dont really want to verify this as its just a duplicate expansion
just tried and it does yeah
even it didnt support ampersand, we would prefer a PR to the kyorify expansion and have that updated instead of new expansions just to add little things here and there
Won't be verifying it since kyorify was already pre-existing.
how can i get
the unit time of player
playing?
unit time?
what is the placeholder
like how many players are in queue of axepvp duels
in strike practice
plz help
like how many players are in queue of specified kits
Understandable, I also wanted to hear people's opinion about my code, it used to be horrible in the past, and I think I improved it over time
Barry it was a reply
papi support skript?
Hi! I've implemented internal expansion as showed in the wiki, but when i type /papi reload - only expansions from ecloud are loaded, mine is unloaded and placeholders aren't replaced. Is this intentional?
override the persists method and make it return true
Thanks!
how can i create a checkInterval the my placeholderapis?
Lastest placeholder api work for folia
Hello
Why placeholder is not not working on folia server please 🥺
Tell it work or not
How can i make hex colored %player_name% to show rgb names?
In deluxemenus
use this format &#rrggbb
it doesnt work
i can send u screen
i want it to be rgb
gradient color placeholder
use moregradients expansion
or this thing https://www.birdflop.com/resources/rgb/
maybe try /papi ecloud download [placeholder]
and then /papi reload
if it doesnt work try to restart server
Placeholder is not working not showing in plugins
/plugins command
I can't do papi as placeholder api is not running
Is there any way to fetch prefix from luck perms to Tab list
Even to chats
papi doesnt support folia, there is an open PR for it, but is currently unsupported
u can build the jar urself with this PR https://github.com/PlaceholderAPI/PlaceholderAPI/pull/980
hey, Is there PlaceholderAPI for folia ?
your answer is in the message literally above yours
lol
thanks, sorry ❤️
Is there a placeholder gets a list of numbers and sorts them from smallest to biggest
list of numbers from where @plush dove ?
Maybe something like [10, 736, 625, 84, 7]
but like
are you the one providing them? @plush dove
are they returned in a placeholder?
where are they coming from
a placeholder
i don't see one, no @plush dove
javascript tho
if you want
var arr = JSON.parse(args[0]);
arr.sort();
arr.toString();
should work
awesome lemme try it
%javascript_sortNumbers_10,254,432,2,34%
what would I be parsing?
currently returns blank if I parse that
oh I did it with the []
@plush dove
or you can edit the script and add the [] in there
JSON.parse("["+args[0]+"]");
👍
Please tell me how to make the statistics placeholder display in the chat not its own played time, but the played time of the person you targeted?
ping me pls
Is there any placeholder so that the server can calculate how many times a player has killed a certain mob?
Is for rankups
Also amount of player kills and deaths.
%statistic_player_kills%
%statistic_deaths_%
try parseother
Is there a placeholder for getting the mobs current health and mob max health?
What mob?
like, a mob you are fighting?
yes
example please
is there a placeholder for getting dd/mm/yyyy ?
%server_time_<format>%
is there any chance you can do something like %playersname_luckperms_prefix% you will enter the players name and it will tell you the value?
not working
do you have installed server extension /papi ecloud download Server
yes
then i dont know
is there any chance you can do something like %playersname_luckperms_prefix% you will enter the players name and it will tell you the value?
just restarted the server! please wait
thanks :)
@junior musk https://imgur.com/a/dmdgiY1
such as the one you were asking for here
is it . or /?
you can use the one you want
help pls
%parseother_{target}_{placeholder}%
so for example %parseother_{DuneSciFye}_{player_name}% would parse the username for the player DuneSciFye
Hey CJ do you have time to help me out here again 😅 tried chatgpt but no luck
uh idrk what's going on @plush dove
I literally googled all 3 lines of code
how to parse array from string javscript
how to sort array javascript
how to turn array to string javascript (okay this one I knew already)
maybe try it in a function with a return value?
shouldn't make a difference, but
function parseArr(input){
var arr = JSON.parse(input);
arr.sort();
return arr.toString();
}
parseArr(args[0]);
@plush dove
🤷♀️
yea still returning blank
Send js code and the problem
does it look right?
if args[0] is [24, 9787, 12, 38] (string)
What’s your full block of code? And how are you calling it
that is the entire code, being used in the javascript expansion
%javascript_test_[24, 984, 12, 38]%
so args[0] gets parsed as [24, 984, 12, 38]
the return value for the js placeholder is the last line of the javascript
so in this case, parseArr(args[0]);
this should have worked the same way though
i would debug @plush dove
Are you expecting strings? Because that’s an array of Numbers
Have you tried triple equals instead
array === [1, 2, 3, 4]
args is an array of string arguments
Gotcha
args[0] literally would be [24, 984, 12, 38] (as a string)
Ahhhh
Right
function parseArr(input){
return input;
var arr = JSON.parse(input);
arr.sort();
return arr.toString();
}
parseArr(args[0]);
@plush dove debug each line like this (add return for each value testing one at a time)
Is there any error messages
You are returning right away
gl, i'll be on some other time if you don't get it working
for debug purpose*
Guys how to download this placeholder %rewardslite_playtime_short%
@mint fable Unknown expansion.
it might be included in the plugin @polar knoll
/papi parse <player> %rewardslite_playtime_short%
yep
You could check if it’s an issue mutating the variable by literally just return JSON.parse(input).sort().toString
()
I never registered the javascript in javascript_placeholders.yml
:l
https://pastebin.com/5QvbtN2M it's throwing this error now when parsing %javascript_sortNumbers_[0,4,5,32,3]%
Iirc args are split by comma, so this won't work 🤔
yeppppp just saw that
pog chatgpt got it working
Hmm the commas going to be an issue
You can use another separator and then replace it within the script
%parseother_{username}_{statistic_hours_played}%
when I wrote this, my placeholder stopped displaying
I need the placeholder to display not my played time, but the player I'm targeting
/papi parse <player> %rewardslite_playtime_short%
i want %rewardslite_playtime_short% in the scoreboard
But its say rewardslite_playtime_short not the placeholder
pls help(
I guess u need to use {player} not {username}
dont working
did you download /papi ecloud download parseother and actually put a username rather than username?
do /papi parse me %parseother_{username}_{statistic_hours_played}%
- Yes
- I need the placeholder itself to determine the name, for example, I point at a person and it displays how much he has played.
void is displayed
try your name in the username field
Yes, then everything is correct. But it doesn't work the way I need it. I need the placeholder to determine the name itself
try {{your_placeholder_for_username}}
double brackets
another thing you can trry is %parseother_unsafe_{username}_{statistic_hours_played}%
I have no idea what that does but it might solve your problem
void is displayed
%parseother_{{statistic_hours_played_for_username}}% right?
if so, then it displays an error
%parseother_{{your placeholder}}_{statistic_hours_played_for_username}%

it's either
%parseother_{PLAYER NAME DIRECTLY}_{statistic_hours_played}%
or
%parseother_unsafe_{PLACEHOLDER RETURNING PLAYER NAME}_{statistic_hours_played}%
so for example: %parseother_{Tanguygab}_{statistic_hours_played}%
or %parseother_unsafe_{player_name}_{statistic_hours_played}%
if you're using DeluxeMenus arguments as the name, use %parseother_unsafe_{{ARGUMENT NAME}}_{statistic_hours_played}% with the doubled brackets like Dune mentioned, but that's only necessary for arguments (because they aren't PAPI placeholders)
and you)!
is that meant to say thank you? 🤣
I think their 1st msg got deleted because of the caps 😅
so it was a "thank you" to me, and "and you" to you
1s
plugin: Rewardslite
Placeholder: %rewardslite_playtime_short%
@junior musk this
The time
Its work
But in the sidebar doesn't work
@junior musk he say the playtime like:
/papi parse natro %rewardslite_playtime_short%
say: 49m, 41s
which scoreboard plugin are you using?
1s
Stats Scoreboard plugin
Oh
I need to use the placeholder?
Or not
well yeah
I mean use in the scoreboard%rewardslite_playtime_short%
well that's what you want, no?
1s
well, you have to use placeholders for them to work ¯_(ツ)_/¯
i use it but he say rewardslite_playtime_short
you forgot the %% around the placeholder
No
I type it right and 3 times
And edit them like %{player}_rewardslite_playtime_short%
And more
But its work now 
🤷
Nah
I lost 7hours in this
Do u know how to make them pixel? @junior musk
Small and pixel
Some server do it
But i don't know how
Okay thx
ooh true, 1 line vs 3 lol
@plush dove you get this workin?
I was!
var numbersArray = input.slice(1).split('|').map(Number);
var sortedNumbersArray = numbersArray.sort(function(a, b) {
return a - b;
});
return "|" + sortedNumbersArray.join('|');
}
parseArr(args[0]);```
that's the final code
super messy
but it's whatever 🤣
Cool
How can i ban a 10 year old kid?
/ban
seem like pareother dont work with deluxemenus's meta
nah, my bad
%utils_parse_math_0_{parseother_{{player}}_{griefprevention_remainingclaims}}+{deluxemenus_meta_chuyen-block-amount_INTEGER_0}%
hmm...
uh
maybe utils shortcut can help
I don't think you can do that with Parseother
yeah
though just use Utils' parseother feature at this point
uh
actually it might be the same thing for my parseother lol
your utils's parseother weird
%value% :?

@junior musk going to fix this ?
?
that is output from utils's parseother
oh yeah, that's what I was saying
won't work either
though you could make a shortcut

@junior musk 
%utils_shortcut_parseother:TTA_gaf_1:{griefprevention_remainingclaims}% = 132
%utils_parse_math_0_{utils_shortcut_parseother:TTA_gaf_1:{griefprevention_remainingclaims}}+0% = 80
ok, i fixed it
not what I expected but sure
Hey Tanguy, i'm still having a bit of trouble with utils placeholder shanenigan, following our last conversation if you can remember
short reminder : i made a utils placeholder so that it cover the case where if a placeholder is not loaded (=appears as text instead of giving the expecting value), it replaces the whole missing placeholder text, including the % signs, into a 0
it looks like this
%changeoutput_equals_input:{mmocore_cooldown_bound_{0}}_matcher:\{ascii_123\}mmocore_cooldown_bound_{0}\{ascii_125\}_ifmatch:0_else:{mmocore_cooldown_bound_{0}%
and then i wanted to put this utils shortcut into another utils shortcut, like so
%changeoutput_equals_input:{mmocore_bound_{0}}_matcher:noskill_ifmatch:0_else:{utils_shortcut_cdfix:{0}}%
"cdfix" is the name of the first placeholder posted just above this one
but it doesn't work, value get stuck on 0 even after the placeholder is loaded and gives normal output value
/papi parse both placeholders
any idea where i messed up?
kk
also parse %mmocore_bound_{0}% with the value you used instead of {0}
and maybe send your PAPI config just in case
?paste
ahah no no sorry i had a quick work emergency
freelance life do be like that sometimes
the cdfix placeholder is returning me error, im trying to figure out why
(i changed all the {0} into 1 before parsing it ofc)
send the error
PercentSign expansion?
does it show in /papi list? might not even be a thing but it looks weird
nope
it looks like the ascii expansion is struggling somehow?
if there's any other placeholder i could use to replace an entire output by something else i guess it could work
send /papi dump
oh wait
it's normal
the placeholder isn't being parsed in Utils anymore so the \{ & \} will break
%utils_parse_changeoutput_equals_input:{mmocore_cooldown_bound_1}_matcher:\{ascii_123\}mmocore_cooldown_bound_1\{ascii_125\}_ifmatch:0_else:{mmocore_cooldown_bound_1}%
ahhh alright, i knew about the {0} but not the \
okay it gives 0.0 which is the correct value (cooldown remaining for a skill)
if skill is in cooldown, value is updated (6.2 for example)
didn't you say you had a shortcut for that though?
you mean the second utils shortcut? yes
this
doesn't this have a shortcut?
this one you just pasted is just a failsafe, because when a player login, mmocore does not load the skill cooldown placeholder right away, so it returns an error
yeah but why'd you parse it directly and not just /papi parse me %utils_shortcut_<name>:1%? 😅
i forgor

does it matter ?
also check %mmocore_bound_1%
send your PAPI config
i guess you meant mmocore_cooldown_bound_x, which output the expected value
no, this one
it gives the name of the skill, i don't understand why you're asking me this one
in case it might have returned noskill 😅
ah yeah no
so this doesn't return anything ?%changeoutput_equals_input:{mmocore_bound_{0}}_matcher:noskill_ifmatch:0_else:{utils_shortcut_cdfix:{0}}%
it return noskill only if i have nothing bound of the first "skill slot" of my plugin, which is clearly not the case
correct
like nothing as in an empty line in chat
no error whatsoever
/papi parse me %utils_shortcut_cdfix:1%
that's what i did yes
this one returns nothing?
but it's used in here
i know, hence my struggle
papi dump?
/papi parse me %changeoutput_equals_input:{mmocore_cooldown_bound_1}_matcher:{ascii_123}mmocore_cooldown_bound_1{ascii_125}_ifmatch:0_else:{mmocore_cooldown_bound_1}%
expected output, 0.0
when you write /papi parse me %utils_shortcut_ (don't press enter), do you see cdfix being suggested?
nope, i only have othermath suggested
o
and <name>
/papi reload ?
or wrong PAPI config.yml file maybe?
from a different backend server I mean
does it show cdfix & noskillcd_check now?
nah
O_O
i know right 🙃
not sure if checking the autofill is a good way of checking for error tho
if it's not showing up in there, it means the shortcut wasn't registered
yeah try that
what the fuck is going on
now when i re-add my utils shortcut and reload papi, the whole config file get regenerated completely
oh shall i restart the server to regenerate the config file perhaps?
i just deleted it and /papi reload
seems fine
💀
wait now i'm getting errors when parsing the two shortcut
the struggle aint over
o no i'm getting console spammed
send the errors
wait im gonna update all my expansion and check if i forgot anything important from my og config file first
send the error ;-;
it was a happyhud error
o
(which is related to papi but it's on my side for this one)
they appear but gave me internal error
lemme update everything and do a clean server start
send that error
i will once i reboot the server
;-;
k im back
updated all the expansion i had, regenerated config.yml, and added back the utils shortcuts
i don't get errors after reloading papi, but now both shortcut gives me error. this is the error for the cdfix one https://paste.helpch.at/ipovoyolav.rb
again with the 123\
i do have the doubled \ in the shortcut however
noskillcd_check: "%changeoutput_equals_input:{mmocore_bound_{0}}_matcher:noskill_ifmatch:0_else:{utils_shortcut_cdfix:{0}}%"
cdfix: "%changeoutput_equals_input:{mmocore_cooldown_bound_{0}}_matcher:\\{ascii_123\\}mmocore_cooldown_bound_{0}\\{ascii_125\\}_ifmatch:0_else:{mmocore_cooldown_bound_{0}}%"```
make a random new shortcut, call it test or smth, test: "\\"
then do /papi parse me %utils_shortcut_test%
output is test: \
in chat?
yes
I'm not sure what the issue is
okay, other idea
can mmocore_cooldown_bound return a number?
yes, it SHOULD return a number
no
nice
"%changeoutput_>=_input:{mmocore_cooldown_bound_{0}}_matcher:0_ifmatch:{mmocore_cooldown_bound_{0}}_else:0%"
for the cdfix shortcut i presume
yeah
great
what did it do exactly?
noskillcd_check works too
instead of checking if the placeholder returned itself
perfect
ahhhhh yes that's what i wanted in the first place
that way i don't even need the ascii expansion
yeah
now i just need to be sure it actually works as a failsafe when a player login and the placeholder is not loaded
nope, still happening
math error yes, because basically the hud is trying to do a math calculation with the mmocore cooldown bound placeholder
but because the placeholder aint loaded, it's not a possible math calculation
Why do I get this:
With LuckPerms prefix on %vault_prefix% as example
are you sure you're using the changeoutput/utils shortcut?
yes, lemme doublecheck
the placeholder giving out the error is %math_0:_{utils_shortcut_noskillcd_check:1}+1%
/papi parse me %changeoutput_>=_input:{mmocore_cooldown_bound_1_matcher:0_ifmatch:{mmocore_cooldown_bound_1_else:0%
I removed the } on purpose (to simulate the placeholder not being loaded)
gives out {mmocore_cooldown_bound_1

well that wasn't expected lol
okay, other idea
/papi parse me %changeoutput_>_input:{mmocore_cooldown_bound_1_matcher:0_ifmatch:{mmocore_cooldown_bound_1_else:0%
No ending }}?
it's on purpose
Ah alright
yeah still to try
gives out 0
finally
just cuz of the equal sign?
yeah
apparently ChangeOutput defaults the placeholder to 0 if it isn't valid instead of making the check fail
Hey, when i use %vault_prefix% on LuckPerms it doesn't work
This is my code:
players.sendMessage(PlaceholderAPI.setPlaceholders(player, OorlogSimulatie.instance.kgetConfig().lobby_StaffShout)
.replace("%player%", player.getName()).replace("%message%", (player.hasPermission("os.colorchat")) ?
ChatColor.translateAlternateColorCodes('&', e.getMessage()).substring(1) : e.getMessage().substring(1)));```
use the ChatColor.translateAlternateColorCodes outside of the PlaceholderAPI.setPlaceholders
I'll try that thank you
aaaaand no error when logging in
thank you so much! couldn't have done it without you for sure
and ascii expansion => 🚮
Still doesn't work or I am doing something not right:
for (Player players : Bukkit.getOnlinePlayers()) {
String message = e.getMessage();
String format = PlaceholderAPI.setPlaceholders(player, OorlogSimulatie.instance.kgetConfig().lobby_StaffShout
.replace("%player%", player.getName()));
if (player.hasPermission("os.colorchat")) {
format = format.replace("%message%", message);
} else {
format = format.replace("%message%", ChatColor.translateAlternateColorCodes('&', message));
}
players.sendMessage(format);
}```
I meant have ChatColor translate the output of PlaceholderAPI.setPlaceholders
you're only parsing the msg right now, not the format
for (Player players : Bukkit.getOnlinePlayers()) {
String message = e.getMessage();
String format = PlaceholderAPI.setPlaceholders(player, OorlogSimulatie.instance.kgetConfig().lobby_StaffShout
.replace("%player%", player.getName()));
format = ChatColor.translateAlternateColorCodes('&', format).replace("%message%", message);
if (player.hasPermission("os.colorchat")) {
format = ChatColor.translateAlternateColorCodes('&',
}
players.sendMessage(format);
}
I think that should do it
getting the format, parsing placeholders in it, parsing colors, replacing the %message% placeholder, checking if player has the os.colorchat permission and parsing colors again if yes
The last line is not fully filled: format = ChatColor.translateAlternateColorCodes('&',
I think you meant this right? format = ChatColor.translateAlternateColorCodes('&', message);
Thank you
oh mb
No problem man
nu, format instead of message
otherwise it'll yeet the entire format 😅
Ah yes I see
I'll try this
But the weird thing is, this worked for me before
And since a year or so it doesn't
that's because PAPI doesn't parse colors anymore
it used to, but that was removed in like 2.11.3 or smth
almost, .2
-> %utils_default:0_mmocore_cooldown_bound_{0}%
https://api.extendedclip.com/expansions/utils/versions/utils-109/
@bronze shell
what does it do?
automatically replace a placeholder into something else if the placeholder is not working?
that's amazing! thank you
...but the current version i have is already working, and i'm already using changeoutput for something else anyway so i'm not gonna change my product for now ahah
but thanks for keeping me informed of it
Why does "/papi ecloud download skript" not work?
It just says "Failed to find an expansion named: skript".
So when is support comming for folia
I see. Thanks!
um, using Math placeholder, how do I define the precision?
it returns me ex. 2.000 for sum operation, instead of just 2.
the docs dont seem up-to-date
%math_0_<expression>%
%math_0_{server_online_SurvivalWorld}+{server_online_SurvivalWorld_nether}+{server_online_SurvivalWorld_the_end}%
it is up to date https://wiki.placeholderapi.com/users/placeholder-list/#math
yeah
The provided value was invalid
/papi parse me %math_0_{server_online_SurvivalWorld}+{server_online_SurvivalWorld_nether}+{server_online_SurvivalWorld_the_end}%
lol
is there more?
can't send ss
?imgur
ik
?paste
cba
the fuck
?paste
Does anyone know if a placeholder exists that detect if the player is "freezing" (through powder snow or any other mean)? I searched already but with no success
imgur sucks ass, use imgbb
?paste
I cant paste image wat
I don't think there's one atm
crap
with
/papi parse M0dii %math_0_{server_online_SurvivalWorld}+{server_online_SurvivalWorld_nether}+{server_online_SurvivalWorld_the_end}%
I get:
The provided value was invalid!
Reason: Too many numbers or variables
without the _0_ it works fine
/papi info Math
just returns with 2.000 instead of 2
which version?
registered
Andre_601
1 0 7
I have a question, how can I put an image from a server file as a placeholder?
Is there any placeholder that shows player kills?
Try %statistic_kill_entity:player%
But you need do this first:
/papi ecloud download Statistic
/papi reload
I solved it
okay
And I asked wrong question 💀
oh okay 😂
I have a problem with the player placeholder because every time I restart the server the version of it resets to 1.0 and then doesn't work.
you have some weird plugin that is overriding the player expansion
I've seen like 2 or 3
the devs clearly don't know how to properly hook into papi
Send a dump I can take a look
Thx, this is after a restart: https://paste.helpch.at/ebibidunuj
i believe it's animabossbar @astral ferry
Okay i try it
Okay thank you 😄
Nice it works 🙂
nice
hi
Is there a placeholder that displays an image in the ranges?
For papi checkitem, any way to check the slots of opened chests?
Resent Message in dev channel"
Hello, I had a very stupid question..
Whats the placeholder used for custom backward countdowns timers like it starts from 59 minutes and goes all the way to 0
mastercooldowns
hi, i have a problem with
[18:11:29 ERROR]: [PlaceholderAPI] Failed to load expansion class ConfigExpansion - One of its properties is null which is not allowed!
who can help?
thats not all errors, its one of 5
i can give you link that can show you all the problem at host (its a website)
If anything, i'm sorry for my english, but I'm russian
deleting the message makes it worse fyi 😉
It just gives me a ghost ping with no message for me to find 🙁