#placeholder-api
1 messages · Page 198 of 1
I see there is a AutoRank expandion, and I did plan on using the Progress expansion, but it looks like there isn't a current/to value to use to create it.
hello I have a problem in the console and I don't know how to fix it, can someone help me?
https://paste.helpch.at/dunovekuga.sql
thanks
is there a placeholder for damage blocked by a shield?
Hello. Who can help me with the placeholder? If it's easy enough to replace a simple placeholder, then I couldn't try as much as I tried. LuckPerms has a placeholder showing how long before the permission expires. I need to replace h/m/s with translation.
javascripts/time.js
var placeholder = "%luckperms_inherited_expiry_time_1rewardtaken%";
UPD: i used that https://github.com/ZeromaniacMc/LuckPerms-Time-Placeholder-Script
Hello I am trying to add two placeholder integers together in a hologram, I have the math extension for papi but I dont know what to do next
%math_{placeholder1}+{placeholder2}%
is it a limit if two placeholders? this just returns a zero
%math_{server_online_IridiumSkyblock}+{server_online_IridiumSkyblock_nether}+{server_online_IridiumSkyblock_the_end}+{server_online_skyblockhub}%
I dont even know what to say other than im really dumb, I was making file changes to the wrong server 🤦♂️
it works
thank you
is there a way for me to center a placeholder?
hello, how to put a placeholder inside a placeholder pls?
how can I make my expansion compatible for this
up
%placeholder_{inner_placeholder} would be the format
to make ur expansion allow inner placeholders, call PlaceholderAPI.setPlaceholders(Player, String)
so PlaceholderAPI#setPlaceholders need to be called in my plugin, not the expansion?
sorry, setPlaceholders should be called from ur plugin, and setBracketPlaceholders should be called from within ur expansion
so it's from the expansion within %%
and not the expansion inside {}
bruh it's an itemadders issue
Are you talking only about server time and player placeholders or luckperms n gadgetsmenu too
how do i show name of player?
got it
playename
tq
and what is the place holder for showing day only day?
hi! is there a way to view all the added placeholders?
@loud grotto do mean like this https://api.extendedclip.com/all/
it's not exactly what i meant, but thanks!
pick the plugin and it will give you list of placeholders
i got an error with papi " Failed to load class files of expansions" i have to reload papi manually everytime the server starts
i have placeholder permission count
for my one of my alt is working
is parsing
for second alt is not parsing
why ?
looks like this
is it your expansion @simple nova ?
I found it on the ecloud
i saw my alt on second server online
so basically it was on 2 servers same time
duno how
the dev of my bungee fork
said i have to update my modules
duno what it means
after restart
its working now
but it was weird
v weird
do u know what modules is in bungee ?
no
[16:21:36 ERROR]: [PlaceholderAPI] failed to load class files of expansions
java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: com/massivecraft/factions/RelationParticipator
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?]
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760) ~[?:?]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?]
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?]
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?]
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?]
Caused by: java.lang.NoClassDefFoundError: com/massivecraft/factions/RelationParticipator
at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
at java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[?:?]
at java.lang.Class.getDeclaredMethods(Class.java:2504) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:396) ~[PlaceholderAPI-2.11.1.jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
... 6 more
any help
you using saberfactions or factionsuuid (just wondering)
factionsuuid
just wondering, you downloaded the expansion manually?
go in your PlaceholderAPI's Expansions folder and delete the massivecraft faction expansion file
what files do you have in there?
i believe you downloaded the wrong expansion
delete this file
ok
still not workin
i dont think you get the same error
how do I make a number a whole number and not have decimal points?
?
hmm
%math_3:down_57-(1.5/4)%
trying to make it a whole number
but if its like a 1 digit number, and I put precision at 2, then it would give me a decimal still
any help
?paste
Paste Services
When asking for help with a config/menu/code issue please use our paste bin:
(we prefer it over pastebin.com)
• HelpChat Paste - How To Use
put it on our paste please, can't see it
what factions do you use
factionsuuid
delete the faction expansion, should be included
ok
Still cant get anything to work D:
tried setting the decimals config for math placeholder to 0, that just defaults it to 3
ok well putting it to 0 just disables it
putting it to 1 is like having precision set to 1
which isnt what I want
I don't really understand what you want exactly, can you give an example?
If the number is 3082.932387, what do you want to see?
3083
no decimals
is what I wnat
so if its 1.1, I want it to be just 1. If its 27.4, I would like to see 27.
3082.932
and default rounding is half-up, which is what you want
is what it gives me
Setting that to 0 ignores it
makes it unlimited
did you make any changes in the config
lemme change it back to default
gives me 3082.932
I set the Rounding option in config, which is precision, to 0, and it basically made it unlimited, or however many you put it
no idea what's up, try a restart and reinstall the math expansion?
precision 0 should be no decimals
kk
works now!
haha I tried the 0 thing earlier and was quite confused why it didnt work
thanks!
killstats placeholder aint working
do you have the plugin
placeholderapi
yes
and i papi ecloud download killstats
works on my other server
just not this one
where are you testing it @crystal prawn
i am having some problems with pinger and i am not sure what it is
it works for all of my other servers except one of them
and when i use parse it displaces as offline but the server is online
say I wanted to use a placeholder %vault_prefix% if the player had no prefix, would this be null?
https://media.discordapp.net/attachments/426460575971672064/992027559057432606/2022-06-30_16.51.32.png?width=1174&height=612
look at the scoreboard, i use the jail placeholder, and when the jail time ends it shows "52 years 5 months 27days" how do I change that?
btw for Essentials plugin okay?
change it to what?
um something like "Jail time finished" or maybe a zero
hi guys, does anyone know any placeholder that can display top playtime?
can anyone help me with this?
on my server
Please respect the rules, be patient and don't ping staff members!
i have 2 servers
it works on one
and the other it doesent
it says
but it doesent show on the tab
What's the placeholder for playtime
%statistic_time_played% is one of them
But where are you testing it?
only in your tab plugin?
what if you did /papi parse me %placeholder%
depends if the expansion/placeholder supports it or not
I can still see your original message fyi
player expansion should support it with {} (no $$) %player_ping_{player_name}% but that will get the ping between the user and the user
so otherwise pointless
Checked the newest placeholder-api lately?
Hmm?
PlaceholderAPI 2.11.2 RC
Hey everyone,
We are planning on releasing 2.11.2 soon! This will include the following changes (this is a brief overview, and a more detailed changelog will be provided at release)
Enhancements
- Add
--nullargument to parse command - Log missing plugin for an expansion
Bug Fixes
- Fix PAPI lowercasing invalid placeholders
-Fix PAPI possibly not unregistering expansions
Breaking
- Removed color parsing for placeholder parsing
We are shooting to release this to SpigotMC this weekend or early next week. Feedback is greatly appreciated.
@everyone @here
Nice try :^)
Maybe a dev-build role for people that are interested could be useful...
RC = Release Candidate
right? xd
Breaking
- Removed color parsing for placeholder parsing
yes

What is the right way to put arguments inside placeholders? I just can't figure it out, tried almost everything I've found here
Here's script, argument range 1-6
var gender = "%pixelmon_party_" + args[0] + "_gender%";
function genders() {
if (gender === "Male") {
return "0";
}
if (gender === "Female") {
return "1";
}
else {
return "2";
}
}
genders();```
Is it possible to get a placeholder, like:
%plotsquared_currentplot_can_build%
from a specific location.
To see if the player can build on the plot that's placed at eg. X Y Z
i doubt that
i mean, you can probably make it based on player location
but with x y z, doubt unless you make your own placeholder or placeholders allow you to specify x y and z
Hello, I'm entirely new to placeholderapi and I'm unsure how exactly to make use of it in a config, I'm looking to setup a greeting for claimed land that displays of the current owner, and then displays their pvp status by using a placeholder.
Alerts:
defaultGreeting: '&7Now entering claimed land of %owner%'
defaultFarewell: '&7Leaving claimed land of %owner%'
I'd like for that default greeting to be like "Welcome to <owner>'s Land! Their pvp status is: <placeholder pointed at the owner to display said status>"
Is that something I can actually do? I'm pretty lost.
If I'm in the wrong channel let me know too.
I'm configuring a claim plugin and trying to make use of a couple placeholders to show some information on the owner of claimed land when a player enters it.
first of all
the claim plugin supports PlaceholderAPI
in titles on join/leave?
you should first, make sure about that
PlaceholderAPI and devs are not in charge of adding support if it isnt supported
its up to the claim plugin dev, make sure it supports it
if it is, i wonder they will work for disconnected claim owners
i mean, most placeholders are not parsed when player is offline
so, i dont think its supported ttbh
Ahh, okay. the config file here doesn't really state weather or not it supports titles on join/leave. The plugin page itself just mentions some placeholder support and has a few of its own.
Thanks for the speedy response though. ^^
sure np
just wondering, whats the claim plugin?
is join/leave title an addon or its built-in
Please respect the rules, be patient and don't ping staff members!
Hmm, I’ll take a look at it later and see if there’s a reason
that's because player_ping_ is for names only
you can't use placeholders there
if you want other player's ping
you'll have to use something like
%parseother_{combatlogx_enemy_name}_{player_ping}%
Reminder: Yes, you need that expansion.
/papi ecloud download ParseOther
/papi reload
That’s not the ping between the players though
Very stupid. Is this only for ping?
no, it will parse it for the target player
mmmm, for ping and ping_
can’t use {} at all I don’t see
Even for has perm or something, yikes
I could recompile a version that accepts them… surprised it doesn’t
But I’m on mobile and could be missing something

@turbid void try this
ye ig you can do it
I just added identifier = PlaceholderAPI.setBracketPlaceholders(player, identifier); for ya
well it measures different values
one measures the ping between players
and one measures the ping of another player (to the server)
mmm no
parseother simply parses the placeholder using the player provided
afaik
let me check the code
Alonso it's different
wait, its yours
I don't think players can ping each other in game. Can they?
what you are saying is correct
I believe it adds the pings together
That would make more sense.
Cause the other way around it would mean I could send a network packet directly to another player on the server.
If I'm speaking bs, ignore me. It's late 😛
well, i dont understand thhe code
okay so I understood the placeholder wrong, both should return the same value then
which is weird
shouldn't affect at all
so its prob due to spikes
or something
i mean, same method, not difference
Magic.
Did you install any new expansions?
How do I make it so that if %deluxetags_tag% is not nothing, there will be a space infront of it?
I'm now using Conditional Text Placeholders
With the Javascript expansion, can I check if a placeholder returns nothing and if so, return "Nothing!"
I did it.
Does the papi javascript add-on support regex?
Yes
How can I reset a placeholder? I've tried clearing the stats folder to no avail.
Then I have no idea why my regex doesn't work
code: https://paste.helpch.at/wagozuvora.js
error: https://paste.helpch.at/arozocigah.cs
it works in the normal code editor https://imgur.com/a/Pkg4nNF
Try to move the test one line below
It doesn't work, the problem is different, the usual replace(/((?<=Value:").*(?="))/g, "$1") doesn't work either, the error is in the same place
?
How can I add placeholder support to my plugin?
Thx
Could someone help me with this? If I do this, like normal text, it works just fine
var test = "part1-"+args[0]+"-part2";
var out = "";
if (args[0] != null) {
out = test;
}
out;```
But changing to placeholder doesn't work and gives "'ARGS' is not defined" error
```js
var test = "%statistic_mine_block:"+args[0]+"%";
var out = "";
if (args[0] != null) {
out = test;
}
out;```
Good question
I want multiple javascripts for pixelmon, but first I wanted to try it on something vanilla, then once I would know how it works I'll do it with that ☝️
have you read the wiki?
what you plan to do exactly, i mean the final goal
@sinful quartz
Do you pass any arguments to the placeholder?
probably using %javascript_scriptname% instead of %javascript_scriptname_DIAMOND%
No, ok another example, I want basickly this, you do %javascript_partygedner_1%
And it will retur gender in number for that slot (1-6), file name is partygedner.js
var gender = "%pixelmon_party_" + args[0] + "_gender%";
if (gender == "Male") {
out = "0";
}
if (gender == "Female
out = "1;
}
if (gender == "Genderless
out = "2;
}
out;```
just wondering
%pixelmon_party_1_gender%
returns the gender of the pokemon
in slot 1
right?
Yes
PlaceholderAPI.static.setPlaceholders(BukkitPlayer, "%" + "pixelmon_party_" + args[0] + "_gender%")
isnt it parsed
automatically?
when assigned?
var gender = "%pixelmon_party_" + args[0] + "_gender%";
function out() {
return gender == "Male"? "0" : (gender == "Female ? "1": "2"));
}
out();
I believe not
i would actually try
var gender = args ? "" : "%pixelmon_party_" + args[0] + "_gender%";
function out() {
return gender == "" ? "No pokemon in slot!" : (gender == "Male"? "0" : (gender == "Female ? "1": "2")));
}
out();
Cant remember the use case of that method
most likely want to parse it
or it magically is parsed in javascript examples
var t = %placeholder% will be parsed
but?
Ah ah
there is always a "but"
hold up
PlaceholderAPI.static.setPlaceholders(BukkitPlayer, "%" + "pixelmon_party_" + args[0] + "_gender%")
Caused by: com.koushikdutta.quack.QuackException: SyntaxError: unexpected end of string
And that second have missing(, where should that be?
var t = "%placeholder%" will be parsed
Placeholders are parsed first and when the script is evaluated, variables are set (BukkitPlayer, args and the others)
🥁
var t = "%place"+"holder%" will not be
No
I think it is parsed, but with the "+" as well
mmm
Papi takes everything between the _ after the identifier and the first % as 'params'
yeah
ye
question is
so the args doesn't exist yet
that's why it says it doesn't exist
I believe it does
@sinful quartz can you try this?
var gender = args ? "" : "%pixelmon_party_" + args[0] + "_gender%";
function out() {
return gender == "" ? "No pokemon in slot!" : (gender == "Male"? "0" : (gender == "Female ? "1": "2")));
}
out();
just to make sure
It does get parsed, but it takes it literally as it is, not as two strings concatenated
.
it's finnicky
Caused by: com.koushikdutta.quack.QuackException: SyntaxError: expecting ')'
when in doubt, setplaceholders
Dont nest ternary operators, Alonso
var gender = args ? "" : PlaceholderAPI.static.setPlaceholders(BukkitPlayer,"%pixelmon_party_" + args[0] + "_gender%");
function out() {
return gender == "" ? "No pokemon in slot!" : (gender == "Male"? "0" : (gender == "Female" ? "1": "2")));
}
out();
xD
args ? "" ?
after that
😬
😂
No..
my js is a bit
Args it is defined
rusty
Still SyntaxError: expecting ')'
.
👋 ❤️
Do it like this, but return instead of reasign out
Cya cj
Now its SyntaxError: expecting ';'
ignore me, i'll take a cup of coffee
but, im seriously interested in learning how it parses everything
👀
function pokemonGender() {
if (args.length === 0) return "Index not provided";
var gender = PlaceholderAPI.static.setPlaceholders(BukkitPlayer, "%" + "pixelmon_party_" + args[0] + "_gender%")
if (gender === "Male") return "0";
if (gender === "Female") return "1";
return "2";
}
pokemonGender();```
Placeholders are set first, then the script is evaluated by the js engine, thats when variables like BukkitPlayer and args are set.
i see i see
what if %javascript_partygender% is used
would it say args is not defined?
or it would simply be empty array
args is defined regardless you provide any or not
what about syntax
Well, still nothing SyntaxError: expecting ';'
Uh, kind of
damn
pokemonGender(): pepeLaugh
its like coding
Ahh
change the : to ;
without coding
It is coding, but I believe that previously the engine wasnt up to date with the js ECMA
Edited @sinful quartz
Lol
yeah, most of them
try to make complex things with this
as they dont klnow how to code
so script is big and ends up taking time to be parsed xd
This one is new 😄
Caused by: com.koushikdutta.quack.QuackException: TypeError: cannot read property 'setPlaceholders' of null
at <javascript>.pokemonGender(?:3) ~[?:?]
at <javascript>.<eval>(?:10) ~[?:?]
at com.koushikdutta.quack.QuackContext.evaluate(Native Method) ~[?:?]
at com.koushikdutta.quack.QuackContext.evaluate(QuackContext.java:600) ~[?:?]
at com.koushikdutta.quack.QuackContext.evaluate(QuackContext.java:615) ~[?:?]
at com.koushikdutta.quack.QuackContext.evaluate(QuackContext.java:653) ~[?:?]
at com.extendedclip.papi.expansion.javascript.evaluator.QuickJsScriptEvaluator.execute(QuickJsScriptEvaluator.java:23) ~[?:?]
... 28 more
But they are
people usually be like "dont use javascript there, its shit"
Uh uh
what i mean, is easier to make a small plugin
(i mean using javascript for that, not the expansion xd)
its pretty cool you can even use BukkitPlayer.getInventory().get etc etc
damn
@turbid tide do we have a reason why this happens?
try to set engine: nashorn where you define the js placeholder @sinful quartz
🤷
Still the same
Well right now I have 36 javascript, each is for 1 slot, I just thought it would be nicer to have it in one file (6 total), but if there is no solution then I'll leave it as it is
Its forge mod and its run on Arclight server
https://reforged.gg/
Can you send the new error Steedr?
at <javascript>.pokemonGender(?:3) ~[?:?]
at <javascript>.<eval>(?:10) ~[?:?]
at com.koushikdutta.quack.QuackContext.evaluate(Native Method) ~[?:?]
at com.koushikdutta.quack.QuackContext.evaluate(QuackContext.java:600) ~[?:?]
at com.koushikdutta.quack.QuackContext.evaluate(QuackContext.java:615) ~[?:?]
at com.koushikdutta.quack.QuackContext.evaluate(QuackContext.java:653) ~[?:?]
at com.extendedclip.papi.expansion.javascript.evaluator.QuickJsScriptEvaluator.execute(QuickJsScriptEvaluator.java:23) ~[?:?]
... 28 more```
So should i try global instead of nashorn?
partygender:
file: partygender.js
engine: nashorn
See at the top of the file, there should be an engine option
which software you are using btw? mohist?
Arclight, better stability
allows 1.12.2 and 1.16.5 users? or only 1.12.2? (im not used to modded servers)
only 1.16.5

@trim mist do you know about this?
That's a great question. The QuickJS engine has been causing a lot of issues lately.
What MC version?
1.16.5
What Java version?
11.0.13
You shouldn't be using QuickJS then.
Just use Nashorn.
In the config.yml, make sure use_quick_js is set to false.
Then it gives this error https://pastebin.com/r0AaqNPN
What's the script?
It could be that the BukkitPlayer or args[0] is null. As to why, I am not sure. I don't think anything else has changed.
If it doesn't work on either engine then my guess is it's one of those 2 things.
It might be the same error as before
Quite possibly. Either the static there broke, which I don't think anything has changed for that to break? Or the args[0] / BukkitPlayer is null for some reason.
This is also a npe I think
Even if they were null, it shouldnt be a problem
I'd like to remove QuickJS if they don't fix their native memory leak sooner or later.
Still holding out hope they'll fix it.
Js expansion starts to be a pain 😦
What id like is an expansion where things are cached, like a class and a main method
Wdym?
So each script acts like a class, fields are initialized when the script is loaded, and when it is executed, a certain method is called, like String onRequest()
Oh you mean in the JS expansion?
Yeah or another language, like groovy or kts
Ahh
But probably another language
Skript
Go back to your stuff @trim mist
How can I reset a placeholder?
any clues as to whats wrong with it?
hello im looking for placeholders that show current player attributes. those are number that shows when you command for example: /attribute @p minecraft:generic.attack_damage get . If anyone knows ping me
org.bukkit.attribute.Attribute%GENERIC_ATTACK_KNOCKBACK
org.bukkit.attribute.Attribute%GENERIC_MOVEMENT_SPEED
org.bukkit.attribute.Attribute%GENERIC_ATTACK_DAMAGE
org.bukkit.attribute.Attribute%GENERIC_ARMOR
org.bukkit.attribute.Attribute%HORSE_JUMP_STRENGTH
org.bukkit.attribute.Attribute%GENERIC_FOLLOW_RANGE
org.bukkit.attribute.Attribute%GENERIC_LUCK
org.bukkit.attribute.Attribute%GENERIC_MAX_HEALTH
org.bukkit.attribute.Attribute%GENERIC_KNOCKBACK_RESISTANCE
org.bukkit.attribute.Attribute%GENERIC_ATTACK_SPEED
org.bukkit.attribute.Attribute%GENERIC_FLYING_SPEED
org.bukkit.attribute.Attribute%GENERIC_ARMOR_TOUGHNESS
org.bukkit.attribute.Attribute%ZOMBIE_SPAWN_REINFORCEMENTS```
GENERIC_ATTACK_DAMAGE
at java.util.Objects.requireNonNull(Objects.java:233) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.register(LocalExpansionManager.java:170) ~[PlaceholderAPI-2.11.1.jar:?]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[?:?]
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$registerAll$4(LocalExpansionManager.java:333) ~[PlaceholderAPI-2.11.1.jar:?]
at me.clip.placeholderapi.util.Futures.lambda$onMainThread$0(Futures.java:46) ~[PlaceholderAPI-2.11.1.jar:?]
at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.18.2.jar:git-Paper-386]
at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:483) ~[paper-1.18.2.jar:git-Paper-386]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1173) ~[paper-1.18.2.jar:git-Paper-386]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:316) ~[paper-1.18.2.jar:git-Paper-386]
at java.lang.Thread.run(Thread.java:833) ~[?:?]```
any clues whats wrong with it
I deleted the stats folder but my ajLeaderboards are still there?
Please respect the rules, be patient and don't ping staff members!
Maybe someone knows how to solve my problem?
Hey, how do i use ConfigExpansion? can't find any documentation.
You won't be able to upload images here directly to avoid spam, so please use https://imgur.com/upload or similar service to upload images/screenshots.
how do I make the healthbar made in javascript examples shorter?
my players should always get more health either from leveling or items, but I want the healthbar to always have the same lenght no matter if they got 100 hp or 2k
https://mclo.gs/GnTAK0z getting these errors in my console
I asked ExecutableItems, they said "Its related to your javascript placeholders "used" in EI but not EI"
I mean the javascript expansion is pretty inoptimized.
What are you trying to show? Like always show 20 hearts but scaled down from 100?
bcz if so, that seems wrong?
or are you just trying to show 100 ❤️
yeah, cause I got a UI for players that shows health/mana/stamina. but if the player has more than 20 hp the bar outgrows the UI. I want the bar to always have 10 hearts so it stays inside the HUD, even if the player has 100 or 500 health.
try this code https://paste.helpch.at/zuloraraco.js (edited)
I haven't tested it btw. So it might only show 5 hearts or something like that
any clues whats wrong with it
at java.util.Objects.requireNonNull(Objects.java:233) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.register(LocalExpansionManager.java:170) ~[PlaceholderAPI-2.11.1.jar:?]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[?:?]
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$registerAll$4(LocalExpansionManager.java:333) ~[PlaceholderAPI-2.11.1.jar:?]
at me.clip.placeholderapi.util.Futures.lambda$onMainThread$0(Futures.java:46) ~[PlaceholderAPI-2.11.1.jar:?]
at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.18.2.jar:git-Paper-386]
at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:483) ~[paper-1.18.2.jar:git-Paper-386]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1173) ~[paper-1.18.2.jar:git-Paper-386]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:316) ~[paper-1.18.2.jar:git-Paper-386]
at java.lang.Thread.run(Thread.java:833) ~[?:?]```
redownload the expansion @austere hawk
which?
this is the current formula that im using for healthbars, the problem is that it only works with vanilla health (static 20 hp). But in my case players have dynamic max hp values, they gain hp per level or items. so I dont know how keep the health bar the same length, no matter if the player has 100 or 2k HP, the bar damage update should also scale (the more health you have the less your hp bar will update because it has to scale all the health inside the the predefined 10 digits.
var full = "&4\u2764";
var half = "&c\u2764";
var empty = "&7\u2764";
function healthBar() {
var bar = "";
var health = parseInt("%player_health_rounded%");
var maxhealth = parseInt("%player_max_health_rounded%");
var fullHearts = Math.floor(health / 2);
for (i = 0; i < fullHearts; i++) {
bar += full;
}
if (health % 2 !== 0) {
bar += half;
}
var emptyHearts = Math.floor((maxhealth - health) / 2);
for (i = 0; i < emptyHearts; i++) {
bar += empty;
}
return bar;
}
healthBar();
```fix
Nope. you can't
Hello, I am having a problem with PAPI now. I can't reload the ecloud expansions.
%player_item_in_hand_level __<enchantment>% whats the correct method to input enchantment name into this one?
id want sharpness for example
d;fields spigot enchantment
org.bukkit.enchantments.Enchantment%DAMAGE_ALL
org.bukkit.enchantments.Enchantment%LOOT_BONUS_BLOCKS
org.bukkit.enchantments.Enchantment%PROTECTION_ENVIRONMENTAL
org.bukkit.enchantments.Enchantment%ARROW_KNOCKBACK
org.bukkit.enchantments.Enchantment%WATER_WORKER
org.bukkit.enchantments.Enchantment%LURE
org.bukkit.enchantments.Enchantment%SILK_TOUCH
org.bukkit.enchantments.Enchantment%DAMAGE_ARTHROPODS```
DAMAGE_ALL
hello can I get help?
Hello,
I have a problem with the Luckperms extension (%luckperms_prefix%), it outputs the prefix but with untransformed color codes.
You would probably need to ask for support in the LP Discord.
Okay i will try
thats intended, i guess
but yeah, ask in LP discord
Hi I have updated to 2.11.2, how do I solve these problems ? What are ?
[21:46:22 WARN]: [PlaceholderAPI] Cannot load expansion playerpoints due to a missing plugin: PlayerPoints >....
[21:46:22 WARN]: [PlaceholderAPI] Cannot load expansion playertime due to a missing plugin: PlayerTime >....
[21:46:22 INFO]: 2 placeholder hook(s) registered! 1 placeholder hook(s) have an update available.
afaik its not an error
its a warning that tells you that you downloaded PlayerPoints expansion but since plugin is not enabled
it warns you that a dependency is missing (i think)
The message tells you the issue.
How do I fix it?
The plugin PlayerPoints is "missing".
How do I deactivate them? I don't care about these plugins, in the config file I don't see anything that can disable this warning
plugins/placeholderapi/expansions - delete them
Hey, I'm using the %server_countdown_<SimpleDateFormat>_<time>% placeholder. Does it only work with dates, or times too?
%server_countdown_HH:mm_03:00% outputs 0.
If you only give it times it will count down until that time in the same day
Correct, that's what I'm looking for
so for example if you say count until 03:00 and its 04:00 it will say 0
it won't say 23h
Ah
I've never managed to do a repeating count down using the server countdown placeholder.
Still doesn't really work tho
1 that never says 0 I mean.
How are you testing the placeholder?
can you do /papi parse me %server_countdown_HH:mm_23:00% %server_time_HH:mm% please
and send a screenshot of that output
hmm. that's a strange one. wonder if it actually really needs the date. in which case you can try something like this`
%server_countdown_dd/MM/yyyy HH:mm:ss_{server_time_dd/MM/yyyy} 23:00%
https://paste.helpch.at/tovakidife.sql
I get this error when trying to /papi reload after installing essentialsexpansion placeholder, does anyone know why?
can you execute /papi dump and send the generated link here please?
You're using an old version of EssentialsX. Either update EssentialsX or downgrade the Essentials expansion.
You sure it works for times? I have it working for dd/MM/yyyy.
Oh wait
It absolutely should. I've used it before. I'll switch to linux in a few minutes to start my test server and see if I can reproduce this.
It does need a date
hmm?
%server_countdown_dd/MM/yyyy HH:mm:ss_{server_time_dd/MM/yyyy} 23:00%
HH:mm:ss
23:00
no problem. xD
yup that fixed it
Is there any way to get tomorrow's server date?
not with just a simple placeholder. you'd need a placeholder inside placeholder inside placeholder which is not really possible.
You'll probably want to make a custom javascript for this instead.
Blegh, not that bothered. No worries, thanks
@me when placeholder in a placeholder in a placeholder is a thing
yeah... xD
don't even think PAPI3 will add that and that will only be launched next year
or so
but anyways
turns out I can be bothered lmao
Any reason update_interval: 5 seems to not work?
you need to add update: true to each item.
that you want to update
they don't automatically update.
Got it
ver sound = Java.type("org.bukkit.Sound.BLOCK_NOTE_BLOCK_BIT");
Try this @bold mesa
And that for loop isnt not valid, is it?
for (var i = 0; i < onlinePlayers.length; i++)
var player = onlinePlayers[i]
Hmm, try var sound = Java.type("org.bukkit.Sound").BLOCK_NOTE_BLOCK_BIT; and define it above the loop
and if that doesn't work, try this instead var sound = Java.type("org.bukkit.Sound").valueOf("BLOCK_NOTE_BLOCK_BIT");
remove that player definition at the top
and that's the only way to play the sound to everyone, loop trough all players and call Player#playerSound
im trying to create a health bar with progress placeholders
/papi parse me %progress_bar_{player_health_rounded}_c:&a■_p:&e■_r:&7■_l:5_m:100%
it used to work fine a few hours ago, but suddenly it will only parse "completed" rather than the bar itself
Hey what placeholder should I use so it shows if my server is online or offline
%pinger_isonline_<server/ip>:<port>%
I can't seem to find PlaceholderAPI_ver_DEV.jar anymore, is it now RC as shown in pins here?
Does anyone know why this happens?
https://paste.helpch.at/sakuyaroxa.makefile
Here's the code bit:
https://paste.helpch.at/pohupinece.js
Can you use /papi parse? @cloud salmon
Well
Hm?
how do i send image
cuz it works fine
it only doesn't work when a player disconnects
i'm guessing cuz i use the prefix in nametags as well as scoreboard
so i have to somehow find offline player
idk how to do that with javascript tho tbh
hmm, if they leave, the placeholder shouldnt be parsed at all I guess
not sure
but i get that error everytime someone leaves
only sometimes, not everytime
after updated to new papi my chat placeholders brokes
colors code are showing :/
how do I disable the fullbar option in papi progress?
How can I use this placeholder "%sound_ all_ <sound>-<volume>-<pitch>%"?
I already download "/papi ecloud download Sound" and reload my server. How can I use or check this placeholder with command /papi parse ? What is the format of this placeholder? What the format have sound in this placeholder?
So I have downloaded the "Data" community script along with a data example script and it doesn't seem to let me check data with %javascript_data_get,{player_name}.viewed%
%javascript_essentials_menu_glass% This however shows the number correctly
function viewCount() {
var views = Data.exists(dataLoc) ? Data.get(dataLoc) : 0;
views++;
Data.set(dataLoc, views);
Placeholder.saveData();
return views;
}
viewCount();```
This is the file
each script has it's own data
sounds like you're trying to use the data cross-script @warm plover
I just want to set a variable in game for it to be used in game
Yes so it all has to be done inside one script
I see
if you use the data community script then you have to use javascript_data_get,... javascript_data_set,...
And my script for the variable has to be in data.js too?
what script are you writing?
just to test it out
this is in a different file
I don't understand the purpose of writing a script, I thought you just wanted a varaible
you test it with get and set
/papi parse me %javascript_data_get,{player_name}.viewed% shows nothing
I thought I did, let me try again in case
/papi parse me %javascript_data_set,{player_name}.viewed,0%
Ah okay setting it did make it show up
So I don't even need a script for variables, data.js literally just does this for me
That's what it seems like anyway
correct
the Community Script Data just makes javascript data easier to use
and a bit more user friendly
Is there a way I can set a data placeholder to the default empty string?
Like this, but this doesn't do it /papi parse me %javascript_data_set,glassColor,%
function set(path, data) {
if(data === "")
Data.remove(path);
else
Data.set(path, data);
return "";
}
``` maybe
could've just added a remove
but
that felt easier
I don't get this error https://paste.helpch.at/epugaladew.sql
Didn't seem to work
ah, don't really have time to add remove to that script rn
Alright no worries
Ping me when you respond
Is there a way to assign a default value to a JS data?
what you mean with "js data"
var something = Data.get("key") || "default"; try this
I believe he's referring to the javascript expansion which has a data feature. And the answer is yes. By changing the code itself.
function get(path, def) {
return Data.exists(path) ? Data.get(path) : def;
}```
and you could even make the default value just be an argument as well. Similar to how deluxemenu's meta works
How does this work exactly? Apologies I'm not great at JS
if data exists ? return Data.get() : otherwise, return def
is a shorter if-else statement
Oh I see, and def is the default value?
its called an elvis operator or a ternary operator.
yeah. its a value you want to be default
elvis is different
you can set it to any string
is it?
So would I change def to "String"
oh. is it the one kotlin has?
I see
yes
return Data.exists(backgroundGlass) ? Data.get(backgroundGlass) : "GRAY_STAINED_GLASS_PANE";
}```
Would this be correct?
yeah. but you don't need the def parameter then
but careful
this will set the default value to GRAY_STAINED_GLASS_PANE For all your data placeholders
I thought that was the point of putting (backgroundGlass), that may be a problem
Hmm, guess that's not a huge deal really
But for anyone who downloads this (which I was planning on making it public) it could be
do u know why?
Please respect the rules, be patient and don't ping staff members!
oop sorry
Well because BukkitPlayer represents an online player. And when a player leaves, well they're not online
I recommend you use OfflinePlayer instead of BukkitPlayer
what if they're not offline then?
is there a way to check with javascript if a player is null or not online?
i dont know exactly tbh
Where should the variable expansion problem go?
Elaborate a bit more
when updating papi, do I need to replace both the Jar file and the papi folder???
afaik only the .jar file
Only the jar file, yes
thought so, thanks
How can I use this placeholder "%sound_all <sound>-<volume>-<pitch>%"?
I already download "/papi ecloud download Sound" and reload my server. How can I use or check this placeholder with command /papi parse ? What is the format of this placeholder? What the format have sound in this placeholder?
same for me, did you fix it? im thinking on returning to the 2.11.1 version
Ask your plugin developer for an update
The relied on a part of the code that got removed, they should handle the coloring on their own
is it just me or
[15:32:51 ERROR]: [PlaceholderAPI] Failed to load class files of expansion.
java.util.concurrent.CompletionException: java.lang.NullPointerException: Cannot invoke "java.lang.Class.getClassLoader()" because "result" is null
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:428) ~[PlaceholderAPI-2.11.2.jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760) ~[?:?]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?]
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?]
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?]
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Class.getClassLoader()" because "result" is null
at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:113) ~[purpur-api-1.19-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.java.JavaPluginLoader.getClassByName(JavaPluginLoader.java:235) ~[purpur-api-1.19-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:128) ~[purpur-api-1.19-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:105) ~[purpur-api-1.19-R0.1-SNAPSHOT.jar:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:574) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at me.clip.placeholderapi.util.FileUtil.findClass(FileUtil.java:62) ~[PlaceholderAPI-2.11.2.jar:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:405) ~[PlaceholderAPI-2.11.2.jar:?]
... 7 more
everytime i restart my server
the papi ecloud download just goes poof
java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: net/ess3/api/IEssentials
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770) ~[?:?]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.NoClassDefFoundError: net/ess3/api/IEssentials
at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
at java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[?:?]
at java.lang.Class.getDeclaredMethods(Class.java:2504) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:413) ~[PlaceholderAPI-2.11.2.jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
... 1 more
Caused by: java.lang.ClassNotFoundException: net.ess3.api.IEssentials
at java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:587) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
at java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[?:?]
at java.lang.Class.getDeclaredMethods(Class.java:2504) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:413) ~[PlaceholderAPI-2.11.2.jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
... 1 more```
Actually I have something similar, every time I reload PAPI, this happens.
Mine stopped working completely. Worked after I downgraded back to 2.11.1
Weirdly enough, this just happens in one backend server, in the other it does work fine. Same version of PAPI.
Could it be an issue regarding compatibility with other plugins?
Can we have some logs to see what was happening?
Either your essentials or essentials expansion is outdated most likely
I will try updating Essentials, because the expansion was recently downloaded.
Awesome
Try restarting with no expansions installed, there might be one in there doing something funky
05.07 12:01:54 [Server] INFO Placeholder expansion registration initializing...
05.07 12:01:54 [Server] INFO Fetching available expansion information...
05.07 12:01:58 [Server] ERROR Failed to load class files of expansion.
05.07 12:01:58 [Server] INFO java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: net/ess3/api/IEssentials
05.07 12:01:58 [Server] INFO at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770) ~[?:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760) ~[?:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?]
05.07 12:01:58 [Server] INFO Caused by: java.lang.NoClassDefFoundError: net/ess3/api/IEssentials
05.07 12:01:58 [Server] INFO at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
05.07 12:01:58 [Server] INFO at java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[?:?]
05.07 12:01:58 [Server] INFO at java.lang.Class.getDeclaredMethods(Class.java:2504) ~[?:?]
05.07 12:01:58 [Server] INFO at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:413) ~[PlaceholderAPI-2.11.2.jar:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
05.07 12:01:58 [Server] INFO ... 6 more
05.07 12:01:58 [Server] INFO Caused by: java.lang.ClassNotFoundException: net.ess3.api.IEssentials
05.07 12:01:58 [Server] INFO at java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?]
05.07 12:01:58 [Server] INFO at java.lang.ClassLoader.loadClass(ClassLoader.java:587) ~[?:?]
05.07 12:01:58 [Server] INFO at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
05.07 12:01:58 [Server] INFO at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
05.07 12:01:58 [Server] INFO at java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[?:?]
05.07 12:01:58 [Server] INFO at java.lang.Class.getDeclaredMethods(Class.java:2504) ~[?:?]
05.07 12:01:58 [Server] INFO at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:413) ~[PlaceholderAPI-2.11.2.jar:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
05.07 12:01:58 [Server] INFO ... 6 more
Error fixed, thank you.
So yeah you've got the same issue as @wanton burrow, just update your essentials and essentials expansion
Don't even have essentials installed tbh
ah then remove the essentials expansion
delete it from /plugins/placeholderapi/expansions/
Hmm. why didn't Barry pick this up?
hmm. no its not.
I have another problem though
When I use a Scoreboard, the PAPI placeholder extension for LuckPerms does not detect color codes being used on the ranks. This is not a problem from the Scoreboard plugin itself, since there are other color codes put in other places that work perfectly.
LuckPerms is updated, the expansion is updated. In the other subserver it works as intented. I dunno what's happening. .-.
Fairly certain LuckPerms returns the unformatted color codes
so if your rank prefix is &cRed for example it will be returned as exactly that.
actually that might only happen for hex colors.
Problem is, in the other subserver I have exactly the same settings, but it does return the color codes as intended.
Do I try using Hex color codes?
Because if I enter /papi parse EverCR %luckperms_prefix% on both sub servers, one does retrieve the right color values, but in the other just returns the codes... And both servers have the same version of PAPI and LuckPerms .-.
Nvm, I just saw what was the problem. Recent update 2.11.2 has the color coding format removed. So I just downgraded to 2.11.1 and it works as intented.
yeah. I mean as I've mentioned before. Luckperms never inteded to parse colors in placeholders
they intentionally don't parse it themselves. To let other plugins where placeholders are used parse it. Like scoreboards.
Regardless, it works now. So I don't have complains.
Hey, is there any placeholder to display how many blocks all the members in the server have mined?
I get Unknown statistic'player error
SS: https://imgur.com/a/vtZGVvC
papi dump: https://paste.helpch.at/otulafopeq
%statistic_player_kills% & %statistic_deaths% doesnt work
/papi parse me %statistic_player_kills% says unknown statistic as well?
@midnight egret
Please help me Which placeholder shows Worlds?
%math_0_{bungee_BwHUB-1}+{bungee_BwHUB-2}+{bungee_Bw1v1-1}+{bungee_Bw1v1-2}+{bungee_Armed-1}+{bungee_Armed-2}+{bungee_BwDoubles-1}+{bungee_BwDoubles-2}+{bungee_BwPractice-1}+{bungee_BwPractice-2}+{bungee_BwRank3v3-Champ-1}+{bungee_BwRank3v3-Champ-2}+{bungee_BwRank3v3-Cont-1}+{bungee_BwRank3v3-Cont-2}+{bungee_BwRank3v3-Open-1}+{bungee_BwRank3v3-Open-2}+{bungee_BwRank4v4-Champ-1}+{bungee_BwRank4v4-Champ-2}+{bungee_BwRank4v4-Cont-1}+{bungee_BwRank4v4-Cont-2}+{bungee_BwRank4v4-Open-1}+{bungee_BwRank4v4-Open-2}+{bungee_BwSolo-1}+{bungee_BwSolo-2}+{bungee_BwSquad-1}+{bungee_BwSquad-2}+{bungee_BwTrio-1}+{bungee_BwTrio-2}%
Hey, why this don't work?
Hulooo?
can you at least surround it with `` to escape formatting? 😂
that's a lot of servers
i have it
eh xD
well, in one placeholder
i think is a limit of hd
xD
👍
delete essentials expansion
Which one?
plugins/placeholderapi/expansions/
then you can redownload after if needed
also, I recommend stopping the server, deleting, then starting the server
guy in #general-plugins said his server expansion came back so 🤷♂️
I need some help with the changeoutput and scoreboard api
for some reason this isnt working
%changeoutput_equals_{objective_entryposhigh_coins_1}_green_&\uE002 Green Guardians_%
what does /papi parse me %objective_entryposhigh_coins_1% return
and what isnt working exactly
maybe they're using the updated version with the new format? xD idk just saying
it just replies with %objective_entryposhigh_coins_1%
@mint fable Unknown expansion.
it doesnt detect it
@mint fable Unknown expansion.
smh
its scoreboardobjective or whatever
with an s||mh||
l3thalbunny
ive already downloaded it
🥴
downloaded it
still isnt working 
does the coins objective exist
case sensitive
yea it does
wait
does /papi parse me %objective_score_coins% return a value?
yea
wait you downloaded from spigot?
ye
not the commands?
i did both
where did you put the one from spigot
the plugins folder
you can delete that
I was just showing Kaliber the page
the commands downloaded what you needed
oh okay
and it works, but entryposhigh seems to not be
I belive you need {}
around the coins and the #
and I believe that's my doing, to support underscores :L
so you're gonna have to use javascript instead of changeoutput
since you can't nest the {} like that
%changeoutput_equals_{objective_entryposhigh_{coins}_{1}}_green_&\uE002 Green Guardians_%
yeah that wont work
yeah that won't work
idk
what do u want me to use
I just did it for a guy that wanted it basically
maybe
I hate using underscores in placeholders
pita
in checkitem I use , to separate instead and just allow people to \,
_ is so common
can someone write this better for me since i genuinely dont know what u guys r saying
before I do
do u know how to use the javascript expansion
/papi parse me %objective_entryposhigh_{coins}_{1}% works right?
var placeholder = "%objective_entryposhigh_{coins}_{1}%"
var out = ""
if( placeholder === "green" )
out = "&\uE002 Green Guardians"
out
it replies with green
@stoic garnet
i do not
An expansion that allows you to use javascript for processing
• Wiki
• Community Scripts
• GitHub
• eCloud
and use this script
did you put extra %% around it?
nah.
hello wanted to ask if %vault_rank% would work on Deluxehub 3 Scoreboard
that doesnt work either
ampersand is E0026
§2
nah. just google E002. its a symbol. not ampersand and not section symbol
no idea what its called
.
as long as DHub 3 supports PlaceholderAPI
its up to each plugin to add support for PlaceholderAPI
ok ty
I don't understand though
that is the unicode code for this: https://i.imgur.com/AekPd9r.png
is that just a symbol he's wanting to use?
I assume so
ah
cause it came out E002
or like an icon
yeah
since papi doesn't translate those
its up to the plugin to translate those I think
or maybe the file encoding. idk
it's a square i thought, where did you see that symbol?
ya, I just figured his resource pack would replace it ig
what did you google for it
I'm on unicodelookup and put E002 as the hex and just got a square
\uE002
and what is the placeholder for ping?
but replaced by certain fonts, or in this case, resource packs/translations
%player_ping% if you have the expansion
dw i got it
what did you end up doing
var out = ""
if( placeholder === "red" )
out = "§r §cRed Rabbits"
if( placeholder === "orange" )
out = "§r §6Orange Ocelots"
if( placeholder === "yellow" )
out = "§r §eYellow Yaks"
if( placeholder === "lime" )
out = "§r §aLime Llamas"
if( placeholder === "green" )
out = "§r §2Green Guardians"
if( placeholder === "cyan" )
out = "§r §3Cyan Creepers"
if( placeholder === "aqua" )
out = "§r §bAqua Axolotls"
if( placeholder === "blue" )
out = "§r §9Blue Bats"```
nice
tbh
var placeholder = "%objective_entryposhigh_{coins}_{1}%"
function changePlaceholder(){
if( placeholder === "red" )
return "§r §cRed Rabbits"
if( placeholder === "orange" )
return "§r §6Orange Ocelots"
if( placeholder === "yellow" )
return "§r §eYellow Yaks"
if( placeholder === "lime" )
return "§r §aLime Llamas"
if( placeholder === "green" )
return "§r §2Green Guardians"
if( placeholder === "cyan" )
return "§r §3Cyan Creepers"
if( placeholder === "aqua" )
return "§r §bAqua Axolotls"
if( placeholder === "blue" )
return "§r §9Blue Bats"
}
changePlaceholder()
that should make it ever so slightly more efficient since it doesn't have to go through every if statement
not that it really matters
okay i ran into another problem
so basically what im using this for is a cool sidebar and for some reason instead of only making 1 part the color thing it makes it all the color
i wish i could send a ss
but it doesnt let me
@mint fable do you know how to fix that
?imgur
You won't be able to upload images here directly to avoid spam, so please use https://imgur.com/upload to upload images/screenshots.
You can also use a screenshot service like gyazo or jinx and post those links here.
use white
f
there we go
noice
lmao
but what i want now is
i want it to show what team is infront of you in coins and the one behind
let me get a ss
so #1, and +1, self, and -1?
yes
var pos = parseInt(args[0])
var placeholder = PlaceholderAPI.static.setPlaceholders(BukkitPlayer, "%"+"objective_entryposhigh_{coins}_{"+pos+"}%")
function changePlaceholder(){
if( placeholder === "red" )
return "§f §cRed Rabbits"
if( placeholder === "orange" )
return "§f §6Orange Ocelots"
if( placeholder === "yellow" )
return "§f §eYellow Yaks"
if( placeholder === "lime" )
return "§f §aLime Llamas"
if( placeholder === "green" )
return "§f §2Green Guardians"
if( placeholder === "cyan" )
return "§f §3Cyan Creepers"
if( placeholder === "aqua" )
return "§f §bAqua Axolotls"
if( placeholder === "blue" )
return "§f §9Blue Bats"
}
changePlaceholder()
we are going to adapt this
is that the java script
so now it will take an argument
should i put that in the script
wait
also if u can
now do it
change the §r to §f
example
%javascript_example_<position>%
that's how we use it now
now... doing +-1 is gonna be tricky
sounds like a lot of placeholders that are going to be nested
so prob gotta use js
I can try working on a script for you in a little bit if you want, might be a little complicated
im gonna add this onto the sidebar
wait
@mint fable but the positions change depending on what place you are
so if youre 6th itll show 5th
that's why I'm saying plus and minus 1 will be tricky
to show 5th and 7th if you're in 6th
Any idea what this error is? https://keig.tk/fHUqcGeAUV.txt
?paste
Paste Services
When asking for help with a config/menu/code issue please use our paste bin:
(we prefer it over pastebin.com)
• HelpChat Paste - How To Use
try deleting your expansions, restarting, then re-installing them?
not sure which one it is or if there is more to the error or not
what if you did all caps
%statistic_PLAYER_KILLS%
ok i will try
that looks scary cant you switch?
yes
ok thanks
didn't want to redo it all, they wrote the if statements
i'll probably edit the same script and send it back later
for the +-1
unless you wanna do it 😉 @magic rock
how long is later
sorry im kinda in a rush so
alright
you can try #992627660146626601 or #992627658229809162 if you want, but idk how much faster that'd be
you can also try making the javascript but I think you said you don't know it
i dont lmao im stupid as hell
alright
@mint fable in the meantime I wanna know how to use team prefixes/team suffixes
with placeholders
since last time i did they just didnt work
@mint fable Unknown expansion.
Still need help
