Fix flag watcher not working, fix error with gethandle
This commit is contained in:
		@@ -186,7 +186,7 @@ public class LibsDisguises extends JavaPlugin {
 | 
			
		||||
                WrappedDataWatcher dataWatcher = WrappedDataWatcher.getEntityWatcher(bukkitEntity);
 | 
			
		||||
                List<WrappedWatchableObject> watchers = dataWatcher.getWatchableObjects();
 | 
			
		||||
                for (WrappedWatchableObject watch : watchers)
 | 
			
		||||
                    value.setMetaValue(watch.getTypeID(), watch.getValue());
 | 
			
		||||
                    value.setMetaValue(watch.getIndex(), watch.getValue());
 | 
			
		||||
                DisguiseSound sound = DisguiseSound.getType(disguiseType.name());
 | 
			
		||||
                if (sound != null) {
 | 
			
		||||
                    Float soundStrength = ReflectionManager.getSoundModifier(entity);
 | 
			
		||||
 
 | 
			
		||||
@@ -639,7 +639,7 @@ public class PacketsManager {
 | 
			
		||||
                                    .iterator();
 | 
			
		||||
                            while (itel.hasNext()) {
 | 
			
		||||
                                WrappedWatchableObject watch = itel.next();
 | 
			
		||||
                                if (watch.getTypeID() == 0) {
 | 
			
		||||
                                if (watch.getIndex() == 0) {
 | 
			
		||||
                                    byte b = (Byte) watch.getValue();
 | 
			
		||||
                                    byte a = (byte) (b | 1 << 5);
 | 
			
		||||
                                    if ((b & 1 << 3) != 0)
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,6 @@ import me.libraryaddict.disguise.disguisetypes.watchers.AgeableWatcher;
 | 
			
		||||
import me.libraryaddict.disguise.disguisetypes.watchers.HorseWatcher;
 | 
			
		||||
import me.libraryaddict.disguise.disguisetypes.watchers.ZombieWatcher;
 | 
			
		||||
import org.bukkit.Location;
 | 
			
		||||
import org.bukkit.entity.Entity;
 | 
			
		||||
import org.bukkit.entity.Horse.Variant;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.plugin.java.JavaPlugin;
 | 
			
		||||
@@ -212,7 +211,6 @@ public abstract class Disguise {
 | 
			
		||||
                            }
 | 
			
		||||
                            try {
 | 
			
		||||
                                Field ping = ReflectionManager.getNmsClass("EntityPlayer").getField("ping");
 | 
			
		||||
                                Field handle = Entity.class.getField("getHandle");
 | 
			
		||||
                                for (Player player : getPerverts()) {
 | 
			
		||||
                                    PacketContainer packet = new PacketContainer(Packets.Server.ENTITY_VELOCITY);
 | 
			
		||||
                                    StructureModifier<Object> mods = packet.getModifier();
 | 
			
		||||
@@ -231,7 +229,9 @@ public abstract class Disguise {
 | 
			
		||||
                                    } else
 | 
			
		||||
                                        mods.write(0, entity.getEntityId());
 | 
			
		||||
                                    mods.write(1, (int) (vector.getX() * 8000));
 | 
			
		||||
                                    mods.write(2, (int) (8000 * (vectorY * (double) ping.getInt(handle.get(player)) * 0.069)));
 | 
			
		||||
                                    mods.write(
 | 
			
		||||
                                            2,
 | 
			
		||||
                                            (int) (8000 * (vectorY * (double) ping.getInt(ReflectionManager.getNmsEntity(player)) * 0.069)));
 | 
			
		||||
                                    mods.write(3, (int) (vector.getZ() * 8000));
 | 
			
		||||
                                    if (lookPacket != null)
 | 
			
		||||
                                        ProtocolLibrary.getProtocolManager().sendServerPacket(player, lookPacket, false);
 | 
			
		||||
 
 | 
			
		||||
@@ -68,7 +68,7 @@ public class FlagWatcher {
 | 
			
		||||
        boolean sendAllCustom = false;
 | 
			
		||||
        while (itel.hasNext()) {
 | 
			
		||||
            WrappedWatchableObject watch = itel.next();
 | 
			
		||||
            int dataType = watch.getTypeID();
 | 
			
		||||
            int dataType = watch.getIndex();
 | 
			
		||||
            sentValues.add(dataType);
 | 
			
		||||
            // Its sending the air metadata. This is the least commonly sent metadata which all entitys still share.
 | 
			
		||||
            // I send my custom values if I see this!
 | 
			
		||||
@@ -113,7 +113,7 @@ public class FlagWatcher {
 | 
			
		||||
        if (disguise.viewSelfDisguise() && disguise.getEntity() != null && disguise.getEntity() instanceof Player) {
 | 
			
		||||
            for (WrappedWatchableObject watch : newList) {
 | 
			
		||||
                // Its a health packet
 | 
			
		||||
                if (watch.getTypeID() == 6) {
 | 
			
		||||
                if (watch.getIndex() == 6) {
 | 
			
		||||
                    Object value = watch.getValue();
 | 
			
		||||
                    if (value != null && value instanceof Float) {
 | 
			
		||||
                        float newHealth = (Float) value;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user