Change MiscDisguise thing to Integer instead of int so I can use nulls, this lets me know if a int was set.

This commit is contained in:
libraryaddict 2014-06-16 04:29:18 +12:00
parent 8363b23deb
commit eb78492fcf
3 changed files with 12 additions and 11 deletions

View File

@ -228,7 +228,7 @@ public enum DisguiseType {
} }
} }
private int defaultId; private Integer defaultId;
private int entityId; private int entityId;
private EntityType entityType; private EntityType entityType;
private Class<? extends FlagWatcher> watcherClass; private Class<? extends FlagWatcher> watcherClass;
@ -249,7 +249,7 @@ public enum DisguiseType {
} }
} }
public int getDefaultId() { public Integer getDefaultId() {
return defaultId; return defaultId;
} }

View File

@ -11,7 +11,7 @@ import org.bukkit.entity.EntityType;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
public class MiscDisguise extends TargetedDisguise { public class MiscDisguise extends TargetedDisguise {
private int data = -1; private Integer data;
private int id = -1; private int id = -1;
public MiscDisguise(DisguiseType disguiseType) { public MiscDisguise(DisguiseType disguiseType) {
@ -120,10 +120,10 @@ public class MiscDisguise extends TargetedDisguise {
/** /**
* This is the getId of everything but falling block. * This is the getId of everything but falling block.
*/ */
public int getData() { public Integer getData() {
switch (getType()) { switch (getType()) {
case FALLING_BLOCK: case FALLING_BLOCK:
return ((FallingBlockWatcher) getWatcher()).getBlock().getDurability(); return (int) ((FallingBlockWatcher) getWatcher()).getBlock().getDurability();
case PAINTING: case PAINTING:
return ((PaintingWatcher) getWatcher()).getArt().getId(); return ((PaintingWatcher) getWatcher()).getArt().getId();
case SPLASH_POTION: case SPLASH_POTION:

View File

@ -294,16 +294,17 @@ public class PacketsManager {
} else if (disguise.getType().isMisc()) { } else if (disguise.getType().isMisc()) {
int id = disguise.getType().getEntityId(); int id = disguise.getType().getEntityId();
int data = ((MiscDisguise) disguise).getData(); Integer data = ((MiscDisguise) disguise).getData();
if (disguise.getType() == DisguiseType.FALLING_BLOCK) { if (disguise.getType() == DisguiseType.FALLING_BLOCK) {
data = (((MiscDisguise) disguise).getId() | data << 16); data = (((MiscDisguise) disguise).getId() | data << 16);
} else if (data < 0) { } else if (disguise.getType() == DisguiseType.FISHING_HOOK) {
data = 0;
}
// If the MiscDisguise data isn't set. Then no entity id was provided, so default to the owners entity id // If the MiscDisguise data isn't set. Then no entity id was provided, so default to the owners entity id
if (disguise.getType() == DisguiseType.FISHING_HOOK && data == 0) { if (data == null) {
data = disguisedEntity.getEntityId(); data = disguisedEntity.getEntityId();
} }
} else if (data == null) {
data = 0;
}
/* else if (disguise.getType() == DisguiseType.ITEM_FRAME) { /* else if (disguise.getType() == DisguiseType.ITEM_FRAME) {
data = (int) loc.getYaw(); data = (int) loc.getYaw();
if (data < 0) if (data < 0)