Custom Conditions
Learn how to create custom Tooltips conditions in your plugin
Create a condition class
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;
}
// Set the conditions ID, which will be used in preset configurations.
@Override
public String id() {
return "hunger";
}
}Register the condition
Restart the server
More examples
Last updated