Package com.gmail.nossr50.config.mods

Source Code of com.gmail.nossr50.config.mods.CustomEntityConfig

package com.gmail.nossr50.config.mods;

import java.util.HashMap;

import org.bukkit.Material;
import org.bukkit.material.MaterialData;

import com.gmail.nossr50.config.ConfigLoader;
import com.gmail.nossr50.datatypes.mods.CustomEntity;

import org.apache.commons.lang.ClassUtils;

public class CustomEntityConfig extends ConfigLoader {
    public HashMap<String, CustomEntity> customEntityClassMap = new HashMap<String, CustomEntity>();
    public HashMap<String, CustomEntity> customEntityTypeMap  = new HashMap<String, CustomEntity>();

    protected CustomEntityConfig(String fileName) {
        super("mods", fileName);
        loadKeys();
    }

    @Override
    protected void loadKeys() {
        if (config.getConfigurationSection("Hostile") != null) {
            backup();
            return;
        }

        for (String entityName : config.getKeys(false)) {
            Class<?> clazz = null;
            String className = config.getString(entityName + ".Class", "");

            try {
                clazz = ClassUtils.getClass(className);
            }
            catch (ClassNotFoundException e) {
                plugin.getLogger().warning("Invalid class (" + className + ") detected for " + entityName + ".");
                plugin.getLogger().warning("This custom entity may not function properly.");
            }

            String entityTypeName = entityName.replace("_", ".");
            double xpMultiplier = config.getDouble(entityName + ".XP_Multiplier", 1.0D);

            boolean canBeTamed = config.getBoolean(entityName + ".Tameable");
            int tamingXp = config.getInt(entityName + ".Taming_XP");

            boolean canBeSummoned = config.getBoolean(entityName + ".CanBeSummoned");
            Material callOfTheWildMaterial = Material.matchMaterial(config.getString(entityName + ".COTW_Material", ""));
            byte callOfTheWildData = (byte) config.getInt(entityName + ".COTW_Material_Data");
            int callOfTheWildAmount = config.getInt(entityName + ".COTW_Material_Amount");

            if (canBeSummoned && (callOfTheWildMaterial == null || callOfTheWildAmount == 0)) {
                plugin.getLogger().warning("Incomplete Call of the Wild information. This entity will not be able to be summoned by Call of the Wild.");
                canBeSummoned = false;
            }

            CustomEntity entity = new CustomEntity(xpMultiplier, canBeTamed, tamingXp, canBeSummoned, (canBeSummoned ? new MaterialData(callOfTheWildMaterial, callOfTheWildData).toItemStack(1) : null), callOfTheWildAmount);

            customEntityTypeMap.put(entityTypeName, entity);
            customEntityClassMap.put(clazz == null ? null : clazz.getName(), entity);
        }
    }
}
TOP

Related Classes of com.gmail.nossr50.config.mods.CustomEntityConfig

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.