Add method to disguise next entity. Use entity ID's not entitys.
This commit is contained in:
		@@ -59,7 +59,7 @@ import com.comphenix.protocol.reflect.StructureModifier;
 | 
			
		||||
 | 
			
		||||
public class DisguiseAPI {
 | 
			
		||||
 | 
			
		||||
    private static HashMap<Entity, Disguise> disguises = new HashMap<Entity, Disguise>();
 | 
			
		||||
    private static HashMap<Integer, Disguise> disguises = new HashMap<Integer, Disguise>();
 | 
			
		||||
    private static boolean hearSelfDisguise;
 | 
			
		||||
    private static LibsDisguises libsDisguises;
 | 
			
		||||
    private static PacketListener packetListener;
 | 
			
		||||
@@ -69,19 +69,6 @@ public class DisguiseAPI {
 | 
			
		||||
    private static boolean viewDisguises;
 | 
			
		||||
    private static PacketListener viewDisguisesListener;
 | 
			
		||||
 | 
			
		||||
    private synchronized static Disguise access(Entity entity, Disguise... args) {
 | 
			
		||||
        if (args.length == 0) {
 | 
			
		||||
            if (disguises.containsKey(entity))
 | 
			
		||||
                return disguises.get(entity);
 | 
			
		||||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
        if (args[0] == null)
 | 
			
		||||
            disguises.remove(entity);
 | 
			
		||||
        else
 | 
			
		||||
            disguises.put(entity, args[0]);
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static boolean canHearSelfDisguise() {
 | 
			
		||||
        return hearSelfDisguise;
 | 
			
		||||
    }
 | 
			
		||||
@@ -105,17 +92,30 @@ public class DisguiseAPI {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (disguise.getEntity() != entity) {
 | 
			
		||||
            if (disguise.getWatcher() != null) {
 | 
			
		||||
            if (disguise.getEntity() != null) {
 | 
			
		||||
                disguise = disguise.clone();
 | 
			
		||||
            }
 | 
			
		||||
            disguise.constructWatcher(entity);
 | 
			
		||||
            disguise.setEntity(entity);
 | 
			
		||||
        }
 | 
			
		||||
        put(entity, disguise);
 | 
			
		||||
        disguises.put(entity.getEntityId(), disguise);
 | 
			
		||||
        refresh(entity);
 | 
			
		||||
        if (entity instanceof Player)
 | 
			
		||||
            setupPlayer((Player) entity);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static void disguiseNextEntity(Disguise disguise) {
 | 
			
		||||
        if (disguise == null)
 | 
			
		||||
            return;
 | 
			
		||||
        try {
 | 
			
		||||
            Field field = net.minecraft.server.v1_6_R2.Entity.class.getDeclaredField("entityCount");
 | 
			
		||||
            field.setAccessible(true);
 | 
			
		||||
            int id = field.getInt(null);
 | 
			
		||||
            disguises.put(id, disguise);
 | 
			
		||||
        } catch (Exception ex) {
 | 
			
		||||
            ex.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static void enableSounds(boolean isSoundsEnabled) {
 | 
			
		||||
        if (soundsEnabled != isSoundsEnabled) {
 | 
			
		||||
            soundsEnabled = isSoundsEnabled;
 | 
			
		||||
@@ -127,21 +127,17 @@ public class DisguiseAPI {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static Disguise get(Entity obj) {
 | 
			
		||||
        return access(obj);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param Disguiser
 | 
			
		||||
     * @return Disguise
 | 
			
		||||
     */
 | 
			
		||||
    public static Disguise getDisguise(Entity disguiser) {
 | 
			
		||||
        return get(disguiser);
 | 
			
		||||
        return disguises.get(disguiser.getEntityId());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Deprecated
 | 
			
		||||
    public static Disguise getDisguise(Object disguiser) {
 | 
			
		||||
        return get((Entity) disguiser);
 | 
			
		||||
        return getDisguise((Entity) disguiser);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static int getFakeDisguise(int id) {
 | 
			
		||||
@@ -403,22 +399,18 @@ public class DisguiseAPI {
 | 
			
		||||
     * @return boolean - If the disguiser is disguised
 | 
			
		||||
     */
 | 
			
		||||
    public static boolean isDisguised(Entity disguiser) {
 | 
			
		||||
        return get(disguiser) != null;
 | 
			
		||||
        return getDisguise(disguiser) != null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Deprecated
 | 
			
		||||
    public static boolean isDisguised(Object disguiser) {
 | 
			
		||||
        return get((Entity) disguiser) != null;
 | 
			
		||||
        return getDisguise((Entity) disguiser) != null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static boolean isVelocitySent() {
 | 
			
		||||
        return sendVelocity;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static void put(Entity obj, Disguise disguise) {
 | 
			
		||||
        access(obj, disguise);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param Resends
 | 
			
		||||
     *            the entity to all the watching players, which is where the magic begins
 | 
			
		||||
@@ -611,7 +603,7 @@ public class DisguiseAPI {
 | 
			
		||||
        if (event.isCancelled())
 | 
			
		||||
            return;
 | 
			
		||||
        disguise.getScheduler().cancel();
 | 
			
		||||
        put(entity, null);
 | 
			
		||||
        disguises.remove(entity.getEntityId());
 | 
			
		||||
        if (entity.isValid()) {
 | 
			
		||||
            refresh(entity);
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user