Search in sources :

Example 6 with TranslatedParserException

use of org.cubeengine.libcube.service.command.TranslatedParserException in project modules-extra by CubeEngine.

the class LookupDataParser method parse.

@Override
public LookupData parse(Class clazz, CommandInvocation ci) throws ParserException {
    String token = ci.consume(1);
    if (!types.keySet().contains(token.toLowerCase())) {
        throw new TranslatedParserException(i18n.translate(ci.getContext(Locale.class), NEGATIVE, "{input} is not a valid log-type. Use chest, container, player, block or kills instead!", token));
    }
    LookupData data = types.get(token.toLowerCase()).copy();
    return data.withCreator(((Player) ci.getCommandSource()).getUniqueId());
}
Also used : TranslatedParserException(org.cubeengine.libcube.service.command.TranslatedParserException) LookupData(org.cubeengine.module.vigil.data.LookupData)

Example 7 with TranslatedParserException

use of org.cubeengine.libcube.service.command.TranslatedParserException in project core by CubeEngine.

the class DifficultyParser method parse.

@Override
public Difficulty parse(Class type, CommandInvocation invocation) throws ParserException {
    String token = invocation.currentToken();
    Locale locale = invocation.getContext(Locale.class);
    try {
        Difficulty difficulty = difficultyMap.get(Integer.valueOf(token));
        if (difficulty == null) {
            throw new TranslatedParserException(i18n.translate(locale, MessageType.NEGATIVE, "The given difficulty level is unknown!"));
        }
        invocation.consume(1);
        return difficulty;
    } catch (NumberFormatException e) {
        return super.parse(type, invocation);
    }
}
Also used : Locale(java.util.Locale) Difficulty(org.spongepowered.api.world.difficulty.Difficulty) TranslatedParserException(org.cubeengine.libcube.service.command.TranslatedParserException)

Example 8 with TranslatedParserException

use of org.cubeengine.libcube.service.command.TranslatedParserException in project core by CubeEngine.

the class FuzzyUserParser method parse.

@Override
@SuppressWarnings("unchecked")
public List<Player> parse(Class type, CommandInvocation invocation) throws ParserException {
    ArrayList<Player> users = new ArrayList<>();
    if ("*".equals(invocation.currentToken())) {
        invocation.consume(1);
        users.addAll(game.getServer().getOnlinePlayers());
        return users;
    }
    if (invocation.currentToken().contains(",")) {
        ((List<List<Player>>) invocation.providers().parsers().get(List.class).parse(FuzzyUserParser.class, invocation)).forEach(users::addAll);
        return users;
    }
    String token = invocation.currentToken();
    if (token.contains("*")) {
        Pattern pattern = Pattern.compile(token.replace("*", ".*"));
        users.addAll(game.getServer().getOnlinePlayers().stream().filter(user -> pattern.matcher(user.getName()).matches()).collect(toList()));
        if (users.isEmpty()) {
            throw new TranslatedParserException(i18n.translate(invocation.getContext(Locale.class), NEGATIVE, "Player {user} not found!", token));
        }
        invocation.consume(1);
    } else {
        users.add((Player) invocation.providers().read(Player.class, Player.class, invocation));
    }
    return users;
}
Also used : Pattern(java.util.regex.Pattern) Player(org.spongepowered.api.entity.living.player.Player) ArrayList(java.util.ArrayList) TranslatedParserException(org.cubeengine.libcube.service.command.TranslatedParserException) ArrayList(java.util.ArrayList) List(java.util.List) Collectors.toList(java.util.stream.Collectors.toList)

Example 9 with TranslatedParserException

use of org.cubeengine.libcube.service.command.TranslatedParserException in project core by CubeEngine.

the class BlockTypeParser method parse.

@Override
public BlockType parse(Class aClass, CommandInvocation invocation) throws ParserException {
    String arg = invocation.consume(1);
    BlockType item = Sponge.getRegistry().getType(BlockType.class, arg.toLowerCase()).orElse(null);
    if (item == null) {
        throw new TranslatedParserException(i18n.translate(invocation.getContext(Locale.class), NEGATIVE, "ItemType {input#item} not found!", arg));
    }
    return item;
}
Also used : BlockType(org.spongepowered.api.block.BlockType) TranslatedParserException(org.cubeengine.libcube.service.command.TranslatedParserException)

Aggregations

TranslatedParserException (org.cubeengine.libcube.service.command.TranslatedParserException)9 Locale (java.util.Locale)4 ParseException (java.text.ParseException)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 Pattern (java.util.regex.Pattern)1 Collectors.toList (java.util.stream.Collectors.toList)1 LogLevel (org.cubeengine.logscribe.LogLevel)1 Announcement (org.cubeengine.module.shout.announce.Announcement)1 LookupData (org.cubeengine.module.vigil.data.LookupData)1 BlockType (org.spongepowered.api.block.BlockType)1 Player (org.spongepowered.api.entity.living.player.Player)1 ItemType (org.spongepowered.api.item.ItemType)1 ItemStack (org.spongepowered.api.item.inventory.ItemStack)1 Text (org.spongepowered.api.text.Text)1 Difficulty (org.spongepowered.api.world.difficulty.Difficulty)1