[Bleeding] Cleanup clone methods.

By: Wesley Wolfe <weswolf@aol.com>
This commit is contained in:
Bukkit/Spigot 2012-02-14 01:49:06 -06:00
parent ec40583deb
commit 8bc2cf4969
41 changed files with 204 additions and 30 deletions

View file

@ -472,19 +472,10 @@ public class Location implements Cloneable {
@Override
public Location clone() {
try {
Location l = (Location) super.clone();
l.world = world;
l.x = x;
l.y = y;
l.z = z;
l.yaw = yaw;
l.pitch = pitch;
return l;
return (Location) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
throw new Error(e);
}
return null;
}
/**

View file

@ -12,7 +12,7 @@ import org.bukkit.material.MaterialData;
/**
* Represents a stack of items
*/
public class ItemStack implements ConfigurationSerializable {
public class ItemStack implements Cloneable, ConfigurationSerializable {
private int type;
private int amount = 0;
private MaterialData data = null;
@ -210,10 +210,18 @@ public class ItemStack implements ConfigurationSerializable {
@Override
public ItemStack clone() {
ItemStack result = new ItemStack(type, amount, durability);
result.addUnsafeEnchantments(getEnchantments());
try {
ItemStack itemStack = (ItemStack) super.clone();
return result;
itemStack.enchantments = new HashMap<Enchantment, Integer>(this.enchantments);
if (this.data != null) {
itemStack.data = this.data.clone();
}
return itemStack;
} catch (CloneNotSupportedException e) {
throw new Error(e);
}
}
@Override

View file

@ -119,4 +119,9 @@ public class Bed extends MaterialData implements Directional {
public String toString() {
return (isHeadOfBed() ? "HEAD" : "FOOT") + " of " + super.toString() + " facing " + getFacing();
}
@Override
public Bed clone() {
return (Bed) super.clone();
}
}

View file

@ -103,4 +103,9 @@ public class Button extends SimpleAttachableMaterialData implements Redstone {
public String toString() {
return super.toString() + " " + (isPowered() ? "" : "NOT ") + "POWERED";
}
@Override
public Button clone() {
return (Button) super.clone();
}
}

View file

@ -68,4 +68,9 @@ public class Cake extends MaterialData {
public String toString() {
return super.toString() + " " + getSlicesEaten() + "/" + getSlicesRemaining() + " slices eaten/remaining";
}
@Override
public Cake clone() {
return (Cake) super.clone();
}
}

View file

@ -54,4 +54,9 @@ public class Coal extends MaterialData {
public String toString() {
return getType() + " " + super.toString();
}
@Override
public Coal clone() {
return (Coal) super.clone();
}
}

View file

@ -54,4 +54,9 @@ public class Crops extends MaterialData {
public String toString() {
return getState() + " " + super.toString();
}
@Override
public Crops clone() {
return (Crops) super.clone();
}
}

View file

@ -33,4 +33,9 @@ public class DetectorRail extends ExtendedRails implements PressureSensor {
public void setPressed(boolean isPressed) {
setData((byte) (isPressed ? (getData() | 0x8) : (getData() & ~0x8)));
}
@Override
public DetectorRail clone() {
return (DetectorRail) super.clone();
}
}

View file

@ -100,4 +100,9 @@ public class Diode extends MaterialData implements Directional {
public String toString() {
return super.toString() + " facing " + getFacing() + " with " + getDelay() + " ticks delay";
}
@Override
public Diode clone() {
return (Diode) super.clone();
}
}

View file

@ -32,4 +32,9 @@ public class Dispenser extends FurnaceAndDispenser {
public Dispenser(final Material type, final byte data) {
super(type, data);
}
@Override
public Dispenser clone() {
return (Dispenser) super.clone();
}
}

View file

@ -128,4 +128,9 @@ public class Door extends MaterialData implements Directional {
}
return null; // shouldn't happen
}
@Override
public Door clone() {
return (Door) super.clone();
}
}

View file

@ -49,4 +49,9 @@ public class Dye extends MaterialData implements Colorable {
public String toString() {
return getColor() + " DYE(" + getData() + ")";
}
@Override
public Dye clone() {
return (Dye) super.clone();
}
}

View file

@ -44,4 +44,9 @@ public class ExtendedRails extends Rails {
super.setDirection(face, isOnSlope);
setData((byte) (extraBitSet ? (getData() | 0x8) : (getData() & ~0x8)));
}
@Override
public ExtendedRails clone() {
return (ExtendedRails) super.clone();
}
}

View file

@ -37,4 +37,9 @@ public class Furnace extends FurnaceAndDispenser {
public Furnace(final Material type, final byte data) {
super(type, data);
}
@Override
public Furnace clone() {
return (Furnace) super.clone();
}
}

View file

@ -70,4 +70,9 @@ public class FurnaceAndDispenser extends MaterialData implements Directional {
public String toString() {
return super.toString() + " facing " + getFacing();
}
@Override
public FurnaceAndDispenser clone() {
return (FurnaceAndDispenser) super.clone();
}
}

View file

@ -79,4 +79,9 @@ public class Ladder extends SimpleAttachableMaterialData {
setData(data);
}
@Override
public Ladder clone() {
return (Ladder) super.clone();
}
}

View file

@ -54,4 +54,9 @@ public class Leaves extends MaterialData {
public String toString() {
return getSpecies() + " " + super.toString();
}
@Override
public Leaves clone() {
return (Leaves) super.clone();
}
}

View file

@ -119,4 +119,9 @@ public class Lever extends SimpleAttachableMaterialData implements Redstone {
public String toString() {
return super.toString() + " facing " + getFacing() + " " + (isPowered() ? "" : "NOT ") + "POWERED";
}
@Override
public Lever clone() {
return (Lever) super.clone();
}
}

View file

@ -54,4 +54,9 @@ public class LongGrass extends MaterialData {
public String toString() {
return getSpecies() + " " + super.toString();
}
@Override
public LongGrass clone() {
return (LongGrass) super.clone();
}
}

View file

@ -6,7 +6,7 @@ import org.bukkit.Material;
/**
* Handles specific metadata for certain items or blocks
*/
public class MaterialData {
public class MaterialData implements Cloneable {
private final int type;
private byte data = 0;
@ -102,4 +102,13 @@ public class MaterialData {
return false;
}
}
@Override
public MaterialData clone() {
try {
return (MaterialData) super.clone();
} catch (CloneNotSupportedException e) {
throw new Error(e);
}
}
}

View file

@ -44,4 +44,9 @@ public class MonsterEggs extends TexturedMaterial {
public List<Material> getTextures() {
return textures;
}
@Override
public MonsterEggs clone() {
return (MonsterEggs) super.clone();
}
}

View file

@ -88,4 +88,9 @@ public class PistonBaseMaterial extends MaterialData implements Directional, Red
public boolean isSticky() {
return this.getItemType() == Material.PISTON_STICKY_BASE;
}
@Override
public PistonBaseMaterial clone() {
return (PistonBaseMaterial) super.clone();
}
}

View file

@ -88,4 +88,9 @@ public class PistonExtensionMaterial extends MaterialData implements Attachable
public BlockFace getAttachedFace() {
return getFacing().getOppositeFace();
}
@Override
public PistonExtensionMaterial clone() {
return (PistonExtensionMaterial) super.clone();
}
}

View file

@ -38,4 +38,9 @@ public class PoweredRail extends ExtendedRails implements Redstone {
public void setPowered(boolean isPowered) {
setData((byte) (isPowered ? (getData() | 0x8) : (getData() & ~0x8)));
}
@Override
public PoweredRail clone() {
return (PoweredRail) super.clone();
}
}

View file

@ -34,4 +34,9 @@ public class PressurePlate extends MaterialData implements PressureSensor {
public String toString() {
return super.toString() + (isPressed() ? " PRESSED" : "");
}
@Override
public PressurePlate clone() {
return (PressurePlate) super.clone();
}
}

View file

@ -89,4 +89,9 @@ public class Pumpkin extends MaterialData implements Directional {
public String toString() {
return super.toString() + " facing " + getFacing() + " " + (isLit() ? "" : "NOT ") + "LIT";
}
@Override
public Pumpkin clone() {
return (Pumpkin) super.clone();
}
}

View file

@ -149,4 +149,9 @@ public class Rails extends MaterialData {
break;
}
}
@Override
public Rails clone() {
return (Rails) super.clone();
}
}

View file

@ -40,4 +40,9 @@ public class RedstoneTorch extends Torch implements Redstone {
public String toString() {
return super.toString() + " " + (isPowered() ? "" : "NOT ") + "POWERED";
}
@Override
public RedstoneTorch clone() {
return (RedstoneTorch) super.clone();
}
}

View file

@ -40,4 +40,9 @@ public class RedstoneWire extends MaterialData implements Redstone {
public String toString() {
return super.toString() + " " + (isPowered() ? "" : "NOT ") + "POWERED";
}
@Override
public RedstoneWire clone() {
return (RedstoneWire) super.clone();
}
}

View file

@ -227,4 +227,9 @@ public class Sign extends MaterialData implements Attachable {
public String toString() {
return super.toString() + " facing " + getFacing();
}
@Override
public Sign clone() {
return (Sign) super.clone();
}
}

View file

@ -42,4 +42,9 @@ public abstract class SimpleAttachableMaterialData extends MaterialData implemen
public String toString() {
return super.toString() + " facing " + getFacing();
}
@Override
public SimpleAttachableMaterialData clone() {
return (SimpleAttachableMaterialData) super.clone();
}
}

View file

@ -45,4 +45,8 @@ public class SmoothBrick extends TexturedMaterial {
return textures;
}
@Override
public SmoothBrick clone() {
return (SmoothBrick) super.clone();
}
}

View file

@ -92,4 +92,9 @@ public class Stairs extends MaterialData implements Directional {
public String toString() {
return super.toString() + " facing " + getFacing();
}
@Override
public Stairs clone() {
return (Stairs) super.clone();
}
}

View file

@ -46,4 +46,9 @@ public class Step extends TexturedMaterial {
public List<Material> getTextures() {
return textures;
}
@Override
public Step clone() {
return (Step) super.clone();
}
}

View file

@ -65,4 +65,8 @@ public abstract class TexturedMaterial extends MaterialData {
return getMaterial() + " " + super.toString();
}
@Override
public TexturedMaterial clone() {
return (TexturedMaterial) super.clone();
}
}

View file

@ -82,4 +82,9 @@ public class Torch extends SimpleAttachableMaterialData {
setData(data);
}
@Override
public Torch clone() {
return (Torch) super.clone();
}
}

View file

@ -80,4 +80,8 @@ public class TrapDoor extends SimpleAttachableMaterialData {
return (isOpen() ? "OPEN " : "CLOSED ") + super.toString() + " with hinges set " + getAttachedFace();
}
@Override
public TrapDoor clone() {
return (TrapDoor) super.clone();
}
}

View file

@ -54,4 +54,9 @@ public class Tree extends MaterialData {
public String toString() {
return getSpecies() + " " + super.toString();
}
@Override
public Tree clone() {
return (Tree) super.clone();
}
}

View file

@ -54,4 +54,9 @@ public class Wool extends MaterialData implements Colorable {
public String toString() {
return getColor() + " " + super.toString();
}
@Override
public Wool clone() {
return (Wool) super.clone();
}
}

View file

@ -105,12 +105,7 @@ public class BlockVector extends Vector {
*/
@Override
public BlockVector clone() {
BlockVector v = (BlockVector) super.clone();
v.x = x;
v.y = y;
v.z = z;
return v;
return (BlockVector) super.clone();
}
public static BlockVector deserialize(Map<String, Object> args) {

View file

@ -546,16 +546,10 @@ public class Vector implements Cloneable, ConfigurationSerializable {
@Override
public Vector clone() {
try {
Vector v = (Vector) super.clone();
v.x = x;
v.y = y;
v.z = z;
return v;
return (Vector) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
throw new Error(e);
}
return null;
}
/**