mirror of
https://github.com/libraryaddict/LibsDisguises.git
synced 2024-08-22 22:53:01 +02:00
Give errors when they attempt to use misc disguise on living entities with commands
This commit is contained in:
parent
72d07e7f62
commit
b44aba87d4
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user