Add ItemMeta factory and interfaces. This adds BUKKIT-15

Included with ItemMeta is a new serializable class Color.

PotionEffects are now serializable.

By: Wesley Wolfe <weswolf@aol.com>
This commit is contained in:
Bukkit/Spigot
2012-12-17 01:16:28 -06:00
parent 2bf21e7e18
commit ac66053f35
25 changed files with 1656 additions and 189 deletions

View File

@@ -403,7 +403,7 @@ public abstract class ConfigurationSectionTest {
map.put("two", "two");
map.put("three", 3.14);
List<Object> value = Arrays.asList((Object) "One", "Two", "Three", 4, "5", 6.0, true, "false", map);
List<Object> value = Arrays.asList("One", "Two", "Three", 4, "5", 6.0, true, "false", map);
section.set(key, value);

View File

@@ -1,55 +0,0 @@
package org.bukkit.configuration.file;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.enchantments.EnchantmentTarget;
import org.bukkit.inventory.ItemStack;
public class TestEnchantment extends Enchantment {
public static void registerEnchantments() {
Enchantment.registerEnchantment(new TestEnchantment(0, "DUMMY_0"));
Enchantment.registerEnchantment(new TestEnchantment(1, "DUMMY_1"));
Enchantment.registerEnchantment(new TestEnchantment(2, "DUMMY_2"));
Enchantment.registerEnchantment(new TestEnchantment(3, "DUMMY_3"));
Enchantment.registerEnchantment(new TestEnchantment(4, "DUMMY_4"));
Enchantment.registerEnchantment(new TestEnchantment(5, "DUMMY_5"));
}
private final String name;
private TestEnchantment(final int id, final String name) {
super(id);
this.name = name;
}
@Override
public String getName() {
return name;
}
@Override
public int getMaxLevel() {
return 5;
}
@Override
public int getStartLevel() {
return 1;
}
@Override
public EnchantmentTarget getItemTarget() {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean canEnchantItem(ItemStack item) {
return true;
}
@Override
public boolean conflictsWith(Enchantment other) {
return false;
}
}

View File

@@ -1,19 +1,9 @@
package org.bukkit.configuration.file;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack;
import org.junit.Test;
import static org.junit.Assert.*;
public class YamlConfigurationTest extends FileConfigurationTest {
static {
TestEnchantment.registerEnchantments();
}
@Override
public YamlConfiguration getConfig() {
@@ -63,47 +53,4 @@ public class YamlConfigurationTest extends FileConfigurationTest {
assertEquals(expected, result);
}
@Test
public void testSaveRestoreCompositeList() throws InvalidConfigurationException {
YamlConfiguration out = getConfig();
List<ItemStack> stacks = new ArrayList<ItemStack>();
stacks.add(new ItemStack(1));
stacks.add(new ItemStack(2));
stacks.add(new ItemStack(3));
stacks.add(new ItemStack(4, 17));
stacks.add(new ItemStack(5, 63));
stacks.add(new ItemStack(6, 1, (short) 1));
stacks.add(new ItemStack(18, 32, (short) 2));
ItemStack item7 = new ItemStack(256);
item7.addEnchantment(Enchantment.getById(1), 1);
stacks.add(item7);
ItemStack item8 = new ItemStack(257);
item8.addEnchantment(Enchantment.getById(2), 2);
item8.addEnchantment(Enchantment.getById(3), 1);
item8.addEnchantment(Enchantment.getById(4), 5);
item8.addEnchantment(Enchantment.getById(5), 4);
stacks.add(item8);
out.set("composite-list.abc.def", stacks);
String yaml = out.saveToString();
YamlConfiguration in = new YamlConfiguration();
in.loadFromString(yaml);
List<?> raw = in.getList("composite-list.abc.def");
assertEquals(stacks.size(), raw.size());
assertEquals(stacks.get(0), raw.get(0));
assertEquals(stacks.get(1), raw.get(1));
assertEquals(stacks.get(2), raw.get(2));
assertEquals(stacks.get(3), raw.get(3));
assertEquals(stacks.get(4), raw.get(4));
assertEquals(stacks.get(5), raw.get(5));
assertEquals(stacks.get(6), raw.get(6));
assertEquals(stacks.get(7), raw.get(7));
assertEquals(stacks.get(8), raw.get(8));
}
}