Search in sources :

Example 1 with DisguiseParseException

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;
}
Also used : Entity(org.bukkit.entity.Entity) DisguiseParseException(me.libraryaddict.disguise.utilities.parser.DisguiseParseException) LivingWatcher(me.libraryaddict.disguise.disguisetypes.watchers.LivingWatcher) Disguise(me.libraryaddict.disguise.disguisetypes.Disguise)

Example 2 with DisguiseParseException

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;
}
Also used : DisguiseParseException(me.libraryaddict.disguise.utilities.parser.DisguiseParseException) Player(org.bukkit.entity.Player) Disguise(me.libraryaddict.disguise.disguisetypes.Disguise) DisguiseEntityInteraction(me.libraryaddict.disguise.commands.interactions.DisguiseEntityInteraction)

Example 3 with DisguiseParseException

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;
}
Also used : DisguisePermissions(me.libraryaddict.disguise.utilities.parser.DisguisePermissions) Entity(org.bukkit.entity.Entity) DisguiseParseException(me.libraryaddict.disguise.utilities.parser.DisguiseParseException) LivingWatcher(me.libraryaddict.disguise.disguisetypes.watchers.LivingWatcher) Disguise(me.libraryaddict.disguise.disguisetypes.Disguise) Player(org.bukkit.entity.Player) DisguiseParseException(me.libraryaddict.disguise.utilities.parser.DisguiseParseException)

Example 4 with DisguiseParseException

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;
}
Also used : Entity(org.bukkit.entity.Entity) DisguisePermissions(me.libraryaddict.disguise.utilities.parser.DisguisePermissions) DisguisePerm(me.libraryaddict.disguise.utilities.parser.DisguisePerm) DisguiseParseException(me.libraryaddict.disguise.utilities.parser.DisguiseParseException) Disguise(me.libraryaddict.disguise.disguisetypes.Disguise)

Example 5 with DisguiseParseException

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();
    }
}
Also used : DisguisePermissions(me.libraryaddict.disguise.utilities.parser.DisguisePermissions) DisguisePerm(me.libraryaddict.disguise.utilities.parser.DisguisePerm) DisguiseParseException(me.libraryaddict.disguise.utilities.parser.DisguiseParseException) Player(org.bukkit.entity.Player) Disguise(me.libraryaddict.disguise.disguisetypes.Disguise)

Aggregations

DisguiseParseException (me.libraryaddict.disguise.utilities.parser.DisguiseParseException)13 Disguise (me.libraryaddict.disguise.disguisetypes.Disguise)11 Player (org.bukkit.entity.Player)8 DisguisePermissions (me.libraryaddict.disguise.utilities.parser.DisguisePermissions)6 Entity (org.bukkit.entity.Entity)6 DisguisePerm (me.libraryaddict.disguise.utilities.parser.DisguisePerm)5 LivingWatcher (me.libraryaddict.disguise.disguisetypes.watchers.LivingWatcher)4 ArrayList (java.util.ArrayList)2 LivingEntity (org.bukkit.entity.LivingEntity)2 WrappedGameProfile (com.comphenix.protocol.wrappers.WrappedGameProfile)1 WrappedParticle (com.comphenix.protocol.wrappers.WrappedParticle)1 File (java.io.File)1 FileNotFoundException (java.io.FileNotFoundException)1 IOException (java.io.IOException)1 UnsupportedEncodingException (java.io.UnsupportedEncodingException)1 DisguiseEntityInteraction (me.libraryaddict.disguise.commands.interactions.DisguiseEntityInteraction)1 DisguiseType (me.libraryaddict.disguise.disguisetypes.DisguiseType)1 SkinUtils (me.libraryaddict.disguise.utilities.SkinUtils)1 LibsMsg (me.libraryaddict.disguise.utilities.translations.LibsMsg)1 Color (org.bukkit.Color)1