Skip to content

Releases: PlaceholderAPI/PlaceholderAPI

2.11.6: 1.20.6 Support

21 May 10:31
8b03157
Compare
Choose a tag to compare

This update brings 1.20.6 support but also some important changes to developers to keep in mind. Most notably a deprecation.

Deprecated Version class [#1035]

The Version class in PlaceholderAPI has been deprecated.
The reasons were many with the primary one being that there are various other ways to find out what server version is used to ensure your expansion is compatible with it.

While the class still works, can there be minor changes in how the version is being displayed, due to changes on how PlaceholderAPI fetches the server version.
It is recommended to switch to alternative methods as soon as possible, as we won't guarantee this class to remain working for the forseeable future.

Parse Command Improvement

Fixed the parse command showing the wrong command in the "You must provide a target and message" response for the "cmdparse" type. Also added the ability to use "me" in both the first and second player for parserel.

New Wiki

In case you haven't seen it yet, the PlaceholderAPI wiki has been moved.
While the old wiki at GitHub served us well was it lacking ways of customizing it. The new location allows us higher customization and organization of the wiki alongside other beneficial changes.

You can find the new Wiki at https://wiki.placeholderapi.com

Just like the old one can you contribute to it by PRing changes to the wiki branch!

What's Changed

Other changes

New Contributors

Full Changelog: 2.11.5...2.11.6

Security Update

28 Oct 15:26
57fa68c
Compare
Choose a tag to compare

Hi all,

Yesterday we were notified of some malicious actors using third-party plugins and software to allow them to do harmful actions on a server. By gaining access to PAPI commands via a force op in a third-party plugin/software, the malicious actors were able to utilize a vulnerable expansion (Minepacks) to allow unverified expansions to be downloaded. We took immediate backend actions to protect all versions of PlaceholderAPI by removing unverified expansions from the API.

This update specifically removes the ‘cloud_allow_unverified_expansions’ from the default configuration. After our backend actions, this config option was rendered useless, so do not worry if you still have it listed in your configuration file.
To access unverified expansions, users can still manually download them from https://api.extendedclip.com/all/

If you have any questions or need further assistance, please feel free to reach out to us in our Support Discord.

Thank you,
PlaceholderAPI Team

2.11.4 | 1.20 support, environment variables and more!

24 Sep 01:23
5623a00
Compare
Choose a tag to compare

A new PlaceholderAPI release is now available.

Below is the full changelog of what has been changed and/or added to PlaceholderAPI. Enjoy.

Fetch all expansions, including unverified ones [#952]

Thanks to @iGabyTM PlaceholderAPI will now fetch all available expansions from the eCloud, no matter their verification state.
Should you try to download an expansion from the eCloud that isn't verified will PlaceholderAPI inform you about the expansion not being verified, while also telling you that you need to download it manually.

/papi register <jar> fix [#946]

It was possible for the /papi register <jar> command to register Expansion jar files outside the expansions folder, giving a potential security risk to server owners.
@JulianVennen provided a Pull request that fixes this issue and limits the command to only work within the expansions folder. Thank you!

Properly distinguish internal and external Expansions [#953]

Another Pull request by @iGabyTM allows PlaceholderAPI to properly distinguish internal and external Expansions from each other.
PlaceholderExpansions loaded from the expansions folder are now considered external while those registered by a Plugin are considered internal.

This also brings smaller changes to how expansions will be loaded:

  • External expansions will not be loaded if another expansion with the same identifier is already used. Internal expansions are given priority.
  • PlaceholderAPI only checks the eCloud for updates of an expansion, if it is an external one.

New environment variables [#947 and #978]

You can now use two environment variables to block downloads of specific expansions and to allow download of unverified expansions.

To block specific expansions from being downloaded add an environment variable called PAPI_BLOCKED_EXPANSIONS containing a case-insensitive, comma separated list of expansion identifiers to block.
If no such environment variable is present, all expansions be downloadable as normal.

The other environment variable is PAPI_ALLOW_UNVERIFIED_EXPANSIONS which contains either true or false to allow or deny downloads of unverified expansions respectively.

Both variables have been added by @JulianVennen

1.20 support [#969]

PlaceholderAPI receives NMS 1.20 support. This means that NMSVersion now supports checking for SPIGOT_1_20_R1 (v1_20_R1).
This also includes updates to dependencies used, namely Spigot.

This was added by @Andre601


Full Changelog: 2.11.3...2.11.4

2.11.3 | 1.19.4 Support + Bug Fixes

18 Mar 01:06
2d94664
Compare
Choose a tag to compare

What's Changed

Changes

Fixes

  • Fix inconsistent parsing command behaviour by @Andre601 in #873
  • Fix duplicate expansion loading by @Andre601 in #866
  • Fix NoClassDefFoundError in order for the other expansions to be loaded by @iGabyTM in #936

Other changes

New Contributors

Full Changelog: 2.11.2...2.11.3

2.11.2 | --null parse argument, color formatting removal and fixes

03 Jul 14:25
Compare
Choose a tag to compare

Hey everyone,

Time for the annual PlaceholderAPI update, whilst the last version should work fine with 1.19 this update has been built against the latest version to ensure expansions have access to the latest features. This version also changes how placeholders are parsed in terms of colour, read more below on how this may affect your plugin/expansion.

Changes

Removed color parsing for placeholder parsing (#800)

PlaceholderAPI parsing colours was unintentionally causing issues in the case where unparsed strings with legacy formatting need to be returned. In some cases, it also interfered with HEX colours. To ensure consistent results PlaceholderAPI no longer parses colours and instead passes this task onto the plugin/expansion to handle.

What does that mean for my expansion/plugin?
If your expansion/plugin relied on PlaceholderAPI parsing colors will you need to parse them yourself now. This is fairly easy to do with normal chat colors using Spigot's ChatColor#translateAlternateColorCodes(char, String) method.

Add --null argument to parse command (#800)

The parse commands now provide a --null argument in addition to the current options of a player name or me.
The purpose of this option is to intentionally use a null player for parsing placeholders. This is very useful when an expansion doesn't require an online player to be present to work properly.

Example syntax:

/papi parse --null Text with a %placeholder_value% to parse.

Log missing plugin for an expansion (#832)

PAPI will now log any missing plugin for a placeholder expansion in the console.

Example Log message:

[00:00:00 WARN]: [PlaceholderAPI] Cannot load expansion example due to a missing Plugin: RequiredPlugin

Fix PAPI lowercasing invalid placeholders (#814)

If an invalid placeholder was used, PlaceholderAPI returned it lowercased. This has been fixed now.

Fix PAPI possibly not unregistering expansions (#793)

It could happen that an expansion may not unregister properly if its identifier contains uppercase letters. This has been fixed by @Rothes


Full Changelog: 2.11.1...2.11.2

2.11.1 | Bug Hotfix

27 Dec 09:33
358a3bc
Compare
Choose a tag to compare

Hey everyone,

This release brings a fix to a bug that some users were facing when they had plugins that formatted chat via PlaceholderAPI.

Fixes

  • Fixed an issue with %sbeing edited to % (#772)
  • Bumped deprecated method remove to 2.13.0

1.18 support, new expansion features, dependencies updates and more

20 Dec 05:45
Compare
Choose a tag to compare

Hey everyone!

Another day, another release of PlaceholderAPI. This one brings quite a few new features and bug fixes to the plugin.

Changes

1.18 support (#752)

By far the most important change. PlaceholderAPI now supports Spigot/PaperMC 1.18.
Remember that as of writing this, PaperMC 1.18 is not considered to be stable yet, so use it at your own risk.

Logging methods for PlaceholderExpansion (#677)

The PlaceholderExpansion class now has methods which allow you to log messages in the console.
Available methods are:

  • log(Level, String)
  • log(Level, String, Throwable)
  • info(String)
  • warning(String)
  • severe(String)
  • severe(String, Throwable)

You can use those to print log messages in the console, which can be useful for debug purposes or to warn about things such as wrong placeholders.
All messages send through any of these methods will have your Expansion's name at the start.

Changes to some messages (#717)

Some messages in PlaceholderAPI have been updated and improved.
As an example, when expansions have updates available will an x placeholder hook(s) have an update available. message be added to the x placeholder hook(s) registered! message, which itself has been updated too.

ExpansionsLoadedEvent#getExpansions() (#717)

The ExpansionsLoadedEvent now has a getExpansions() method which returns an unmodifiable List of all registered PlaceholderExpansions.

onRequest and onPlaceholderRequest are now properly annotated (#749)

The onRequest(OfflinePlayer, String) and onPlaceholderRequest(Player, String) have been properly annotated as @Nullable since you can return null as a valid return value.

Updated Dependencies and Gradle 7.3.1 (#747, #752)

Dependencies used by PlaceholderAPI have been updated. Additionally has Gradle been updated to 7.3.1

Full Changelog

Please click the following link for a full comparison between the previous version and this one: 2.10.10...2.11.0

2.10.10 | Quality of life changes and more

10 Jul 04:16
Compare
Choose a tag to compare

Hey everyone!

This release brings a lot of neat changes to PlaceholderAPI, most of which being Quality of Life Changes for you as developer or Server owner.

Breaking Changes

  • Dropped 1.7 support, it may still work, but we do not guarantee it.

Additions

  • 1.17 Support (#658)
  • Added getBoolean(boolean, String) method to PlaceholderExpansion (#454)
  • Added ExpansionsLoadedEvent for when all PlaceholderExpansions have been loaded (#460)
  • PlaceholderAPI now generates with Javadoc jars when build on the Jenkins Server (#429, #512, #513)
  • Added Javadoc comments to a lot of fields, methods and similar (#443)

Fixes

  • Fixed and improved TimeUtil class (#423)
  • Fix /papi info <expansion> suggesting wrong expansion names (#473)
  • Fix issue with getting Player for /papi parse command (#529)
  • Fix PlaceholderAPI breaking when loading corrupted/invalid Expansions (#517, #530, #657)

Other changes

  • Switched from JSONMessage to Kyori Adventure Library (#661)
  • This Repository now uses Discussions! If you have feedback, ideas or questions can you ask them there
  • We use GitHub's new Issue forms, an enhanced version of Issue templates which are currently in public beta. (#580)

2.10.9

04 Aug 16:45
Compare
Choose a tag to compare

2.10.9

Fixed issues with maven repo regarding Jetbrains annotations when using shit IDE's
Like this update to pay respects
Updated deprecation methods in PlaceholderAPI class. Now normal methods of setPlaceholders will not nag you regardless if you use Player or OfflinePlayer.. This also resolves issues with plugins setting placeholders as both methods pre 2.10.7 are functional. Use onRequest or onPlaceholderRequest.... Doesn't matter until we hit 3.0.0.
Fixed a few bugs that probably wont be noticed but if you really care about them you can follow the trail if you are on the hunt
https://github.com/PlaceholderAPI/PlaceholderAPI/commits/master

This update was mainly focused on people who actually hook into PlaceholderAPI so I hope this resolves any issues you may have with deprecated methods or stuff not working and really don't want people using the dev repo as a way to release updates. Based on the feedback I felt this was the thing to do as we don't want to break things until PAPI3 drops.

2.10.8

01 Aug 03:16
Compare
Choose a tag to compare
2.10.8