#placeholder-api

1 messages ยท Page 26 of 1

reef harness
#

interesting naming for sure

#

figured it would be "getPlaceholder" or something

reef harness
#

thank you btw

junior musk
#

HEX is just the code that RGB colors use, and depending on which plugin you're trying to user RGB in, you have to use its appropriate format, if it supports it. For example, some plugin use &#RRGGBB, some use <#RRGGBB> while some simply use #RRGGBB, so you'd need to use that inside your PAPI placeholders (I'm guessing you want to use it in LP prefixes or smth similar, you'll have to use one of the above format in your prefix), but not all plugin support those colors, so you need to check their doc

junior musk
austere hawk
#

Yo i have a question, what is the online players placeholder? For only one server, no global

junior musk
#

%server_online%

austere hawk
#

thanks

limpid spear
#

does anyone know if there's a way to remove the seconds from %server_uptime%

junior musk
#

maybe with JS

limpid spear
#

I tried what you said in this message after searching through the helpchat discord but it didn't seem to work? just gave a wierd output

junior musk
#

it's not exactly the same thing

#

you just want to remove seconds right?

#

minutes and hours should still show ?

limpid spear
#

yes

#

please

junior musk
#
function uptime() {
  var uptime = "%server_uptime%"
  var times = uptime.split(" ")
  var seconds = times[times.length-1]
  if (times==seconds) return "0"
  return uptime.replace(" "+seconds,"")
}
uptime()
#

should work

limpid spear
#
javax.script.ScriptException: <eval>:4:20 Invalid return statement
if (times==seconds) return "0"
                    ^ in <eval> at line number 4 at column number 20```
junior musk
#

๐Ÿ‘€

#

oh right

#

updated my msg

#

forgot to make it a function NotLikeThis

limpid spear
#

Yooo! It works! Thank you so much! ๐Ÿ™Œ

tender vaporBOT
#
Hey!

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

#
Hey!

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

strange bough
#

I'm struggling to figure out how to show the online player count. I tried with the "Server" ecloud download and use server_online, but that just says "yes". It's not a bungee server, just standalone paper

junior musk
strange bough
#

?

junior musk
#

/papi parse me %server_online% returns "yes"?

#

are you sure you're not using player_online ?

strange bough
#

That's what I was told, I haven't been able to test myself

#

So %server_online% should work for what I'm trying to do?

junior musk
#

yeah

#

it's likely that the user had the wrong placeholder and used %player_online% (which returns whether the player is online or not) instead of %server_online% which returns the player count

strange bough
#

I'll double-check when I get home. I assume it works, so I'll just say thanks for the help now.
Thanks ๐Ÿ™‚

sharp bloom
#

is there any placeholder that returns for how much time a player has been online? aka smthing like the /seen of essentials

junior musk
#

there's a placeholder for the time a player joined at, but idk about a placeholder for that

sharp bloom
#

ye i couldnt find anything like that either thats why i came to ask :/

junior musk
#

you could make a suggestion on the Player-Expansion repo

sharp bloom
#

that expansion hasnt been updated in ages evil_cat

junior musk
#

I know xD

#

I'll probably fork it tomorrow

sharp bloom
#

ok wait last update was june 16 of 2023

#

not bad

#

there might be a workaround with players localtime placeholder x last join placeholder ๐Ÿค”

junior musk
#

I see JS

#

but I don't like JS

sharp bloom
#

but aint gonna bother to find it cshrug

junior musk
#

so I won't do JS sadness

sharp bloom
#

ye i hate js too pepe_exhausted

#

608 menus and only 2 use javascript

#

oh wait no just 1 cause i changed the other one to string equals

junior musk
#

what's the other one?

sharp bloom
#

smthing that gaby or bliz sent but i didnt rly bothered to change it back to string equals pepe_sad

junior musk
#

xD

sharp bloom
#
type: javascript
expression: '"%parseother_{{username}}_{player_online}%" != "no"'
#

this

junior musk
#

bruh

#

why would you use JS though thonk

#

oh wasn't there smth in old DM versions where arguments only worked in JS ?

#
type: string equals
input: "%parseother_{{username}}_{player_online}%"
output: "yes"
sharp bloom
#

ye i changed it now yesyes

#

no more javascript placeholders

#

oh wait no i think i might have somwhere more ๐Ÿ’€

#

related to luckperms temp permission

#

cause i wanted to return minutes without the format 2m > 2

#

i dont recall if i ve used it yet but its there wat

strange bough
nimble jasper
#

Why isn't color formatting applied?

function helloWorld() {
    return "&aHello, world!";
}

helloWorld();

Game: &aHello, world!

vivid sparrow
#

Because placeholderapi no longer does that

nimble jasper
#

and how do i use it again then?

vivid sparrow
#

you can use ยง instead if &

rancid lake
#

Hello, I have a problem with the statistic plugin via PlaceholderAPI, namely %statistic_mine_block% counts as 2, if you dig one, you could fix it

junior musk
#

Behold, ping colors with ranges

austere hawk
#

How do I get the player date

#

The local date, if it is Monday, Tuesday etc.

sharp bloom
warm plover
#

For some reason, the essentials placeholders for baltop aren't updating

#

/baltop shows completely different values then the placeholders

austere hawk
sharp bloom
rich glen
#

what exactly should be returned in

    @Override
    public @NotNull List<String> getPlaceholders() {
        //
    }

?

#

couldn't find anything in the docs

#

I assume it's for tab-completion, but:

  • Should it include the identifier
  • Should it include %'s?
vivid sparrow
#

yes for both iirc

junior musk
junior musk
rich glen
junior musk
warm plover
#

Darn

#

Aight, thanks!

junior musk
#

sent in dm

austere hawk
hot cape
#

When I'm using a JavaScript extension, the extension doesn't load my script properly in any mode on JDK 18. However, on another more complex JDK 18 server, it works correctly. The versions of PlaceholderAPI and the JavaScript extension are the same. I really want to know why.

candid hearth
#
String headerText = ChatColor.of("#0471FB") + "" + ChatColor.BOLD + "Welcome to Frionous SMP\n" +
                ChatColor.of("#D5D8D9") + "-------------------------------------------------\n" +
                ChatColor.of("#0471FB") + "There are currently" + ChatColor.of("#D5D8D9") + " %player_name% " + ChatColor.of("#0471FB") + "players online!";
        String footerText = ChatColor.of("#0471FB") + "MCMMO Mining Lvl:" + "%mcmmo-mining-level%" +
                "website link";

        headerText = PlaceholderAPI.setPlaceholders(event.getPlayer(), headerText);

Am I doing something wrong? When I add the last line the entire plugin breaks

modest storm
#

How can I stop players from being able to use placeholders?

austere hawk
#

Placeholder so that if a text contains "_" it is replaced by a space

modest storm
#

Is there not a way to revoke permission to use placeholders ๐Ÿค”

vast oasis
vast oasis
desert current
#

hello, im new and i need help with placeholder couse it doesnt sync with luckyperms

austere hawk
vast oasis
#

hmmm

#

i can write you a tiny PAPI addon that's only for underscores if there really isn't any available

modest storm
vast oasis
#

just gimme half an hour, I need to make coffee first

austere hawk
#

It would be better for symbols, right?

vast oasis
#

wdym?

austere hawk
#

Well, replace _- with spaces or another character

#

%str_replace_minecraft_mine_our% And what is this for?

vast oasis
vast oasis
junior musk
#

replaces mine by our in the text minecraft

#

though unsure if that's the correct order

#

and I thought the expansion name was string, not str

#

uh, it's not even there

#

ah

#

it's another expansion

austere hawk
austere hawk
vast oasis
#

just drop the .jar into your plugins/ and restart

#

it's NOT an ecloud extension but a standalone plugin that hooks into PAPI

austere hawk
#

Cleaner the placeholder

vast oasis
#

but it only replaces underscores

#

hence it's called replaceunderscores

austere hawk
vast oasis
#

wdym?

austere hawk
#

And to replace -

austere hawk
wheat prism
vast oasis
#

%formatter_text_replace_-_ _this-is a test% -> "this is a test"

#

underscores is the only thing that formatter_text_replace can't do, hence I only made a plugin for underscores

austere hawk
vast oasis
#

a separate placeholder for hyphens is not needed because you can already do that with %formatter_text_replace

vast oasis
wheat prism
vast oasis
#

if so you can do this

  1. enter /lp verbose record
  2. use a placeholder in chat
  3. enter /lp verbose upload
    then send the link and we can see which plugin is causing this
wheat prism
#

okay thank u sec

austere hawk
#

%replaceunderscores_ _my_original_text% my original text

vast oasis
#

yeah

wheat prism
austere hawk
#

%str_uppercase_{replaceunderscores_ _my_original_text}%

#

is this going to work?

wheat prism
#

theres that for ya

#

i hope thats enough

#

should i have had an alt send the placeholder?

austere hawk
vast oasis
vast oasis
wheat prism
#

mine

vast oasis
#

you should try to do this as non-OP

wheat prism
#

yeah i figured lmao oops

#

one sec

vast oasis
#

that works

#

you need /papi ecloud download str

austere hawk
#

Okey

#

Yea

#

Thanks friend, just check the expansion if it is well done in case you doubt it

vast oasis
#

you're welcome

#

only took 5 minutes lol

#

maybe I can turn it into an ecloud extension

#

idk how it works to get sth officially uploaded there, never really used PAPI before

austere hawk
#

i guess you can

wheat prism
#

that should do it

#

user inky77 did the placeholder

vast oasis
#

which placeholder did you use?

wheat prism
#

%player_health%

vast oasis
#

hm I don't see anything related to placeholders in that

wheat prism
#

okay

vast oasis
#

maybe send a list of your plugins?

wheat prism
#

crying emoji

#

oh okay yes

#

AFK-Kick, AltDetector, AntiTNTDupe, AuctionHouse, BetterRTP, BuycraftX, ChatFilter, ChestShop, ChestShopNotifier, Chunky CommandPanels, CoreProtect, DeluxeTags, DropHeads, eGlow, EnchantmentNumbers, EnchBook, Essentials, EssentialsChat, EssentialsDiscord EssentialsDiscordLink, EssentialsSpawn, ExcellentCrates, ExecutableItems, FancyHolograms, GriefPrevention,GroupChat, GSit, GWarp, HeadDatabase HorseTpWithMe, InteractiveChat, ItemEdit, ItemEffects, ItemGlow, LibsDisguises, LuckPerms, Multiverse-Core, Multiverse-Inventories, Multiverse-Portals MyCommand, NBTAPI, Negativity, NexEngine, OreAnnouncer, Pl-Hide-Pro, PlaceholderAPI, PlayerParticles, PluginManager, ProtectItemPlugin ProtocolLib, PvPManager, Quests, SCore, Shopkeepers, SilkSpawners,SimpleStaffChat2, sleep-most, SuperVanish, TAB Vault, ViaBackwards, ViaVersion, VoteParty, Votifier, Vouchers, WorldEdit, WorldGuard, WorldGuardExtraFlags

vast oasis
#

hm no clue tbh

wheat prism
#

oh :<

#

thats awkward huh

vast oasis
#

you could install EventDebugger, then we can find out for sure

#

one second

wheat prism
#

okay

#

thank you for the help by the way!

vast oasis
#
  1. install this: https://www.spigotmc.org/resources/eventdebugger.82055/
  2. restart server
  3. edit config of EventDebugger, remove everything and add this:
exact:
  AsyncChat:
    class: "org.bukkit.event.player.AsyncPlayerChatEvent"
    methods:
      - "getFormat"
      - "getMessage"
  Chat:
    class: "org.bukkit.event.player.PlayerChatEvent"
    methods:
      - "getFormat"
      - "getMessage"
  1. Restart again. Then use a placeholder again, and the log file should tell you which plugin replaced the placeholders
wheat prism
#

thanks! on it :>

vast oasis
#

Expect a lot of console spam while EventDebugger is running. But it will 100% tell you which plugin is causing it

vast oasis
wheat prism
vast oasis
#

no, your actual latest.log

wheat prism
#

mmm i see

#

okay

vast oasis
#

you can also upload it on the site mentioned in the channel description (or dm it to me) and i'll take a look

wheat prism
#

its vouchers???

#

so weird

vast oasis
#

is it? can you paste that log part pls?

wheat prism
#

here ill dm u

vast oasis
#

ok

wheat prism
#

done!

vast oasis
vast oasis
#

is there already a PAPI extension with the identifier "replace"?

restive nova
#

please update it

tender vaporBOT
restive nova
#

๐Ÿ˜ญ

#

I beg

#

This extension has not been updated for a long time.

restive nova
#

when approve

#

the pending viewer darbyjack seems not online for a long time

echo tree
#

Im trying to use pinger and put in my scoreboard (scoreboard plugin: simplescore) and i did %ping% doesnt work and the others on the github doesnt work aswell well it did but is either 0 1 or -1. anyone have anyidea how to fix this?

junior musk
#

%player_ping%

sharp bloom
#

wow the lore one is awesome too

fossil turtle
#

Hello! Help please, I made a plugin, but it does not work, I searched the entire Internet, I did not find anything about this problem anywhere. The loading order doesn't seem to be broken, first PlaceHolder and then my plugin, but it doesn't work(( https://paste.helpch.at/cohutipivo.css

junior musk
#

you shaded PlaceholderAPI

#

if you're using Maven, set the scope of the dependency to compile, if you're using Gradle, instead of compile or implementation, use compileOnly

fossil turtle
#

<scope>compile</scope>? (im use maven)

junior musk
#

yeah

#

oh my bad

#

it's provided instead of compile

fossil turtle
tender vaporBOT
fossil turtle
#

but not work

junior musk
#

did you add PlaceholderAPI to your plugin.yml's softdepend?

fossil turtle
junior musk
#

send your server logs

fossil turtle
junior musk
#

that's the first error

fossil turtle
junior musk
junior musk
fossil turtle
#

ah one sec

tender vaporBOT
# fossil turtle https://paste.helpch.at/otaputibah.makefile
Possible Solution Found:

Your plugin / expansion shade PlaceholderAPI. Here's how to fix that:

  • For Maven, set <scope> to provided
  • For Gradle, use compileOnly instead of implementation
junior musk
#

thonk PAPI loaded before

#

can you send me your plugin jar in DM?

fossil turtle
#

Okk

junior musk
#

it looks fine ManyThink

#

I can't find anything wrong =/

fossil turtle
junior musk
#

nope, it throws the error for me as well

fossil turtle
#

oh, wtf mystic

junior musk
#

yeah weird

fossil turtle
#

I managed to fix it! I switched from PaperAPI to SpigotAPI and it worked!

true elbow
#

Hello, someone knows because the expansion Javascript does not work for me, the plugin load correctly but the test a placeholder does not leave me anything in the chat and does not give me any error.

tender vaporBOT
#
FAQ Answer:

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

fading blaze
#

hi, i want to read from placeholder every 30 seconds and send the value to a database

#

the sending is done

#

but

#

i dont know how to read from a placeholder

#

in a plugin

#

I only found the "setPlaceholders" but thats not what i need

vast oasis
#

that is what you need

#
String result = PlaceholderAPI.setPlaceholders(somePlayerOrNull, "%placeholder_you_want_to_get%");
#

@fading blaze

fading blaze
#

but wait.

#

The somePlayerOrNull should be placed with player's name who's value should be readed right?

vast oasis
#

yes

fading blaze
#

thank you

vast oasis
#

well not the name

#

but the OfflinePlayer or Player object

fading blaze
#

uuid?

#

ohh

#

mb

#

xd

waxen shell
#

Is there anyway i can resets all stats for players?, such as "%statistic_deaths%" as we've been testing, the server hasn't launched, but i want to have all players start with 0 deaths,

i already deleted playerdata and stats as i saw a tutorial, but that data seems to still be stored

vast oasis
#

<serverFolder>/world/stats/

#

there's one file per UUID

#

just stop the server, delete that folder, and there you go

restive nova
#

Why I can't register String expansion in the lastest papi>

#

Just tell me Failed to find .....

vivid sparrow
#

It is not verified

#

Download it manually

restive nova
#

I regitsered it manually

#

/papi register Expansion-String.jar

round marsh
#

dumb question but is there a code-api part of the plugin that allows me to use the placeholders in smthn like python code?

sharp bloom
#

isnt there any placeholder that returns a boolean or smth when the item in offhand is still maxed?

#

i m aware of the %player_item_in_offhand_durability% but that returns the durability :/

vast oasis
vast oasis
sharp bloom
#

yuh ik but i want it for multiple menus so the value ll have to change for different tools

#

thats why i m asking if there is smthing boolean :/

vast oasis
#

oh well for armor there's %armor_durability_left_<slot>% and %armor_durability_max_<slot>% that you could compare

#

but not for offhand

sharp bloom
#

๐Ÿคท๐Ÿปโ€โ™‚๏ธ

vast oasis
#

i could write you a tiny expansion that returns the max durability for the currently held item, then you could throw that into %string_equals%

sharp bloom
#

nah its fine no biggie i can change the output values

vast oasis
#

alrighty

junior musk
#

it starts from 0

#

durability is the opposite

sharp bloom
#

what _damage :/ ?

#

I can't find any placeholder related to offhand about the dmg

junior musk
#

maybe it's just not listed

#

try player_item_in_offhand_damage

#

I know it's there because I saw it in the code xD

dapper mauve
junior musk
#

I think your expansion needs to be open-source to get verified

dapper mauve
#

Its not obfuscated, you can decompile it easily

vivid sparrow
#

Publish it on a repo

half jewel
#

%checkitem_amt:7,mat:paper......% don't work
all materials work but not Paper why ?

dapper mauve
sharp bloom
junior musk
#

seems like it's _data

#

forgot about that

sharp bloom
#

oh yee that works

#

it returns 0 when it doesnt have any dmg taken

#

thankss pepe_love

uneven terrace
#

Good day, i cant seem to get placeholders to work (by thelooks of it), i have the plugin installed i have tried doing ecloud and stuff but nothing seems to work

#

help would be glady appreciated!!

solid hazel
#

Hiya! On request of PhoenixCrates is anyone able to make it happen an API to make sure that specific cases happens, such as setting block, opening the crate for the user and so on ๐Ÿ˜„ ?

Please @ me if u know how Or if you know a plugin which already does this ^^

sharp bloom
frank glacier
#

what's the best way to prevent this message in console for people who haven't killed/died yet? this math is to calculate KD - can i force it to 0 or something if it fails?
[21:17:09 WARN]: [PlaceholderAPI] [math] Invalid Placeholder detected!
[21:17:09 WARN]: [PlaceholderAPI] [math] Placeholder: %math_{statistic_player_kills}/{statistic_deaths}%
[21:17:09 WARN]: [PlaceholderAPI] [math] Cause: '0/0' is not a valid Math expression.

dapper mauve
#

its linked at the extension's page

vast oasis
frank glacier
#

oh cool ok thank you

vast oasis
#

hmmm does PAPI not allow double nested placeholders?

mint fable
#

use utils

#

%utils_parse_math...%

#

but

#

you shouldn't need it

#

math has a max function

#

or min

vast oasis
#

but that'd still be a double nested placeholder

mint fable
#

%math_{statistic_player_kills}/MAX({statistic_player_deaths}, 1)% maybe

mint fable
#

it's part of evalex

#

or

#

it should be MAX

#

not min

#

i was right the first time

vast oasis
#

nah that also just returns the palceholder

mint fable
#

does it give an error

vast oasis
#

no

mint fable
#

do you have math

#

and statistic?

#

the issue is that 0/0 is not a valid expression because you can't divide by 0

vast oasis
#

yes

#

i have both

#

does an expansion have to handle placeholders in placeholders themselves?

#

or is that a normal PAPI feature

mint fable
#

/papi parse me %statistic_player_kills%

vast oasis
#

that obv works fine

mint fable
mint fable
vast oasis
#
> papi parse Stullenesser_ %math_{statistic_player_kills}/MAX({statistic_player_deaths}, 1)%
[00:08:51 WARN]: [PlaceholderAPI] [math] Invalid Placeholder detected!
[00:08:51 WARN]: [PlaceholderAPI] [math] Placeholder: %math_{statistic_player_kills}/MAX({statistic_player_deaths}, 1)%
[00:08:51 WARN]: [PlaceholderAPI] [math] Cause:       0/MAX(Unknown statistic 'player is not a valid integer number.
[00:08:51 INFO]: %math_{statistic_player_kills}/MAX({statistic_player_deaths}, 1)%
>

mb I didnt see the error msg lol

mint fable
#

O.o

vast oasis
mint fable
#

what about /papi parse me %statistic_player_deaths%

vast oasis
#

it looks like it can only handle one nested placeholder?

mint fable
#

there are no nested placeholders

vast oasis
#
 papi parse Stullenesser_ %statistic_player_deaths%
[00:10:11 INFO]: Unknown statistic 'player_deaths', check https://helpch.at/docs/1.20.1/org/bukkit/Statistic.html for more info
>

mint fable
#

ah, that's wrong then

vast oasis
mint fable
#

it's {statistic_deaths}

vast oasis
#

yeah the correct one is %statistic_deaths%

#

but we used that before

mint fable
#

the expansion, math, supports placeholders with {}

vast oasis
#

oooh but we didnt use it with your MAX thingy

mint fable
#

again

#

max is also not a placeholder

#

it is a function of evalex

#

%math_{placeholder_{placeholder}}% would be nested, and that can be done with utils

vast oasis
#

yeah this correctly returns 0.000 @frank glacier %math_{statistic_player_kills}/MAX({statistic_deaths}, 1)%

#

is utils builtin? I cannot find it on the placeholders list on github

mint fable
#

no

#

it's on the ecloud

frank glacier
#

thank you both very much

vast oasis
#

I always thought PAPI had support for nested placeholders builtin ๐Ÿฅฒ guess I gotta rewrite my expansion because right now it's useless lol

#

I guess I can just throw the match of this regex at setPlaceholders until it stops matching ^.*({[^}]*}).*$

frank glacier
#

massive rip

lethal breach
#

I added my expansion inside my plugin. However, if I type /papi reload, the placeholders no longer work. May I ask how can I fix it so that the expansion on my plugin also reload or at least still work?

junior musk
#

override the perists method and make it return true

lethal breach
vast oasis
#

Is there a reason why setBracketPlaceholders(OfflinePlayer, ...) is annotated with NotNull, but setBracketPlaceholders(Player, ...) isn't?

junior musk
#

you create a method called persists that returns a boolean, and you make it return true

#

if you use IDEA, type @Override, then it'll suggest you Override/Implement or smth like that

lethal breach
junior musk
#

then you can choose the persists method from there

#

yeah, with lowercase p

vast oasis
lethal breach
lethal breach
junior musk
#

send your entire class

vast oasis
junior musk
#

?paste

tender vaporBOT
#
FAQ Answer:

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

lethal breach
junior musk
#

oh my bad

#

thought it was persists

junior musk
vast oasis
#

huh, Override must not throw an error there

#

was the Uppercase the problem?

junior musk
#

that way, you were able to find out that it was persist without the s

vast oasis
#

i usually just type @ Ov, press enter, and then you can choose the method from a list in intelliJ lol

lethal breach
sharp bloom
#

Tanguygab be carrying this channel fr fr

junior musk
#

nah

vast oasis
#

yaay my first PAPI pull request \o/

#

damn and it's issue #1000

#

huehue

fallen nacelle
#

running arclight 1.16.5
so my machine ran out of storage space, causing a player to loose his playtime, i basically have a gui with an item with this lore:
- '&#ffffffYour current playtime is &#14fa1c%<% &#ffffffhours and &#14fa1c%math_0:half-up_(({statistic_minutes_played} / 60) - {statistic_hours_played}) * 60% &#ffffffminutes!'
but the values for statistic got reset, when i run /cmi playtime <playerName> he only has a few hours, how could i manually fix this?

#

i just need to override his playtime

#

but i cannot find where its storing its data

vast oasis
#

stop the server, then take a look at world/stats/<uuid>.dat

#

it's a huge .json file, maybe open it with some proper json viewing tool online, because all the stuff is on one line in a normal text editor

fallen nacelle
#

could it be a <uuid>.json file?

mint fable
#

cmi also provides placeholders

mint fable
#
%cmi_user_playtime_formatted% โ€“ Formatted playtime
%cmi_user_playtime_days% โ€“ Playtime in days
%cmi_user_playtime_dayst% โ€“ Playtime in days with fraction
%cmi_user_playtime_hours% โ€“ Playtime in hours
%cmi_user_playtime_hoursf% โ€“ Total playtime in hours
%cmi_user_playtime_hourst% โ€“ Total playtime in hours with fraction
%cmi_user_playtime_minutes% โ€“ Playtime in minutes
%cmi_user_playtime_minutest% โ€“ Total playtime in minutes
%cmi_user_playtime_seconds% โ€“ Playtime in minutes
%cmi_user_playtime_secondst% โ€“ Total playtime in minutes

and maybe
%cmi_user_stats_playtime%

mint fable
#

O.o

#

it's using the stats folder that mfnalex mentioned

#

I'm just telling you that CMI also provides placeholders if you want to use them instead

fallen nacelle
#

oh

#

yea thank you

vast oasis
#

I even said it's a .json file lol. stupid me

fallen nacelle
#

so i couldnt find any playtime in the json file, this is the content https://paste.md-5.net/axulewavih.json
so i went to playerdata folder and found the <uuid>.dat file of the player, with NBTExplorer i found this firstPlayed: 1691160430216 under the bukkit sector, and deluxemenus:reward-2-playtime: 6115 deluxemenus:reward-1-playtime: 7701 , i imagine thats the issue? i dont see how the placeholder could be taking that value instead of the playertime instead

#

thats the image

#

i cant send it here

#

should i just copy the value of firstPlayed and paste it in deluxemenus:reward-2-playtime and deluxemenus:reward-1-playtime?

#

feel free to tag thanks ๐Ÿ˜„

sharp jay
#

?imgur

tender vaporBOT
#
FAQ Answer:

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.

mint fable
#

not sure why you wouldn't use the cmi placeholder instead though, since that seems a lot easier to reset

#

especially if you're doing it often and for many players

#

or actually "minecraft:play_one_minute" in your file

#

Ah, I see it won't be done often or for many players

fallen nacelle
#

yea its a random case ideally i dont change anything

#

other than the value for this one player

mint fable
#

right

sharp bloom
#

hey cj i remember that u ve mentioned before that if an items plugin has a take command we should use that instead of the checkitem remove. why is that :/ ? is there smthing wrong with the checkitem?

junior musk
#

because commands have permissions, while the checkitem placeholder can be used by anyone who can parse placeholders

#

so if you have a plugin that parses placeholders in a player's input, it could lead to serious issues if the placeholder is parsed for someone else, or even for the player himself if he uses the give placeholder

sharp bloom
#

hm

junior musk
#

& compared to commands, placeholders aren't logged in console

#

so there'd be no trace anything even happened

sharp bloom
#

eh i ll still risk it using it on one of my menus :/

#

cause i wanna remove an item from offhand

#

i mean how could possibly a user gets access to it :/

junior musk
#

ยฏ_(ใƒ„)_/ยฏ

sharp bloom
#

%checkitem_remove_amt:1,inhand:off,_nbtstrings:PublicBukkitValues..executableitems:ei-id=slimy_castmaster% i like dis ๐Ÿคท๐Ÿปโ€โ™‚๏ธ

#

the chat plugin can parse placeholders in chat but players wont have permission to it

#

hmm mby by disabling it ll add more security ThinkEyes

summer glacier
#

hello

#
  'raktas':
    material: TRIPWIRE_HOOK
    slot: 13
    display_name: '&5โ–ถ &d&lPLATINUM RAKTAS'
    lore:
    - ''
    - '&7Uลพ auksinius galite ฤฏsigyti Platinum raktฤ…!'
    - ''
    - '&dโ–Ž &7Kaina: &d&l1500 auksiniลณ&7.'
    - ''
    - '&7Paspauskite norฤ—dami ฤฏsigyti!'
    left_click_commands:
    - '[console] coins take %player_name% 1500'
    - '[console] crates give p platinum 1 %player_name%'
    - '[sound] ENTITY_FIREWORK_TWINKLE'
    - '[message] &eโ–ถ &6&lAUKSINIAI &8| &7Jลซs sฤ—kmingai ฤฏsigijote Platinum raktฤ…!'
    - '[close]'
    right_click_commands:
    - '[console] coins take %player_name% 1500'
    - '[console] crates give p platinum 1 %player_name%'
    - '[sound] ENTITY_FIREWORK_TWINKLE'
    - '[message] &eโ–ถ &6&lAUKSINIAI &8| &7Jลซs sฤ—kmingai ฤฏsigijote Platinum raktฤ…!'
    - '[close]'
    left_click_requirement:
      requirements:
        coins:
          type: '>='
          input: '%coinsengine_balance_raw_coins%'
          output: '1500'
      deny_commands:
      - '[close]'
      - '[message] &eโ–ถ &6&lAUKSINIAI &8| &7Jลซs neturite &6&l1500 auksiniลณ&7!'
    right_click_requirement:
      requirements:
        coins:
          type: '>='
          input: '%coinsengine_balance_raw_coins%'
          output: '1500'
      deny_commands:
      - '[close]'
      - '[message] &eโ–ถ &6&lAUKSINIAI &8| &7Jลซs neturite &6&l1500 auksiniลณ&7!'
#

requirement not working

junior musk
#

/papi parse me %coinsengine_balance_raw_coins%

#

what does it return?

summer glacier
#

i can't send here photos...

tender vaporBOT
summer glacier
true girder
vivid sparrow
dapper mauve
tender vaporBOT
dapper mauve
#

sorry

vivid sparrow
#

What

dapper mauve
tender vaporBOT
tender vaporBOT
mint fable
#

like opening a deluxemenus with args would let the user parse the placeholder

austere hawk
#

How do I remove decimal numbers from a number

#

example 4.72 to 4

#

what i want to do is %placeholder_value_number% รท 100 = number without decimal

mint fable
#

%math_0:_{placeholder}%

#

@austere hawk this

austere hawk
#

Thanks man

austere hawk
violet void
#

Yes

mint fable
#

you can add the /100 as well if needed

austere hawk
#

And to make a division

#

Divide the value of a placeholder by 100 and remove the decimals

mint fable
austere hawk
#

Thank you

warm plover
#

%placeholder_parse:5_math_0:_{string_substring_5,6_{block_data}}+1%

#

Any idea how I can make this parse correctly?

#

%block_data% is from another plugin that supports PAPI being used within their built in placeholders

mint fable
#

right?

warm plover
#

I'm using the old placeholder format

#

Let me try utils anyway tho

mint fable
#

I never knew of that one

warm plover
#

It was short lived lol

mint fable
#

right...

#

you also shouldn't need parse:5 anymore

#

just parse

#

should work pretty good

warm plover
#

.

#

I'll check it out, ty!

mint fable
#

ya, using an in-between build lol

#

for sure, lmk if anything arises

warm plover
#

Parses as this

#

%util_parse_math_0:_{string_substring_5,6_{block_data}}+1%

mint fable
#

well, {block_data} is presumably a deluxemenus arg, is that right?

warm plover
#

huh, I feel like util isn't working period

mint fable
#

it doesn't look like you need utils at all actually

#

if it is a deluxemenus arg

#

is block_data a placeholderapi placeholder?

warm plover
#

Nah, it's a placeholder from ConditionalEvents

#

It just outputs [age=7] and the author has made these plugin placeholders built to work with placeholderapis placeholders

#

But I dunno for sure if you can nest them lol

mint fable
#

well test it out, if it works: you probably don't need utils at all

warm plover
#

I just tried parsing %util_parse_{math_0:_3+1}% and it parses as itself, is my util broken maybe?

mint fable
#

shouldn't start with {} probably

#

oh

#

you did util

#

it is utils

warm plover
#

...

#

whoops

#

let's ignore that

#

So %utils_parse_math_0:_{string_substring_5,6_{block_data}}+1% parses as math_0:__}+1

#

The goal is for it to be parsing as 7+1

mint fable
#

{block_data} won't parse as anything

#

you'll need to test it using the conditional event

warm plover
#

oh

#

well I'm dumb too

mint fable
#

it's parsing string_substring_5,6_{block_data as a placeholder and returning _ fyi

warm plover
#

Yeah I noticed that now ;-;

#

Yeah seems like I cannot do that

#

I think I have another solution to this that just uses a string replace

mint fable
#

{block_data} doesn't turn into [age=7] before parsing the placeholderapi placeholder?

warm plover
#

It does, but not when nested

#

Well, it parses as age=7, thought it had square brackets but nope lol

mint fable
#

that's... weird

#

if conditional events changes it, there shouldn't be any interference from papi

warm plover
#

Yeah I'm guessing it's just some weird thing on CE's end

#

Thanks for the help tho! I think I can do what I'm trying to do with replacements

mint fable
#

@warm plover it's not {block_data} right?

#

it would be %block_data%

#

it's not a papi placeholder, so switching it to {} wouldn't do the trick

#

try %block_data%: if conditionalevents changes it before parsing for papi placeholders, it should work

warm plover
#

It's %block_data but a recent update to CE allows you to use {block_data} for PAPI support

mint fable
#

ahh

mint fable
warm plover
#

I think so

mint fable
#

what if you put %block_data%

#

to test

warm plover
mint fable
#

ah

warm plover
#

It just parsed as the whole placeholder

mint fable
#

parsed?

warm plover
#

Outputted*

mint fable
#

ok

warm plover
#

I have a message on an event on the plugin to send the message

mint fable
#

right

#

actually, it should work with {block_data} judging by this

message: &7IP of &a%arg_1% &7is: %otherplayer_ip_{arg_1}%

warm plover
#

Should I try the parse number?

mint fable
#

%math_0:_{string_substring_5,6_{block_data}}+1%

warm plover
#

wait

#

Why did I even try using utils

#

I acted like that placeholder came from papi lol

warm plover
#

Also doesn't work.. why I have no idea

#

It should

mint fable
#

prob a ce issue idrk

warm plover
#

Sadly yep

#

I appreciate the help tho ofc, hopefully I can make it work with replace

mint fable
#

gl

fallen nacelle
#

how is this wrong?
- '&#ffffffYour current playtime is &#14fa1c%cmi_user_playtime_hoursf% &#ffffffhours and &#14fa1c%math_0:{cmi_user_playtime_minutest}-(60*{cmi_user_playtime_hoursf})% &#ffffffminutes!'

mint fable
#

@fallen nacelle should start %math_0:_ with a _

#

also not sure what the f is after hours

#

or the t after minutes

#

unless those are just your placeholders

fallen nacelle
#

its total time

#

instead of non afk time

mint fable
#

ah

hardy sonnet
#

nested placeholders don't seem to be working with cmi's chat format, returning just a '%', even though running /cmi placeholders parse does produce the right result

junior musk
#

?imgur

tender vaporBOT
#
FAQ Answer:

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.

junior musk
#

?paste

tender vaporBOT
#
FAQ Answer:

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

timid bough
#

Hi, I would like to know if there is any placeholder that displays the health of your teammates somehow. Thanks!!

restive nova
#

Why I can't use String placeholder in papi 2.11.3

#

Failed to find expansion in file: plugins\PlaceholderAPI\expansions\Expansion-String.jar

#

I tried every version

gilded lantern
restive nova
#

yes

#

all the lastest

gilded lantern
#

latest is 2.11.4 Build 177

austere hawk
#

Any localtime alternative?

#

Why do I have to pay for the test key, right?

thick steppe
#

I'm trying to make a death leaderboard with papi and DecentHolograms and ajleaderboards, I have the statistics placeholder installed to papi and %stastic_deaths% installed to ajleaderboards. This is an example of what my deaths hologram yml file looks like:

enabled: true
display-range: 48
update-range: 48
update-interval: 20
facing: 0.0
down-origin: false
pages:
- lines:
  - content: "&4&lTOP DEATHS"
    height: 0.3
  - content: "#1 %ajlb_lb_statistic_deaths_1_alltime_name% &7- %ajlb_lb_statistic_deaths_1_alltime_value%"
    height: 0.3
  - content: "#2 %ajlb_lb_statistic_deaths_2_alltime_name% &7- %ajlb_lb_statistic_deaths_2_alltime_value%"
    height: 0.3
  - content: "#3 %ajlb_lb_statistic_deaths_3_alltime_name% &7- %ajlb_lb_statistic_deaths_3_alltime_value%"
    height: 0.3
  - content: "#4 %ajlb_lb_statistic_deaths_4_alltime_name% &7- %ajlb_lb_statistic_deaths_4_alltime_value%"
    height: 0.3
  - content: "#5 %ajlb_lb_statistic_deaths_5_alltime_name% &7- %ajlb_lb_statistic_deaths_5_alltime_value%"
    height: 0.3
  - content: "#6 %ajlb_lb_statistic_deaths_6_alltime_name% &7- %ajlb_lb_statistic_deaths_6_alltime_value%"
    height: 0.3
  - content: "#7 %ajlb_lb_statistic_deaths_7_alltime_name% &7- %ajlb_lb_statistic_deaths_7_alltime_value%"
    height: 0.3
  - content: "#8 %ajlb_lb_statistic_deaths_8_alltime_name% &7- %ajlb_lb_statistic_deaths_8_alltime_value%"
    height: 0.3
  - content: "#9 %ajlb_lb_statistic_deaths_9_alltime_name% &7- %ajlb_lb_statistic_deaths_9_alltime_value%"
    height: 0.3
  - content: "#10 %ajlb_lb_statistic_deaths_10_alltime_name% &7- %ajlb_lb_statistic_deaths_10_alltime_value%"
    height: 0.3
  actions: {}
``` but it doesnt show the death count in game.. it looks sorta like:
`TOP DEATHS
 #1  --- - ---
 #2  --- - ---
 #3  --- - ---
 #4  --- - ---
 #5  --- - ---
 #6  --- - ---
 #7  --- - ---
 #8  --- - ---
 #9  --- - ---
 #10  --- - ---`
open stone
raw forum
#

Hi has everyone, I made my own extension how do I publish it on ecloud?

sharp bloom
#

from a placeholder that returns 3+ names in a list <name1>,<name2>,<name3>... is it possible to get a specific name out of it with one of the papi expansions?

trail lantern
#

Hello everyone, I need help using javascript( %javascript_<your placeholder identifier>% )

#

How to use them now?

junior musk
trail lantern
#

thank

grizzled parrot
#

Hello

#

is this the place to get support for DeluxeMenus?

open stone
# thick steppe 2

do u have in ajlb config enable-dontupdate-permission set on false?

junior musk
austere hawk
#

Why do I have to pay for the test key, right?

open stone
open stone
austere hawk
#

is there a placeholder to show how old a server is (like in days for example)?

sharp bloom
austere hawk
#

also whats the difference between %server_tps_1_colored% %server_tps_5_colored% %server_tps_15_colored%

sharp bloom
#

no i meant somethiing like Created: 9/1/2023

austere hawk
#

ahh i see

austere hawk
#

like 835 days later, look at the server now!

mint fable
#

hmm

sharp bloom
#

i ve never heard of such placeholder tbh

#

sadly u cant use math for dates ๐Ÿ’€

austere hawk
# sharp bloom 1 1min 5 5min 15 15min

i think the tps thing is a bit innacurate. i use %server_tps_1_colored% and i have never seen the tps at 18.5 (for example), while it has been at 18.5 at some point

#

like ive never seen tablist say "19.62 TPS"

#

is there a more specific one?

mint fable
sharp bloom
#

if think the tab plugin use a different placeholder for the tps?

junior musk
#

they retrieve the same data from Spigot

mint fable
#

you can set the start date of the server and it will get the difference, you can customize the output

sharp bloom
#

oh

junior musk
#

if Spigot returns the wrong TPS, then both placeholders will be wrong

#

but I don't see how it could be wrong xD

austere hawk
mint fable
#

see the wiki

sharp bloom
junior musk
#

check the Home page of the wiki link you were sent

sharp bloom
#

its from clip and its not verified? wat

mint fable
#

correct, it has to be manually installed

austere hawk
#

i see

#

so how do i enter in the day the server was made?

mint fable
#

look at the script

#

you have to save that and set it up

#

instructions on the wiki

austere hawk
#

thank you

sharp bloom
#

also isnt the tps affected if your server isnt dedicated?

#

like it is with ram

mint fable
#

theoretically this could be entirely made with a math placeholder as well I bet

#

but I'm not gonna be the one to do that ๐Ÿ˜‚

#

javascript is just a little slower

mint fable
austere hawk
#

Any localtime alternative?

#

Why do I have to pay for the test key, right?

mint fable
#

i don't think there has been any movement on it that I see

austere hawk
# mint fable i don't think there has been any movement on it that I see

so i downloaded the js expansion, placed it in papi/expansions, reloaded the server, in the javascripts folder i made a file named ServerAge.js with the following code:

    // year, month, day, hour, minute, second
    // months start at 0 and end at 11
    // January is 0. December is 11
    var startDate = new Date(2023, 8, 1);
    var endDate = new Date();
    var difference = endDate - startDate;

    var months = Math.floor(difference / (1000 * 60 * 60 * 24 * 31));
    var days = Math.floor(difference % (1000 * 60 * 60 * 24 * 31) / (1000 * 60 * 60 * 24));
    var hours   = Math.floor(difference % (1000 * 60 * 60 * 24) / (1000 * 60 * 60));
    var minutes = Math.floor(difference % (1000 * 60 * 60) / (1000 * 60));
    var seconds = Math.floor(difference % (1000 * 60) / (1000));

    // XXmo XXd XXh XXm XXs (changeable)
    return months + "mo "+ days + "d " + hours + "h " + minutes + "m " + seconds + "s";
}

time();
sharp bloom
#

i use the localtime expansion pretty much fine ;-;

austere hawk
austere hawk
sharp bloom
#

don't ask me lol i suck with javascript

austere hawk
#

Returns the default time to all players

sharp bloom
#

what localtime r u trying to get

austere hawk
austere hawk
sharp bloom
#

stop pinging me i told ya idk how to help u with the date thingieOKK

#

i m bad with js

austere hawk
#

and me?

sharp bloom
#

no not u xd

sharp bloom
#

i mostly use the expansion to get specific timezones

austere hawk
#

So to get the player's time there is no other alternative?

#

Why doesn't it work with localtime

sharp bloom
#

what would u even use it for to get the localtime of a player :/

#

mby some players don't want their localtime to be shared

junior musk
#

because MC doesn't give the player's timezone information

#

the only way to get it is to check the player's IP location, and that requires some website to do so

#

and those websites require API keys which usually are paid

#

There is another way this would work, and that is to get the player's locale, the language they chose in their MC settings

#

though if I'm in France and I play MC in English US, I'd get the US's timezone so it's not really perfect๐Ÿคท

mint fable
#

@austere hawk looks like you did all the steps, now just use the placeholder

austere hawk
#

How do I do that?

mint fable
#

did you add it to the javascript_placeholders.yml?

balmy grove
#

Failed to load external expansion votingplugin. Identifier is already in use.

opal saffron
#

is there a plugin support channel

thick steppe
#

I am trying to add playtime feature to my SimpleScore scoreboard but when I add %playtime_player% it doesnt work. It says no download needed.

junior musk
#

usually, you can click on the name of the expansion on the wiki and it'll redirect you to the plugin page

austere hawk
tender vaporBOT
austere hawk
#

oh sry

austere hawk
#

got it, nevcermind

#

thanks

#

also, is there a placeholder to show the size of the server (disk space)?

quick thunder
#

Guys I am trying to parse my variables to a placeholder

#

but when I use the placeholder chat it returns nothing

junior musk
#

what placeholder did you use?

quick thunder
#

I am using %kalanistilasure% for my long value

#

it will return a string

junior musk
#

the syntax is %identifier_params%

#

so you have to use %invasion_kalanistilasure%

quick thunder
#

Okey I see

#

still same I used this %invasion_kalanistilasure%

junior musk
#

/papi parse me %invasion_kalanistilasure%

#

what does it return?

quick thunder
#

it returns %invasion_kalanistilasure%

junior musk
#

check /papi list

#

did invasion register?

quick thunder
#

yeah registered it say invasion

junior musk
#

just checked your code again and it doesn't mention kalanistilasure anywhere

#

I see istilakalansure and savunmakalansure but no kalanistilasure

quick thunder
#

okey istilakalansure

#

thanks

sharp bloom
#

i try to use this placeholder: %aoneblock_rank% which returns the rank of a member in the island but it seems that it cant get parsed when the user is offline, i ve tried to parse it both with utils and parseother expansions but no luck :/ any other alternatives?

junior musk
#

if the placeholder doesn't work for offline players, then there's no other way ๐Ÿคท

#

you try to ask the devs to make it work

sharp bloom
#

eh :/ ye i will

modern hornet
#

please get me id nether_wart minecraft 1.12.2

#

statistic

#

Invalid material: NETHER_WART/100

junior musk
#

?materials

tender vaporBOT
modern hornet
gloomy mist
#

For a server im working on im using this plugin called realistic seasons and in order for me to change the location of the temperature shown i use placeholder api and it places the temperature on the actionbar by default where can i find the names of the places i can change the location to?

mint fable
#

placeholderapi only provides placeholders, it doesn't add anything to an actionbar

#

That will be another plugin you have

gloomy mist
#

what i want to do is make the thing display not on the action bar

#

like at the top right of my screen or sumthn

mint fable
#

Yes, you need to find which plugin is making that happen and look at the config

#

placeholderapi does not put it on the actionbar

gloomy mist
#

i believe its protocol lib because it made me download that to get the plugin to work

mint fable
#

realistic seasons is the plugin

gloomy mist
#

(im sorry for this trouble im really bad at anything involving code)

mint fable
#

look here, it tells you how to change it

#

if you want it to show in your scoreboard, you will need a scoreboard plugin that supports placeholderapi

#

it looks like realistic seasons only has support for actionbar

gloomy mist
#

ive got titlemanager that ive downloaded a little while ago but hadnt set anything up on it yet

#

would i be able to use that?

mint fable
#

yes

gloomy mist
#

so how would i input the code so it shows in title manager?

gloomy mist
#

ooh okay

#

lines:

  • '&b&m----------------------------------'
  • '&b> &3&lPlayer Name:'
  • '&b%{name}'
  • '&r'
  • %rs_temperature%
  • '&b> &3&lPing:'
  • '&b%{ping} MS'
  • '&r&r'
  • '&b> &3&lServer Time:'
  • '&b%{server-time}'
  • '&b&m----------------------------------&r'
#

would this be correct?

#

it turned - into bulleten points lol

#

or do i need to put the placeholder in between ' '

feral parcel
#

%essentials_baltop_rank% isn't showing -
I have essentials and vault ecloud installed

#

when I run /papi parse me %essentials_baltop_rank% it returns me 1 which is correct. however in the hologram of the npc it does not appear.

shy nimbus
#

Hello!

I'm wondering if the params of the placeholder hook (#onPlaceholderRequest()) have any limitations in what characters to use.

For example, could %abcplugin_{"abcdef"}.ef()% be a valid expression, and PAPI will pass {"abcdef"}.ef() as the plain text to the abcplugin? I could test it, and it might just work, but I want to make sure if that's the intended behavior.

junior musk
#

anything works aside from %

shy nimbus
#

Awesome thank you!

austere hawk
#

is there a placeholder to show the size of the server (disk space)?
is there a placeholder to show all the chunks that have ever been loaded in the server?

solar swift
#

placeholder
%premiumvanish_bungeeplayercount@<server>%

is dead, i trying get players from survival so after @survival but it displays only placeholder, what's wrong? There is no download for vanish ;//

prisma sonnet
#

Hey!

#

Will we be able to return Components in future with PAPI?

sudden kindle
#

How do I use Velocity placeholders to get things like player server player counts? I've installed PAPIProxyBridge, do I need to do anything else?

delicate sluice
#

So. I made the sweet mistake of deleting a pre setup placeholder config. And now I'm full on lost on what to do. I need to fix a few things, like %player_name% etc. But I don't know how to add them. And I already added essentials etc the extentions I perhaps needed. I'm newish to this, and there's not really many guides...

junior musk
junior musk
junior musk
junior musk
junior musk
delicate sluice
junior musk
#

send the link you get from /papi dump

delicate sluice
junior musk
#

you didn't redownload it

#

/papi ecloud download Player
/papi reload

delicate sluice
#

oh! I see! That worked.

#

Also. I have interactivechat downloaded there. But it's not showing up.

#

for placeholders with papi. I mean.

junior musk
#

make sure it loaded correctly

#

uh, idk if it has any placeholders

#

and it doesn't even show up in the plugin list of the paste you sent

delicate sluice
#

It requires placeholder to use it. According to yt.

junior musk
#

yeah it requires the plugin, but doesn't add any

#

as far as I know

#

but since it doesn't even show up in the plugin list, it may have thrown an error when loading

#

check your server logs

#

oh it does have placeholders too ๐Ÿ‘€

#

but yeah, won't work if the plugin isn't loaded anyways

delicate sluice
#

It's not showing up. When I had put it under plugins, it didn't give me a config like the rest either.

#

Besides the point, since that's off topic. Thanks for the help with papi. I was pretty confused

junior musk
#

yeah as I said it may have failed to load because of some error

delicate sluice
#

Yes please

austere hawk
junior musk
#

uh, I thought it would return that since it's total

#

I don't think there is then

delicate sluice
#

temp. Back over here. Papi is still missing a few placeholders for tab. Things like %server_tps_1_colored% and %server_uptime% etc.

junior musk
#

did you download the server expansion?

#

/papi ecloud download server
/papi reload

delicate sluice
#

Ah! Working now!

#

This is definitely not going to be my last question, since there's a lot of confusing things here. But I think I'm getting the hang of it :)

junior musk
#

you have a list of most placeholder epansions available here, you can see that some are standalone and have to be downloaded (like the Server one), some are bound to a plugin and require that plugin to be installed, and there are others that may not be listed that are either integrated directly within plugins (usually their placeholders are listed on that plugin's wiki) or you can find other expansion on the PAPI eCloud https://api.extendedclip.com/all/

solar swift
junior musk
#

then the plugin where you're using the placeholder does not support PlaceholderAPI

solar swift
#

using tab

#

and on the tab there is problem

#

but only on survival

#

on the lobby all is good

junior musk
#

send a screenshot

#

?imgur

tender vaporBOT
#
FAQ Answer:

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.

solar swift
#

from survival or lobb

junior musk
#

anywhere it doesn't work

austere hawk
#

how can i fix the %player% palceholder in a menu? (from deluxemenus)

#

its a lore

#

this

#
      - ''
      - '&e&lโšก &8%player_name%&7: Hello'
      - ''
      - '&7&k.&f&lJ&4&lP&f&lN&7&k.&r &8%player_name%&7: Hello'
      - ""
      - '&7Left or Right Click to preview in chat!'
``` config
fair parrot
#

is there a placeholder for the servers entire balance/worth?

like the value at the top of /baltop within EssentialsX

austere hawk
#

and the second question is

#

why it shows purple

#

XD

solar swift
#

First - lobby (working @survival placeholder)
Second - survival, not working

junior musk
#

if yes, do you have the TAB-Bridge on all servers ?

tender vaporBOT
#
FAQ Answer:

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

junior musk
#

make sure you executed the commands

austere hawk
#

but the purple color...xd

junior musk
#

what's your DeluxeMenus version?

austere hawk
#

1.10.5 for 1.8 version

#

if i try other dont work

junior musk
#

downgrade PlaceholderAPI to 2.11.2

#

or use ยง instead of & in DM menus

austere hawk
#

ok

#

it work, thanks <3

hollow fox
#

Hello there!

I worried about how bad my solutions actually are from the optimization point of view.
I wrote a small plugin to help me organize some things I need, and surprisingly it works completely fine and solves my issues.

But to do so, I write a config file list of player names and display it via the holograms using PAPI.

I did it that way:
When using the add command:

  1. get a List<String> values from the config file,
  2. add that playername to that list
  3. write that new list into the config file.

Same principle with the delete and the list commands.

So I have required list of players in the file.

Now, the placeholders and API:
To display that list, I just implemented this if in the onRequest() method in my plugin's class that extends PlaceholderExpansion.

# onRequest()
if(params.equalsIgnoreCase("list")) {

            File tournamentFile = new File(OmhmsMcPlugin.getInstance().getDataFolder(), "tournamentDatabase.yml");
            FileConfiguration tournamentConfig = YamlConfiguration.loadConfiguration(tournamentFile);
            String participants = String.valueOf(tournamentConfig.getStringList("tournament_participants"));

            return participants;
        }

You may notice that for each onRequest() I read the file to get a list of players.
So my question is: **how bad this is from the performance point of view? **

Thanks in advance!

junior musk
#

implement Taskable, override start() and retrieve the FileConfiguration from there and save it in a field

hollow fox
#

Uhm, could you give any.. examle? Please

molten tiger
#
java.lang.IllegalStateException: java.io.EOFException
        at com.google.common.io.ByteStreams$ByteArrayDataInputStream.readUTF(ByteStreams.java:472) ~[guava-31.1-jre.jar:?]
        at com.extendedclip.papi.bungeeexpansion.BungeeExpansion.onPluginMessageReceived(BungeeExpansion.java:123) ~[?:?]
        at org.bukkit.plugin.messaging.StandardMessenger.dispatchIncomingMessage(StandardMessenger.java:455) ~[paper-api-1.20.1-R0.1-SNAPSHOT.jar:?]
        at net.minecraft.server.network.ServerGamePacketListenerImpl.handleCustomPayload(ServerGamePacketListenerImpl.java:3546) ~[?:?]
        at net.minecraft.network.protocol.game.ServerboundCustomPayloadPacket.handle(ServerboundCustomPayloadPacket.java:37) ~[?:?]
        at net.minecraft.network.protocol.game.ServerboundCustomPayloadPacket.handle(ServerboundCustomPayloadPacket.java:15) ~[?:?]
        at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:51) ~[?:?]
        at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.20.1.jar:git-Paper-68]
        at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
        at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
        at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1339) ~[paper-1.20.1.jar:git-Paper-68]
        at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:197) ~[paper-1.20.1.jar:git-Paper-68]
        at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
        at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1316) ~[paper-1.20.1.jar:git-Paper-68]
        at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1309) ~[paper-1.20.1.jar:git-Paper-68]
        at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
        at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1287) ~[paper-1.20.1.jar:git-Paper-68]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1175) ~[paper-1.20.1.jar:git-Paper-68]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:318) ~[paper-1.20.1.jar:git-Paper-68]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.io.EOFException
        at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:346) ~[?:?]
        at java.io.DataInputStream.readUTF(DataInputStream.java:595) ~[?:?]
        at java.io.DataInputStream.readUTF(DataInputStream.java:570) ~[?:?]
        at com.google.common.io.ByteStreams$ByteArrayDataInputStream.readUTF(ByteStreams.java:470) ~[guava-31.1-jre.jar:?] ```
junior musk
solar swift
#

on all servers

junior musk
#

then make sure PremiumVanish is on the servers where the placeholders don't work

vivid sparrow
#

@junior musk the repo of the item expansion is private?

junior musk
#

uh?

#

my bad

#

made it public

vivid sparrow
#

Aight

austere hawk
#

%math_0:_470/100% returns 5

#

Placeholder to remove the last two characters of a text

#

Example of 1278 return 12

junior musk
#

check the second substring placeholder of the String expansion

#

or you could use Math, divide by 100 and set decimals amount to 0

#

so the last 2 digits would become decimals and since you're showing 0 decimals then they won't be shown

austere hawk
junior musk
#

then do that

junior musk
#

what's the issue?

austere hawk
junior musk
#

oh

#

try math_0:half-down

austere hawk
#

470รท100 = 4.7 = 4

austere hawk
junior musk
#

yeah

austere hawk
#

And what does half-down specifically do?

junior musk
#

round to the lower number

#

3/2 = 1.5
1 < 1.5 < 2
half-down < no rounding < half up

austere hawk
#

%math_0:half-down_{servervariables_value_exp}/100%

#

It's ok right?

junior musk
#

looks alright

#

try it and see

austere hawk
austere hawk
junior musk
#

there's no "fix"

austere hawk
#

Oh

junior musk
#

there's no other way than the current way

austere hawk
#

Something like geolocation should work right?

#

Get address with IP and time

junior musk
#

that's exactly what the expansion is doing

#

but the geolocalisation is done through a website's api

#

and that website has a rate limit for non-subscribers

solar swift
junior musk
#

unsure why it doesn't work in TAB then

solar swift
#

idk I will make again vanish system but and again connected to the mysql all server

austere hawk
#

In an issue is that with the test key it works, and you have to pay to get it, right?

junior musk
#

if you find one that's fully free, please share

austere hawk
junior musk
austere hawk
#

The geolocation website

junior musk
junior musk
#

you need a key to make it work, yes

austere hawk
#

where is the subscription

junior musk
#

Pricing page

austere hawk
#

What they have to do with the IP is to obtain the timezone, right?

austere hawk
junior musk
#

try it

#

it's the same thing

#

you'll see in its config that it requires a key as well

austere hawk
#

How much is the key here?

junior musk
#

Idk, ask them

austere hawk
junior musk
#

uh?

#

you mean the localtime expansion?

#

I told you to check that ipapi.co website thing

#

there's a Pricing tab

austere hawk
junior musk
#

I have no idea

#

please let me be NotLikeThis

#

I've already told you all I know

austere hawk
#

By the way essentials geoip occupies a geo2lite key which is free

junior musk
#

I don't know ๐Ÿคท

austere hawk
junior musk
#

I don't know ๐Ÿคท

austere hawk
junior musk
#

I don't know ๐Ÿคท

austere hawk
#

._.

spring rune
#

Currently I'm coding a plugin but I don't know how to display values related to that plugin in scoreboad. For example, when picking up an item, I don't know how to code it to show %count_pick_up% ๐Ÿ˜ฆ

junior musk
#

%statistic_pickup%

#

though if you're making your own plugin with scoreboard, you can get the player's Statistic.PICKUP statistic

worn chasm
#

Hi. Good afternoon: I have a issue with the Pinger PAPI. Let me explain. I've configured the Pinger Papi but not refresh for a offline server

#

I see this discord in the official wiki

#

And i supose the community can solve my issue

austere hawk
vivid sparrow
junior musk
#

o

#

welp

#

guess I'll have to yeet that

tender shore
#

Hello, is there any expansion to get the player's uuid with a variable?

#

i found one that was called RandomID but it hasn't been updated since 1.13 and doesn't work now

#

or something to get the player's name but in lowercase only

junior musk
#

Player expansion, %player_uuid%

#

for the lowercase, you can try the String expansion combined with the Player expansion

#

%string_lowercase_{player_name}%

dense trail
#
      - "&fMember 0: %playerlist_ismembers_0% &7= &fMined Dirt: &e%utils_parseother:[playerlist_ismembers_0]_{statistic_mine_block:dirt}%"
      - "&fMember 1: %playerlist_ismembers_1% &7= &fMined Dirt: &e%utils_parseother:[playerlist_ismembers_1]_{statistic_mine_block:dirt}%"
#

Why does this parse the amount of mined dirt with %%

#

e.g. user 0 of the island member list has 236 mined dirt it shows %236%

mint fable
#

umm

#

I think don't include the {}

#

@dense trail

#

the first placeholder doesn't need {}, only deeper-nested ones

dense trail
#

You have to elaborate on that one

#

I'm losing my mind with the nesting placeholders

mint fable
#

don't put {}

#

you're not really nesting anything

#

just parse it without the {} and see if it works

dense trail
#

Like this?

#

%utils_parse_math_0_%utils_parseother:[playerlist_ismembers_0]_math_0_%statistic_mine_block:dirt%%%

mint fable
#

no

#

just remove the {}

#

the format is %utils_parseother:[]_<placeholder>%

#

<placeholder> being player_name

#

for example

#

not {player_name}