Compare commits

...

40 Commits

Author SHA1 Message Date
Funnycube
431e0234c2 Update PlaceholderAPI version requirements in docs 2026-01-31 21:12:53 +11:00
Funnycube
589135a9f4 Fix grammar in PlaceholderExpansion documentation
Corrected minor grammatical errors in the documentation.
2026-01-31 21:10:35 +11:00
Andre601
a32c6e4df0 Add Hytale-related docs 2026-01-26 13:52:39 +01:00
Andre_601
27cee54915 Merge pull request #1156 from PlaceholderAPI/wiki-updated-domains
Updated Domains!
2026-01-13 03:52:34 +01:00
LagClear
51ea1b05c2 Update Domains!
Updated from old domain URLs!
2026-01-12 02:33:11 -08:00
Andre_601
edea6c4e57 Merge pull request #1155 from Kamilkime-Plugins/kamilkime/funnyguilds-placeholders-wiki
Remove FunnyGuilds placeholders from wiki
2026-01-05 00:37:24 +01:00
Kamilkime
e9b682b723 Remove FunnyGuilds placeholders 2026-01-05 00:28:12 +01:00
Andre_601
a0c852bb91 Merge pull request #1149 from LOOHP/wiki
Updated ImageFrame Placeholders
2025-11-23 19:48:13 +01:00
LOOHP
913a305f8d Updated ImageFrame placeholders 2025-11-23 18:39:18 +00:00
Andre_601
b57dff68ac [Wiki] Fix order of latest addition 2025-11-18 16:52:23 +01:00
Andre_601
9341a10908 Merge pull request #1148 from UsainSrht/ujobs-placeholders-1
Add UJobs placeholders to placeholder list
2025-11-18 13:07:15 +01:00
Hüseyin Serhat Han
6e4da916ad Add UJobs placeholders to placeholder list 2025-11-18 09:54:07 +01:00
Andre_601
ae237b27da Merge pull request #1146 from petulikan1/wiki
Fix typo in placeholder expansion documentation
2025-11-15 09:15:32 +01:00
Petulikan Dálnevím
db129a6fe3 Fix typo in placeholder expansion documentation
Corrected a typographical error in the documentation regarding the usage of OfflinePlayer.
2025-11-15 05:27:28 +01:00
Andre_601
46e4c54edb Merge pull request #1145 from Angeschossen/wiki
Update Lands Wiki Link
2025-11-05 21:59:00 +01:00
David
ce978189cd change Lands supports 3rd party placeholder via PlaceholderAPI 2025-11-05 21:29:39 +01:00
David
fabaf75c7b Update lands wiki link 2025-11-05 21:28:44 +01:00
Andre_601
f6cafd8891 Merge pull request #1141 from SkytAsul/patch-1
Update BeautyQuests placeholders information
2025-10-07 17:28:10 +02:00
Youenn "SkytAsul" Le Jeune
b7e19c200c Removed comments on placeholders 2025-10-07 17:26:49 +02:00
Youenn "SkytAsul" Le Jeune
14b89c12ad Update BeautyQuests placeholders information 2025-10-07 15:43:56 +02:00
Andre_601
c399a82a74 Merge pull request #1139 from TheGaBr0/wiki
Updated placeholders of PlayTimeManager
2025-09-12 12:00:16 +02:00
TheGaBro
d5e1c748be Updated placeholders of PlayTimeManager 2025-09-12 09:56:43 +02:00
Andre_601
9604455d85 Merge pull request #1136 from Clexus/wiki
[Wiki] Add Distance
2025-08-29 09:41:56 +02:00
Andre_601
15df112cc3 Merge pull request #1135 from vk2gpz/wiki
Update placeholder-list.md
2025-08-29 09:37:17 +02:00
Clexus
ccc7a817f9 [Wiki] Add Distance 2025-08-29 10:10:33 +08:00
vk2gpz
e3dd0b8978 Update placeholder-list.md
fixed typos.
2025-08-29 09:15:33 +10:00
Andre_601
46111c5ee2 Merge pull request #1131 from fytage/wiki
Update placeholder-list.md
2025-08-01 02:34:08 +02:00
Šimon Fytage
66975ef0c6 Update placeholder-list.md
Co-authored-by: Andre_601 <11576465+Andre601@users.noreply.github.com>
2025-07-29 15:24:47 +02:00
Šimon Fytage
bfda9d60ca Update placeholder-list.md 2025-07-29 13:26:41 +02:00
Andre_601
d5746c80ea Merge pull request #1128 from TheGaBr0/playtimemanagerwiki
Updated PlayTimeManager information
2025-07-03 14:09:30 +02:00
TheGaBro
3a2ed3ba94 Updated PlayTimeManager information 2025-07-03 13:41:30 +02:00
Andre_601
0103722292 [Wiki] Add Reparser 2025-06-24 13:09:26 +02:00
Andre_601
f537bdd727 Merge pull request #1120 from JasperLorelai/wiki-pronoundb
[Wiki] Add PronounDB
2025-06-21 23:32:42 +02:00
JasperLorelai
a480fa3292 [Wiki] Add PronounDB 2025-06-20 22:10:44 +02:00
Andre_601
b6a05c35f5 Merge pull request #1114 from PlaceholderAPI/feat/add-multiverse-core-v5-placeholders
[Wiki] Add Multiverse-Core v5 placeholders
2025-06-06 13:15:59 +02:00
Andre_601
f703056080 Merge pull request #1117 from TheGaBr0/playtimemanagerwiki
Added PlayTimeManager info to the wiki
2025-05-08 10:52:22 +02:00
TheGaBro
846485bff3 Added PlayTimeManager info to the wiki 2025-05-08 10:43:57 +02:00
Andre_601
7828df0d82 Merge pull request #1116 from Wiicart/wiki
[Wiki] Add NameColor
2025-05-03 23:19:29 +02:00
wiicart
a591dbb0be [Wiki] Add NameColor 2025-05-03 16:08:34 -05:00
wiicart
1f7737511b [Wiki] Add NameColor placeholders 2025-05-03 16:02:49 -05:00
5 changed files with 376 additions and 91 deletions

View File

@@ -4,6 +4,13 @@ description: Comprehensive guide on how to create a PlaceholderExpansion for oth
# Creating a PlaceholderExpansion
/// warning | Important
These pages cover the creation of a PlaceholderExpansion for both Spigot/Paper-based and Hytale Servers!
Unless mentioned otherwise the provided code examples function for both platform types.
Please always check code blocks for :material-plus-circle: Icons with additional info!
///
This page will cover how you can create your own [`PlaceholderExpansion`][placeholderexpansion] which you can either integrate into your own plugin (Recommended) or [upload to the eCloud](expansion-cloud.md).
It's worth noting that PlaceholderAPI relies on expansions being installed. PlaceholderAPI only acts as the core replacing utility while the expansions allow other plugins to use any installed placeholder in their own messages.
@@ -74,6 +81,11 @@ public class SomeExpansion extends PlaceholderExpansion {
public String onPlaceholderRequest(Player player, @NotNull String params) {
// (5)
}
@Override
public String onPlaceholderRequest(PlayerRef player, @NotNull String params) {
// (6)
}
}
```
@@ -93,7 +105,7 @@ public class SomeExpansion extends PlaceholderExpansion {
4. Called by PlaceholderAPI to have placeholder values parsed.
When not overriden will call `onPlaceholderRequest(Player, String)`, converting the OfflinePlayer to a Player if possible or else providing `null`.
Using this method is recommended for the usage of the OfflinePlayer, allowing to use data from a player without their precense being required.
Using this method is recommended for the usage of the OfflinePlayer, allowing to use data from a player without their presence being required.
**Parameters**:
@@ -108,6 +120,16 @@ public class SomeExpansion extends PlaceholderExpansion {
- `player` - Nullable Player instance to parse placeholders against.
- `params` - Non-null String representing the part of the placeholder after the first `_` and before the closing `%` (or `}` for bracket placeholders).
6. **Note:** Only exists for the Hytale Version of PlaceholderAPI!
Called by PlaceholderAPI through `onPlaceholderRequest(PlayerRef, String)` to have placeholder values parsed.
When `null` is returned will PlaceholderAPI treat it as invalid placeholder and return it unchanged.
**Parameters:**
- `player` - PlayerRef instance to parse placeholders against.
- `params` - Non-null String representing the part of the placeholder after the first `_` and before the closing `%` (or `}` for bracket placeholders).
/// note
Overriding `onRequest(OfflinePlayer, String)` or `onPlaceholderRequest(Player, String)` is not required if you [create relational placeholders](#making-a-relational-expansion).
///
@@ -133,16 +155,18 @@ You are also required to override and set `persist()` to `true`. This tells Plac
attrs: { id: full-example-internal }
type: example
//// note |
Please see the [Basic PlaceholderExpansion Structure](#basic-placeholderexpansion-structure) section for an explanation of all common methods in this example.
//// note | Important Notes
- Please see the [Basic PlaceholderExpansion Structure](#basic-placeholderexpansion-structure) section for an explanation of all common methods in this example.
- The below example is for a Spigot/Paper-based setup.
For a Hytale server, replace `me.clip` imports with `at.helpch` and replace `OfflinePlayer` with `PlayerRef` (Including the import).
Tab the :material-plus-circle: icons in the code block below for additional information.
////
```java { .annotate title="SomeExpansion.java" }
package at.helpch.placeholderapi.example.expansion;
package com.example.plugin.expansion;
import at.helpch.placeholderapi.example.SomePlugin;
import com.example.plugin.SomePlugin;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.OfflinePlayer;
import org.jetbrains.annotations.NotNull;
@@ -206,19 +230,20 @@ public class SomeExpansion extends PlaceholderExpansion {
6. Example of accessing data of the plugin's `config.yml` file.
7. Reaching this means that an invalid params String was given, so we return `null` to tell PlaceholderAPI that the placeholder was invalid.
///
### Register your Expansion
Due to the PlaceholderExpansion being internal, PlaceholderAPI does not load it automatically, we'll need to do it manually.
This is being done by creating a new instance of your PlaceholderExpansion class and calling the `register()` method of it.
This is being done by creating a new instance of your PlaceholderExpansion class and calling the `register()` method of it:
Here is a quick example:
/// tab | Spigot, Paper, ...
```java { .annotate title="SomePlugin.java" }
package at.helpch.placeholderapi.example;
package com.example.plugin;
import at.helpch.placeholderapi.example.expansion.SomeExpansion;
import com.example.plugin.expansion.SomeExpansion;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
@@ -238,6 +263,29 @@ public class SomePlugin extends JavaPlugin {
2. This registers our expansion in PlaceholderAPI. It also gives the Plugin class as dependency injection to the Expansion class, so that we can use it.
///
/// tab | Hytale
```java { .annotate title="SomePlugin.java" }
package com.example.plugin;
import com.example.plugin.expansion.SomeExpansion;
import com.hypixel.hytale.server.core.plugin.JavaPlugin;
import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
public class SomePlugin extends JavaPlugin {
public SomePlugin(JavaPluginInit init) {
super(init)
}
// TODO: Example of checking for PAPI and registering expansion
}
```
///
----
## Making an External Expansion
@@ -257,8 +305,10 @@ Downsides include a more tedious setup in terms of checking for a required plugi
attrs: { id: full-example-external-no-dependency }
type: example
//// note |
Please see the [Basic PlaceholderExpansion Structure](#basic-placeholderexpansion-structure) section for an explanation of all common methods in this example.
//// note | Important Notes
- Please see the [Basic PlaceholderExpansion Structure](#basic-placeholderexpansion-structure) section for an explanation of all common methods in this example.
- The below example is for a Spigot/Paper-based setup.
For a Hytale server, replace `me.clip` imports with `at.helpch` and replace `OfflinePlayer` with `PlayerRef` (Including the import).
Tab the :material-plus-circle: icons in the code block below for additional information.
////
@@ -266,7 +316,7 @@ Tab the :material-plus-circle: icons in the code block below for additional info
This is an example expansion without any plugin dependency.
```java { .annotate title="SomeExpansion.java" }
package at.helpch.placeholderapi.example.expansion;
package com.example.expansion;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.OfflinePlayer;
@@ -314,8 +364,10 @@ public class SomeExpansion extends PlaceholderExpansion {
attrs: { id: full-example-external-dependency }
type: example
//// note |
Please see the [Basic PlaceholderExpansion Structure](#basic-placeholderexpansion-structure) section for an explanation of all common methods in this example.
//// note | Important Notes
- Please see the [Basic PlaceholderExpansion Structure](#basic-placeholderexpansion-structure) section for an explanation of all common methods in this example.
- The below example is for a Spigot/Paper-based setup.
For a Hytale server, replace `me.clip` imports with `at.helpch` and replace `OfflinePlayer` with `PlayerRef` (Including the import).
Tab the :material-plus-circle: icons in the code block below for additional information.
////
@@ -323,9 +375,9 @@ Tab the :material-plus-circle: icons in the code block below for additional info
This is an example expansion with a plugin dependency.
```java { .annotate title="SomeExpansion.java" }
package at.helpch.placeholderapi.example.expansion;
package com.example.expansion;
import at.helpch.placeholderapi.example.SomePlugin;
import com.example.plugin.SomePlugin;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
@@ -383,7 +435,9 @@ public class SomeExpansion extends PlaceholderExpansion {
2. The name of the plugin this expansion depends on.
It is recommended to set this, as it would result in PlaceholderAPI reporting any missing plugin for your expansion.
3. This does two things:
3. **Note:** This only works on a Spigot/Paper-based server. A equivalent for Hytale servers is not yet known.
This does two things:
1. It sets the `plugin` instance to `SomePlugin` using Bukkit's PluginManager to retrieve a JavaPlugin instance that is cast to `SomePlugin`.
2. It checks if the retrieved instance is not null. If it is will this result in `canRegister()` returning false, resulting in PlaceholderAPI not loading our expansion.
@@ -399,8 +453,9 @@ public class SomeExpansion extends PlaceholderExpansion {
## Making a relational Expansion
/// note
Relational Placeholders always start with `rel_` to properly identify them. This means that if you make a relational placeholder called `friends_is_friend` would the full placeholder be `%rel_friends_is_friend%`.
/// note | Notes
- Relational Placeholders always start with `rel_` to properly identify them. This means that if you make a relational placeholder called `friends_is_friend` would the full placeholder be `%rel_friends_is_friend%`.
- For Hytale, replace any mention of `Player` with `PlayerRef` and update any Imports in the code to `at.helpch` and related Hytale ones.
///
Relational PlaceholderExpansions are special in that they take two players as input, allowing you to give outputs based on their relation to each other.

View File

@@ -8,7 +8,7 @@ description: Information about PlaceholderAPI's expansion cloud, including how t
PlaceholderAPI uses an expansion-cloud (A website that has all kinds of expansions stored), to download jar files, that contain the placeholders for it to use.
The expansion-cloud can be seen under https://api.extendedclip.com/home
The expansion-cloud can be seen under https://ecloud.placeholderapi.com
## How it works
@@ -28,7 +28,7 @@ In order to do that, you have to follow those steps:
1. Make sure you have created a seperate jar file as described in the [Creating a PlaceholderExpansion](creating-a-placeholderexpansion.md) page.
2. Create an account on the site, or log in, if you already have one.
3. Click on `Expansions` and then on [`Upload New`](https://api.extendedclip.com/manage/add/).
3. Click on `Expansions` and then on [`Upload New`](https://ecloud.placeholderapi.com/expansions/new/).
4. Fill out the required information. `Source URL` and `Dependency URL` are optional and would link to the source code and any dependency (plugin) of your expansion respectively.
5. Click on the button that says `Choose an file...` and select the jar of your expansion.
@@ -54,7 +54,7 @@ This feature exists since version 2.11.4 of PlaceholderAPI.
Before you update, please note the following:
Updating your expansion will automatically make it unverified, requiring a site moderator to verify it again. This was made to combat malware from being uploaded and distributed.
To update your expansion, you first have to go to the list of [your expansions](https://api.extendedclip.com/manage/).
To update your expansion, you first have to go to the list of [your expansions](https://ecloud.placeholderapi.com/expansions/manage/).
For that click on `Expansions` and select `Your Expansions`.
After that, follow those steps:

View File

@@ -11,28 +11,29 @@ Please note, that the examples in this page are only available for **Placeholder
## First steps
Before you can actually make use of PlaceholderAPI, you first have to import it into your project.
Use the below code example matching your dependency manager.
Use the below code example matching your project type and dependency manager.
/// tab | :simple-apachemaven: Maven
/// tab | Minecraft (Spigot, Paper, ...)
//// tab | :simple-apachemaven: Maven
```{ .xml title="pom.xml" data-md-component="api-version" }
<repositories>
<repository>
<id>placeholderapi</id>
<url>https://repo.extendedclip.com/releases/</url>
<url>https://repo.helpch.at/releases/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>me.clip</groupId>
<artifactId>placeholderapi</artifactId>
<version>{version}</version>
<scope>provided</scope>
<groupId>me.clip</groupId>
<artifactId>placeholderapi</artifactId>
<version>{version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
```
///
////
/// tab | :simple-gradle: Gradle
//// tab | :simple-gradle: Gradle
```{ .groovy title="build.gradle" data-md-component="api-version" }
repositories {
maven {
@@ -44,6 +45,56 @@ dependencies {
compileOnly 'me.clip:placeholderapi:{version}'
}
```
////
///
/// tab | Hytale
//// tab | :simple-apachemaven: Maven
```{ .xml title="pom.xml" data-md-component="api-version" }
<repositories>
<repository>
<id>hytale</id>
<url>https://repo.codemc.io/repository/hytale/</url>
</repository>
<repository>
<id>placeholderapi</id>
<url>https://repo.helpch.at/releases/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<!-- Replace {hytaleVersion} with the version you need -->
<groupId>com.hypixel.hytale</groupId>
<artifactId>Server</artifactId>
<version>{hytaleVersion}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>at.helpch</groupId>
<artifactId>placeholderapi-hytale</artifactId>
<version>{version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
```
////
//// tab | :simple-gradle: Gradle
```{ .groovy title="build.gradle" data-md-component="api-version" }
repositories {
maven {
url = 'https://repo.codemc.io/repository/hytale/'
url = 'https://repo.helpch.at/releases/'
}
}
dependencies {
// Replace {hytaleVersion} with the version you need.
compileOnly 'com.hypixel.hytale:Server:{hytaleVersion}'
compileOnly 'at.helpch:placeholderapi-hytale:{version}'
}
```
////
///
/// details | What is `{version}`?
@@ -71,7 +122,7 @@ Tab the :material-plus-circle: icons in the code block below for additional info
name: ExamplePlugin
version: 1.0
author: author
main: your.main.path.Here
main: com.example.plugin.ExamplePlugin
softdepend: ["PlaceholderAPI"] # (1)
```
@@ -89,7 +140,7 @@ Tab the :material-plus-circle: icons in the code block below for additional info
name: ExamplePlugin
version: 1.0
author: author
main: your.main.path.Here
main: com.example.plugin.ExamplePlugin
depend: ["PlaceholderAPI"] # (1)
```
@@ -111,7 +162,7 @@ Tab the :material-plus-circle: icons in the code block below for additional info
name: ExamplePlugin
version: 1.0
author: author
main: your.main.path.Here
main: com.example.plugin.ExamplePlugin
dependencies:
server:
@@ -134,7 +185,7 @@ Tab the :material-plus-circle: icons in the code block below for additional info
name: ExamplePlugin
version: 1.0
author: author
main: your.main.path.Here
main: com.example.plugin.ExamplePlugin
dependencies:
server:
@@ -149,6 +200,42 @@ dependencies:
///
/// tab | manifest.json (Hytale)
//// tab | Optional dependency
```{ .json .annotate title="manifest.json" }
{
"Group": "com.example",
"Name": "ExamplePlugin",
"Version": "1.0",
"Main": "com.example.plugin.ExamplePlugin",
"OptionalDependencies": {
"HelpChat:PlaceholderAPI": ">= 1.0.2"
}
}
```
////
//// tab | Required dependency
```{ .json .annotate title="manifest.json" }
{
"Group": "com.example",
"Name": "ExamplePlugin",
"Version": "1.0",
"Main": "com.example.plugin.ExamplePlugin",
"Dependencies": {
"HelpChat:PlaceholderAPI": ">= 1.0.2"
}
}
```
////
///
## Adding placeholders to PlaceholderAPI
A full guide on how to create expansions can be found on the [Creating a PlaceholderExpansion](creating-a-placeholderexpansion.md) page.
@@ -160,11 +247,9 @@ To use placeholders from other plugins in our own plugin, we simply have to [(so
It is also important to point out, that any required plugin/dependency for an expansion has to be on the server and enabled, or the `setPlaceholders` method will just return the placeholder itself (do nothing).
/// details | Example
type: example
/// tab | Spigot, Paper, ...
Let's assume we want to send a custom join message that shows the primary group a player has.
To achieve this, we can do the following:
The following is an example plugin that sends `%player_name% joined the server! They are rank %vault_rank%` as the Join message, having the placeholders be replaced by PlaceholderAPI.
//// note |
The below example assumes a **soft dependency** on PlaceholderAPI to handle PlaceholderAPI not being present more decently.
@@ -173,7 +258,7 @@ Tab the :material-plus-circle: icons in the code block below for additional info
////
```{ .java .annotate title="JoinExample.java" }
package at.helpch.placeholderapi;
package com.example.plugin;
import me.clip.placeholderapi.PlaceholderAPI;
@@ -215,4 +300,45 @@ public class JoinExample extends JavaPlugin implements Listener {
In our example are we providing a text containing `%player_name%` and `%vault_rank%` to be parsed, which require the Player and Vault expansion respectively.
Example output: `Notch joined the server! They are rank Admin`
///
/// tab | Hytale
The following is an example plugin that sends `%player_name% joined the server! They are rank %vault_rank%` as the Join message, having the placeholders be replaced by PlaceholderAPI.
``` { .java .annotate title="JoinExample.java" }
packate com.example.plugin;
import at.helpch.placeholderapi.PlaceholderAPI;
import com.hypixel.hytale.server.core.event.events.player.PlayerReadyEvent;
import com.hypixel.hytale.server.core.Message;
import com.hypixel.hytale.server.core.plugin.JavaPlugin;
import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
public class JoinExample extends JavaPlugin {
public JoinExample(JavaPluginInit init) {
super(init)
}
@Override
protected void setup() {
// (1)
getEventRegistry().registerGlobal(PlayerReadyEvent.class, this::onPlayerReady);
}
public void onPlayerReady(PlayerReadyEvent event) {
Player player = event.getPlayer();
// (2)
player.sendMessage(PlaceholderAPI.setPlaceholders(Message.raw("Welcome %player_name%!"), player))
}
}
```
1. We tell the server to call `onPlayerReady` whenever a `PlayerReadyEvent` fires.
2. PlaceholderAPI offers multiple `setPlaceholders` methods that can either return a `String` or a `Message` object, depending on your needs.
Note that these methods require input of the same type: `setPlaceholders(String, PlayerRef)` for String and `setPlaceholders(Message, PlayerRef)` for Messages.
///

View File

@@ -34,7 +34,7 @@ Further details on how to contribute to this list or the wiki as a whole can be
- **[CooldownBar](#cooldownbar)**
- **D**
- *No Expansions*
- *[Distance](#distance)*
- **E**
- **[Enchantment](#enchantment)**
@@ -81,6 +81,7 @@ Further details on how to contribute to this list or the wiki as a whole can be
- **[PlayerList](#playerlist)**
- **[Plugin](#plugin)**
- **[Progress](#progress)**
- **[PronounDB](#pronoundb)**
- **Q**
- *No Expansions*
@@ -92,6 +93,7 @@ Further details on how to contribute to this list or the wiki as a whole can be
- **[RedisBungee](#redisbungee)**
- **[RelCon](#relcon)**
- **[RNG](#rng)**
- **[Reparser](#reparser)**
- **S**
- **[ScoreboardObjectives](#scoreboardobjectives)**
@@ -108,6 +110,7 @@ Further details on how to contribute to this list or the wiki as a whole can be
- **U**
- **[Unicode](#unicode)**
- **[UnixTime](#unixtime)**
- **V**
- *No Expansions*
@@ -224,7 +227,6 @@ Further details on how to contribute to this list or the wiki as a whole can be
- **[Factions MCore](#factions-mcore)**
- **[FactionsUUID](#factionsuuid)**
- **[Factions relation placeholders](#factions-relation-placeholders)**
- **[FunnyGuilds](#funnyguilds)**
- **G**
- **[GAListener](#galistener)**
@@ -295,6 +297,7 @@ Further details on how to contribute to this list or the wiki as a whole can be
- **[MyPrefixSystem](#myprefixsystem)**
- **N**
- **[NameColor](#namecolor)**
- **[Nameless Plugin](#nameless-plugin)**
- **[NameMC-API-ServersMC Plugin](#namemc-api-serversmc)**
- **[Nicknamer](#nicknamer)**
@@ -323,6 +326,7 @@ Further details on how to contribute to this list or the wiki as a whole can be
- **[Plan](#plan)**
- **[PlayerStats](#playerstats)**
- **[PlayTime](#playtime)**
- **[PlayTimeManager](#playtimemanager)**
- **[PlaytimeRewards](#playtimerewards)**
- **[PlayerPoints](#playerpoints)**
- **[PlotSquared](#plotsquared)**
@@ -420,6 +424,7 @@ Further details on how to contribute to this list or the wiki as a whole can be
- **[Two Factor Authentication](#two-factor-authentication)**
- **U**
- **[UJobs](#ujobs)**
- **[UltimateChat](#ultimatechat)**
- **[UltimateClaims](#ultimateclaims)**
- **[UltimateServerManager](#ultimateservermanager)**
@@ -726,6 +731,27 @@ More info about this expansion can be found on the [GitHub-Repository](https://g
----
### **Distance**
/// command | papi ecloud download Distance
///
This expansion provides placeholders to calculate the distance between two locations.
Supports placeholder inside placeholder, use `{}` instead of `%` for inner placeholders.
More info about this expansion can be found on the [GitHub-Repository](https://github.com/Clexus/DistanceExpansion).
`[]` is optional
```
%distance_x1,y1,z1[,x2,y2,z2][,decimals]%
%distance_player1[,player2][,decimals]%
%distance_player[,x,y,z][,decimals]%
%distance_UUID1[,UUID2][,decimals]%
```
----
### **Enchantment**
/// download | https://github.com/TeamVK/PAPI-Enchantment/releases
///
@@ -1162,6 +1188,18 @@ More info about this expansion can be found on the [GitHub-Repository](https://g
----
### **PronounDB**
/// download | https://github.com/JasperLorelai/Expansion-PronounDB/releases
///
Shows the pronouns of a Minecraft player with a linked account on https://pronoundb.org/
```
%pronoundb%
```
----
### **RainbowColor**
/// command | papi ecloud download RainbowColor
///
@@ -1252,6 +1290,18 @@ More info about the expansion can be found on the [GitHub-Repository](https://gi
----
### **Reparser**
/// command | papi ecloud download reparser
///
Parses a provided input twice.
```
%reparser_<text>%
```
----
### **ScoreboardObjectives**
/// command | papi ecloud download ScoreboardObjectives
///
@@ -1514,6 +1564,18 @@ Example: `%unicode_1000%` would show `က`
----
### **UnixTime**
/// download | https://api.extendedclip.com/expansions/unixtime/
///
```
%unixtime_[UNIX]_[DateTimeFormat]%
```
Example: `%unixtime_1750277249389_dd.MM.yyyy-HH:mm:ss%` would show `18.06.2025 20:07:29`
----
### **World**
/// command | papi ecloud download world
///
@@ -2142,11 +2204,19 @@ Find examples of how the placeholders can be used on [signs](https://github.com/
/// integrated | Built into Plugin
///
Find an up-to-date list on the [SpigotMC page](https://www.spigotmc.org/resources/beautyquests.39255/field?field=documentation).
```
%beautyquests_total_amount%
%beautyquests_player_inprogress_amount%
%beautyquests_player_finished_amount%
%beautyquests_total_amount%
%beautyquests_advancement_ID%
%beautyquests_player_finished_total_amount%
%beautyquests_started_ordered%
%beautyquests_started_ordered_X%
%beautyquests_advancement_X%
%beautyquests_advancement_X_raw%
%beautyquests_player_quest_finished_X%
%beautyquests_started_id_list%
```
----
@@ -3099,42 +3169,6 @@ These placeholders work with FactionsUUID and MCore all you need is downloading
----
### **[FunnyGuilds](https://github.com/FunnyGuilds/FunnyGuilds)**
/// integrated | Built into Plugin
///
```
%funnyguilds_guilds%
%funnyguilds_users%
%funnyguilds_deaths%
%funnyguilds_kdr%
%funnyguilds_kills%
%funnyguilds_points-format%
%funnyguilds_points%
%funnyguilds_position%
%funnyguilds_g-allies%
%funnyguilds_g-deaths%
%funnyguilds_g-deputies%
%funnyguilds_g-deputy%
%funnyguilds_g-kdr%
%funnyguilds_g-kills%
%funnyguilds_g-lives%
%funnyguilds_g-members-all%
%funnyguilds_g-members-online%
%funnyguilds_g-name%
%funnyguilds_g-owner%
%funnyguilds_g-points-format%
%funnyguilds_g-points%
%funnyguilds_g-position%
%funnyguilds_g-region-size%
%funnyguilds_g-tag%
%funnyguilds_g-validity%
%funnyguilds_gtop-x%
%funnyguilds_ptop-x%
```
----
### **GAListener**
/// integrated | Built into Plugin
///
@@ -3410,10 +3444,11 @@ You can find an up-to-date list of placeholders in the [HyacinthHello wiki](http
///
```
%imageframe_"<player>:<imagemap>"_playback_bar_<length>_[character]_[current_section_prefix]_[remaining_section_prefix]%
%imageframe_"<player>:<imagemap>"_playback_current%
%imageframe_"<player>:<imagemap>"_playback_total%
%imageframe_"<player>:<imagemap>"_playback_pause%
%imageframe_imagemap_"<player>:<imagemap>"_playback_bar_<length>_[character]_[current_section_prefix]_[remaining_section_prefix]%
%imageframe_imagemap_"<player>:<imagemap>"_playback_current%
%imageframe_imagemap_"<player>:<imagemap>"_playback_total%
%imageframe_imagemap_"<player>:<imagemap>"_playback_pause%
%imageframe_player_preference_<preference>%
```
----
@@ -3608,7 +3643,7 @@ You can find an up-to-date list of placeholders on the [KingdomsX wiki](https://
/// integrated | Built into Plugin
///
A Description of the placeholders can be found on the [Lands Wiki](https://github.com/Angeschossen/Lands/wiki/PlaceholderAPI-Placeholders#placeholders).
A Description of the placeholders can be found on the [Lands Wiki](https://wiki.incredibleplugins.com/Lands/configuration/placeholderapi-placeholders).
```
# General
@@ -4320,6 +4355,16 @@ Example: `%multiverse-core_alias_myworld%`
----
### **[NameColor](https://modrinth.com/plugin/namecolor)**
/// integrated | Built into Plugin
///
```
%namecolor_display_name%
```
----
### **[Nameless Plugin](https://www.spigotmc.org/resources/59032/)**
/// integrated | Built into Plugin
///
@@ -4739,6 +4784,40 @@ For more information and usage examples, see the [PlayerStatsExpansion GitHub](h
----
### **[PlayTimeManager](https://modrinth.com/plugin/playtimemanager)**
/// integrated | Built into Plugin
///
For a detailed explanation of how to use PlayTimeManager's placeholders, you can take a look at the [PlayTimeManager Wiki](https://github.com/TheGaBr0/PlayTimeManager/wiki/Placeholders).
```
%PTM_playtime%
%PTM_afk_playtime%
%PTM_playtime_#%
%PTM_afk_playtime_#%
%PTM_playtime_<nickname>%
%PTM_afk_playtime_<nickname>%
%PTM_playtime_#_<nickname>%
%PTM_afk_playtime_#_<nickname>%
%PTM_firstjoin%
%PTM_firstjoin_<nickname>%
%PTM_lastseen_<nickname>%
%PTM_lastseen_elapsed_<nickname>%
%PTM_lastseen_elapsed_#_<nickname>%
%PTM_playtime_top_<rank>%
%PTM_playtime_top_#_<rank>%
%PTM_nickname_top_<rank>%
%PTM_lastseen_top_<rank>%
%PTM_lastseen_elapsed_top_<rank>%
%PTM_lastseen_elapsed_top_#_<rank>%
%PTM_rank%
%PTM_rank_<nickname>%
%PTM_lp_prefix_top_<rank>%
%PTM_joinstreak%
%PTM_joinstreak_<nickname>%
```
----
### **[PlaytimeRewards](https://www.spigotmc.org/resources/100231/)**
/// integrated | Built into Plugin
///
@@ -6701,8 +6780,8 @@ If you add ```_long``` to the cost related placeholder, it will returne a number
%tokenenchant_<enchantment>_version%
%tokenenchant_<enchantment>_fullrefund%
%tokenenchant_<enchantment>_fullrefund_long% : Deprecated. (For formatting, use NumberFormat placeholder %nf_%.)
%tokenenchnat_<enchantment>_refund_Y%
%tokenenchnat_<enchantment>_refund_Y_long% : Deprecated. (For formatting, use NumberFormat placeholder %nf_%.)
%tokenenchant_<enchantment>_refund_Y%
%tokenenchant_<enchantment>_refund_Y_long% : Deprecated. (For formatting, use NumberFormat placeholder %nf_%.)
%tokenenchant_<enchantment>_alias%
%tokenenchant_tokenmultiplier%
%tokenenchant_<enchantment>_occurrencemultiplier%
@@ -6870,6 +6949,28 @@ You can find an up-to-date list of placeholders in the [Towny wiki](https://gith
----
### **[UJobs](https://modrinth.com/plugin/ujobs)**
/// integrated | Built into Plugin
///
Detailed explanation and example outputs of placeholders are listed on [modrinth](https://modrinth.com/plugin/ujobs).
```
ujobs_job_name_<job>
ujobs_job_displayname_<job>
ujobs_job_legacydisplayname_<job>
ujobs_player_level_<job>
ujobs_player_exp_<job>
ujobs_player_position_<job>
ujobs_player_totalmoney_<job>
ujobs_leaderboard_name_<job>_<position>
ujobs_leaderboard_level_<job>_<position>
```
----
### **[USkyBlock](https://www.spigotmc.org/resources/2280/)**
/// command | papi ecloud download uSkyBlock
///

View File

@@ -389,9 +389,6 @@ If your plugin isn't shown here and you want it to be added, [read the Wiki READ
- **[FactionsUUID](https://www.spigotmc.org/resources/1035/)**
- [x] Supports placeholders.
- [x] Provides own placeholders. [**[Link](placeholder-list.md#factionsuuid)**]
- **[FunnyGuilds](https://github.com/FunnyGuilds/FunnyGuilds)**
- [ ] Supports placeholders.
- [x] Provides own placeholders. [**[Link](placeholder-list.md#funnyguilds)**]
- **[FriendReferral](https://www.spigotmc.org/resources/21626/)**
- [x] Supports placeholders.
- [ ] Provides own placeholders. [Link]
@@ -495,7 +492,7 @@ If your plugin isn't shown here and you want it to be added, [read the Wiki READ
----
## L
- **[Lands](https://www.spigotmc.org/resources/53313/)**
- [ ] Supports placeholders.
- [x] Supports placeholders.
- [x] Provides own placeholders. [**[Link](placeholder-list.md#lands)**]
- **[LastLoginAPI](https://www.spigotmc.org/resources/66348/)**
- [ ] Supports placeholders.
@@ -593,6 +590,9 @@ If your plugin isn't shown here and you want it to be added, [read the Wiki READ
----
## N
- **[NameColor](https://modrinth.com/plugin/namecolor)**
- [ ] Supports placeholders.
- [x] Provides own placeholders. [**[Link](placeholder-list.md#namecolor)**]
- **[Nameless Plugin](https://www.spigotmc.org/resources/59032/)**
- [ ] Supports placeholders.
- [x] Provides own placeholders. [**[Link](placeholder-list.md#nameless-plugin)**]
@@ -674,6 +674,9 @@ If your plugin isn't shown here and you want it to be added, [read the Wiki READ
- **[PlayTime](https://www.spigotmc.org/resources/26016/)**
- [ ] Supports placeholders.
- [x] Provides own placeholders. [**[Link](placeholder-list.md#playtime)**]
- **[PlayTimeManager](https://modrinth.com/plugin/playtimemanager)**
- [x] Supports placeholders.
- [x] Provides own placeholders. [**[Link](placeholder-list.md#playtimemanager)**]
- **[PlaytimeRewards](https://www.spigotmc.org/resources/100231/)**
- [x] Supports placeholders.
- [x] Provides own placeholders. [**[Link](placeholder-list.md#playtimerewards)**]