package com.laytonsmith.abstraction.bukkit;
import com.laytonsmith.abstraction.MCMetadataValue;
import com.laytonsmith.abstraction.MCMetadatable;
import com.laytonsmith.abstraction.MCPlugin;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.metadata.MetadataValue;
import org.bukkit.metadata.Metadatable;
public class BukkitMCMetadatable implements MCMetadatable {
private final Metadatable _metadatable;
public BukkitMCMetadatable(Metadatable metadatable) {
_metadatable = metadatable;
}
@Override
public List<MCMetadataValue> getMetadata(String metadataKey) {
List<MetadataValue> lst = _metadatable.getMetadata(metadataKey);
List<MCMetadataValue> retn = new ArrayList<>();
for(MetadataValue val : lst) {
retn.add(new BukkitMCMetadataValue(val));
}
return retn;
}
@Override
public boolean hasMetadata(String metadataKey) {
return _metadatable.hasMetadata(metadataKey);
}
@Override
public void removeMetadata(String metadataKey, MCPlugin owningPlugin) {
_metadatable.removeMetadata(metadataKey, ((BukkitMCPlugin)owningPlugin).getHandle());
}
@Override
public void setMetadata(String metadataKey, MCMetadataValue newMetadataValue) {
_metadatable.setMetadata(metadataKey, ((BukkitMCMetadataValue)newMetadataValue).getHandle());
}
@Override
public Metadatable getHandle() {
return _metadatable;
}
@Override
public String toString() {
return _metadatable.toString();
}
@Override
public boolean equals(Object obj) {
return (obj instanceof BukkitMCMetadatable?_metadatable.equals(((BukkitMCMetadatable)obj)._metadatable):false);
}
@Override
public int hashCode() {
return _metadatable.hashCode();
}
}