MVdWPlaceholderAPI 3.1.1

Add/Get placeholders to/from any MVdW Placeholder plugin at once

  1. Maximvdw



    About the API

    MVdW Placeholder API is an API that allows you to register placeholders to all my MVdW Placeholder plugins at once. It also has the ability to replace placeholders for your own plugin if any of my placeholder plugins is present giving you a large 5k+ and growing placeholder count.

    Note that this plugin/API does not contain any placeholders itself. It is a bridge between all my placeholder plugins and custom or 3rd party plugins.

    This plugin acts as an interfacing method between placeholders and my placeholder plugins.

    In order to make my placeholders compatible will my various placeholder plugins this acts as a shared API between them.

    Downloading and loading is still handled by the placeholder plugin. The MVdWPlaceholderAPI provides the required shared classes.


    - Java 7+
    - Any MVdW Placeholder plugin (See above)

    Usage for server owners
    1. Make sure you have any MVdW Placeholder plugin
    2. Place the plugin in your plugins folder
    3. Start your server, if you have multiple MVdW placeholder plugins this plugin will say in the console what plugin it is using to get placeholder from. This is useful to know since the configuration of the placeholders is still done in that plugin.
    4. If you have any plugins that hook into MVdWPlaceholderAPI it will show a message in the console for every placeholder that is being added.

    API source and Maven repository

    GitHub source

    The API and inline documentation is available on github:

    The main classes you have to worry about are:

    Jenkins builds

    To get custom versions or for development builds please use the Jenkins build server:

    Maven repository
    Maven is the easiest way to hook into the Placeholder API to easily get the latest version.



      <name>MVdW Public Repositories</name>


    NOTE: Change the version depending on the latest version


    API usage for developers
    First thing you have to do is make sure you have a reference to the plugin. DO NOT SHADE or include the jar in your plugin.

    Explaining the internals
    The way this API works is that you can register an interface that will be executed when you want a specific placeholder to be replaced. Those interface references linked to specific placeholders are stored in the API itself.

    When FeatherBoard or any other MVdW placeholder plugin animated or requests the replacement of placeholders the API is checked to see if there any placeholders matching the ones you have added. If this is the case the interface is fired with an event holding the player for who the placeholder is being replaced.

    When your plugin requests the replacement of placeholders in the API the MVdW Plugin that hooked into the API first will be used to get placeholders from. Both the placeholders from the MVdW placeholder plugin and the custom placeholders you or someone else added will be replaced.

    Hooking into the API
    The first thing you should do is to hook in the API. You have to know that the API is present before trying to do something with it.

    NOTE: In this example we are doing everything in the main class. It is advised to separate this

    In your plugin.yml set the MVdWPlaceholderAPI as a soft or hard dependency


    Code (Text):
    import be.maximvdw.placeholderapi.PlaceholderAPI;
    import be.maximvdw.placeholderapi.PlaceholderReplacer;
    import be.maximvdw.placeholderapi.PlaceholderReplaceEvent;
    Check if the plugin is present

    Once we know the plugin present we can do things with it

    Register a custom placeholder

    Registering a custom placeholder that can be used in all MVdW Placeholder plugins.

    Code (Text):
    PlaceholderAPI.registerPlaceholder(Plugin plugin, String placeholder, PlaceholderReplacer replacer);
    The registerPlaceholder method takes 3 arguments
    plugin: The plugin that is registering the placeholders (yours)
    placeholder: The placeholder without { } you are registering (lowercase)
    replacer: The placeholder replacer interface instance

    The event comes with the online player and the offline player depending on the condition of the placeholder. Do NULL checks yourself!


    NOTE: Always cache if you are using MySQL or any type of database. These requests can be made multiple times a second and have to be returned as fast as possible.

    Replacing placeholders

    The plugin has the ability to replace placeholders using the first MVdW Placeholder plugin that hooked into the API (see topic "Usage for server admins")



    Example 1
    The above example can be found here:

    License and usage
    - Usage in free/public plugins is allowed if credit is given.
    - Usage in premium plugins is also allowed if credit is given but the placeholders should not be your main selling point. Same applies for API plugins that act as an interface for multiplie placeholder cores
    - I hold the rights on both the source code and binary form of this placeholder API.
    - I hold the right to block placeholders or plugins adding placeholders if those are having a bad influence on the general performance such as no caching or very intensive tasks.
    - It is requested to allow users to define (in a config) if they allow your plugin to add placeholders to the API (and in extend to the MVdW Placeholder plugins).
    - Support is provided to Spigot users who bought one of my placeholder plugins. Having no bought plugin = no support
    bithuc, Joedon, DeadMaster and 17 others like this.

Recent Reviews

  1. Quinix1267
    Version: 3.1.1
    I Love it
    works like a charm! i don't know why other people are having a hard time figuring this out.
  2. zFelgen
    Version: 3.1.1
    Can you please set on fire this plugin? Completely useless and bugged. I wanna use the fuckin NORMAL PAPI for featherboard and not this, so please delete this and setup papi for feather, is so simple.
    1. Maximvdw
      Author's Response
      This is not the same as papi. It provides animation effects and is way more optimized for animation plugins, as it caches the lambda functions that replace placeholders while papi does a (semi) complete search over all placeholders that are available
  3. Rektb
    Version: 3.1.1
    Trying to use this plugin is a waste of time. It is completely useless when compared to PlaceholderAPI.
    To begin with, the repository has been down since last year and the docs for developers are lacking and it is closed-source, it makes it hard and disgusting to use this placeholder system. Because of this, absolutely no plugins other than yours has support for this system, making it basically bloatware that just needs to be installed because otherwise featherboard won't work at all.

    I highly recommend both users and developers to switch to PlaceHolderAPI, far better than this.
    1. Maximvdw
      Author's Response
      The repository has been up for more than a year. As announced on my profile (see last message) , it was down today due to scheduled maintenance.

      The source code is available on github as well
  4. MrBorderLegit
    Version: 3.1.1
    Horrible, horrible, horrible. The most annoying API I've used in a while now. No clue why would anyone use this over PlaceholderAPI.

    Repo is always down and the dependency issues with Maven are HORRIBLE. Just look at past reviews for more info I'm too annoyed to go over it again.

    Save yourself some time and stay away from this plugin.
  5. marco.paggioro
    Version: 3.1.1
    PaperMC API not supported.
    PaperMC API not supported.
    PaperMC API not supported.
  6. Issemoran
    Version: 3.1.1
    ???? How is this plugin work lol there is nothing working in this plugin
    explain there is something called guide lol
  7. Little_Potato_
    Version: 3.1.1
    lovely, works great WITH YOUR PREMIUM PLUGINS ahem everyone ok have nice day byebye
  8. HealPot
    Version: 3.1.1
    This plugin does not build straight with Maven, because it depends on Spigot BuildTools. Therefore, it breaks the CICD pipeline thus there is no JitPack lib for this plugin. If you are a developer, please stay away to save yourself time to figure out this plugin's dependency. If you are a server owner, please use PAPI because your developer can hook into it in 1 min. I have spent sometime depending on this plugin, and it is not worth it, because the plugin is just bad for everyone. If the author can fix the dependency issue and the repository be constantly down and breaks all the pipelines then I would review this plugin again.
  9. Dingoster
    Version: 3.1.1
    Don't waste your time, just use PlaceholderAPI .
  10. xlightx
    Version: 3.1.1
    holy...crap. this is one of the most annoying API I've ever used in my entire life. I still don't grasp why people using this over PlaceholderAPI which is more stable.
    The repo is always down and they don't even bother to fix it for months.

    Now I understand why devs shit their pant when they heard about this API.
    1. Maximvdw
      Author's Response
      the repo was down today for maintenance, but it has been up for months. The API is stable and used by hundreds of plugins