Tooltips
Discord
  • Tooltips
  • Start here
  • Support
  • Plugin
    • Features
    • Commands
    • FAQ
    • Guides
      • Clearing cache
      • Furniture shop
      • BetonQuest Dialogue
      • Languages
      • Manual width
  • Configuration
    • Theme
      • Theme textures
      • Making a custom theme
    • Icon
    • Preset
      • Conditions
      • Condition list
      • Show
      • Actions
        • Commands
      • Functions
      • Animations
      • Argument Types
  • Extra
    • Notable 2.0 Changes
    • Integrations
    • Variables
    • API
      • Custom Conditions
Powered by GitBook
On this page
  • Create a condition class
  • Register the condition
  • Restart the server
  • More examples
  1. Extra
  2. API

Custom Conditions

Learn how to create custom Tooltips conditions in your plugin

Create a condition class

For this example, let's create a condition that checks if the players food level is equal to or higher than a given amount. As a result, our condition will look like: hunger {amount=10}

import org.bukkit.entity.Player;

import fi.septicuss.tooltips.object.preset.condition.Condition;
import fi.septicuss.tooltips.object.preset.condition.argument.Arguments;
import fi.septicuss.tooltips.object.validation.Validity;

// Checks if players food level is above the given amount
public class Hunger implements Condition {

	// These are the aliases for arguments. 
	// You can yourself decide which aliases can be used.
	private static final String[] AMOUNT = {"amt", "amount"};
	
	// Returns whether this condition is true with the
	// given arguments
	@Override
	public boolean check(Player player, Arguments args) {

		int amount = args.get(AMOUNT).getAsInt();
		int foodLevel = player.getFoodLevel();
		
		return (foodLevel >= amount);
	
	}
	
	
	// This method is triggered, when either the condition is true
	// and more context is needed or when its skipped. So this
	// method may be called if true or not.
	//
	// Put the context that this condition returns
    	@Override
    	public void writeContext(Player player, Arguments args, Context context) {
	        context.put("food", player.getFoodLevel());
    	}

		
	// This method is used to check, whether the arguments are valid.
	// Once this check is complete, you can safely use the arguments in the
	// above check method.
	@Override
	public Validity valid(Arguments args) {
		
		if (!args.has(AMOUNT)) {
			return Validity.of(false, "Amount argument is missing!");
		}
		
		if (!args.isNumber(AMOUNT)) {
			return Validity.of(false, "Amount argument must be a number!");
		}
		
		return Validity.TRUE;
		
	}

}

Register the condition

Register this condition in your plugins onLoad like so:

@Override
public void onLoad() {
    TooltipsAPI.registerCondition("hunger", new Hunger());
}

Restart the server

Once the server loads, your condition should be in Tooltips!

More examples

PreviousAPI

Last updated 5 months ago

For more examples on how to make conditions, check out the code of some official conditions in the .

GitHub repository