use of me.libraryaddict.disguise.utilities.parser.DisguiseParseException in project LibsDisguises by libraryaddict.
the class DisguiseCommand method onCommand.
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (isNotPremium(sender)) {
return true;
}
if (!(sender instanceof Entity)) {
LibsMsg.NO_CONSOLE.send(sender);
return true;
}
if (args.length == 0) {
sendCommandUsage(sender, getPermissions(sender));
return true;
}
if (hasHitRateLimit(sender)) {
return true;
}
Disguise disguise;
try {
disguise = DisguiseParser.parseDisguise(sender, (Entity) sender, getPermNode(), DisguiseUtilities.split(StringUtils.join(args, " ")), getPermissions(sender));
} catch (DisguiseParseException ex) {
ex.send(sender);
return true;
} catch (Throwable ex) {
ex.printStackTrace();
return true;
}
if (DisguiseConfig.isNameOfPlayerShownAboveDisguise() && !sender.hasPermission("libsdisguises.hidename")) {
if (disguise.getWatcher() instanceof LivingWatcher) {
disguise.getWatcher().setCustomName(getDisplayName(sender));
if (DisguiseConfig.isNameAboveHeadAlwaysVisible()) {
disguise.getWatcher().setCustomNameVisible(true);
}
}
}
disguise.setEntity((Player) sender);
if (!setViewDisguise(args)) {
// They prefer to have the opposite of whatever the view disguises option is
if (DisguiseAPI.hasSelfDisguisePreference(disguise.getEntity()) && disguise.isSelfDisguiseVisible() == DisguiseConfig.isViewSelfDisguisesDefault()) {
disguise.setViewSelfDisguise(!disguise.isSelfDisguiseVisible());
}
}
if (!DisguiseAPI.isNotifyBarShown(disguise.getEntity())) {
disguise.setNotifyBar(DisguiseConfig.NotifyBar.NONE);
}
if (!sender.isOp() && LibsPremium.isBisectHosted() && !Bukkit.getIp().matches("((25[0-5]|(2[0-4]|1[0-9]|[1-9]|)[0-9])(\\.(?!$)|$)){4}")) {
disguise.setExpires(DisguiseConfig.isDynamicExpiry() ? 20 * 60 * 10 : System.currentTimeMillis() + TimeUnit.MINUTES.toMillis(10));
}
disguise.startDisguise(sender);
if (disguise.isDisguiseInUse()) {
LibsMsg.DISGUISED.send(sender, disguise.getDisguiseName());
} else {
LibsMsg.FAILED_DISGIUSE.send(sender, disguise.getDisguiseName());
}
return true;
}
use of me.libraryaddict.disguise.utilities.parser.DisguiseParseException in project LibsDisguises by libraryaddict.
the class DisguiseEntityCommand method onCommand.
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (isNotPremium(sender)) {
return true;
}
if (!(sender instanceof Player)) {
LibsMsg.NO_CONSOLE.send(sender);
return true;
}
if (!getPermissions(sender).hasPermissions()) {
LibsMsg.NO_PERM.send(sender);
return true;
}
if (args.length == 0) {
sendCommandUsage(sender, getPermissions(sender));
return true;
}
if (hasHitRateLimit(sender)) {
return true;
}
String[] disguiseArgs = DisguiseUtilities.split(StringUtils.join(args, " "));
Disguise testDisguise;
try {
testDisguise = DisguiseParser.parseTestDisguise(sender, getPermNode(), disguiseArgs, getPermissions(sender));
} catch (DisguiseParseException ex) {
ex.send(sender);
return true;
} catch (Throwable ex) {
ex.printStackTrace();
return true;
}
LibsDisguises.getInstance().getListener().addInteraction(sender.getName(), new DisguiseEntityInteraction(disguiseArgs), DisguiseConfig.getDisguiseEntityExpire());
LibsMsg.DISG_ENT_CLICK.send(sender, DisguiseConfig.getDisguiseEntityExpire(), testDisguise.getDisguiseName());
return true;
}
use of me.libraryaddict.disguise.utilities.parser.DisguiseParseException in project LibsDisguises by libraryaddict.
the class DisguisePlayerCommand method onCommand.
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (isNotPremium(sender)) {
return true;
}
DisguisePermissions permissions = getPermissions(sender);
if (!permissions.hasPermissions()) {
LibsMsg.NO_PERM.send(sender);
return true;
}
if (args.length == 0) {
sendCommandUsage(sender, permissions);
return true;
}
if (args.length == 1) {
LibsMsg.DPLAYER_SUPPLY.send(sender);
return true;
}
if (hasHitRateLimit(sender)) {
return true;
}
Entity entityTarget = Bukkit.getPlayer(args[0]);
if (entityTarget == null) {
if (args[0].contains("-")) {
try {
entityTarget = Bukkit.getEntity(UUID.fromString(args[0]));
} catch (Exception ignored) {
}
}
}
if (entityTarget == null) {
LibsMsg.CANNOT_FIND_PLAYER.send(sender, args[0]);
return true;
}
String[] newArgs = new String[args.length - 1];
System.arraycopy(args, 1, newArgs, 0, newArgs.length);
if (newArgs.length == 0) {
sendCommandUsage(sender, permissions);
return true;
}
Disguise disguise;
try {
disguise = DisguiseParser.parseDisguise(sender, entityTarget, getPermNode(), DisguiseUtilities.split(StringUtils.join(newArgs, " ")), permissions);
} catch (DisguiseParseException ex) {
ex.send(sender);
return true;
} catch (Throwable ex) {
ex.printStackTrace();
return true;
}
if (disguise.isMiscDisguise() && !DisguiseConfig.isMiscDisguisesForLivingEnabled()) {
LibsMsg.DISABLED_LIVING_TO_MISC.send(sender);
return true;
}
if (DisguiseConfig.isNameOfPlayerShownAboveDisguise() && !entityTarget.hasPermission("libsdisguises.hidename")) {
if (disguise.getWatcher() instanceof LivingWatcher) {
disguise.getWatcher().setCustomName(getDisplayName(entityTarget));
if (DisguiseConfig.isNameAboveHeadAlwaysVisible()) {
disguise.getWatcher().setCustomNameVisible(true);
}
}
}
disguise.setEntity(entityTarget);
if (!setViewDisguise(args)) {
// They prefer to have the opposite of whatever the view disguises option is
if (DisguiseAPI.hasSelfDisguisePreference(disguise.getEntity()) && disguise.isSelfDisguiseVisible() == DisguiseConfig.isViewSelfDisguisesDefault()) {
disguise.setViewSelfDisguise(!disguise.isSelfDisguiseVisible());
}
}
if (!DisguiseAPI.isNotifyBarShown(disguise.getEntity())) {
disguise.setNotifyBar(DisguiseConfig.NotifyBar.NONE);
}
disguise.startDisguise(sender);
if (disguise.isDisguiseInUse()) {
LibsMsg.DISG_PLAYER_AS_DISG.send(sender, entityTarget instanceof Player ? entityTarget.getName() : DisguiseType.getType(entityTarget).toReadable(), disguise.getDisguiseName());
} else {
LibsMsg.DISG_PLAYER_AS_DISG_FAIL.send(sender, entityTarget instanceof Player ? entityTarget.getName() : DisguiseType.getType(entityTarget).toReadable(), disguise.getDisguiseName());
}
return true;
}
use of me.libraryaddict.disguise.utilities.parser.DisguiseParseException in project LibsDisguises by libraryaddict.
the class DisguiseModifyCommand method onCommand.
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (!(sender instanceof Entity)) {
LibsMsg.NO_CONSOLE.send(sender);
return true;
}
DisguisePermissions permissions = getPermissions(sender);
if (!permissions.hasPermissions()) {
LibsMsg.NO_PERM.send(sender);
return true;
}
if (args.length == 0) {
sendCommandUsage(sender, permissions);
return true;
}
Disguise disguise = DisguiseAPI.getDisguise((Player) sender, (Entity) sender);
if (disguise == null) {
LibsMsg.NOT_DISGUISED.send(sender);
return true;
}
DisguisePerm disguisePerm = new DisguisePerm(disguise.getType());
if (!permissions.isAllowedDisguise(disguisePerm)) {
LibsMsg.DMODIFY_NO_PERM.send(sender);
return true;
}
String[] options = DisguiseUtilities.split(StringUtils.join(args, " "));
options = DisguiseParser.parsePlaceholders(options, sender, sender);
try {
DisguiseParser.callMethods(sender, disguise, permissions, disguisePerm, new ArrayList<>(), options, "DisguiseModify");
} catch (DisguiseParseException ex) {
ex.send(sender);
return true;
} catch (Throwable ex) {
ex.printStackTrace();
return true;
}
LibsMsg.DMODIFY_MODIFIED.send(sender);
return true;
}
use of me.libraryaddict.disguise.utilities.parser.DisguiseParseException in project LibsDisguises by libraryaddict.
the class DisguiseModifyInteraction method onInteract.
@Override
public void onInteract(Player p, Entity entity) {
String entityName;
if (entity instanceof Player) {
entityName = entity.getName();
} else {
entityName = DisguiseType.getType(entity).toReadable();
}
Disguise disguise = DisguiseAPI.getDisguise(p, entity);
if (disguise == null) {
LibsMsg.UNDISG_PLAYER_FAIL.send(p, entityName);
return;
}
options = DisguiseParser.parsePlaceholders(options, p, entity);
DisguisePermissions perms = DisguiseParser.getPermissions(p, "disguiseentitymodify");
DisguisePerm disguisePerm = new DisguisePerm(disguise.getType());
if (!perms.isAllowedDisguise(disguisePerm, Arrays.asList(options))) {
LibsMsg.DMODPLAYER_NOPERM.send(p);
return;
}
try {
DisguiseParser.callMethods(p, disguise, perms, disguisePerm, new ArrayList<>(Arrays.asList(options)), options, "DisguiseModifyEntity");
LibsMsg.LISTENER_MODIFIED_DISG.send(p);
} catch (DisguiseParseException ex) {
ex.send(p);
} catch (Throwable ex) {
ex.printStackTrace();
}
}
Aggregations