#placeholder-api

150650 messages · Page 127 of 151

jovial cargo
#

Yes

mint fable
#

You're not setting the meta on the 1-5 offences?

#

only on 6+?

jovial cargo
#

No

#

Exactly

mint fable
#

why not set it for 1-5?

#

then you could track the offenses too

jovial cargo
#

I could but then the number does not grow at a constant rate and the punishment changes

mint fable
#

What I was thinking you wanted was 1 button that does all 6 actions

#

I might be just hella confused

jovial cargo
#

Thats why I need to start at 6 because item 1 is a warning, and item 2 is a ban

mint fable
#

I don't have the whole menu though

#

I'm officially confused

jovial cargo
#

Its alright, Ill figure something out

#

LOL

mint fable
#

item 1 is warning, 2 is ban??

#

can you share that menu?

#

I'm so lost lol

jovial cargo
#

Its not made yet

#

Its alright, Im phrasing everything wrong

mint fable
#

well

#

here's what I can do

#
    click_requirement:
      minimum_requirements: 1
      stop_at_success: true
      requirements:
        userhasnometa:
          type: '=='
          input: '%parseother_{{player}}_{deluxemenus_meta_DiamondCounted_INTEGER_0}%'
          output: '0'
          optional: true
          success_commands:
          - '[console] dm execute {player} [meta] set DiamondCounted INTEGER 6'
        userhasmeta:
          type: '!='
          input: '%parseother_{{player}}_{deluxemenus_meta_DiamondCounted_INTEGER_0}%'
          output: '0'
          optional: true
    click_commands:
    - '[meta] add DiamondCounted INTEGER 1'
    - '[message] ban {player} %math_31+{deluxemenus_meta_DiamondCounted_INTEGER_0}%h &5&lCHAT DISRUPTION &8[&d#&l%number_toroman_{math+3{deluxemenus_meta_DiamondCounted_INTEGER_0}}%&8]'
    - '[sound] ENTITY_ITEM_PICKUP'
    - '[refresh]'
#

theoretically

#

when you click this item: If the player in the argument does NOT have any diamondcounted, it will set it to 6

#

if they do have it, it just acts normal

#

you'll probably have to update your stuff to use parseother though to see correct results

#

this might help you

#

I don't really know lol

#

😂

jovial cargo
#

Alright, Thanks

mint fable
#

👍

#

oh waiT

jovial cargo
#

It kinda does, because on the last item I can just set the meta

mint fable
#

i forgot crucial aspects

jovial cargo
#

with the command

mint fable
#

okay, edited it

jovial cargo
#

- '[console] dm execute {player} [meta] set DiamondCounted INTEGER 6'

#

Thats really all I needed

mint fable
#

also, when you click it: it will set it to 7

#

idk if you wanted that

mint fable
jovial cargo
mint fable
#

so it sets to 5, then gets 1 added to be 6

mint fable
jovial cargo
#

Thank you

mint fable
#

ofc

austere hawk
#

Hello, what is the placeholder so that it changes all letters to lowercase except the first letter that is uppercase

#

And if there is a .

#

For example, go from hellO. bye to Hello. Bye

jovial cargo
#

Placeholders can be found here

#

%capitalize_sentence-case-forced_{THE_PLACEHOLDER}%

#

Is what you are looking for specifically

austere hawk
#

It returns Hello. bye and I also want the letter after the . to be capitalized so that it is Hello. Bye

jovial cargo
#

Dont know then

#

I use skript for that

austere hawk
#

Could %localtime_timezone_<timezone/placeholder>% accept a placeholder that returns the timezone of the game?

#

Then there is expansion https://api.extendedclip.com/expansions/geolocation which has a placeholder that returns the player's timezone, so try using %localtime_timezone_{geolocation_timezone}% but this returns me the server time, but however if I use %geolocation_timezone% it returns the correct timezone (if I use %localtime_timezone_<the geolocation value>% if it returns me the correct time, so it could be two things, one that localtime accepts the placeholder or merge both placeholder into one

#

@junior musk I had tried to make a localtime placeholder with EssentialsGeoIP, could I do something similar but get the timezone of the placeholder from the other expsm?

jovial cargo
junior musk
#

I do have CMI, at least it has proper PlaceholderAPI support unlike EssentialsX. It also has quite a few cool features which I like

#

oh yeah, I completely forgot about that lol

jovial cargo
junior musk
#

I'm not sure, do you respect me enough to trust my answer?

#

lol

#

jk, what is it?

jovial cargo
#

I was joking about the respect thing, you have a big brain

junior musk
#

wow, okay

#

I just woke up dude XD

#

give me like 10 minutes and I'll look at it

#

but just reading it like that makes me to go back to sleep 😅

jovial cargo
junior musk
#

wtf is this

#

it's worse than Kristopher's menus

#

I don't even understand 🥲

#
[12:32:53 WARN]: [DeluxeMenus] Material for item: view_requirement in menu: wtf is not present!
Skipping item: view_requirement
[12:32:53 WARN]: [DeluxeMenus] Material for item: click_requirement in menu: wtf is not present!
Skipping item: click_requirement
[12:32:53 WARN]: [DeluxeMenus] Material for item: click_commands in menu: wtf is not present!
Skipping item: click_commands
#

there may be a spacing issue

#

some requirements are thought to be items

#

line 741 to 757

#

add 4 spaces in front of each line

#

@jovial cargo

jovial cargo
#

It was 2 spaces in front of each line

junior musk
#

yup, nvm

jovial cargo
#

That was a chatgpt error LOL cause ChatGPT can read blank spaces and I was generating rules and pasting them in and hand spacing them, mustve missed those lines

#

However that did not resolve my issue

junior musk
#

bruh

#

then I'm still confused as to what's going on lol

jovial cargo
mystic crypt
#

whats the player placeholder

junior musk
#

%player_name%

lofty valve
#

man you know what

#

someone should make placeholder parsing easier

#

splitting sometimes can be pain

junior musk
#

uh?

#

PlaceholderAPI.setPlaceholders(OfflinePlayer, String)

#

can't get any easier

#

you give it a string and a player, and you get the placeholders parsed

vivid sparrow
#

I think they meant to split arguments

junior musk
#

ah

vivid sparrow
#

which is done different by each expansion 🙂

junior musk
#

yeah

#

it's a single line of code more though 🤷 and not all expansions need to split the params, it's better to leave the ability to people to interpret the arguments the way they want imo

spiral spade
#

how can i parse this placeholder in my plugin %img_offset_-16%
placeHolder = PlaceholderAPI.setPlaceholders();
this requires a player

junior musk
#

use null as the player

spiral spade
#

thanks

lofty valve
junior musk
#

🤷see that with the devs

vivid sparrow
#

Not worth tbh

#

Is just a String#split or substring

austere hawk
austere hawk
junior musk
#

idk how it works

#

but if it works for you, that's cool

austere hawk
austere hawk
junior musk
#

what do you want me to do ;-;

austere hawk
#

Localtime timezone can't accept placeholder?

junior musk
#

I didn't make that expansion

austere hawk
#

Maybe he doesn't accept it and that's why it doesn't work.

austere hawk
junior musk
#

idk how it works

austere hawk
#

Sure, if you can

austere hawk
#

Or merge %localtime_timezone_{geolocation_timezone}%

junior musk
#

%utils_parse_localtime_timezone_{geolocalisation_timezone}%

#

/papi ecloud download Utils
/papi reload

#

idk if that'll work though, since I'm pretty sure it'll still fetch the data from the websites with rate limits

austere hawk
#

I'll try

#

Thanks

austere hawk
#

It's geolocation by the way

austere hawk
#

But isn't it better to make localtime accept the placeholder?

junior musk
#

🤷

#

if it works then all good I guess

austere hawk
junior musk
#

that's something different

#

but doesn't matter if it works

austere hawk
junior musk
#

uh?

broken cipher
#

hello
is there MSPT placeholder?

#

or a way to calculate it like via javascript maybe?

wet basinBOT
#

@vivid sparrow Unknown expansion.

vivid sparrow
#

I know spark has placeholders for MSPT if you are already using it

broken cipher
#

i didn't know spark has papi expansion

#

i mean, spark doesn't even have expansion(?) but has integrated papi placeholders?

#

ok so 1 tick is (in perfect scenario) 50 ms
%spark_tickduration% Returns a formatted summary of the average tick durations in the last 10 seconds and 1 minute.

#

should i then use this?

#

seems like this specific placeholder doesn't work

#

other spark placeholders does

#

wtf

azure rover
#

Hi does anyone know the code I need to write to show prefix from luckyperms? I tried {PREFIX}

azure rover
tender vaporBOT
jovial cargo
#

Hmmm, I might make a PAPI extension

real parrot
#

Any optimization tips? I need this to make item price list (Input: item id and amount, Output: price)

function getPrice() {
  var material = args[0].toUpperCase();
  var amount = Math.ceil(args[1])
  var price = prices[material] * amount;
  return price == undefined ? 99999999 : price;
}
getPrice()```
jovial cargo
#

My first extension is gonna be simple but effective and needed

#

especially for the future 🙂

jovial cargo
#

Its gonna basically make a plugin list plugins into placeholders. I.E %pluginlist_1% - would output the first plugin in the plugin list, Then it will make the plugin permissions into a placeholder %pluginlist_1_permissions_1% which would output the first permission node of the plugin.

#

Would make a deluxe menus permission manager gui much more viable

#

Let me get my documentation down

#
%pluginlist_list% - Outputs all plugins in the plugin list 
%pluginlist_<number>% - Outputs the plugin name which is in that
%pluginlist_<number>_permissions% - Outputs all permissions in the plugin
%pluginlist_<number>_permissions_<number>% - outputs the specific permission node of a plugin```

Any recommendations?
mint fable
#

only to add a % to the last placeholder 😉

#

and I would have the index start at 0, or if you don't want to do that; specify that the index starts at 1

jovial cargo
tender vaporBOT
jovial cargo
#

:monkaGun: @tender vapor

wispy pond
#

Hi i have a kid here he's 8 yo

jovial cargo
tender vaporBOT
jovial cargo
#

Oh, I cant have a convo with the guy?

quick imp
#

How can I make deluxemenu take a command from a bungeecord pl? In this case litebans with /ban, I am using a menu with default sanctions, using arguments, but I want the menu to be executed by putting /ban, but being in the bungeecord it continues to execute the litebans and not the menu

mystic crypt
#

how can i set a placeholder to a specific world

ionic pumice
#

Bump

junior musk
#

if you have an expansion, then then DM funnycube a username and email and he'll make you an account

junior musk
junior musk
mystic crypt
junior musk
#

ah

#

that depends on the placeholder

#

not all of them support this

jovial cargo
junior musk
#

no

jovial cargo
#

Alright

junior musk
#

some expansions can save data per-world and just check if the player is online, and if so get his world and return the data

jovial cargo
#

I need to get my account registered. I’m doing some patches to the code

#

The only thing in my extension that requires a plugin is the groups placeholder. I use VaultAPI to get the available groups

#

I think I might just include a sorting system internally for ease of access.

tidal pilot
#

Can anyone tell me how to enter requirements (such as money) in the menus when clicking

jovial cargo
crimson cove
#

a bit random, but how many placeholders can I put inside a math placeholder?

#

Like rn I'm trying to parse:

%math_0:_{math_0:_(50*10)/{luckperms_meta_NAUSHEsold}}*{checkitem_amount_mat:nautilus_shell}%

but it's not going through 😅

#

basically trying to set up a dynamically priced sell shop

sharp geode
junior musk
#

%math_0:_500/{luckperms_meta_NAUSHEsold}*{checkitem_amount_mat:nautilus_shell}% ?

crimson cove
#

Oh you're right, I could just try that yeah

#

Been staring at config for hours, excuse the silly mistakes

junior musk
#

the JS one?

#

you need the JavaScript expansion

sharp geode
#

thanks

inner moth
#

Hey there I was having a problem when I wanted to install the Vault with the API, when I installed it and reloaded absolutely nothing happened. I checked with the command /papi list and it doesn't appear either

junior musk
#

you need the Vault plugin as well

inner moth
#

oh thanks

jovial cargo
#

@junior musk do you know of anyway to get the a menus slot?

junior musk
#

nope

#

unfortunately

#

I wish

#

I wanted this for the longest time

jovial cargo
#

Bruh

#

Ruining my plans

junior musk
#

this would have made my life so much easier

jovial cargo
#

It would

#

It would make it so much easier

junior musk
#

especially with my menu with my PlayerList expansion

#

I would have only needed 1 item with all slots

jovial cargo
#

cause then I can do this:

%utils_parseother_changeoutput_equals_input:{luckperms_has_permission_{servermanager_pluginlist_{deluxemenu_slot}_permissions_{deluxemenu_slot}}}_matcher:yes_ifmatch:LIME_STAINED_GLASS_PANE_else:changeoutput_equals_input:{luckperms_has_permission_{servermanager_pluginlist_{deluxemenu_slot}_permissions_{deluxemenu_slot}}}_matcher:no_ifmatch:LIME_STAINED_GLASS_PANE_else:GRAY_STAINED_GLASS_PANE%

#

Exactly

#

Thats what I want

junior musk
#

unfortunately, that's not possible

#

yet

#

DM OPEN SOURCE WOOOOOO

jovial cargo
#

Funnycub

#

add it 🙂

#

Might just make an papi expansion lol

#

just to get the slot of a deluxemenu menu

jovial cargo
#

@junior musk Im getting my dev on it 🙂

#

@balmy marten When my dev gets done implementing a slot getting feature, would you mind implementing it into future builds?

jovial cargo
#

:monkaGun:

jovial cargo
jovial cargo
tender vaporBOT
jovial cargo
#

^ There is the pr

jovial cargo
sharp bloom
#

kqliber mby too

#

cj also

jovial cargo
#

Oh

#

So I asked the one wrong guy

#

lol

sharp geode
#

guys i wanna create a something when player have lvl 40 in mmocore show player ✅ if player dont have lvl 40 in mmocore show ❌

#

for example:

millionaire:
  expression: '%vaulteco_balance% >= 1000000'
  true_result: '&aMillionaire'
  false_result: '&cbroke'
jovial cargo
#
  expression: '%mmocore_level%'
  true_result: '&a✔'
  false_result: '&c✘'```
#

@sharp geode

#

You cant use those emojis as they wont work within minecraft

sharp geode
#

wait i show you

sharp geode
#

i need .js xd file

#
var kitName = args[0];
var placeholder = "essentials_has_kit_" + kitname;
var hasKit = PlaceholderAPI.static.setPlaceholders(BukkitPlayer, "%" + placeholder + "%");

function hasKit(){
  if(hasKit == "yes"){
    return "&aTrue";
  }
  return "&cFalse";
}

hasKit();
#

like that but for %mmocore_level%

jovial cargo
#

I would use changeoutput then

sharp geode
#

can anyone write for me ?

jovial cargo
#

Ill write you something so you dont need JS

#

actually I think I can write it

sharp geode
#

xd thanks ❤️

#

really thanks

jovial cargo
#
var isLVL40 = PlaceholderAPI.static.setPlaceholders(BukkitPlayer, "%" + placeholder + "%");

function isLVL40(){
  if(parseint(isLVL40 >= "40")){
    return "&a✔";
  }
  return "&c✘";
}

isLVL40();```
#

That should work

#

I dont know javascript whatsoever but maybe itll work

sharp geode
#

thanks i test it

jovial cargo
#

Yeah, it'll work

#

WAIT

#

It wont

#

@sharp geode

#

change function hasKit(){ to function isLVL40(){

#

I modified the code I sent

sharp geode
#

ok

#

thanks ❤️

jovial cargo
sharp geode
#

ok thanks

#

again thanks for help

jovial cargo
#

It worked?

cursive lark
#

Hi! I'm having some trouble integration skript with my placeholderapi does anyone know what I'm doin wrong here?

on load:
    if {joinOrderCounter} is not set:
        set {joinOrderCounter} to 0

command /testjoinorder:
    trigger:
        send "Your join order number is: %{joinOrder::%player's uuid%}%" to the player

on join:
    if {joinOrder::%player's uuid%} is not set:
        add 1 to {joinOrderCounter}
        set {joinOrder::%player's uuid%} to {joinOrderCounter}
    send "Your join order number is: %{joinOrder::%player's uuid%}%" to the player

on placeholderapi placeholder request for the prefix "skript":
    if the identifier is "joinorder":
        if {joinOrder::%player's uuid%} is set:
            set the result to {joinOrder::%player's uuid%}
        else:
            set the result to "N/A"
vivid sparrow
#

@cursive lark

mossy sleet
#

Hi there,
I have been working on my project but since the last update of PlaceholderAPI I can't seem to connect to PlaceholderAPI anymore

twin lintel
#

I'm inserting the placeholder to show the current world, but nothing happens, it just doesn't show anything, what did I do wrong?

#
  • 14|&3%world_name_<world>%
junior musk
#

it's %player_world%

lucid agate
#

Hello, excuse me please I hope this is the right way to ask a question about the plugin "DeluxeChat" I have seen that there is a new plugin in development called "chatchat", I haven't played Minecraft for a while and I always enjoyed "DeluxeChat" (and bought it of cause) now I'd like to ask if anyone know how to make it work on the current Minecraft version or get that new Plugin. Greetings and sorry for the question

jovial cargo
old elbow
#

Idk in what stage of development it is

junior musk
#

it's pretty stable

rustic prairie
#

Is superior skyblock compatable with placeholderapi??

mint fable
#

it's [prc]

#

%math_5[prc]3%

rocky matrix
#

plugin shows this error in the console, dont really know what caused it

#

[19:39:28 ERROR]: [STDERR] [PlaceholderAPI] Global placeholders configuration section missing

balmy marten
junior musk
sharp bloom
jovial cargo
jovial cargo
#

Its out

jovial cargo
#

and an hour later, v1.0.1 is out

knotty needle
#

I heard that you can use papi to visually represent a plugin's statistics

#

So if I'm developing a plugin, and I'd want to show let's say the amount of joins, how would I do that?

turbid tide
# knotty needle So if I'm developing a plugin, and I'd want to show let's say the amount of join...

If you are making a plugin and you want to let other plugins access your plugin's data, this is how: https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/PlaceholderExpansion#with-a-plugin-internal-class
If you are making a plugin and you want to let your plugin's users access data trough PlaceholderAPI, this is how:
https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/Hook-into-PlaceholderAPI#setting-placeholders-in-your-plugin

For both cases you will need to also follow this setup guide: https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/Hook-into-PlaceholderAPI#first-steps

ocean beacon
#

@junior musk need help with utils shortcut

#
      hex1-hex2-slot: 'deluxemenus_meta_hex-v3-gradient-hex1_STRING%,%deluxemenus_meta_hex-v3-gradient-hex2_STRING%,%deluxemenus_meta_hex-v3-gradientSlot_INTEGER_2%'
      hex-v3-gradient-hex: '%javascript_hex-v3-gradientHandle_hex,{utils_shortcut_hex1-hex2-slot}:{1}%'
junior musk
#

you forgot the %

#

at the beggining of the first shortcut

#

also arguments start from 0, not 1

ocean beacon
#

at <javascript>.handleGradient(?:2) ~[?:?]

junior musk
#

uh

#

send the full error

#

though that seems like a JS error, not a Utils error?

ocean beacon
#
function handleGradient(type, hex1, hex2, lengthAndPosition) {
    let length = lengthAndPosition.split(":")[0];
    let position = lengthAndPosition.split(":")[1];

    let r1 = parseInt(hex1.slice(1, 3), 16);
    let g1 = parseInt(hex1.slice(3, 5), 16);
    let b1 = parseInt(hex1.slice(5, 7), 16);

    let r2 = parseInt(hex2.slice(1, 3), 16);
    let g2 = parseInt(hex2.slice(3, 5), 16);
    let b2 = parseInt(hex2.slice(5, 7), 16);

    let RGB, HEX, DECIMAL;
    for (let i = 0; i < position; i++) {
        let ratio = i / length;
        let r = Math.round(r1 + ratio * (r2 - r1));
        let g = Math.round(g1 + ratio * (g2 - g1));
        let b = Math.round(b1 + ratio * (b2 - b1));

        RGB = r + ", " + g + ", " + b;
        HEX = "#" + ((1 << 24) | (r << 16) | (g << 8) | b).toString(16).slice(1);
        DECIMAL = (r * 65536) + (g * 256) + b;
    }

    switch (type.toUpperCase()) {
        case "HEX":
            return HEX.toUpperCase();
        case "RGB":
            return RGB;
        case "DECIMAL":
            return DECIMAL;
        default:
            return "&ePlease use Type: &bhex&7/&brgb&7/&bdecimal"
    }
}

handleGradient(args[0], args[1], args[2], args[3]);
junior musk
#

and the error?

ocean beacon
#

Caused by: com.koushikdutta.quack.QuackException: TypeError: cannot read property 'split' of undefined at <javascript>.handleGradient(?:2) ~[?:?]

junior musk
#

the FULL error

#

?paste

tender vaporBOT
junior musk
#

well this'll do

ocean beacon
#

this is enough, cannot read property 'split' of undefined

junior musk
#

doesn't seem like quickjs supports string.split()

#

idk why

#

not something I can help with

#

and not related to Utils shortcut kekw

ocean beacon
junior musk
#

wdym?

ocean beacon
#

%javascript_hex-v3-gradientHandle_hex,{deluxemenus_meta_hex-v3-gradient-hex1_STRING},{deluxemenus_meta_hex-v3-gradient-hex2_STRING},{deluxemenus_meta_hex-v3-gradientSlot_INTEGER_2}:3%

junior musk
#

not sure how that's possible

#

you're not getting any errors?

#

oh

#

I see the issue

ocean beacon
#

that what i confused

junior musk
#

the lengthAndPosition is undefined

ocean beacon
#

problem is shortcut args, maybe :/

junior musk
#

idk why it would be

#

which placeholders did you use?

#

and did you fix the missing % and the {1} -> {0} ?

ocean beacon
#

currently hex-v3-gradient-hex: '%javascript_hex-v3-gradientHandle_hex,{deluxemenus_meta_hex-v3-gradient-hex1_STRING},{deluxemenus_meta_hex-v3-gradient-hex2_STRING},{deluxemenus_meta_hex-v3-gradientSlot_INTEGER_2}:{0}%'

ocean beacon
junior musk
#

and what placeholder are you using?

ocean beacon
#

%utils_shortcut_hex-v3-gradient-hex:2%

junior musk
#

/papi parse me %javascript_hex-v3-gradientHandle_hex,{deluxemenus_meta_hex-v3-gradient-hex1_STRING},{deluxemenus_meta_hex-v3-gradient-hex2_STRING},{deluxemenus_meta_hex-v3-gradientSlot_INTEGER_2}:2%

ocean beacon
junior musk
#

then idk

ocean beacon
junior musk
#

impossible

ocean beacon
#

let add some debug line in js

#

the foock, its work now

junior musk
#

bruh

#

forgot to /papi reload?

ocean beacon
junior musk
#

🤷

ocean beacon
#

also what is this ?

[00:05:09 WARN]: [DeluxeMenus] Plugin DeluxeMenus v1.14.1-DEV-null generated an exception while executing task 557
java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
        at com.extendedclip.deluxemenus.menu.MenuItem.getItemStack(MenuItem.java:270) ~[DeluxeMenus-1.14.1-DEV-null_4.jar:?]
        at com.extendedclip.deluxemenus.menu.Menu.lambda$openMenu$5(Menu.java:450) ~[DeluxeMenus-1.14.1-DEV-null_4.jar:?]
        at org.bukkit.craftbukkit.v1_19_R3.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.19.4.jar:git-Paper-549]
        at org.bukkit.craftbukkit.v1_19_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[paper-1.19.4.jar:git-Paper-549]
        at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[paper-1.19.4.jar:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
        at java.lang.Thread.run(Thread.java:842) ~[?:?]
junior musk
#

🤷

#

what's your DeluxeMenus build?

#

are you using RGB on an item somewhere?

#

leather armor

ocean beacon
#

ah, its not work again

junior musk
ocean beacon
#

ah, i just fix the hex

#

ok, all good

#

👍🏼

junior musk
#

uh uh

#

okay

ocean beacon
#

@junior musk the input can be string ?

junior musk
#

input for what?

ocean beacon
junior musk
#

of course

raw igloo
#

Hi. I am seeing %afk% in the names of mobs that I have named on my server, including in TAB. I assume it's API related. I'm on version 2.11.5.

junior musk
#

groups.yml

#

though TAB doesn't affect mobs, only players

raw igloo
#

I see it yes in the groups.yml. What do I do?

junior musk
#

remove it

raw igloo
#

Just remove and not replace it?

junior musk
#

if you want afk status, you can replace it with your afk plugin's placeholder

raw igloo
#

No I don't want afk. It is stuck there for some reason.

junior musk
#

then just remove it

raw igloo
#

And it wasn't there before.

#

That did the trick thanks @junior musk

glossy shale
#

there's a way to display a "null" message in placeholder when it is empty?

#

because i remember that i've seen anything like this working in a scoreboard

#

@junior musk

#

excuse me for ping

short solar
#

i need a way to look what player in the world is the higher level in clv_player_level
and te nadd it to
%utils_parse_math_0:_{world_players_{world_name_<world>}}-1+[highst-player]%

#

did not see im in the worng channel

jovial cargo
rocky matrix
#

plugin shows this error in the console, dont really know what caused it
[19:39:28 ERROR]: [STDERR] [PlaceholderAPI] Global placeholders configuration section missing

lofty valve
#

how do i change duration format in placeholder api?

short solar
junior musk
#

oh right

#

the guy with the highest level in the world right?

short solar
#

yes

#

and make it also so it cant go under 0

#

please ping me if more massage

junior musk
#

Well I was thinking of using a plugin like ajLeaderboards and get the player with the first rank, but I don't think it can do per-world

#

You'd need someone to make you a custom placeholder for this

short solar
junior musk
#

aren't levels already numbers?

short solar
#

no all players into world in 1 level]

junior musk
#

ah

short solar
#

placeholder i mean

junior musk
#

let me check

#

which plugin is it?

#

for the levels

short solar
#

clv_player_level

junior musk
#

CyberLevels?

junior musk
#

doesn't seem to have a placeholder for that

#

you could try and suggest the idea to the dev

short solar
#

i tryed did not work

junior musk
#

make an issue with yours ideas and the dev will try adding them

short solar
#

is there noting to mix the placeholders to check for all player in the same world to 1 number placeholder

junior musk
#

Well you could use Javascript I guess

short solar
#

i cant script .......

junior musk
#

I'll make the script

short solar
#

o

junior musk
#

you just need to install the expansion

#

and I'll send it

#
function getLevels() {
  var world;
  if (args.length == 0) world = player.getWorld();
  else BukkitServer.getWorld(args[0])
  if (world == null) return -1;

  var players = BukkitServer.getOnlinePlayers();
  var level = 0;
  for (var i = 0; i < players.size(); i++) {
    var lvl = PlaceholderAPI.static.setPlaceholders(players.get(i),"%clv_player_level%");
    level += parseInt(lvl);
  } 
  return Math.floor(level < 0 ? 0 : level);
}
getLevels();
short solar
#

where do i put it?

junior musk
#

follow these steps first

junior musk
#

yes

#

do what I said

short solar
#

will do in a moment

#

added

short solar
junior musk
#

oh

#

uh

short solar
#

wait nvm i tink i can do that whit math

junior musk
#

return Math.floor(level < 0 ? 0 : level);

#

this should do it

short solar
#

ok

#

but this will add all levels for all players in the same world?

junior musk
#

yes

short solar
#

[15:05:48 ERROR]: [PAPI] [Javascript-Expansion] An error occurred while executing the script 'level
javax.script.ScriptException: ReferenceError: "player" is not defined in <eval> at line number 3
at org.openjdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:463) ~[PlaceholderAPI-2.11.5.jar:?]
at org.openjdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:447) ~[PlaceholderAPI-2.11.5.jar:?]
at org.openjdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:399) ~[PlaceholderAPI-2.11.5.jar:?]
at org.openjdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:395) ~[PlaceholderAPI-2.11.5.jar:?]
at org.openjdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:151) ~[PlaceholderAPI-2.11.5.jar:?]
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:262) ~[java.scripting:?]
at com.extendedclip.papi.expansion.javascript.evaluator.NashornScriptEvaluator.execute(NashornScriptEvaluator.java:27) ~[?:?]
at com.extendedclip.papi.expansion.javascript.JavascriptPlaceholder.evaluate(JavascriptPlaceholder.java:120) ~[?:?]
at com.extendedclip.papi.expansion.javascript.JavascriptExpansion.onRequest(JavascriptExpansion.java:157) ~[?:?]
at me.clip.placeholderapi.replacer.CharsReplacer.apply(CharsReplacer.java:119) ~[PlaceholderAPI-2.11.5.jar:?]
at me.clip.placeholderapi.PlaceholderAPI.setPlaceholders(PlaceholderAPI.java:71) ~[PlaceholderAPI-2.11.5.jar:?]
at me.clip.placeholderapi.commands.impl.local.CommandParse.evaluateParseSingular(CommandParse.java:117) ~[PlaceholderAPI-2.11.5.jar:?]
at me.clip.placeholderapi.commands.impl.local.CommandParse.evaluate(CommandParse.java:57) ~[PlaceholderAPI-2.11.5.jar:?]
at me.clip.placeholderapi.commands.PlaceholderCommandRouter.onCommand(PlaceholderCommandRouter.java:114) ~[PlaceholderAPI-2.11.5.jar:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]

#

at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:987) ~[paper-1.20.4.jar:git-Paper-399]
at org.bukkit.craftbukkit.v1_20_R3.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64) ~[paper-1.20.4.jar:git-Paper-399]
at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73) ~[brigadier-1.2.9.jar:?]
at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:32) ~[paper-1.20.4.jar:git-Paper-399]
at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:19) ~[paper-1.20.4.jar:git-Paper-399]
at net.minecraft.commands.execution.UnboundEntryAction.lambda$bind$0(UnboundEntryAction.java:8) ~[paper-1.20.4.jar:git-Paper-399]
at net.minecraft.commands.execution.CommandQueueEntry.a(CommandQueueEntry.java:5) ~[paper-1.20.4.jar:git-Paper-399]
at net.minecraft.commands.execution.ExecutionContext.runCommandQueue(ExecutionContext.java:101) ~[paper-1.20.4.jar:git-Paper-399]
at net.minecraft.commands.Commands.executeCommandInContext(Commands.java:434) ~[?:?]
at net.minecraft.commands.Commands.performCommand(Commands.java:336) ~[?:?]
at net.minecraft.commands.Commands.performCommand(Commands.java:323) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.performChatCommand(ServerGamePacketListenerImpl.java:2216) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$16(ServerGamePacketListenerImpl.java:2176) ~[?:?]
at net.minecraft.util.thread.BlockableEventLoop.lambda$submitAsync$0(BlockableEventLoop.java:59) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.20.4.jar:git-Paper-399]
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:1454) ~[paper-1.20.4.jar:git-Paper-399]
at n

#

[15:05:47 INFO]: PVink7 issued server command: /papi parse me %javascript_level%

junior musk
#

oh yeah mb

#

second line, replace player by BukkitPlayer

short solar
#

ok

#

if (args.length == 0) world = BukkitPlayer.getWorld(); ?

junior musk
#

then you have 2 ways to use the placeholder: %javascript_level% will take the world the player currently is in, or you can use %javascript_level_<worldName>% and it'll take the world you want

junior musk
short solar
vivid sparrow
jovial cargo
vivid sparrow
#

what

junior musk
jovial cargo
#

Im tryna learn how to code, I need a mentor/teacher

vivid sparrow
#

also, you need to split the level placeholder so it doesn't get parsed only once

#

setPlaceholders(players.get(i),"%" + "clv_player_level%");
I think this will do it

vivid sparrow
junior musk
#

right

short solar
#

can i get the full ione i now dont get it anymore lol

junior musk
#
function getLevels() {
  var world;
  if (args.length == 0) world = player.getWorld();
  else BukkitServer.getWorld(args[0])
  if (world == null) return -1;

  var players = world.getOnlinePlayers();
  var level = 0;
  for (var i = 0; i < players.size(); i++) {
    var lvl = PlaceholderAPI.static.setPlaceholders(players.get(i),"%"+"clv_player_level%");
    level += parseInt(lvl);
  } 
  return Math.floor(level < 0 ? 0 : level);
}
getLevels();
short solar
#

is there a way to make it so it will say just the first number its now saying 13.0 its cunfising the dungeon pluging also can you add a way so i do %javascript_level_<worldName>_[start_level% startlevel for higher dungeons so if start level is 15 and your 14 it will be 0 if your 16 it will be 1

junior musk
#

what

short solar
#

i need it t osay the number whit out the .0

#

and a addon if can

junior musk
#

I don't understand what you want

short solar
#

1.0 > 1

junior musk
#

should already do that

short solar
#

np

junior musk
#

I'll fix it then

short solar
#

i use /papi parse me %javascript_level% and it says 13.0

sleek fog
#

does anyone know why /papi reload doesn't work?

vivid sparrow
#

Check the console for errors. @sleek fog

short solar
# junior musk I'll fix it then
[16:27:29 WARN]: [PlaceholderAPI] [math] Invalid Placeholder detected!
[16:27:29 WARN]: [PlaceholderAPI] [math] Placeholder: %math_0:_{javascript_level}%
[16:27:29 WARN]: [PlaceholderAPI] [math] Cause:       '%math_<text>_%' is not an allowed placeholder syntax.```
#

error

sleek fog
#

?[Server thread/ERROR]: [PlaceholderAPI] Failed to load class files of expansion.

#

what should i do?

junior musk
#
function getLevels() {
  var world;
  if (args.length == 0) world = player.getWorld();
  else BukkitServer.getWorld(args[0])
  if (world == null) return -1;

  var players = world.getOnlinePlayers();
  var level = 0;
  for (var i = 0; i < players.size(); i++) {
    var lvl = PlaceholderAPI.static.setPlaceholders(players.get(i),"%"+"clv_player_level%");
    level += parseInt(lvl);
  }
  if (level < 0) level = 0;
  return (level+"").replace(".0","");
}
getLevels();
#

@short solar

tender vaporBOT
sleek fog
tender vaporBOT
short solar
short solar
junior musk
#
function getLevels() {
  var world;
  if (args.length == 0) world = BukkitPlayer.getWorld();
  else BukkitServer.getWorld(args[0])
  if (world == null) return -1;

  var players = world.getOnlinePlayers();
  var level = 0;
  for (var i = 0; i < players.size(); i++) {
    var lvl = PlaceholderAPI.static.setPlaceholders(players.get(i),"%"+"clv_player_level%");
    level += parseInt(lvl);
  }
  if (level < 0) level = 0;
  return (level+"").replace(".0","");
}
getLevels();
sleek fog
#

what do i do if i found the expansions in the files but not in the game?

short solar
#

can you add 1 more tink for %javascript_level_world_10% if the number is under 10 it will be 0 make it so the number can be any number this will help make more dungeons te n1

vivid sparrow
#

@junior musk level.toFixed(0)

junior musk
short solar
#

one sac

junior musk
#
function getLevels() {
  var world;
  if (args.length == 0) world = BukkitPlayer.getWorld();
  else BukkitServer.getWorld(args[0])
  if (world == null) return -1;

  var players = world.getPlayers();
  var level = 0;
  for (var i = 0; i < players.size(); i++) {
    var lvl = PlaceholderAPI.static.setPlaceholders(players.get(i),"%"+"clv_player_level%");
    level += parseInt(lvl);
  }
  if (level < 0) level = 0;
  return level.toFixed(0);
}
getLevels();
#

and fixed the error

short solar
#

the world is there im in it now its my spawn world

junior musk
#

/papi parse me %player_world%

short solar
#

it says world

vivid sparrow
#

They want an additional argument

junior musk
#

yeah I know that

#

but they tried with world and it returns -1

#

which means that it didn't find the "world" world?

short solar
#

first updateding one sac

#

getLevels(); have no collor is that a bug or just correct?

junior musk
#
function getLevels() {
  var world;
  if (args.length == 0) world = BukkitPlayer.getWorld();
  else BukkitServer.getWorld(args[0])
  BukkitPlayer.sendMessage("world: "+args[0]+" - "+world);
  if (world == null) return -1;

  var players = world.getPlayers();
  var level = 0;
  for (var i = 0; i < players.size(); i++) {
    var lvl = PlaceholderAPI.static.setPlaceholders(players.get(i),"%"+"clv_player_level%");
    level += parseInt(lvl);
  }
  if (level < 0 || (args.length > 1 && level < args[1])) level = 0;
  return level.toFixed(0);
}
getLevels();
#

this should send you a message saying world: world - world

#

or smth like that

#

and you can use %javascript_level_world,10% now

short solar
#

restarting for 100 times today im happy there no players online now lol

junior musk
#

you don't need to restart

#

just /papi reload

short solar
#

world: world - undefined

#

-1

#

no error

junior musk
#

o_O

#

I'll see later then

lofty valve
#

hi, i want to get expiry time of the highest player group with luckperms. i wrote this script:


var highestGroup = "%luckperms_highest_group_by_weight%"


function group() {
    var value = PlaceholderAPI.static.setPlaceholders(BukkitPlayer, highestGroup);

    return "%luckperms_expiry_time_group."+value+"%";


}
/*
Here we call the hasPermission function so it runs
*/
group();
``` but it does not work. it returns empty string, however when i type /papi parse %luckperms_expiry_time_dev% it works. Why?
short solar
#

/papi parse me %javascript_level%

world: undefined - CraftWorld{name=world}
13```
#

1.20.4 btw

junior musk
#

that is normal

#

but the other isn't

short solar
#

ok

junior musk
vivid sparrow
#

You dont need javascript for this, other expansions will work better

short solar
#

how do i use number on this one btw?

vivid sparrow
#

Show them the black magic Tang..

junior musk
#

?

junior musk
vivid sparrow
#

Utils or whatever is called

junior musk
#

I think you can't rn 😅

#

oh

#

yeah

short solar
#

o

lofty valve
#

%utils_parse_luckperms_group_expiry_time_{luckperms_highest_group_by_weight}%

junior musk
#

exactly

lofty valve
#

discord dumb

junior musk
#

I'm playing btw though so I'm slow

short solar
#

%javascript_level_10% %javascript_level_world_10% wait one sac im tring somtink

vivid sparrow
#

uh, optional arguments D:

#

Actially it is easy to do if the number is always required

short solar
#

this error also not fix idk why

#

[16:52:46 WARN]: [PlaceholderAPI] [math] Invalid Placeholder detected! [16:52:46 WARN]: [PlaceholderAPI] [math] Placeholder: %math_0:_{javascript_level}% [16:52:46 WARN]: [PlaceholderAPI] [math] Cause: '%math_<text>_%' is not an allowed placeholder syntax. ???

vivid sparrow
#

What does javascript_level return?

vivid sparrow
#

....

#

I mean, what does it return in game, I've followed the discussion.

short solar
#

a number for the dungeon mob to multeplier there power

#

have to go be back later

lofty valve
#

why dont you make a expansion that compiles java code

short solar
#

I cant code

short solar
#

also how do i make the placeholder into a int value?

#

sins the dungeon pluging only alloweds types not 2 tinks

junior musk
#

idk

#

find someone willing to make you a placeholder for that

short solar
#

ok but can you make it so it only say the number ten i will find somone

junior musk
#

remove the last 3 lines

#

just use getLevels()

short solar
#

function getLevels(player) {
var world = player.getWorld();
var players = world.getPlayers();
var totalLevel = 0;

for (var i = 0; i < players.size(); i++) {
var currentPlayer = players.get(i);
// Assuming you have a placeholder for player levels, adjust it accordingly
var playerLevel = PlaceholderAPI.static.setPlaceholders(currentPlayer, "%clv_player_level%");

// Parse the level as an integer, default to 0 if parsing fails
var parsedLevel = parseInt(playerLevel) || 0;

// Add the parsed level to the total
totalLevel += parsedLevel;

}

// Ensure the total level is at least 0
return Math.max(totalLevel, 0);
}

getLevels();

short solar
junior musk
#

stop pinging me

#

and yes

short solar
#

wait ping was on?

#

o sorry

junior musk
#

getLevels(BukkitPlayer);

short solar
#

function getLevels(BukkitPlayer); {
var world = player.getWorld();
var players = world.getPlayers();
var totalLevel = 0;

for (var i = 0; i < players.size(); i++) {
var currentPlayer = players.get(i);
// Assuming you have a placeholder for player levels, adjust it accordingly
var playerLevel = PlaceholderAPI.static.setPlaceholders(currentPlayer, "%clv_player_level%");

// Parse the level as an integer, default to 0 if parsing fails
var parsedLevel = parseInt(playerLevel) || 0;

// Add the parsed level to the total
totalLevel += parsedLevel;

}

// Ensure the total level is at least 0
return Math.max(totalLevel, 0);
}

getLevels();

junior musk
#

no

#

the last line

#

keep the first line the way it is

short solar
#

getLevels();?

junior musk
#
function getLevels(); {
  var world = BukkitPlayer.getWorld();
  var players = world.getPlayers();
  var totalLevel = 0;

  for (var i = 0; i < players.size(); i++) {
    var currentPlayer = players.get(i);
    // Assuming you have a placeholder for player levels, adjust it accordingly
    var playerLevel = PlaceholderAPI.static.setPlaceholders(currentPlayer, "%"+"clv_player_level%");

    // Parse the level as an integer, default to 0 if parsing fails
    var parsedLevel = parseInt(playerLevel) || 0;

    // Add the parsed level to the total
    totalLevel += parsedLevel;
  }

  // Ensure the total level is at least 0
  return Math.max(totalLevel, 0);
}

getLevels();
short solar
#

function getLevels(player) {
var world = player.getWorld();
var players = world.getPlayers();
var totalLevel = 0;

for (var i = 0; i < players.size(); i++) {
var currentPlayer = players.get(i);
// Assuming you have a placeholder for player levels, adjust it accordingly
var playerLevel = PlaceholderAPI.static.setPlaceholders(currentPlayer, "%clv_player_level%");

// Parse the level as an integer, default to 0 if parsing fails
var parsedLevel = parseInt(playerLevel) || 0;

// Add the parsed level to the total
totalLevel += parsedLevel;

}

// Ensure the total level is at least 0
return Math.max(totalLevel, 0);
}

getLevels(BukkitPlayer);

#

this worked but its not chaning the level of mob one sac

junior musk
#

that error isn't reflecting your code

short solar
#

ten what is it?

junior musk
#

idk

short solar
#

wil lreport it to there suport ten

open dawn
#

Hello, can someone help me with expansion manual installation? I do as how it is told, but when I do /papi reload, it doesnt register the new expansion

jovial cargo
open dawn
jovial cargo
# open dawn I know, I did that but nothing happens. I first tried /papi ecloud download Worl...

Upon installing it and then doing /papi reload, It gave the following message:

27.01 14:33:13 [Server] [WARN] [PlaceholderAPI] [WorldBorder Expansion] Should be one of: NO_OMIT, OMIT_PARENTHESIS, OMIT_SQUARE_BRACKET, OMIT_ANGLE_BRACKET. Using default: OMIT_ANGLE_BRACKET.
27.01 14:33:13 [Server] [WARN] [PlaceholderAPI] [WorldBorder Expansion] For example, OMIT_ANGLE_BRACKET omits underscores inside angle brackets (fromWorld_{world_nether}). NO_OMIT captures all underscores.
27.01 14:33:13 [Server] [WARN] [PlaceholderAPI] [WorldBorder Expansion] If this is the first time installing the expansion, ignore this message.```
open dawn
#

what server version u have?

#

I got 1.8.8

jovial cargo
open dawn
#

and u installed manualy or what?

jovial cargo
#

Manually

#

The placeholders are weird

#

Actually nvm

#

Its working as intended on 1.20.2

open dawn
#

😄

#

Idk why, but for 1.8.8 aint working 😄

#

same for expansion factions, aint working

mint fable
#

i mean

#

it's 1.8

#

you can try the older version of the worldborder expansion, but probably won't work

#

idk about factions

#

@coral geyser

I am really using the CheckItem place extension you created, but there is one problem. It seems that the custommodeldata modifiers do not recognize items without custom model data. They are recognized only after assigning the custom model data value of 0 to the item.

Could you elaborate/give an example?

coral geyser
#

Please wait a moment and I will show you an example video.

mint fable
#

I don't fully understand

#

ok

#

and thank you for the kind words 🙂

coral geyser
#

I sent the video to your personal DM because it couldn't be sent here. Please understand

mint fable
#

Could you upload it to a service like youtube by chance?

coral geyser
#

Oh yes, just a moment

mint fable
#

ahh

coral geyser
#

"If you look at the video, you'll see that even though some items in the inventory clearly haven't been assigned custom model data values, the 'Checkitem' doesn't recognize items with custom model data set to 0 and returns 'no'!"

#

understand?

mint fable
#

I understand

#

but

coral geyser
#

good

mint fable
#

can you SET custom model data to 0?

#

of an item?

#

or does it just remove it

coral geyser
#

"When you use the command to set the custom model data of an item to 0, at that point, 'Checkitem' recognizes that there is an item with custom model data set to 0."

mint fable
#

So there is nothing to fix

#

Because the item does not have any custom model data value, it will say no

But when the value is set to 0 it says yes, which is correct

#

perhaps you are able to use the strict modifier for your situation?

#

%checkitem_mat:OAK_LOG,strict%

coral geyser
#

Um... can you tell me more about the purpose of strict?

mint fable
#

I just tested it, I gave myself an item with custommodeldata 0 and checkitem replies no

coral geyser
mint fable
#

hmm

coral geyser
#

Could you check it once?

mint fable
#

watch

#

err, idk if my video working

coral geyser
#

"Can you not watch the video?"

mint fable
#

I see it

#

I meant my video

#

your video is different from my test

#

nvm

coral geyser
#

"Is it okay if I join your server and test it together?"

mint fable
#

Ignore all I said

mint fable
#

i gotta go right now

#

be back later

coral geyser
#

ok..!

Even when using 'strict,' CheckItem fails to recognize items without assigned Custom Model Data as having Custom Model Data 0. I want to clearly differentiate between items with Custom Model Data 0 and items with assigned Custom Model Data, even though they have the same name.

open dawn
#

Is it possible to make staff+ plugin expansion same as staff++ expansion plugin? Cuz I have staff+ plugin and it looks like staff++ looks exactly the same. Also is this possible what I want to do - I want to add extra action for command, when I write /staff its do also /asb switch adminboard

mint fable
#

it's two different things

#

Just to be clear: %checkitem_mat:STONE,nameequals:Your_item_name_here,strict%

Does this return yes for Items with custommodeldata 1?

coral geyser
#

Yes, if the custom model data is 1, it returns yes.

mint fable
#

ah

#

i will have to take a look

coral geyser
#

Please..

mint fable
coral geyser
#

"What should I do?"

jovial cargo
#

Man, I need to have my dev make a custom WildStacker extension cause I want to check how many upgraded spawners are on ones island but they don’t have any placeholders so IG I’ll have to make them

mint fable
#

Wait till I fix/enhance the strict modifier @coral geyser

#

maybe tonight

dark frigate
#

need big help look i wanted to add vault prefix but its bugged half away of the rank?! i have screenshot if somebody can help i will send them the sreenshot per dm

#

simple:
titles: '&x&f&b&0&0&0&0&lF&x&c&9&0&0&0&0&lo&x&9&7&0&0&0&0&lG&x&6&4&0&0&0&0&lB&x&3&2&0&0&0&0&lo&x&0&0&0&0&0&0&lx'
scores:
15: '&7%localtime_time%'
14:
- '&7&m+------------------+'
- '&7&m--------------------'
13: '&0&lI&8&lN&7&lF&f&lO'
12: '&e☀ &7Nick➛ &e%player_name%'
11: '&c❤ &7Rang➛ %vault_prefix%'

vault prefix is their but only the half of the word

coral geyser
tender vaporBOT
broken cipher
#

hello
Can someone tell me is there some placeholder that does next:

  • i want to display different nametag text (prefix/suffix) to certain players who met specific conditions
  • for other players different nametag text (prefix/suffix) will be shown
  • i am using TAB plugin tho, is it possible to do this using ChangeOutput + some other expansion?

if you don't understand what i want to do, let me know and i'll try to paraphrase it better

cosmic needle
broken cipher
#

I will paraphrase:

  • Player HelloThere_1 and HelloThere_2 are looking at player HelloThere_3
  • Player HelloThere_1 sees nametag of them and the nametag goes [Admin] HelloThere_3
  • Player HelloThere_1 meets other condition and it shows for them [Operator] HelloThere_3
#

So this does not do anything with HelloThere_3 player actually, but to the ones who are looking at him (or any other player)

cosmic needle
#

Hmm, not sure if that would honestly be possible through PAPI w/o actual code and development behind it.

#

@sharp bloom agree? Or am I missing something?

dark frigate
#

anybody can help me?

broken cipher
#

This is basically like relative placeholder for factions

cosmic needle
dark frigate
#

i need help

tender vaporBOT
#

There is no time to wait! Ask your question @dark frigate!

broken cipher
#

but in this case not for factions, but for general purpose

dark frigate
#

ok so basiclly i want to show the rank in the scoareboard but its bugged and only shows the half of it any help?

#

@cosmic needle

sharp bloom
broken cipher
cosmic needle
dark frigate
cosmic needle
sharp bloom
#

and its not the best option

cosmic needle
#

Yeah

sharp bloom
#

I d prefer a papi expansion instead

sharp bloom
dark frigate
broken cipher
#

I saw that javascript expansion, even with the simplest js placeholder, takes a lot of cpu usage

sharp bloom
#

an alternative would be parseother expansion?

#

but still depends on how y want to use it

dark frigate
#

its blocked

cosmic needle
broken cipher
cosmic needle
#

Ie why i said probably just need to custom code it

cosmic needle
broken cipher
#

ok i'll see if someone here would like to take suggestion for this papi expansion maybe

dark frigate
#

why not in dm?

#

is faster

broken cipher
#

who has time and power of will to do it, some bigger papi expansion dev

#

if it's even feasible

cosmic needle
#

Especially managing big servers, msg requests gets flooded.

dark frigate
#

is that good so?

#

idk why is it bugged the half away

cosmic needle
#

What scoreboard plugin?

dark frigate
#

simple score

#

just cant fix it xD

#

you have a solution sage?

cosmic needle
#

Only thought I got.

dark frigate
#

oh yeah could be how to disable that

dark frigate
cosmic needle
#

If the plugin doesn’t support it, then can’t. I’d (personally) recommend AnimatedScoreboard. My server uses it on various different versions and works smoothly for me.

dark frigate
#

ok will try it but i did it with the exact plugin 2 month ago and it worked lol

cosmic needle
#

Hmm odd

#

What version are you testing on?

dark frigate
#

1.20.4 ig

cosmic needle
#

Hmm ok

#

Yeah should definitely support it

dark frigate
#

btw whole other topic but i cant acces my server panel and that shows up

cosmic needle
#

Shared hosting or Dedicated?

dark frigate
cosmic needle
#

You’d need to contact them for that

sharp bloom
#

placeholders exist

cosmic needle
#

True

dark frigate
#

ok so i cant do that rn with scoreboard bc i cant restart server dang

sharp bloom
#

parseother with changeoutput most likely

cosmic needle
#

Hmm maybe

dark frigate
#

sage you know how to disable elytra damage?

#

@cosmic needle

zealous olive
#

I have a placeholder called %luckperms_prefix%. When the plugins parse this placeholder, a %img_bidik% placeholder appears again and this placeholder cannot be parsed. How do I parse the 2nd resulting placeholders?

#

And yes I translated it with google translate

junior musk
#

/papi ecloud download Utils
/papi reload
%utils_parse:2_luckperms_prefix%

austere hawk
#

How can I reset player kills and deaths?

jovial cargo
#

Delete player data

austere hawk
#

I just want to reset the kills and deaths

#

I use the statistics placeholder

#

And what is this for? %statistic_record_played%

zealous olive
jovial cargo
austere hawk
#

Every month I want player deaths and kills to be reset

austere hawk
#

I just want to reset player deaths and kills every month so I don't know how to do it for all the automatic wood players

warm plover
#

Is there any resources out there that allow placeholders to be parsed in plugins that don't natively support it?

#

ChatInjector used to do this but no longer can.

mint fable
#

saj

warm plover
#

?

ashen horizon
#

anyone know of a 1.20.4 nickname plugin? (not essentials)

ashen horizon
#

damn why is the config so bloated

#

im wondering if i can write it in skript

#

by setting the luckperms prefix. since im not using prefix atm

ashen horizon
#

thats using set display name. hows that work?

#
set tablist name of loop-player to "%{prefix::%uuid of player%}% &f%{nick::%uuid of player%}%"
set display name of loop-player to "%{prefix::%uuid of player%}% &f%{nick::%uuid of player%}%"
thin knot
#

hey, i apologize if this is asked a lot but i cannot find anything about it from searching. how can i use PAPI to register placeholders for plugins installed on velocity, i.e. LuckPerms?

#

i see some messages saying it's entirely unsupported but i'm not sure so i figured i would ask again, since it would really suck if that was the case. i would like to be able to have LuckPerms across all of my servers while also utilizing the prefixes in my chat

dark frigate
#

@cosmic needle i need your help quick you said that animated scoreboard is good but tell me whats this? https://imgur.com/a/GziAhJd it does that when i do /animatedsb reload

#

please help

scenic totem
#

guys i have a problem with papi reload

tender vaporBOT
turbid tide
junior musk
#

either way, you'll need LuckPerms on each server so you can actually manage permissions, having it on Bungee only will only manage Bungee permissions, not the backend's

nimble turtle
#

Hello guys/girls. I need some help for guilds. Is there any papi to make top10 guild with kills? and to add to /guild info ?

tender vaporBOT
coral geyser
#

?

gloomy marsh
#

hi guys

#

when i use "/papi parse me %formatter_text_replace_#&#{vault_prefix}%"

#

its appear like that: &6&lOwner

#

a lot of plugins support that

#

but

#

in mycommand

#

when i put in my specific command to show statistics like:
name
rank
hours

#

the rank appear "&6&lOwner"

#

without color

tender shore
#

Is there any placeholder to get the coords of the block the player is looking at?

#

I saw a post from 2018 that said they didn't implement it bc there's no way to put it without consuming too much, but asking just in case

#

I would also download extensions if this is possible

wooden valley
#

how do i reset every players data to 0 in a statistic placeholder?

#

or how do i reset the placeholders values/data

snow gazelle
#

Anyone who knows if PAPI supports Velocity?
I'm looking to add placeholders to my scoreboard about how many players are online on each of my servers, but can't find anything online.
(Please tag/reply, if you can help :3)

mint fable
lofty elk
#

i have placeholder in my server but my deluxehub doesnt show values for %essentials_bal%, or ranks or anything which is related with other plugin

#

only shows %playername%

tender vaporBOT
coral geyser
#

May I know how it goes?

halcyon sorrel
#

Is Placeholder API Down?

vivid sparrow
#

what?

balmy marten
native pumice
#

Hello!
I'm trying to use the changeoutput placeholder to create a suffix.
The placeholder its reading is %ultimatebounty_bounty_total%

So I made it into %changeoutput_>_input:{ultimatebounty_bounty_total}_matcher:0_ifmatch: &8- &4€{ultimatebounty_bounty_total} ☠_else:% so it displays - €1000 💀 when someone has a bounty greater than 0.

I now want to use the formatter placeholder to change that 1000 into; 1,000
When using this; %formatter_number_format_{ultimatebounty_bounty_total}% it works no problem, but when I try to combine it all into;
%changeoutput_>_input:{ultimatebounty_bounty_total}_matcher:0_ifmatch: &8- &4€{formatter_number_format_{ultimatebounty_bounty_total}} ☠_else:% the formatter no longer works. I assume this is because its a placeholder, inside a placeholder. Is there any way to make this work?

#

Its sending this in the console

[13:07:22 WARN]: [PlaceholderAPI] [formatter] Invalid placeholder %formatter_number_format_{ultimatebounty_bounty_total%
[13:07:22 WARN]: [PlaceholderAPI] [formatter] Cannot convert {ultimatebountybountytotal into a BigDecimal.
sharp bloom
native pumice
#

Is there no way to make that work?

sharp bloom
#

honestly you can use the utils expansion? it might manage to parse it correctly
%utils_parse_changeoutput_>_input:{ultimatebounty_bounty_total}_matcher:0_ifmatch: &8- &4€{formatter_number_format_{ultimatebounty_bounty_total}} ☠_else:%

#

/papi ecloud download utils

native pumice
#

Ill give that a try!

#

Dude! You are amazing 😄

sharp bloom
native pumice
#

Its working 🙂 Thanks! 🙌

sharp bloom
#

np :d

little ridge
#

Can I use expiry_time to change the format of the scharacter representing the seconds output?
https://ibb.co/BtqBn1q

snow gazelle
#

Anyone who knows why my placeholders has stopped working?
I got the newest version (2.11.5) and all my placeholders from my other plugins and Vault are all registered and looks like it should be working just fine.
The output is just "{placeholderapi_vault_prefix}" as an example of my Vault usage.

Anyone who got an idea what to do here?

junior musk
#

the syntax is %vault_prefix%

#

unless you're using it in a plugin that only supports MVdWPlaceholderAPI

snow gazelle
#

I'm using it in my Scoreboard (Featherboard) witch do support MVdWPlaceholderAPI.

junior musk
#

which version?

#

since 5.0.0, FB has moved to this PAPI

snow gazelle
#

4.28.1 - the newest version that works with my server version (1.8)
It has all worked just fine before so I don't see why it won't now.

junior musk
#

I'm not sure either, does /papi parse me %vault_prefix% return the correct value in your chat?

snow gazelle
#

Yes

junior musk
#

then this is likely a MVdWPAPI issue

snow gazelle
#

Allright - I will look in to that, thanks!

junior musk
#

I see FB has a 4.30.0 version though, maybe the issue could be from there?

snow gazelle
#

Does it support Java 8 though?

junior musk
#

uh, I think

snow gazelle
#

I'll try that

junior musk
#

yeah, Java 16 support is only for 5.0.0+

snow gazelle
#

Allright - I'll try the 4.30.0

junior musk
#

also make sure you're on the latest MVdWPAPI version

snow gazelle
#

Already do that.
The version doesn't help me that much, but I can see I get an error with my featherboard so I assume that's where my problem is.

junior musk
#

try reaching out to the dev then

snow gazelle
#

Yeah I will.

#

Thanks.

wooden valley
tender vaporBOT
mint fable
jovial cargo
#

Any way to get a specified players group? I.E %MakiilGronsach_vault_group% would ouput makiilgrosnach's group?

vivid sparrow
#

Parseother expansion

jovial cargo
#

thank you

jovial cargo
#

I.E

%utils_parse_parseother_{commandsender_{vault_group}%

vivid sparrow
#

It depends on the plugin where you are using the placeholder

jovial cargo
#

Skripts internal placeholder %command sender% isnt recognized as its only internal and its trying to parse a papi placeholder

kind star
#

While using my account, it suddenly logged out. Now, when I am trying to log in again, I am receiving an error stating 'Email does not exist, And I had not received any type of email before this as well.

vivid sparrow
#

Yikes, have fun with skript

tender vaporBOT
jovial cargo
#

I dont like it much. Might switch to mycommand

#

Although its not much better

vivid sparrow
#

Learn java fingerguns_up

#

Gn

sharp bloom
jovial cargo
sharp bloom
#

combined the parseother expansion with the utils expansion?

#

and a missing name?

#

bruh

#

what u trying to do

jovial cargo
#

It was an example message to the one above

sharp bloom
#

oh i see

vivid sparrow
#

Why do you need the name of the sender?

jovial cargo
#

to get their rank

sharp bloom
#

the placeholder triggered me so i didnt rly saw the whole context

vivid sparrow
#

Just parse the rank placeholder lol

sharp bloom
#

are u doing it via deluxemenus or smth?

vivid sparrow
#

The parseother placeholder is for when you want to see someone else's data

jovial cargo
#

Its via Skript

sharp bloom
#

oh

jovial cargo
#

It should output the users rank

#

but instead it just says <none>

#

I think Ill use skript placeholders, define a new papi placeholder for command sender so I can use it in that context

sharp bloom
#

OKK why use skript when u can make a fancy gui for it

jovial cargo
sharp bloom
#

okay?

#

[broadcast] exist

#

[minibroadcast] exist

jovial cargo
#

It does, however I dont want it in a gui

#

I want users to be able to run the commands and have it do the function

sharp bloom
#

:/ u can just make a confirmation menu or smth

jovial cargo
#

I could but that still wouldnt solve my issue

sharp bloom
#

i m very confident that it will :/

#

the <none> here would be replaced w the %player_name%

#

and in that case the player who executed the click action

#

thats why i always say if u have an issue you make a guiActually

jovial cargo
#

Ill just do it the hard way

dusk ivy
#

Hi everyone
I have a little problem with placeholders

I created GUI profil but when I check profil of ANOTHER player, the placeholders always show me My informations

So for exemple, in GUI profil of another player, there is a line to know the money of a placer with this :
- "&7This player have &e%vault_eco_balance%&8$&7."

But I will see my own money in his profil
Is there a way to change this?

jovial cargo
#

%parseother_{player}_vault_eco_balance%

This is assuming you are doing /yourcommand {player}

dusk ivy
jovial cargo
#

Is it like /info {player}

dusk ivy
#

yes /profil {player}

jovial cargo
#

Then you will be able to use that placeholder

#

Try to use it in the lore and it should work

dusk ivy
#

%parseother_{player}_vault_eco_balance%

it don't work, but the {player} is replaced by my own name when I check the profil of my friend

#

"You have %parseother_Tehebrium_vault_eco_balance%"

jovial cargo
#

Did you do /papi ecloud download parseother

#

Then do /papi reload

#

Is it Player or player in the args?

#

Capital or non-capital p?

junior musk
#

%parseother_{{player}}_{vault_eco_balance}%

jovial cargo
#

That’s it?

junior musk
#

assuming the argument name you defined in your DeluxeMenus menu is named player

jovial cargo
#

Oh, I see. That’s my fault

jovial cargo
dusk ivy
#

So :

I did /papi ecloud download parseother and reload

And put %parseother_{{player}}_{vault_eco_balance}%

#

But now

jovial cargo
#

What does it display?

dusk ivy
#

When I check my own profil, it said that I have 2000$
(in reality I have 7000$)

when I check profil of my friend, it say he have 2000$ too
(in reality, he have 12.000$)

junior musk
#

send your menu

dusk ivy
#
  money:
    material: RAW_GOLD
    name: "&6Monnaie"
    slots: [ 35 ]
    glowing: false
    hideAttributes: false
    customModelData: 0
    onlyOwner: false
    onlyVisitor: false
    usePermission: false
    permission: "custom.permission"
    lore:
      - "&7Vous possèdez &e%parseother_{{player}}_{vault_eco_balance}%&8$&7."
junior musk
#

the entire menu

#

?paste

tender vaporBOT
dusk ivy
junior musk
#

{target}

#

%parseother_{{target}}_{vault_eco_balance}%

dusk ivy
#

ok

junior musk
#

this isn't even a DeluxeMenus menu kekw

dusk ivy
#

No it's a playerprofile menu

dusk ivy
junior musk
#

/papi parse me %vault_eco_balance%

jovial cargo
#

Do y’all have op perms?

junior musk
#

doesn't matter

jovial cargo
#

Vault broke my eco placeholders when I had * perms

junior musk
#

I don't see how it could affect it

#

unless you were using them in an ajleaderboard leaderboard and had the bypass permission

dusk ivy
#

"/papi parse me %vault_eco_balance%"

this command work and display my real money

jovial cargo
#

Then what he gave you should work

junior musk
#

can you use %string_shuffle_{target}% in your menu?
and /papi ecloud download String
/papi reload

dusk ivy
#

but as a placeholder in my GUI menu, it display 2000$ and not my real money (7000$)

this is so strange

#

@junior muskI tried this in my menu , it display strange things

junior musk
#

what does it show?

dusk ivy
#

It change every 0.5 second xD

#

i try to write it

junior musk
#

if it shows those characters {target} shuffled, then that means your PlayerProfile plugin parses PAPI placeholders before the arguments, which means there's nothing we can do for your ParseOther placeholders

dusk ivy
#

gt}{rtae

junior musk
#

yeah

#

then we can't do anything

dusk ivy
#

Ohh okay... :/

jovial cargo
#

Is it cause too many placeholders in a placeholder?

jovial cargo
junior musk
#

no

jovial cargo
#

Oh

junior musk
#

the PAPI placeholders only receive {target} as literaly text, not its actual value (aka the player name)

jovial cargo
junior musk
#

have fun

dusk ivy
#

What is a DM ?

jovial cargo
#

DeluxeMenu

dusk ivy
#

Oh okay

jovial cargo
#

It requires DeluxeMenus

#

And it will solve your issue

dusk ivy
#

I have it, but I have to learn how to use it x)

Thanks a lot for your time and your answers

jovial cargo
#

I’ll make a menu when I get home

dusk ivy
#

Oh really? 😮

jovial cargo
#

Yeah, I’ll convert it. It’s not too much work

dusk ivy
#

Thanks a lot, you're a savior!

jovial cargo
#

I’ll be home in 20 minutes

dusk ivy
#

alright

jovial cargo
#

It should take me like 5-10 minutes to convert it over

#

So around 30 minutes total

dusk ivy
#

Okay sir!

torn trout
#

what is the command to import tags thiings to placeholder

austere nymph
#

I've searched (prob not asking the correct question), I want to have something like this set via Deluxe Menus(%deluxemenus_meta_hud_STRING_NotSet%) that through a DM can be changed by the player to either point to %vanish_playercount% OR %luckperms_expiry_time_veinminer.veinmine.*%.... OR any other placeholder I add for users to swap between all pointing back to %deluxemenus_meta_hud_STRING_NotSet%.

Reason is, we use Oraxen for Hud (Just above player's hunger bar) to show their veinminer time when they are using veinminer but we only have one hud we can use. I'd like it to be more dynamic.

I have no issues configuring Menus in Deluxe Menus, but I'm struggling on whether this is possible to do(without writing my own placeholder) to be able to dynamically change an existing placeholder to reference or in real-time refer back to a placeholder of my choice.
Suggestions please?

warm plover
#

Is there any resources out there that allow placeholders to be parsed in plugins that don't natively support it? ChatInjector used to do this but no longer can.