[Bleeding] Cleanup clone methods.
This commit is contained in:
parent
b66ede2821
commit
3bb6fa8849
@ -472,19 +472,10 @@ public class Location implements Cloneable {
|
|||||||
@Override
|
@Override
|
||||||
public Location clone() {
|
public Location clone() {
|
||||||
try {
|
try {
|
||||||
Location l = (Location) super.clone();
|
return (Location) super.clone();
|
||||||
|
|
||||||
l.world = world;
|
|
||||||
l.x = x;
|
|
||||||
l.y = y;
|
|
||||||
l.z = z;
|
|
||||||
l.yaw = yaw;
|
|
||||||
l.pitch = pitch;
|
|
||||||
return l;
|
|
||||||
} catch (CloneNotSupportedException e) {
|
} catch (CloneNotSupportedException e) {
|
||||||
e.printStackTrace();
|
throw new Error(e);
|
||||||
}
|
}
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -12,7 +12,7 @@ import org.bukkit.material.MaterialData;
|
|||||||
/**
|
/**
|
||||||
* Represents a stack of items
|
* Represents a stack of items
|
||||||
*/
|
*/
|
||||||
public class ItemStack implements ConfigurationSerializable {
|
public class ItemStack implements Cloneable, ConfigurationSerializable {
|
||||||
private int type;
|
private int type;
|
||||||
private int amount = 0;
|
private int amount = 0;
|
||||||
private MaterialData data = null;
|
private MaterialData data = null;
|
||||||
@ -210,10 +210,18 @@ public class ItemStack implements ConfigurationSerializable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack clone() {
|
public ItemStack clone() {
|
||||||
ItemStack result = new ItemStack(type, amount, durability);
|
try {
|
||||||
result.addUnsafeEnchantments(getEnchantments());
|
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
|
@Override
|
||||||
|
@ -119,4 +119,9 @@ public class Bed extends MaterialData implements Directional {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return (isHeadOfBed() ? "HEAD" : "FOOT") + " of " + super.toString() + " facing " + getFacing();
|
return (isHeadOfBed() ? "HEAD" : "FOOT") + " of " + super.toString() + " facing " + getFacing();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Bed clone() {
|
||||||
|
return (Bed) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -103,4 +103,9 @@ public class Button extends SimpleAttachableMaterialData implements Redstone {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString() + " " + (isPowered() ? "" : "NOT ") + "POWERED";
|
return super.toString() + " " + (isPowered() ? "" : "NOT ") + "POWERED";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Button clone() {
|
||||||
|
return (Button) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -68,4 +68,9 @@ public class Cake extends MaterialData {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString() + " " + getSlicesEaten() + "/" + getSlicesRemaining() + " slices eaten/remaining";
|
return super.toString() + " " + getSlicesEaten() + "/" + getSlicesRemaining() + " slices eaten/remaining";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Cake clone() {
|
||||||
|
return (Cake) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,4 +54,9 @@ public class Coal extends MaterialData {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return getType() + " " + super.toString();
|
return getType() + " " + super.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Coal clone() {
|
||||||
|
return (Coal) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,4 +54,9 @@ public class Crops extends MaterialData {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return getState() + " " + super.toString();
|
return getState() + " " + super.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Crops clone() {
|
||||||
|
return (Crops) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,4 +33,9 @@ public class DetectorRail extends ExtendedRails implements PressureSensor {
|
|||||||
public void setPressed(boolean isPressed) {
|
public void setPressed(boolean isPressed) {
|
||||||
setData((byte) (isPressed ? (getData() | 0x8) : (getData() & ~0x8)));
|
setData((byte) (isPressed ? (getData() | 0x8) : (getData() & ~0x8)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DetectorRail clone() {
|
||||||
|
return (DetectorRail) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -100,4 +100,9 @@ public class Diode extends MaterialData implements Directional {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString() + " facing " + getFacing() + " with " + getDelay() + " ticks delay";
|
return super.toString() + " facing " + getFacing() + " with " + getDelay() + " ticks delay";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Diode clone() {
|
||||||
|
return (Diode) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,4 +32,9 @@ public class Dispenser extends FurnaceAndDispenser {
|
|||||||
public Dispenser(final Material type, final byte data) {
|
public Dispenser(final Material type, final byte data) {
|
||||||
super(type, data);
|
super(type, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Dispenser clone() {
|
||||||
|
return (Dispenser) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -128,4 +128,9 @@ public class Door extends MaterialData implements Directional {
|
|||||||
}
|
}
|
||||||
return null; // shouldn't happen
|
return null; // shouldn't happen
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Door clone() {
|
||||||
|
return (Door) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,4 +49,9 @@ public class Dye extends MaterialData implements Colorable {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return getColor() + " DYE(" + getData() + ")";
|
return getColor() + " DYE(" + getData() + ")";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Dye clone() {
|
||||||
|
return (Dye) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,4 +44,9 @@ public class ExtendedRails extends Rails {
|
|||||||
super.setDirection(face, isOnSlope);
|
super.setDirection(face, isOnSlope);
|
||||||
setData((byte) (extraBitSet ? (getData() | 0x8) : (getData() & ~0x8)));
|
setData((byte) (extraBitSet ? (getData() | 0x8) : (getData() & ~0x8)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ExtendedRails clone() {
|
||||||
|
return (ExtendedRails) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,4 +37,9 @@ public class Furnace extends FurnaceAndDispenser {
|
|||||||
public Furnace(final Material type, final byte data) {
|
public Furnace(final Material type, final byte data) {
|
||||||
super(type, data);
|
super(type, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Furnace clone() {
|
||||||
|
return (Furnace) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -70,4 +70,9 @@ public class FurnaceAndDispenser extends MaterialData implements Directional {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString() + " facing " + getFacing();
|
return super.toString() + " facing " + getFacing();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FurnaceAndDispenser clone() {
|
||||||
|
return (FurnaceAndDispenser) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -79,4 +79,9 @@ public class Ladder extends SimpleAttachableMaterialData {
|
|||||||
setData(data);
|
setData(data);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Ladder clone() {
|
||||||
|
return (Ladder) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,4 +54,9 @@ public class Leaves extends MaterialData {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return getSpecies() + " " + super.toString();
|
return getSpecies() + " " + super.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Leaves clone() {
|
||||||
|
return (Leaves) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -119,4 +119,9 @@ public class Lever extends SimpleAttachableMaterialData implements Redstone {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString() + " facing " + getFacing() + " " + (isPowered() ? "" : "NOT ") + "POWERED";
|
return super.toString() + " facing " + getFacing() + " " + (isPowered() ? "" : "NOT ") + "POWERED";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Lever clone() {
|
||||||
|
return (Lever) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,4 +54,9 @@ public class LongGrass extends MaterialData {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return getSpecies() + " " + super.toString();
|
return getSpecies() + " " + super.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LongGrass clone() {
|
||||||
|
return (LongGrass) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ import org.bukkit.Material;
|
|||||||
/**
|
/**
|
||||||
* Handles specific metadata for certain items or blocks
|
* Handles specific metadata for certain items or blocks
|
||||||
*/
|
*/
|
||||||
public class MaterialData {
|
public class MaterialData implements Cloneable {
|
||||||
private final int type;
|
private final int type;
|
||||||
private byte data = 0;
|
private byte data = 0;
|
||||||
|
|
||||||
@ -102,4 +102,13 @@ public class MaterialData {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MaterialData clone() {
|
||||||
|
try {
|
||||||
|
return (MaterialData) super.clone();
|
||||||
|
} catch (CloneNotSupportedException e) {
|
||||||
|
throw new Error(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,4 +44,9 @@ public class MonsterEggs extends TexturedMaterial {
|
|||||||
public List<Material> getTextures() {
|
public List<Material> getTextures() {
|
||||||
return textures;
|
return textures;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MonsterEggs clone() {
|
||||||
|
return (MonsterEggs) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -88,4 +88,9 @@ public class PistonBaseMaterial extends MaterialData implements Directional, Red
|
|||||||
public boolean isSticky() {
|
public boolean isSticky() {
|
||||||
return this.getItemType() == Material.PISTON_STICKY_BASE;
|
return this.getItemType() == Material.PISTON_STICKY_BASE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PistonBaseMaterial clone() {
|
||||||
|
return (PistonBaseMaterial) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -88,4 +88,9 @@ public class PistonExtensionMaterial extends MaterialData implements Attachable
|
|||||||
public BlockFace getAttachedFace() {
|
public BlockFace getAttachedFace() {
|
||||||
return getFacing().getOppositeFace();
|
return getFacing().getOppositeFace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PistonExtensionMaterial clone() {
|
||||||
|
return (PistonExtensionMaterial) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,4 +38,9 @@ public class PoweredRail extends ExtendedRails implements Redstone {
|
|||||||
public void setPowered(boolean isPowered) {
|
public void setPowered(boolean isPowered) {
|
||||||
setData((byte) (isPowered ? (getData() | 0x8) : (getData() & ~0x8)));
|
setData((byte) (isPowered ? (getData() | 0x8) : (getData() & ~0x8)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PoweredRail clone() {
|
||||||
|
return (PoweredRail) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,4 +34,9 @@ public class PressurePlate extends MaterialData implements PressureSensor {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString() + (isPressed() ? " PRESSED" : "");
|
return super.toString() + (isPressed() ? " PRESSED" : "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PressurePlate clone() {
|
||||||
|
return (PressurePlate) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -89,4 +89,9 @@ public class Pumpkin extends MaterialData implements Directional {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString() + " facing " + getFacing() + " " + (isLit() ? "" : "NOT ") + "LIT";
|
return super.toString() + " facing " + getFacing() + " " + (isLit() ? "" : "NOT ") + "LIT";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Pumpkin clone() {
|
||||||
|
return (Pumpkin) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -149,4 +149,9 @@ public class Rails extends MaterialData {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Rails clone() {
|
||||||
|
return (Rails) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,4 +40,9 @@ public class RedstoneTorch extends Torch implements Redstone {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString() + " " + (isPowered() ? "" : "NOT ") + "POWERED";
|
return super.toString() + " " + (isPowered() ? "" : "NOT ") + "POWERED";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RedstoneTorch clone() {
|
||||||
|
return (RedstoneTorch) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,4 +40,9 @@ public class RedstoneWire extends MaterialData implements Redstone {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString() + " " + (isPowered() ? "" : "NOT ") + "POWERED";
|
return super.toString() + " " + (isPowered() ? "" : "NOT ") + "POWERED";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RedstoneWire clone() {
|
||||||
|
return (RedstoneWire) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -227,4 +227,9 @@ public class Sign extends MaterialData implements Attachable {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString() + " facing " + getFacing();
|
return super.toString() + " facing " + getFacing();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Sign clone() {
|
||||||
|
return (Sign) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,4 +42,9 @@ public abstract class SimpleAttachableMaterialData extends MaterialData implemen
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString() + " facing " + getFacing();
|
return super.toString() + " facing " + getFacing();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SimpleAttachableMaterialData clone() {
|
||||||
|
return (SimpleAttachableMaterialData) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -45,4 +45,8 @@ public class SmoothBrick extends TexturedMaterial {
|
|||||||
return textures;
|
return textures;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SmoothBrick clone() {
|
||||||
|
return (SmoothBrick) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -92,4 +92,9 @@ public class Stairs extends MaterialData implements Directional {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString() + " facing " + getFacing();
|
return super.toString() + " facing " + getFacing();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Stairs clone() {
|
||||||
|
return (Stairs) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,4 +46,9 @@ public class Step extends TexturedMaterial {
|
|||||||
public List<Material> getTextures() {
|
public List<Material> getTextures() {
|
||||||
return textures;
|
return textures;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Step clone() {
|
||||||
|
return (Step) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -65,4 +65,8 @@ public abstract class TexturedMaterial extends MaterialData {
|
|||||||
return getMaterial() + " " + super.toString();
|
return getMaterial() + " " + super.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TexturedMaterial clone() {
|
||||||
|
return (TexturedMaterial) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -82,4 +82,9 @@ public class Torch extends SimpleAttachableMaterialData {
|
|||||||
|
|
||||||
setData(data);
|
setData(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Torch clone() {
|
||||||
|
return (Torch) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,4 +80,8 @@ public class TrapDoor extends SimpleAttachableMaterialData {
|
|||||||
return (isOpen() ? "OPEN " : "CLOSED ") + super.toString() + " with hinges set " + getAttachedFace();
|
return (isOpen() ? "OPEN " : "CLOSED ") + super.toString() + " with hinges set " + getAttachedFace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TrapDoor clone() {
|
||||||
|
return (TrapDoor) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
@ -54,4 +54,9 @@ public class Tree extends MaterialData {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return getSpecies() + " " + super.toString();
|
return getSpecies() + " " + super.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Tree clone() {
|
||||||
|
return (Tree) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,4 +54,9 @@ public class Wool extends MaterialData implements Colorable {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return getColor() + " " + super.toString();
|
return getColor() + " " + super.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Wool clone() {
|
||||||
|
return (Wool) super.clone();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -105,12 +105,7 @@ public class BlockVector extends Vector {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public BlockVector clone() {
|
public BlockVector clone() {
|
||||||
BlockVector v = (BlockVector) super.clone();
|
return (BlockVector) super.clone();
|
||||||
|
|
||||||
v.x = x;
|
|
||||||
v.y = y;
|
|
||||||
v.z = z;
|
|
||||||
return v;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BlockVector deserialize(Map<String, Object> args) {
|
public static BlockVector deserialize(Map<String, Object> args) {
|
||||||
|
@ -546,16 +546,10 @@ public class Vector implements Cloneable, ConfigurationSerializable {
|
|||||||
@Override
|
@Override
|
||||||
public Vector clone() {
|
public Vector clone() {
|
||||||
try {
|
try {
|
||||||
Vector v = (Vector) super.clone();
|
return (Vector) super.clone();
|
||||||
|
|
||||||
v.x = x;
|
|
||||||
v.y = y;
|
|
||||||
v.z = z;
|
|
||||||
return v;
|
|
||||||
} catch (CloneNotSupportedException e) {
|
} catch (CloneNotSupportedException e) {
|
||||||
e.printStackTrace();
|
throw new Error(e);
|
||||||
}
|
}
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user