Give errors when they attempt to use misc disguise on living entities with commands
This commit is contained in:
		@@ -12,6 +12,7 @@ import me.libraryaddict.disguise.utilities.UpdateChecker;
 | 
			
		||||
import org.bukkit.Bukkit;
 | 
			
		||||
import org.bukkit.ChatColor;
 | 
			
		||||
import org.bukkit.entity.Entity;
 | 
			
		||||
import org.bukkit.entity.LivingEntity;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.event.EventHandler;
 | 
			
		||||
import org.bukkit.event.EventPriority;
 | 
			
		||||
@@ -120,9 +121,10 @@ public class DisguiseListener implements Listener {
 | 
			
		||||
    @EventHandler
 | 
			
		||||
    public void onRightClick(PlayerInteractEntityEvent event) {
 | 
			
		||||
        if (disguiseSlap.containsKey(event.getPlayer().getName())) {
 | 
			
		||||
            Player p = event.getPlayer();
 | 
			
		||||
            event.setCancelled(true);
 | 
			
		||||
            Disguise disguise = disguiseSlap.remove(event.getPlayer().getName());
 | 
			
		||||
            disguiseRunnable.remove(event.getPlayer().getName()).cancel();
 | 
			
		||||
            Disguise disguise = disguiseSlap.remove(p.getName());
 | 
			
		||||
            disguiseRunnable.remove(p.getName()).cancel();
 | 
			
		||||
            Entity entity = event.getRightClicked();
 | 
			
		||||
            String entityName = "";
 | 
			
		||||
            if (entity instanceof Player) {
 | 
			
		||||
@@ -137,38 +139,41 @@ public class DisguiseListener implements Listener {
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            if (disguise != null) {
 | 
			
		||||
                if (entity instanceof Player && DisguiseConfig.isNameOfPlayerShownAboveDisguise()) {
 | 
			
		||||
                    if (disguise.getWatcher() instanceof LivingWatcher) {
 | 
			
		||||
                        ((LivingWatcher) disguise.getWatcher()).setCustomName(((Player) entity).getDisplayName());
 | 
			
		||||
                        if (DisguiseConfig.isNameAboveHeadAlwaysVisible()) {
 | 
			
		||||
                            ((LivingWatcher) disguise.getWatcher()).setCustomNameVisible(true);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                DisguiseAPI.disguiseToAll(entity, disguise);
 | 
			
		||||
                String disguiseName = "a ";
 | 
			
		||||
                if (disguise instanceof PlayerDisguise) {
 | 
			
		||||
                    disguiseName = "the player " + ((PlayerDisguise) disguise).getName();
 | 
			
		||||
                if (disguise.isMiscDisguise() && !DisguiseConfig.isMiscDisguisesForLivingEnabled()
 | 
			
		||||
                        && entity instanceof LivingEntity) {
 | 
			
		||||
                    p.sendMessage(ChatColor.RED
 | 
			
		||||
                            + "Can't disguise a living entity as a misc disguise. This has been disabled in the config!");
 | 
			
		||||
                } else {
 | 
			
		||||
                    String[] split = disguise.getType().name().split("_");
 | 
			
		||||
                    for (int i = 0; i < split.length; i++) {
 | 
			
		||||
                        disguiseName += split[0].substring(0, 1) + split[0].substring(1).toLowerCase();
 | 
			
		||||
                        if (i + 1 < split.length) {
 | 
			
		||||
                            disguiseName += " ";
 | 
			
		||||
                    if (entity instanceof Player && DisguiseConfig.isNameOfPlayerShownAboveDisguise()) {
 | 
			
		||||
                        if (disguise.getWatcher() instanceof LivingWatcher) {
 | 
			
		||||
                            ((LivingWatcher) disguise.getWatcher()).setCustomName(((Player) entity).getDisplayName());
 | 
			
		||||
                            if (DisguiseConfig.isNameAboveHeadAlwaysVisible()) {
 | 
			
		||||
                                ((LivingWatcher) disguise.getWatcher()).setCustomNameVisible(true);
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    DisguiseAPI.disguiseToAll(entity, disguise);
 | 
			
		||||
                    String disguiseName = "a ";
 | 
			
		||||
                    if (disguise instanceof PlayerDisguise) {
 | 
			
		||||
                        disguiseName = "the player " + ((PlayerDisguise) disguise).getName();
 | 
			
		||||
                    } else {
 | 
			
		||||
                        String[] split = disguise.getType().name().split("_");
 | 
			
		||||
                        for (int i = 0; i < split.length; i++) {
 | 
			
		||||
                            disguiseName += split[0].substring(0, 1) + split[0].substring(1).toLowerCase();
 | 
			
		||||
                            if (i + 1 < split.length) {
 | 
			
		||||
                                disguiseName += " ";
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    p.sendMessage(ChatColor.RED + "Disguised " + (entity instanceof Player ? "" : "the ") + entityName + " as "
 | 
			
		||||
                            + disguiseName + "!");
 | 
			
		||||
                }
 | 
			
		||||
                event.getPlayer().sendMessage(
 | 
			
		||||
                        ChatColor.RED + "Disguised " + (entity instanceof Player ? "" : "the ") + entityName + " as "
 | 
			
		||||
                                + disguiseName + "!");
 | 
			
		||||
            } else {
 | 
			
		||||
                if (DisguiseAPI.isDisguised(entity)) {
 | 
			
		||||
                    DisguiseAPI.undisguiseToAll(entity);
 | 
			
		||||
                    event.getPlayer().sendMessage(
 | 
			
		||||
                            ChatColor.RED + "Undisguised " + (entity instanceof Player ? "" : "the ") + entityName);
 | 
			
		||||
                    p.sendMessage(ChatColor.RED + "Undisguised " + (entity instanceof Player ? "" : "the ") + entityName);
 | 
			
		||||
                } else
 | 
			
		||||
                    event.getPlayer().sendMessage(
 | 
			
		||||
                            ChatColor.RED + (entity instanceof Player ? "" : "the") + entityName + " isn't disguised!");
 | 
			
		||||
                    p.sendMessage(ChatColor.RED + (entity instanceof Player ? "" : "the") + entityName + " isn't disguised!");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -52,6 +52,11 @@ public class DisguisePlayerCommand extends BaseDisguiseCommand {
 | 
			
		||||
            }
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
        if (disguise.isMiscDisguise() && !DisguiseConfig.isMiscDisguisesForLivingEnabled()) {
 | 
			
		||||
            sender.sendMessage(ChatColor.RED
 | 
			
		||||
                    + "Can't disguise a living entity as a misc disguise. This has been disabled in the config!");
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
        if (DisguiseConfig.isNameOfPlayerShownAboveDisguise()) {
 | 
			
		||||
            if (disguise.getWatcher() instanceof LivingWatcher) {
 | 
			
		||||
                ((LivingWatcher) disguise.getWatcher()).setCustomName(((Player) player).getDisplayName());
 | 
			
		||||
 
 | 
			
		||||
@@ -13,6 +13,7 @@ import org.bukkit.ChatColor;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
import org.bukkit.entity.Entity;
 | 
			
		||||
import org.bukkit.entity.LivingEntity;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
 | 
			
		||||
public class DisguiseRadiusCommand extends BaseDisguiseCommand {
 | 
			
		||||
@@ -66,9 +67,14 @@ public class DisguiseRadiusCommand extends BaseDisguiseCommand {
 | 
			
		||||
            return true;
 | 
			
		||||
        } // Time to use it!
 | 
			
		||||
        int disguisedEntitys = 0;
 | 
			
		||||
        int miscDisguises = 0;
 | 
			
		||||
        for (Entity entity : ((Player) sender).getNearbyEntities(radius, radius, radius)) {
 | 
			
		||||
            if (entity == sender)
 | 
			
		||||
                continue;
 | 
			
		||||
            if (disguise.isMiscDisguise() && !DisguiseConfig.isMiscDisguisesForLivingEnabled() && entity instanceof LivingEntity) {
 | 
			
		||||
                miscDisguises++;
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
            disguise = disguise.clone();
 | 
			
		||||
            if (entity instanceof Player && DisguiseConfig.isNameOfPlayerShownAboveDisguise()) {
 | 
			
		||||
                if (disguise.getWatcher() instanceof LivingWatcher) {
 | 
			
		||||
@@ -81,7 +87,15 @@ public class DisguiseRadiusCommand extends BaseDisguiseCommand {
 | 
			
		||||
            DisguiseAPI.disguiseToAll(entity, disguise);
 | 
			
		||||
            disguisedEntitys++;
 | 
			
		||||
        }
 | 
			
		||||
        sender.sendMessage(ChatColor.RED + "Successfully disguised " + disguisedEntitys + " entities!");
 | 
			
		||||
        if (disguisedEntitys > 0) {
 | 
			
		||||
            sender.sendMessage(ChatColor.RED + "Successfully disguised " + disguisedEntitys + " entities!");
 | 
			
		||||
        } else {
 | 
			
		||||
            sender.sendMessage(ChatColor.RED + "Couldn't find any entities to disguise!");
 | 
			
		||||
        }
 | 
			
		||||
        if (miscDisguises > 0) {
 | 
			
		||||
            sender.sendMessage(ChatColor.RED + "Failed to disguise " + miscDisguises
 | 
			
		||||
                    + " entities because the option to disguise a living entity as a non-living has been disabled in the config");
 | 
			
		||||
        }
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user