Code cleanup, fixed primed tnt disappearing
This commit is contained in:
parent
6d1e9a7655
commit
881d76eafa
@ -183,25 +183,29 @@ public abstract class Disguise {
|
||||
public void run() {
|
||||
// If entity is no longer valid. Remove it.
|
||||
if (!getEntity().isValid()) {
|
||||
DisguiseAPI.undisguiseToAll(entity);
|
||||
DisguiseAPI.undisguiseToAll(getEntity());
|
||||
} else {
|
||||
// If the disguise type is tnt, we need to resend the entity packet else it will turn invisible
|
||||
if (getType() == DisguiseType.PRIMED_TNT) {
|
||||
i++;
|
||||
if (i % 40 == 0) {
|
||||
i = 0;
|
||||
ProtocolLibrary.getProtocolManager().updateEntity(getEntity(), getPerverts());
|
||||
DisguiseUtilities.refreshTrackers(getEntity());
|
||||
if (getEntity() instanceof Player && isSelfDisguiseVisible()) {
|
||||
DisguiseUtilities.sendSelfDisguise((Player) getEntity());
|
||||
}
|
||||
// ProtocolLibrary.getProtocolManager().updateEntity(getEntity(), getPerverts());
|
||||
}
|
||||
}
|
||||
// If the vectorY isn't 0. Cos if it is. Then it doesn't want to send any vectors.
|
||||
// If this disguise has velocity sending enabled and the entity is flying.
|
||||
if (vectorY != 0 && isVelocitySent() && (alwaysSendVelocity || !entity.isOnGround())) {
|
||||
if (vectorY != 0 && isVelocitySent() && (alwaysSendVelocity || !getEntity().isOnGround())) {
|
||||
Vector vector = getEntity().getVelocity();
|
||||
// If the entity doesn't have velocity changes already
|
||||
if (vector.getY() != 0 && !(vector.getY() < 0 && alwaysSendVelocity && getEntity().isOnGround())) {
|
||||
return;
|
||||
}
|
||||
if (getType() != DisguiseType.EXPERIENCE_ORB || !entity.isOnGround()) {
|
||||
if (getType() != DisguiseType.EXPERIENCE_ORB || !getEntity().isOnGround()) {
|
||||
PacketContainer lookPacket = null;
|
||||
if (getType() == DisguiseType.WITHER_SKULL) {
|
||||
lookPacket = new PacketContainer(Packets.Server.ENTITY_LOOK);
|
||||
@ -210,12 +214,12 @@ public abstract class Disguise {
|
||||
Location loc = getEntity().getLocation();
|
||||
mods.write(
|
||||
4,
|
||||
PacketsManager.getYaw(getType(), DisguiseType.getType(entity.getType()),
|
||||
PacketsManager.getYaw(getType(), DisguiseType.getType(getEntity().getType()),
|
||||
(byte) Math.floor(loc.getYaw() * 256.0F / 360.0F)));
|
||||
mods.write(5, (byte) Math.floor(loc.getPitch() * 256.0F / 360.0F));
|
||||
if (isSelfDisguiseVisible() && getEntity() instanceof Player) {
|
||||
PacketContainer selfLookPacket = lookPacket.shallowClone();
|
||||
selfLookPacket.getModifier().write(0, DisguiseAPI.getFakeDisguise(entity.getEntityId()));
|
||||
selfLookPacket.getModifier().write(0, DisguiseAPI.getFakeDisguise(getEntity().getEntityId()));
|
||||
try {
|
||||
ProtocolLibrary.getProtocolManager().sendServerPacket((Player) getEntity(),
|
||||
selfLookPacket, false);
|
||||
@ -233,7 +237,7 @@ public abstract class Disguise {
|
||||
if (!isSelfDisguiseVisible()) {
|
||||
continue;
|
||||
}
|
||||
mods.write(0, DisguiseAPI.getFakeDisguise(entity.getEntityId()));
|
||||
mods.write(0, DisguiseAPI.getFakeDisguise(getEntity().getEntityId()));
|
||||
} else {
|
||||
mods.write(0, getEntity().getEntityId());
|
||||
}
|
||||
@ -258,7 +262,7 @@ public abstract class Disguise {
|
||||
StructureModifier<Object> mods = packet.getModifier();
|
||||
mods.write(0, getEntity().getEntityId());
|
||||
for (Player player : getPerverts()) {
|
||||
if (DisguiseAPI.isViewDisguises() || entity != player) {
|
||||
if (DisguiseAPI.isViewDisguises() || getEntity() != player) {
|
||||
try {
|
||||
ProtocolLibrary.getProtocolManager().sendServerPacket(player, packet);
|
||||
} catch (InvocationTargetException e) {
|
||||
@ -379,7 +383,7 @@ public abstract class Disguise {
|
||||
// Gotta do reflection, copy code or open up calls.
|
||||
// Reflection is the cleanest?
|
||||
if (getEntity() instanceof Player) {
|
||||
DisguiseUtilities.removeSelfDisguise((Player) entity);
|
||||
DisguiseUtilities.removeSelfDisguise((Player) getEntity());
|
||||
}
|
||||
// Better refresh the entity to undisguise it
|
||||
DisguiseUtilities.refreshTrackers(getEntity());
|
||||
@ -406,7 +410,7 @@ public abstract class Disguise {
|
||||
* Set the entity of the disguise. Only used for internal things.
|
||||
*/
|
||||
public void setEntity(org.bukkit.entity.Entity entity) {
|
||||
if (this.entity != null) {
|
||||
if (this.getEntity() != null) {
|
||||
throw new RuntimeException("This disguise is already in use! Try .clone()");
|
||||
}
|
||||
this.entity = entity;
|
||||
@ -420,15 +424,15 @@ public abstract class Disguise {
|
||||
|
||||
public void setHideArmorFromSelf(boolean hideArmor) {
|
||||
this.hideArmorFromSelf = hideArmor;
|
||||
if (entity instanceof Player) {
|
||||
((Player) entity).updateInventory();
|
||||
if (getEntity() instanceof Player) {
|
||||
((Player) getEntity()).updateInventory();
|
||||
}
|
||||
}
|
||||
|
||||
public void setHideHeldItemFromSelf(boolean hideHeldItem) {
|
||||
this.hideHeldItemFromSelf = hideHeldItem;
|
||||
if (entity instanceof Player) {
|
||||
((Player) entity).updateInventory();
|
||||
if (getEntity() instanceof Player) {
|
||||
((Player) getEntity()).updateInventory();
|
||||
}
|
||||
}
|
||||
|
||||
@ -442,7 +446,7 @@ public abstract class Disguise {
|
||||
*/
|
||||
private void setupWatcher() {
|
||||
HashMap<Integer, Object> disguiseValues = DisguiseValues.getMetaValues(getType());
|
||||
HashMap<Integer, Object> entityValues = DisguiseValues.getMetaValues(DisguiseType.getType(entity.getType()));
|
||||
HashMap<Integer, Object> entityValues = DisguiseValues.getMetaValues(DisguiseType.getType(getEntity().getType()));
|
||||
// Start from 2 as they ALL share 0 and 1
|
||||
for (int dataNo = 2; dataNo <= 31; dataNo++) {
|
||||
// STEP 1. Find out if the watcher has set data on it.
|
||||
|
@ -673,7 +673,7 @@ public class PacketsManager {
|
||||
@Override
|
||||
public void onPacketSending(PacketEvent event) {
|
||||
final Player observer = event.getPlayer();
|
||||
if (event.getPacket().getEntityModifier(observer.getWorld()).read(0) == observer) {
|
||||
if (event.getPacket().getIntegers().read(0) == observer.getEntityId()) {
|
||||
int fakeId = DisguiseAPI.getFakeDisguise(observer.getEntityId());
|
||||
if (fakeId > 0) {
|
||||
// Here I grab the packets to convert them to, So I can display them as if the disguise sent them.
|
||||
|
Loading…
Reference in New Issue
Block a user