From 8ca4c999d90b0f4cf149ad2d24a90389edaf4427 Mon Sep 17 00:00:00 2001 From: Olof Larsson Date: Fri, 31 Jan 2014 18:01:34 +0100 Subject: [PATCH] Added MetadataSimple for simple metadata cenarios --- .../massivecraft/mcore/MetadataSimple.java | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 src/com/massivecraft/mcore/MetadataSimple.java diff --git a/src/com/massivecraft/mcore/MetadataSimple.java b/src/com/massivecraft/mcore/MetadataSimple.java new file mode 100644 index 00000000..c4a05aec --- /dev/null +++ b/src/com/massivecraft/mcore/MetadataSimple.java @@ -0,0 +1,61 @@ +package com.massivecraft.mcore; + +import java.util.List; + +import org.bukkit.metadata.MetadataValue; +import org.bukkit.metadata.MetadataValueAdapter; +import org.bukkit.metadata.Metadatable; +import org.bukkit.plugin.Plugin; + +public class MetadataSimple extends MetadataValueAdapter +{ + // -------------------------------------------- // + // FIELDS + // -------------------------------------------- // + + private Object value; + + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public MetadataSimple(Plugin plugin, Object value) + { + super(plugin); + this.value = value; + } + + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + @Override + public Object value() + { + return this.value; + } + + @Override + public void invalidate() + { + // This can not be invalidated + } + + // -------------------------------------------- // + // UTIL + // -------------------------------------------- // + + public static void set(Plugin plugin, Metadatable metadatable, String key, Object value) + { + metadatable.setMetadata(key, new MetadataSimple(plugin, value)); + } + + public static Object get(Metadatable metadatable, String key) + { + List metaValues = metadatable.getMetadata(key); + if (metaValues == null) return null; + if (metaValues.size() < 1) return null; + return metaValues.get(0).value(); + } + +}