Server Owners

This plugin does nothing on its own. It is simply an API for other plugins to implement with.


Simply add BarAPI.jar to your project build path.

This plugin makes use of reflection and therefore "shouldn't" break on craftbukkit updates.


The message can not be more than 64 characters. If it is more, BarAPI will automatically cut it to 64 characters to prevent the client from crashing.

This is a client limitation and cannot be changed.


BarAPI.setMessage(Player player, String message)

Set a message for the player. It will remain there until the player logs off or another plugin overrides it.

BarAPI.setMessage(Player player, String message, float percent)

Same as above except you can set the % of the health bar. 100 shows the entire health bar, 50 shows half the health bar and so on.

BarAPI.setMessage(final Player player, String message, int seconds)

Sets a timed message for the player. It will remain until the timer runs out. The health automatically reduces based on how long the timer is.

BarAPI.hasBar(Player player)

Pretty self explanatory, returns a boolean.

BarAPI.removeBar(Player player)

Also pretty self explanatory.

BarAPI.setHealth(Player player, float percent)

Allows you to modify the health of an existing bar. If the player has no bar, this does nothing.


German - DerFeliix






Developer Builds

These builds have not been approved by BukkitDev staff, therefore, use at your own risk.

Frostcast CI


This plugin contains an auto updater which is enabled by default. If you do not wish to automatically download new updates, edit BarAPI/config.yml and set autoUpdate to false.

To Dos

  • Scroll messages if string is greater than 64 characters.

Plugins Using BarAPI






PvPGames Automated


Infernal Mobs





Item Lore Stats



Battle Of Blocks






To determine popularity and usage of BarAPI, plugin installs are automatically tracked by the Metrics plugin tracking system. Your Java version, OS, player count, server country location and plugin & server versions are collected. This is used to determine what environments are using the plugin to ensure full compatibility. This collection is anonymous. If you don't want this tracking, edit plugins/PluginMetrics/config.yml and set opt-out to true.

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of LihPeu LihPeu Oct 25, 2014 at 18:22 UTC - 0 likes

    @Mineraftair: Go

    If you are using a spigot build then use the latest dev build of BarAPI and edit the BarAPI config like this:

    # Set to false to disable the auto updater
    autoUpdate: false
    testMode: false
    useSpigotHack: true

    The LihP Network -
    A Minecraft community since 2011

  • Avatar of Mineraftair Mineraftair Oct 25, 2014 at 09:06 UTC - 0 likes


    I´m using your API for my plugin, and I like it! But, can you please make your Updater stop Spamming Errors in my log? I know that Bukkitdev is down because of an DMCA. So please correct that! Thanks!

    Yours Minecraftair

  • Avatar of Difd9 Difd9 Oct 19, 2014 at 23:44 UTC - 0 likes

    @confuserr perhaps this may be of use... I hear a lot of people say it crashes their servers I have yet to try it EDIT: Ok although it may help you it only takes 2 seconds to see how unstable the plugin is

    Last edited Oct 19, 2014 by Difd9
  • Avatar of Bars96 Bars96 Oct 19, 2014 at 22:29 UTC - 0 likes

    Bars not shown to players. My code:

    public final class OnlyCore extends JavaPlugin {
    	public static OnlyCore plugin;
    	boolean barapi = false;
    	long time = 0;
    	int mes = 0;
    	public void onEnable() {
    		try {
    		} catch (IOException e) {
    			getLogger().info("[OnlyCore] Can't load config");
    		if ((barapi) && (time >= 60L) && (tips.size() > 0)) {
    			getLogger().info("Loaded "+tips.size()+" messages to bar");
    			Bukkit.getServer().getScheduler().runTaskTimer(this, new Runnable() {
    				public void run() {
    					int length = tips.size();
    					String msg = ChatColor.translateAlternateColorCodes('&', tips.get(mes));
    					for (Player p : Bukkit.getServer().getOnlinePlayers()) {
    						msg = msg.replace("%p", p.getName());
    						BarAPI.setMessage(p, msg);
    						BarAPI.setHealth(p, (mes/length*100F));
    					if (mes == length) mes = 0;
    					else mes++;
    			}, 20L, time);
    	public void onDisable() {
    	public void loadConfiguration() throws IOException {
    		File cfgFile = new File(this.getDataFolder() + File.separator + "config.yml");
    		YamlConfiguration config = YamlConfiguration.loadConfiguration(cfgFile);
    		if (barapi) {
    			time = config.getInt("tips.time") * 20L;
    	private void setupBarAPI() {
    		if (Bukkit.getServer().getPluginManager().isPluginEnabled("BarAPI")) {
    			barapi = true;
    			getLogger().info("BarAPI found, hooked");
  • Avatar of Difd9 Difd9 Oct 19, 2014 at 18:00 UTC - 0 likes

    Humm well could you at least post the version on Jenkins

  • Avatar of confuserr confuserr Oct 19, 2014 at 12:00 UTC - 0 likes

    @Difd9: Go

    The wither has smoke and shield effects which I've not been able to completely disable at the moment.

  • Avatar of Difd9 Difd9 Oct 17, 2014 at 16:57 UTC - 0 likes


    Could you perhaps spawn a invisible wither with no AI at the player to prevent the issue?

    Last edited Oct 17, 2014 by Difd9
  • Avatar of confuserr confuserr Oct 17, 2014 at 11:12 UTC - 0 likes

    @Difd9: Go

    This is not a 'flaw' of my plugin, it's a bug within the minecraft 1.8 client.

  • Avatar of Difd9 Difd9 Oct 16, 2014 at 19:58 UTC - 0 likes

    @confuserr underground the bar doesn't show up for 1.8 clients... this is a flaw of the API not any addons @JonasFranzDEV if you want you could look into writing a plugin for that

  • Avatar of Difd9 Difd9 Oct 15, 2014 at 00:09 UTC - 0 likes

    I found the author has 1.8 builds that fully support 1.8:


Date created
Sep 01, 2013
Last update
Apr 19, 2014
Development stage
Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales
Curse link
Recent files