Search in sources :

Example 96 with ConfigurationSection

use of org.bukkit.configuration.ConfigurationSection in project NoCheatPlus by NoCheatPlus.

the class BlockProperties method applyConfig.

/**
 * API access to read extra properties from files.
 *
 * @param config
 *            the config
 * @param pathPrefix
 *            the path prefix
 */
public static void applyConfig(final RawConfigFile config, final String pathPrefix) {
    // Breaking time overrides for specific side conditions.
    ConfigurationSection section = config.getConfigurationSection(pathPrefix + ConfPaths.SUB_BREAKINGTIME);
    for (final String input : section.getKeys(false)) {
        try {
            BlockProperties.setBreakingTimeOverride(new BlockBreakKey().fromString(input.trim()), section.getLong(input));
        } catch (Exception e) {
            StaticLog.logWarning("Bad breaking time override (" + pathPrefix + ConfPaths.SUB_BREAKINGTIME + "): " + input);
            StaticLog.logWarning(e);
        }
    }
    // Allow instant breaking.
    for (final String input : config.getStringList(pathPrefix + ConfPaths.SUB_ALLOWINSTANTBREAK)) {
        final Material id = RawConfigFile.parseMaterial(input);
        if (id == null) {
            StaticLog.logWarning("Bad block id (" + pathPrefix + ConfPaths.SUB_ALLOWINSTANTBREAK + "): " + input);
        } else {
            setBlockProps(id, instantType);
        }
    }
    // Override block flags.
    section = config.getConfigurationSection(pathPrefix + ConfPaths.SUB_OVERRIDEFLAGS);
    if (section != null) {
        final Map<String, Object> entries = section.getValues(false);
        boolean hasErrors = false;
        for (final Entry<String, Object> entry : entries.entrySet()) {
            final String key = entry.getKey();
            final Material id = RawConfigFile.parseMaterial(key);
            if (id == null) {
                StaticLog.logWarning("Bad block id (" + pathPrefix + ConfPaths.SUB_OVERRIDEFLAGS + "): " + key);
                continue;
            }
            final Object obj = entry.getValue();
            if (!(obj instanceof String)) {
                StaticLog.logWarning("Bad flags at " + pathPrefix + ConfPaths.SUB_OVERRIDEFLAGS + " for key: " + key);
                hasErrors = true;
                continue;
            }
            final Collection<String> split = StringUtil.split((String) obj, ' ', ',', '/', '|', '+', ';', '\t');
            long flags = 0;
            boolean error = false;
            for (String input : split) {
                input = input.trim();
                if (input.isEmpty()) {
                    continue;
                } else if (input.equalsIgnoreCase("default")) {
                    flags |= getBlockFlags(id);
                    continue;
                }
                try {
                    flags |= parseFlag(input);
                } catch (InputMismatchException e) {
                    StaticLog.logWarning("Bad flag at " + pathPrefix + ConfPaths.SUB_OVERRIDEFLAGS + " for key " + key + " (skip setting flags for this block): " + input);
                    error = true;
                    hasErrors = true;
                    break;
                }
            }
            if (error) {
                continue;
            }
            setBlockFlags(id, flags);
        }
        if (hasErrors) {
            StaticLog.logInfo("Overriding block-flags was not entirely successful, all available flags: \n" + StringUtil.join(flagNameMap.values(), "|"));
        }
    }
}
Also used : Material(org.bukkit.Material) InputMismatchException(java.util.InputMismatchException) InputMismatchException(java.util.InputMismatchException) ConfigurationSection(org.bukkit.configuration.ConfigurationSection)

Example 97 with ConfigurationSection

use of org.bukkit.configuration.ConfigurationSection in project Essentials by EssentialsX.

the class EssentialsConf method getItemStack.

@Override
public ItemStack getItemStack(final String path) {
    final ItemStack stack = new ItemStack(Material.valueOf(getString(path + ".type", "AIR")), getInt(path + ".amount", 1), (short) getInt(path + ".damage", 0));
    final ConfigurationSection enchants = getConfigurationSection(path + ".enchant");
    if (enchants != null) {
        for (String enchant : enchants.getKeys(false)) {
            final Enchantment enchantment = Enchantment.getByName(enchant.toUpperCase(Locale.ENGLISH));
            if (enchantment == null) {
                continue;
            }
            final int level = getInt(path + ".enchant." + enchant, enchantment.getStartLevel());
            stack.addUnsafeEnchantment(enchantment, level);
        }
    }
    return stack;
/*
         * ,
		 * (byte)getInt(path + ".data", 0)
		 */
}
Also used : ItemStack(org.bukkit.inventory.ItemStack) Enchantment(org.bukkit.enchantments.Enchantment) ConfigurationSection(org.bukkit.configuration.ConfigurationSection)

Example 98 with ConfigurationSection

use of org.bukkit.configuration.ConfigurationSection in project Essentials by EssentialsX.

the class Kits method listKits.

public String listKits(final net.ess3.api.IEssentials ess, final User user) throws Exception {
    try {
        final ConfigurationSection kits = config.getConfigurationSection("kits");
        final StringBuilder list = new StringBuilder();
        for (String kitItem : kits.getKeys(false)) {
            if (user == null) {
                list.append(" ").append(capitalCase(kitItem));
            } else if (user.isAuthorized("essentials.kits." + kitItem.toLowerCase(Locale.ENGLISH))) {
                String cost = "";
                String name = capitalCase(kitItem);
                BigDecimal costPrice = new Trade("kit-" + kitItem.toLowerCase(Locale.ENGLISH), ess).getCommandCost(user);
                if (costPrice.signum() > 0) {
                    cost = tl("kitCost", NumberUtil.displayCurrency(costPrice, ess));
                }
                Kit kit = new Kit(kitItem, ess);
                double nextUse = kit.getNextUse(user);
                if (nextUse == -1 && ess.getSettings().isSkippingUsedOneTimeKitsFromKitList()) {
                    continue;
                } else if (nextUse != 0) {
                    name = tl("kitDelay", name);
                }
                list.append(" ").append(name).append(cost);
            }
        }
        return list.toString().trim();
    } catch (Exception ex) {
        throw new Exception(tl("kitError"), ex);
    }
}
Also used : BigDecimal(java.math.BigDecimal) ConfigurationSection(org.bukkit.configuration.ConfigurationSection)

Example 99 with ConfigurationSection

use of org.bukkit.configuration.ConfigurationSection in project Essentials by EssentialsX.

the class UserData method _getKitTimestamps.

private Map<String, Long> _getKitTimestamps() {
    if (config.isConfigurationSection("timestamps.kits")) {
        final ConfigurationSection section = config.getConfigurationSection("timestamps.kits");
        final Map<String, Long> timestamps = new HashMap<String, Long>();
        for (String command : section.getKeys(false)) {
            if (section.isLong(command)) {
                timestamps.put(command.toLowerCase(Locale.ENGLISH), section.getLong(command));
            } else if (section.isInt(command)) {
                timestamps.put(command.toLowerCase(Locale.ENGLISH), (long) section.getInt(command));
            }
        }
        return timestamps;
    }
    return new HashMap<String, Long>();
}
Also used : ConfigurationSection(org.bukkit.configuration.ConfigurationSection)

Example 100 with ConfigurationSection

use of org.bukkit.configuration.ConfigurationSection in project Essentials by EssentialsX.

the class Commandcreatekit method run.

// /createkit <name> <delay>
@Override
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception {
    if (args.length != 2) {
        throw new NotEnoughArgumentsException();
    }
    // Command handler will auto fail if this fails.
    long delay = Long.valueOf(args[1]);
    String kitname = args[0];
    ItemStack[] items = user.getBase().getInventory().getContents();
    List<String> list = new ArrayList<>();
    for (ItemStack is : items) {
        if (is != null && is.getType() != null && is.getType() != Material.AIR) {
            String serialized = ess.getItemDb().serialize(is);
            list.add(serialized);
        }
    }
    // Some users might want to directly write to config knowing the consequences. *shrug*
    if (!ess.getSettings().isPastebinCreateKit()) {
        ess.getKits().addKit(kitname, list, delay);
        user.sendMessage(tl("createdKit", kitname, list.size(), delay));
    } else {
        ConfigurationSection config = new MemoryConfiguration();
        config.set("kits." + kitname + ".delay", delay);
        config.set("kits." + kitname + ".items", list);
        final Yaml yaml = new Yaml(yamlConstructor, yamlRepresenter, yamlOptions);
        String fileContents = "# Copy the kit code below into the kits section in your config.yml file\n";
        fileContents += yaml.dump(config.getValues(false));
        uploadPaste(user.getSource(), kitname, delay, fileContents);
    }
}
Also used : ArrayList(java.util.ArrayList) MemoryConfiguration(org.bukkit.configuration.MemoryConfiguration) ItemStack(org.bukkit.inventory.ItemStack) Yaml(org.yaml.snakeyaml.Yaml) ConfigurationSection(org.bukkit.configuration.ConfigurationSection)

Aggregations

ConfigurationSection (org.bukkit.configuration.ConfigurationSection)263 ArrayList (java.util.ArrayList)37 HashMap (java.util.HashMap)29 MemoryConfiguration (org.bukkit.configuration.MemoryConfiguration)27 ItemStack (org.bukkit.inventory.ItemStack)26 File (java.io.File)22 YamlConfiguration (org.bukkit.configuration.file.YamlConfiguration)22 IOException (java.io.IOException)21 Map (java.util.Map)18 Mage (com.elmakers.mine.bukkit.api.magic.Mage)17 Material (org.bukkit.Material)16 Nullable (javax.annotation.Nullable)14 Location (org.bukkit.Location)13 FileConfiguration (org.bukkit.configuration.file.FileConfiguration)11 MaterialAndData (com.elmakers.mine.bukkit.block.MaterialAndData)10 Player (org.bukkit.entity.Player)10 EntityType (org.bukkit.entity.EntityType)9 List (java.util.List)8 SpellTemplate (com.elmakers.mine.bukkit.api.spell.SpellTemplate)7 InvalidConfigurationException (org.bukkit.configuration.InvalidConfigurationException)7