diff --git a/src/com/massivecraft/massivecore/command/type/TypeDataItemStack.java b/src/com/massivecraft/massivecore/command/type/TypeDataItemStack.java index 6f53169f..57c2d07c 100644 --- a/src/com/massivecraft/massivecore/command/type/TypeDataItemStack.java +++ b/src/com/massivecraft/massivecore/command/type/TypeDataItemStack.java @@ -2,7 +2,6 @@ package com.massivecraft.massivecore.command.type; import org.bukkit.inventory.ItemStack; -import com.massivecraft.massivecore.MassiveCore; import com.massivecraft.massivecore.command.type.primitive.TypeObject; import com.massivecraft.massivecore.item.DataItemStack; @@ -36,25 +35,13 @@ public class TypeDataItemStack extends TypeTransformer @Override public DataItemStack innerToOuter(ItemStack inner) { - // TODO: Why on earth doesn't this line work. - DataItemStack outer = DataItemStack.fromBukkit(inner); - - System.out.println("1 from inner: " + inner); - System.out.println("2 to outer: " + outer.getId()); - System.out.println("3 to outer: " + MassiveCore.get().getGson().toJson(outer, DataItemStack.class)); - - return outer; + return DataItemStack.fromBukkit(inner); } @Override public ItemStack outerToInner(DataItemStack outer) { - ItemStack inner = DataItemStack.toBukkit(outer); - - System.out.println("from outer: " + MassiveCore.get().getGson().toJson(outer, DataItemStack.class)); - System.out.println("to inner: " + inner); - - return inner; + return DataItemStack.toBukkit(outer); } } diff --git a/src/com/massivecraft/massivecore/command/type/TypeTransformer.java b/src/com/massivecraft/massivecore/command/type/TypeTransformer.java index abf40b48..b2245ed1 100644 --- a/src/com/massivecraft/massivecore/command/type/TypeTransformer.java +++ b/src/com/massivecraft/massivecore/command/type/TypeTransformer.java @@ -255,30 +255,6 @@ public abstract class TypeTransformer extends TypeAbstract return outer; } - @Override - public O read(CommandSender sender) throws MassiveException - { - I inner = INNER.read(sender); - O outer = innerToOuter(inner); - return outer; - } - - @Override - public O read(String arg) throws MassiveException - { - I inner = INNER.read(arg); - O outer = innerToOuter(inner); - return outer; - } - - @Override - public O read() throws MassiveException - { - I inner = INNER.read(); - O outer = innerToOuter(inner); - return outer; - } - // -------------------------------------------- // // VALID // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/item/WriterAbstract.java b/src/com/massivecraft/massivecore/item/WriterAbstract.java index b6afed5c..cd443fd7 100644 --- a/src/com/massivecraft/massivecore/item/WriterAbstract.java +++ b/src/com/massivecraft/massivecore/item/WriterAbstract.java @@ -24,6 +24,16 @@ import com.massivecraft.massivecore.util.Txt; // public abstract class WriterAbstract extends Engine { + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public WriterAbstract(Class classCA, Class classCB) + { + this.classCA = classCA; + this.classCB = classCB; + } + // -------------------------------------------- // // WRITERS // -------------------------------------------- // @@ -169,22 +179,12 @@ public abstract class WriterAbstract extends Engine // -------------------------------------------- // // CLASSES // -------------------------------------------- // - - private Class classOA = null; - public Class getClassOA() { return this.classOA; } - public void setClassOA(Class classOA) { this.classOA = classOA; } - - private Class classOB = null; - public Class getClassOB() { return this.classOB; } - public void setClassOB(Class classOB) { this.classOB = classOB; } - private Class classCA = null; - public Class getClassCA() { return this.classCA; } - public void setClassCA(Class classCA) { this.classCA = classCA; } + private final Class classCA; + public Class getClassCA() { return this.classCA; } - private Class classCB = null; - public Class getClassCB() { return this.classCB; } - public void setClassCB(Class classCB) { this.classCB = classCB; } + private final Class classCB; + public Class getClassCB() { return this.classCB; } // -------------------------------------------- // // MORPH @@ -222,10 +222,6 @@ public abstract class WriterAbstract extends Engine if (oa == null) throw new NullPointerException("Couldn't Create OA"); if (ob == null) throw new NullPointerException("Couldn't Create OB"); - // Class O - this.setClassOA(oa.getClass()); - this.setClassOB(ob.getClass()); - // Morph CA ca = this.morphA(oa); CB cb = this.morphB(ob); @@ -234,10 +230,6 @@ public abstract class WriterAbstract extends Engine if (ca == null) throw new NullPointerException("Couldn't Create CA"); if (cb == null) throw new NullPointerException("Couldn't Create CB"); - // Class C - this.setClassCA(ca.getClass()); - this.setClassCB(cb.getClass()); - // Write (to provoke extra much) this.write(oa, ob, true); this.write(oa, ob, false); diff --git a/src/com/massivecraft/massivecore/item/WriterAbstractItemStack.java b/src/com/massivecraft/massivecore/item/WriterAbstractItemStack.java index b2a66bfb..cecf956c 100644 --- a/src/com/massivecraft/massivecore/item/WriterAbstractItemStack.java +++ b/src/com/massivecraft/massivecore/item/WriterAbstractItemStack.java @@ -7,6 +7,15 @@ import com.massivecraft.massivecore.nms.NmsItemStack; public abstract class WriterAbstractItemStack extends WriterAbstract { + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public WriterAbstractItemStack(Class classCB) + { + super(DataItemStack.class, classCB); + } + // -------------------------------------------- // // FIELDS // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/item/WriterAbstractItemStackField.java b/src/com/massivecraft/massivecore/item/WriterAbstractItemStackField.java index a6569892..a49e0b4f 100644 --- a/src/com/massivecraft/massivecore/item/WriterAbstractItemStackField.java +++ b/src/com/massivecraft/massivecore/item/WriterAbstractItemStackField.java @@ -6,5 +6,13 @@ import org.bukkit.inventory.ItemStack; public abstract class WriterAbstractItemStackField extends WriterAbstractItemStack { + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public WriterAbstractItemStackField() + { + super(ItemStack.class); + } } diff --git a/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMeta.java b/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMeta.java index b5b78973..963a4bf5 100644 --- a/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMeta.java +++ b/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMeta.java @@ -5,6 +5,15 @@ import org.bukkit.inventory.meta.ItemMeta; public abstract class WriterAbstractItemStackMeta extends WriterAbstractItemStack { + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public WriterAbstractItemStackMeta(Class classCB) + { + super(classCB); + } + // -------------------------------------------- // // CREATE INNER // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaField.java b/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaField.java index 5fbcccfd..17b069dd 100644 --- a/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaField.java +++ b/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaField.java @@ -4,6 +4,15 @@ import org.bukkit.inventory.meta.ItemMeta; public abstract class WriterAbstractItemStackMetaField extends WriterAbstractItemStackMeta { + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public WriterAbstractItemStackMetaField(Class classCB) + { + super(classCB); + } + // -------------------------------------------- // // CREATE // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaMorph.java b/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaMorph.java index 8f2c0964..62635a9b 100644 --- a/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaMorph.java +++ b/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaMorph.java @@ -4,7 +4,16 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; public abstract class WriterAbstractItemStackMetaMorph extends WriterAbstractItemStackMeta -{ +{ + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public WriterAbstractItemStackMetaMorph() + { + super(ItemMeta.class); + } + // -------------------------------------------- // // MORPH // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaState.java b/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaState.java index 5bd8b731..34ba5591 100644 --- a/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaState.java +++ b/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaState.java @@ -11,8 +11,10 @@ public abstract class WriterAbstractItemStackMetaState extends W // CONSTRUCT // -------------------------------------------- // - public WriterAbstractItemStackMetaState() + public WriterAbstractItemStackMetaState(Class classCB) { + super(classCB); + // For the setup to pass we must set a Material with a BlockStateMeta. this.setMaterial(Material.SHIELD); } diff --git a/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaStateField.java b/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaStateField.java index 9715423d..9781fef3 100644 --- a/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaStateField.java +++ b/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaStateField.java @@ -2,8 +2,17 @@ package com.massivecraft.massivecore.item; import org.bukkit.block.BlockState; -public abstract class WriterAbstractItemStackMetaStateField extends WriterAbstractItemStackMetaState +public abstract class WriterAbstractItemStackMetaStateField extends WriterAbstractItemStackMetaState { + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public WriterAbstractItemStackMetaStateField(Class classCB) + { + super(classCB); + } + // -------------------------------------------- // // CREATE // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaStateMorph.java b/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaStateMorph.java index 63379364..f946c83b 100644 --- a/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaStateMorph.java +++ b/src/com/massivecraft/massivecore/item/WriterAbstractItemStackMetaStateMorph.java @@ -7,6 +7,15 @@ import org.bukkit.inventory.meta.ItemMeta; public abstract class WriterAbstractItemStackMetaStateMorph extends WriterAbstractItemStackMetaState { + // -------------------------------------------- // + // CONSTRUCT + // -------------------------------------------- // + + public WriterAbstractItemStackMetaStateMorph() + { + super(BlockState.class); + } + // -------------------------------------------- // // CREATE // -------------------------------------------- // diff --git a/src/com/massivecraft/massivecore/item/WriterAbstractReflect.java b/src/com/massivecraft/massivecore/item/WriterAbstractReflect.java index 7371ab8b..c76f1300 100644 --- a/src/com/massivecraft/massivecore/item/WriterAbstractReflect.java +++ b/src/com/massivecraft/massivecore/item/WriterAbstractReflect.java @@ -18,6 +18,7 @@ public abstract class WriterAbstractReflect extends Writ public WriterAbstractReflect(Class clazz, String fieldName) { + super(null, null); this.field = (fieldName == null ? null : ReflectionUtil.getField(clazz, fieldName)); } diff --git a/src/com/massivecraft/massivecore/item/WriterItemStackMetaAuthor.java b/src/com/massivecraft/massivecore/item/WriterItemStackMetaAuthor.java index 50be38c4..5f454842 100644 --- a/src/com/massivecraft/massivecore/item/WriterItemStackMetaAuthor.java +++ b/src/com/massivecraft/massivecore/item/WriterItemStackMetaAuthor.java @@ -12,7 +12,10 @@ public class WriterItemStackMetaAuthor extends WriterAbstractItemStackMetaField< private static final WriterItemStackMetaAuthor i = new WriterItemStackMetaAuthor(); public static WriterItemStackMetaAuthor get() { return i; } + + public WriterItemStackMetaAuthor() { + super(BookMeta.class); this.setMaterial(Material.WRITTEN_BOOK); } diff --git a/src/com/massivecraft/massivecore/item/WriterItemStackMetaBannerBase.java b/src/com/massivecraft/massivecore/item/WriterItemStackMetaBannerBase.java index 331c44a1..20893e9d 100644 --- a/src/com/massivecraft/massivecore/item/WriterItemStackMetaBannerBase.java +++ b/src/com/massivecraft/massivecore/item/WriterItemStackMetaBannerBase.java @@ -15,6 +15,7 @@ public class WriterItemStackMetaBannerBase extends WriterAbstractItemStackMetaFi public static WriterItemStackMetaBannerBase get() { return i; } public WriterItemStackMetaBannerBase() { + super(BannerMeta.class); this.setMaterial(Material.BANNER); this.setConverterTo(ConverterToDyeColor.get()); this.setConverterFrom(ConverterFromDyeColor.get()); diff --git a/src/com/massivecraft/massivecore/item/WriterItemStackMetaBannerPatterns.java b/src/com/massivecraft/massivecore/item/WriterItemStackMetaBannerPatterns.java index 631fb2b3..aa6ccdf1 100644 --- a/src/com/massivecraft/massivecore/item/WriterItemStackMetaBannerPatterns.java +++ b/src/com/massivecraft/massivecore/item/WriterItemStackMetaBannerPatterns.java @@ -15,7 +15,9 @@ public class WriterItemStackMetaBannerPatterns extends WriterAbstractItemStackMe private static final WriterItemStackMetaBannerPatterns i = new WriterItemStackMetaBannerPatterns(); public static WriterItemStackMetaBannerPatterns get() { return i; } + public WriterItemStackMetaBannerPatterns() { + super(BannerMeta.class); this.setMaterial(Material.BANNER); this.setConverterTo(ConverterToBannerPatterns.get()); this.setConverterFrom(ConverterFromBannerPatterns.get()); diff --git a/src/com/massivecraft/massivecore/item/WriterItemStackMetaColor.java b/src/com/massivecraft/massivecore/item/WriterItemStackMetaColor.java index 24ca0771..5cda58ca 100644 --- a/src/com/massivecraft/massivecore/item/WriterItemStackMetaColor.java +++ b/src/com/massivecraft/massivecore/item/WriterItemStackMetaColor.java @@ -13,7 +13,10 @@ public class WriterItemStackMetaColor extends WriterAbstractItemStackMetaField