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