Newer
Older
ultramine_bukkit / src / main / java / org / bukkit / metadata / MetadataValue.java
@vlad20012 vlad20012 on 24 Feb 2017 1 KB initial
package org.bukkit.metadata;

import org.bukkit.plugin.Plugin;

public interface MetadataValue
{

	/**
	 * Fetches the value of this metadata item.
	 *
	 * @return the metadata value.
	 */
	public Object value();

	/**
	 * Attempts to convert the value of this metadata item into an int.
	 *
	 * @return the value as an int.
	 */
	public int asInt();

	/**
	 * Attempts to convert the value of this metadata item into a float.
	 *
	 * @return the value as a float.
	 */
	public float asFloat();

	/**
	 * Attempts to convert the value of this metadata item into a double.
	 *
	 * @return the value as a double.
	 */
	public double asDouble();

	/**
	 * Attempts to convert the value of this metadata item into a long.
	 *
	 * @return the value as a long.
	 */
	public long asLong();

	/**
	 * Attempts to convert the value of this metadata item into a short.
	 *
	 * @return the value as a short.
	 */
	public short asShort();

	/**
	 * Attempts to convert the value of this metadata item into a byte.
	 *
	 * @return the value as a byte.
	 */
	public byte asByte();

	/**
	 * Attempts to convert the value of this metadata item into a boolean.
	 *
	 * @return the value as a boolean.
	 */
	public boolean asBoolean();

	/**
	 * Attempts to convert the value of this metadata item into a string.
	 *
	 * @return the value as a string.
	 */
	public String asString();

	/**
	 * Returns the {@link Plugin} that created this metadata item.
	 *
	 * @return the plugin that owns this metadata value. This should never be
	 * null.
	 */
	public Plugin getOwningPlugin();

	/**
	 * Invalidates this metadata item, forcing it to recompute when next
	 * accessed.
	 */
	public void invalidate();
}