Topper
This is a wiki to demonstrate all projects of Topper, a project / framework to handle single-value data tables.
Check the sidebar and choose a project to see more details.
This is a wiki to demonstrate all projects of Topper, a project / framework to handle single-value data tables.
Check the sidebar and choose a project to see more details.
The documentation for the Spigot plugin of Topper.
Where to find the plugin:
This will quickly introduce you to the basics of the plugin, by creating a simple leaderboard.
The unit that stores and manages the leaderboard data is called a Top Holder
. Inside the Top Holder
, you can define a Value Provider
, which is responsible for providing the value of each entry in the leaderboard.
We will start by creating a Top Holder
named jump
and defining a Value Provider
to count the number of times the player jumps. The Value Provider
we will use is called Statistic Provider
.
Open the config.yml
file from the plugin’s folder (plugins/Topper/config.yml
), head to the holders
section, and add the following configuration:
holders:
jump: # The name of the Top Holder
type: statistic # The type of the Value Provider, which in this case is a Statistic Provider
statistic: jump # The name of the statistic that will be used to count the number of jumps
That is all you need to do, now the plugin is ready to start counting the number of jumps.
Open your server terminal and type /reloadtop
to apply the changes.
There are several ways to display the leaderboard of a Top Holder
. In this case, we will simply display the top 10 players in the chat.
To do this, type the following command:
/gettop jump 10
Now, let’s add another Top Holder
to show the amount of diamond ores a player has mined.
Open the config.yml
file from the plugin’s folder (plugins/Topper/config.yml
), head to the holders
section, and add the following configuration:
holders:
jump:
type: statistic
statistic: jump
mine:
type: statistic
statistic: mine_block
material: diamond_ore
mine_block
needs a block material to work. Hence, we added the material
field to specify the block material, which in this case is diamond_ore
.
Open your server terminal and type /reloadtop
to apply the changes.
Now, you can display the top 10 players who have mined the most diamond ores by typing the following command:
/gettop mine 10
This is just the beginning. You can check the other pages in the documentation to learn more about the plugin and its features. There could be something that you might find interesting for your server.
Happy building! 🚀
Command | Permission | Description |
---|---|---|
gettop <holder> | topper.top | Get the top 10 players of a leaderboard provided by the specified <holder> |
gettop <holder> <number> | topper.top | Get the top <number> players of a leaderboard provided by the specified <holder> |
gettop <holder> <from_index> <to_index> | topper.top | Get the players from the specified index range of a leaderboard provided by the specified <holder> |
reloadtop | topper.reload | Reload the plugin |
# The type of storage the plugin will use to store the value
# Available: FLAT, YAML, JSON, SQLITE, NEW-SQLITE, MYSQL
storage-type: yaml
# The settings for the Top Holders
holders: {}
# Should the plugin load all offline players when the server starts
load-all-offline-players: false
task:
save:
# How many entries should be saved per tick
entry-per-tick: 10
# How many ticks should the plugin wait before saving the leaderboard
delay: 0
update:
# How many entries should be updated per tick
entry-per-tick: 10
# How many ticks should the plugin wait before updating the leaderboard
delay: 0
In most cases, you’d better enable async
(Tutorial) so that your provider is run on an asynchronous thread that doesn’t affect your main server thread.
However, some providers may not support asynchronous run and require to run on the main thread. In that case, either you have to find one that supports and test it or ask the author of that provider to add support for that.
/papi parse me <placeholder>
to see if the placeholder is working as expected.online
option to true
in the configuration.show-errors
to true
to see if there are any errors when parsing the placeholder. (Tutorial)show-errors
and provide the logs to them for better support).No, the placeholder provider only supports numerical values (only numbers and decimal separator .
(dot) ).
You must use a placeholder that returns a raw number without formatting, if possible.
If the plugin that provides the placeholder does not have an option to return a raw number, you can try using a different placeholder or ask the plugin developer to add support for raw numbers.
If the value is a simple formatted number, you can try Handling the Formatted Value.
Here is a rough list of criteria that a placeholder should have in order to work with Topper:
.
(dot) as a decimal separator100
, 100.00
, 100.123
abc
, 1,000,000
, 100,000.122
, 100.000.000
, 1 000 000
A unit that provides values to the Top Holder. Continue reading to learn more about the built-in value providers.
This is a provider that provides statistic values of a player to the Top Holder.
holders:
<holder-name>:
# The type of the provider
type: statistic
# The name of the statistic
statistic: <statistic>
# The name of the material. Used for some statistics that require an item.
material: <material>
# The name of the entity. Used for some statistics that require an entity.
entity: <entity>
<statistic>
can be found here<material>
can be found here<entity>
can be found hereIf the statistic
is a Generic type, the material
and entity
fields are ignored. The provider will return the value of the statistic for the player.
If the statistic
is a Material type, the material
field will be used:
material
is not specified, the provider will return the value of the statistic for all materials.material
is specified, the provider will return the value of the statistic for the specified material.material
field can be a string or a list of strings.material: STONE
material:
- STONE
- COBBLESTONE
statistic
is an Entity type, the entity
field will be used:entity
is not specified, the provider will return the value of the statistic for all entities.entity
is specified, the provider will return the value of the statistic for the specified entity.entity
field can be a string or a list of strings.entity: ZOMBIE
entity:
- ZOMBIE
- SKELETON
holders:
# Holder that shows the number of times a player has jumped
jump:
type: statistic
statistic: JUMP
# Holder that shows the number of blocks mined by a player
mine:
type: statistic
statistic: MINE_BLOCK
# Holder that shows the number of times a player has killed a zombie
zombie:
type: statistic
statistic: KILL_ENTITY
entity: ZOMBIE
# Holder that shows the number of times a player has mined diamond ore
diamond:
type: statistic
statistic: MINE_BLOCK
material: DIAMOND_ORE
# Holder that shows the number of times a player has mined diamond ore or gold ore
diamond_or_gold:
type: statistic
statistic: MINE_BLOCK
material:
- DIAMOND_ORE
- GOLD_ORE
# Holder that shows the number of times a player has killed a zombie or a skeleton
zombie_or_skeleton:
type: statistic
statistic: KILL_ENTITY
entity:
- ZOMBIE
- SKELETON
Requires PlaceholderAPI
This is a provider that allows you to use PlaceholderAPI placeholders as values in the Top Holder.
holders:
<holder-name>:
# The type of the provider
type: placeholder
# The placeholder used to get the value
placeholder: <placeholder>
# Whether the placeholder should be parsed for online players only. Default is false (all players)
online: <true/false>
holders:
# Holder that shows the amount of money a player has
# Use the Vault expansion: /papi ecloud download Vault
money:
type: placeholder
placeholder: "%vault_eco_balance%"
# Holder that shows the number of diamonds a player has mined
# Use the Statistic expansion: /papi ecloud download Statistic
diamonds:
type: placeholder
placeholder: "%statistic_mine_block:DIAMOND_ORE%"
online: true # Only get the value for online players
Requires MiniPlaceholders
This is a provider that allows you to use MiniPlaceholders placeholders as values in the Top Holder.
holders:
<holder-name>:
# The type of the provider
type: mini-placeholder
# The placeholder used to get the value
placeholder: <placeholder>
holders:
# Holder that shows the amount of money a player has
# Use the Vault expansion: https://modrinth.com/plugin/miniplaceholders-vault-expansion
money:
type: mini-placeholder
placeholder: "<vault_eco_balance>"
This page provides information about the query system, which is used to retrieve data from the Top Holder.
The format of a query is as follows:
<holder>;<type>;<args>
<holder>
: The Top Holder to query.<type>
: The type of data to retrieve.<args>
: Additional arguments for the query.If the <type>
does not require any arguments, the query can be simplified to:
<holder>;<type>
Type | Argument | Description | Example | Explanation |
---|---|---|---|---|
top_name | <position> | The name of the player at the specified position. | money;top_name;1 | Retrieve the name of the player at the first position in the Top Holder named money |
top_key | <position> | The UUID of the player at the specified position. | money;top_key;1 | Retrieve the UUID of the player at the first position in the Top Holder named money |
top_value | <position> | The value of the player at the specified position. | money;top_value;1 | Retrieve the value of the player at the first position in the Top Holder named money |
top_value | <position>;<format> | The formatted value of the player at the specified position. | money;top_value;1;#,### | Retrieve the formatted value of the player at the first position in the Top Holder named money |
top_value_raw | <position> | The raw value of the player at the specified position. | money;top_value_raw;1 | Retrieve the raw value of the player at the first position in the Top Holder named money |
top_rank | The rank of the player. | money;top_rank | Retrieve the rank of the player in the Top Holder named money | |
top_rank | <format> | The formatted rank of the player. | money;top_rank;#,### | Retrieve the formatted rank of the player in the Top Holder named money |
top_size | The amount of entries in the Top Holder. | money;top_size | Retrieve the amount of entries in the Top Holder named money | |
value | The value of the player. | money;value | Retrieve the value of the player in the Top Holder named money | |
value | <format> | The formatted value of the player. | money;value;#,### | Retrieve the formatted value of the player in the Top Holder named money |
value_raw | The raw value of the player. | money;value_raw | Retrieve the raw value of the player in the Top Holder named money |
Details about the hooks provided by the plugin.
Install MiniPlaceholders
The plugin provides a MiniPlaceholders placeholder to allow you to query data from the Top Holder.
<topper_global:<query>>
<topper_player:<query>>
Check the Query section for more information about how to set the <query>
.
<topper_global:money;top_name;1>
<topper_global:money;top_value;1>
<topper_global:money;top_value;1;#,###>
<topper_player:money;top_rank>
Install PlaceholderAPI
The plugin provides a PlaceholderAPI placeholder to allow you to query data from the Top Holder.
%topper_<query>%
Check the Query section for more information about how to set the <query>
.
%topper_money;top_name;1%
%topper_money;top_value;1%
%topper_money;top_value;1;#,###%
%topper_money;top_rank%
Extra tutorials for common features and tasks.
Parts of the tutorials in this section assume that you’ve done the Quick Start. If there is anything you don’t understand from the tutorials, you may want to go back and do the Quick Start.
Requires PlaceholderAPI and a hologram plugin that supports PlaceholderAPI such as DecentHolograms
You can use the top_name
and top_value
placeholders to display players in the leaderboard.
Here is an example of a hologram that displays the top 5 players in the leaderboard:
&b&lJUMP LEADERBOARD
&7#1 &f%topper_jump;top_name;1% &7- &b%topper_jump;top_value;1%
&7#2 &f%topper_jump;top_name;2% &7- &b%topper_jump;top_value;2%
&7#3 &f%topper_jump;top_name;3% &7- &b%topper_jump;top_value;3%
&7#4 &f%topper_jump;top_name;4% &7- &b%topper_jump;top_value;4%
&7#5 &f%topper_jump;top_name;5% &7- &b%topper_jump;top_value;5%
Requires PlaceholderAPI and VarBlocks
jump_skull
that returns the UUID of the player at the specific {index}
of the jump
leaderboard/varblocks template add jump_skull %topper_jump;top_key;{index}%
While looking at the skull, run the following command to assign the jump_skull
template to the skull
/varblocks block add jump_1 skull jump_skull
{index}
of the skull to 1 to display the top player/varblocks block argument jump_1 index 1
/varblocks block add jump_2 skull jump_skull
/varblocks block argument jump_2 index 2
jump_sign
that displays the player’s name and value at the specific {index}
of the jump
leaderboard/varblocks template add jump_sign
/varblocks template add jump_sign &6#{index}&7: &f%topper_jump;top_name;{index}%
/varblocks template add jump_sign &e%topper_jump;top_value;{index}%
/varblocks template add jump_sign
While looking at the sign, run the following command to assign the jump_sign
template to the sign
/varblocks block add jump_sign_1 sign jump_sign
{index}
of the sign to 1 to display the top player/varblocks block argument jump_sign_1 index 1
/varblocks block add jump_sign_2 sign jump_sign
/varblocks block argument jump_sign_2 index 2
Requires PlaceholderAPI and Citizens
/npc create %topper_jump;top_name;1%
/npc skin %topper_jump;top_name;1%
The NPC will display the skin of the top player of the jump
leaderboard.
You can set async
to true
to make the provider asynchronous, meaning it will be executed in a separate thread. This can be useful if the provider is slow or if it performs a lot of calculations.
holders:
jump:
<your other settings>
async: true
You can change the default values, returned by some queries and commands, by adding some settings to your holder settings.
holders:
jump:
<your other settings>
null-name: "---" # Default value for the name
null-uuid: "---" # Default value for the uuid
null-value: "---" # Default value for the value
line: "&7[&b{index}&7] &b{name} &7- &b{value}" # Default format for the top line in the top list
By default, the leaderboard is measured by the player with the highest value first. If you want to change that (e.g. show the player with the least value first), you can set reverse
to true
.
holders:
jump:
<your other settings>
reverse: true
If the output of a Value Provider
(Placeholder
for example) is a formatted value and you are confident that you can get the raw value from it with a simple method of taking only numbers and the decimal separator, you can enable the formatted
option in your Holder Setting.
holders:
example-formatted-value-provider:
<your other settings>
formatted: true
formatted-settings: # Optional settings for the formatted value
decimal-separator: "." # Change this to the decimal separator of the formatted value
By default, any errors that occur during the execution of a provider will be truncated. If you want to show the errors instead, you can set show-errors
to true
.
holders:
jump:
<your other settings>
show-errors: true
You can specify a set of permissions so that the Holder will skip updating the value of the player if they have one of the permissions.
holders:
jump:
<your other settings>
ignore-permission: exclude.permission
In some Value Providers like Placeholder, you may need to ensure that it would take the value of online players only (For example, by setting online
to true
in Placeholder Value Provider)
This will guide you on how to create an unreliable playtime leaderboard for your server using the built-in Statistic Value Provider
and format the value using Value Display
.
Open the config.yml
file and add the following holder:
holders:
playtime:
type: statistic
statistic: PLAY_ONE_MINUTE # Or PLAY_ONE_TICK if your server is running on 1.12 or below
This will create a holder named playtime
that shows the total playtime of a player in ticks.
But the value is in ticks, which is not human-readable. So, we need to format it. Add the following line:
holders:
playtime:
type: statistic
statistic: PLAY_ONE_MINUTE
line: "&7[&b{index}&7] &b{name} &7- &b{value_time:pattern=HH:mm:ss&type=duration&unit=ticks}"
We added the line
setting to the holder and override the default line
. The {value_time:pattern=HH:mm:ss&type=duration&unit=ticks}
will format the value to a human-readable time format.
Now when you save and restart the server, you should see the playtime leaderboard in the /gettop playtime
command.
We will display it in a hologram
Here is an example of a hologram that displays the top 5 players in the leaderboard:
&b&lPLAYTIME LEADERBOARD
&7#1 &f%topper_playtime;top_name;1% &7- &b%topper_playtime;top_value;1;time:pattern=HH:mm:ss&type=duration&unit=ticks%
&7#2 &f%topper_playtime;top_name;2% &7- &b%topper_playtime;top_value;2;time:pattern=HH:mm:ss&type=duration&unit=ticks%
&7#3 &f%topper_playtime;top_name;3% &7- &b%topper_playtime;top_value;3;time:pattern=HH:mm:ss&type=duration&unit=ticks%
&7#4 &f%topper_playtime;top_name;4% &7- &b%topper_playtime;top_value;4;time:pattern=HH:mm:ss&type=duration&unit=ticks%
&7#5 &f%topper_playtime;top_name;5% &7- &b%topper_playtime;top_value;5;time:pattern=HH:mm:ss&type=duration&unit=ticks%
Some places like {value}
in line
and the value
and top_value
queries can be expanded to format the value in a more readable way. This is done by specifying some settings for them like:
{value_<format>}
<holder>;value;<format>
<holder>;top_value;<position>;<format>
The following section will guide you through the available formats to replace <format>
, we will use the <holder>;value;<format>
query as an example.
Format:
decimal:setting1=value1&setting2=value2
Setting | Description | Default | Example |
---|---|---|---|
decimalSeparator | The character used to separate the integer part from the fractional part | . | decimalSeparator=. |
groupingSeparator | The character used to separate groups of digits to the left of the decimal separator | groupingSeparator=, | |
groupingSize | The number of digits in each group to the left of the decimal separator | groupingSize=3 | |
maximumFractionDigits | The maximum number of digits allowed in the fractional part of the number | maximumFractionDigits=2 |
Example: jump;value;decimal:decimalSeparator=,&groupingSeparator=.&groupingSize=3&maximumFractionDigits=2
Format:
time:setting1=value1&setting2=value2
Setting | Description | Default | Example |
---|---|---|---|
pattern | The pattern describing the date and time format | HH:mm:ss | pattern=HH:mm:ss |
type | The type of the time: duration or time | duration | type=duration |
unit | The unit of the time: ticks , nanoseconds , microseconds , milliseconds , seconds , minutes , hours , days | seconds | unit=seconds |
Example: playtime;value;time:pattern=HH:mm:ss&type=duration&unit=ticks
The documentation for TimedTopper, a Spigot plugin for timely leaderboards.
Where to find the plugin:
# The type of storage the plugin will use to store the value
# Available: YAML, SQLITE, MYSQL
storage-type: yaml
# The settings for each holder
holders:
jump_daily:
top: jump
cron: DAILY
rewards:
?:
- give {name} stone 1
1:
- give {name} diamond 1
- say {name} got a diamond for jumping the most
2:
- give {name} iron 1
- say {name} got iron for jumping the second most
task:
save:
# How many entries should be saved per tick
entry-per-tick: 10
# How many ticks should the plugin wait before saving the leaderboard
delay: 0
This will guide you to set up a Timed Holder
First, you add some settings to link a Top Holder to this Timed Holder, which means the Timed Holder will listen to the Top Holder for value changes and updates.
holders:
jump_daily: # The timed holder name
top: jump # The top holder it will be based on
This example will set that the Timed Holder jump_daily
will listen to the Top Holder jump
(Click here if you don’t know what jump
is).
Continue reading to learn how to set up time settings.
Now you will set the duration of the Timed Holder. When the duration of the Timed Holder is over, the holder will be reset.
cron: <cron-expression>
The cron
is a QUARTZ expression, which is usually an expression with 7 parts.
You can go to this page to generate your own cron
expression.
The plugin provides some built-in cron
expressions in case you don’t want to make the expression yourself:
HOURLY
: The holder would be reset at the start of the next hourDAILY
: The holder would be reset at the start of the next dayWEEKLY
: The holder would be reset at the start of the next weekMONTHLY
: The holder would be reset at the start of the next monthYEARLY
: The holder would be reset at the start of the next yearholders:
# The holder that resets every day
jump_daily:
top: jump
cron: DAILY
# The holder that resets every month
jump_monthly:
top: jump
cron: MONTHLY
# The holder that resets every half of the month
jump_custom_time:
top: jump
cron: 0 0 0 1,15 * ? *
Now you will set the rewards to give to the players when the Timed Holder is reset.
rewards:
?: # Rewards for all players in the holder
- "command_1"
- "command_2"
- ...
1: # Rewards for the 1st player
- "command_1"
- "command_2"
- ...
2: # Rewards for the 2nd player
- "command_1"
- "command_2"
- ...
3: # Rewards for the 3rd player
- "command_1"
- "command_2"
- ...
4: # Rewards for the 4th player
- "command_1"
- "command_2"
- ...
<more ranks>
?
, 1
, 2
, 3
, etc. are optional. You don’t have to set all of them.
The plugin provides some variables to apply in the reward commands
{name}
: The name of the player{uuid}
: The UUID of the player{rank}
: The rank of the player, starts from 1{initial}
: The initial value of the player in the holder{current}
: The current value of the player in the holder{value}
: The value of the player in the holder - The distance between {initial}
and {current}
holders:
jump_daily:
top: jump
cron: DAILY
rewards:
?:
- give {name} stone 1
1:
- give {name} diamond 1
- say {name} got a diamond for jumping the most
2:
- give {name} iron 1
- say {name} got iron for jumping the second most
The query system is the same as the one used in Topper, with the addition that the <holder>
is the name of the Holder speficied in the configuration file of TimedTopper.
Refer to the Topper Query page for more information.
Type | Argument | Description | Example | Explanation |
---|---|---|---|---|
remain_time | The remaining time in millis until the next reset. | money;remain_time | Retrieve the remaining time in millis until the next reset of the Holder named money | |
remain_time | <format> | The remaining time until the next reset. | money;remain_time;HH:mm:ss | Retrieve the remaining time until the next reset of the Holder named money |
end_time | The time of the next reset in epoch millis. | money;end_time | Retrieve the time of the next reset in epoch millis of the Holder named money | |
end_time | <format> | The time of the next reset. | money;end_time;yyyy-MM-dd HH:mm:ss | Retrieve the time of the next reset of the Holder named money |
Details about the hooks provided by the plugin.
The plugin provides a PlaceholderAPI placeholder to allow you to query data from the Holder.
%timedtopper_<query>%
Check the Query section for more information about how to set the <query>
.
%timedtopper_money;top_name;1%
%timedtopper_money;top_value;1%
%timedtopper_money;top_value;1;#,###%
%timedtopper_money;top_rank%
%timedtopper_money;remain_time;HH:mm:ss%
%timedtopper_money;end_time;yyyy-MM-dd HH:mm:ss%
The documentation of GroupTopper, a Spigot plugin for group leaderboards
Where to find the plugin:
# The type of storage the plugin will use to store the value
# Available: YAML, SQLITE, MYSQL
storage-type: sqlite
# The settings for each group holders
holders:
jump_group: # The group holder name
top: jump # The top holder it will be based on
type: placeholder # Group settings
owner: '%player_uuid%'
display: '%player_name%'
online: true
task:
save:
# How many entries should be saved per tick
entry-per-tick: 10
# How many ticks should the plugin wait before saving the leaderboard
delay: 0
This will guide you to set up a Group Holder
First, you add some settings to link a Top Holder to this Group Holder, which means the Group Holder will listen to the Top Holder for value changes and updates.
holders:
jump_group: # The group holder name
top: jump # The top holder it will be based on
This example will set that the Group Holder jump_group
will listen to the Top Holder jump
(Click here if you don’t know what jump
is).
Continue reading to learn how to set up group settings.
Now you will set up some settings for the type of Group.
Continue reading to learn how to set up based on the Group plugin you desire. Check the sidebar for a list of supported Group plugins.
Requires BentoBox and one or more Gamemode addons
type: bentobox
gamemode: <gamemode> # the name of the gamemode
holders:
jump_group:
top: jump
type: bentobox
gamemode: bskyblock
Requires FactionsUUID
type: factionsuuid
holders:
jump_group:
top: jump
type: factionsuuid
Requires HuskTowns
type: husktowns
holders:
jump_group:
top: jump
type: husktowns
Requires KingdowsX
type: kingdoms
kingdoms-type: <KINGDOM/NATION> # The type of the kingdoms to get, KINGDOM for the kingdom of the player, NATION for the capital kingdom of the nation of the player
holders:
jump_group:
top: jump
type: kingdoms
kingdoms-type: KINGDOM
Requires Lands
type: lands
lands-type: <LAND/NATION> # The type of the kingdoms to get, KINGDOM for the kingdom of the player, NATION for the capital kingdom of the nation of the player
holders:
jump_group:
top: jump
type: lands
lands-type: LAND
Requires PlaceholderAPI and some placeholders to fetch the required group values
type: placeholderapi
owner: "<owner-placeholder>" # The placeholder to get the owner of the group (could be player name or uuid)
display: "<display-placeholder>" # The placeholder to get the display name of the group
online: <true/false> # Whether or not to handle the value for online players only
holders:
jump_group:
top: jump
type: placeholder
owner: '%player_uuid%'
display: '%player_name%'
online: true
Requires SuperiorSkyblock2
type: superiorskyblock
holders:
jump_group:
top: jump
type: superiorskyblock
Requires Towny
type: towny
holders:
jump_group:
top: jump
type: towny
The query system is the same as the one used in Topper, with the addition that:
<holder>
is the name of the Group Holder speficied in the configuration file of GroupTopper.top_name
query returns the name of the Grouptop_key
query returns the UUID of the owner of the GroupRefer to the Topper Query page for more information.
Details about the hooks provided by the plugin.
The plugin provides a PlaceholderAPI placeholder to allow you to query data from the Group Holder.
%grouptopper_<query>%
Check the Query for more information about how to set the <query>
%grouptopper_jump_group;top_name;1%
%grouptopper_jump_group;top_value;1%
%grouptopper_jump_group;top_value;1;#,###%
%grouptopper_jump_group;top_rank%
The documentation of Cachy, a plugin that stores data of online players
# The settings for each holder
holders:
player-name:
type: player
data-type: NAME
jump:
type: placeholder
placeholder: '%statistic_jump%'
mine:
type: statistic
statistic: mine_block
material: diamond_ore
# The type of storage the plugin will use to store the value
# Available: FLAT, YAML, JSON, SQLITE, NEW-SQLITE, MYSQL
storage-type: flat
This page provides information about the query system, which is used to retrieve data from the Cache Holder.
The format of a query is as follows:
<holder>;<type>;<args>
<holder>
: The Top Holder to query.<type>
: The type of data to retrieve.<args>
: Additional arguments for the query.If the <type>
does not require any arguments, the query can be simplified to:
<holder>;<type>
Type | Argument | Description | Example | Explanation |
---|---|---|---|---|
name | <name> | Get the value of the player based on their <name> | jump;name;HSGamer | Retrieve the value of the player named HSGamer at the Cache Holder named jump |
uuid | <uuid> | Get the value of the player based on their <uuid> | jump;uuid;7acc67dc-8b84-4f8d-b7ad-ec81e758f5a1 | Retrieve the value of the player with the UUID 7acc67dc-8b84-4f8d-b7ad-ec81e758f5a1 at the Cache Holder named jump |
Details about the hooks provided by the plugin.
The plugin provides a PlaceholderAPI placeholder to allow you to query data from the Group Holder.
%cachy_<query>%
Check the Query for more information about how to set the <query>
%cachy_jump;name;HSGamer%
%cachy_jump;uuid;7acc67dc-8b84-4f8d-b7ad-ec81e758f5a1%
%cachy_jump;name;{player_name}%
%cachy_jump;uuid;{player_uuid}%