@Override
    public void onEnable()
    {
        this.log = getLogger();
        
        saveConfig();
        this.world = getConfig().getString("world", "world");
        this.ccost = getConfig().getInt("chunk-cost", 0);
        
        int id = getConfig().getInt("tool.id", 280);
        String name = getConfig().getString("tool.name", "Chunk Selector");
        List<String> lore = getConfig().getStringList("tool.lore");
        this.tool = new ItemStack(id);
        {
            ItemMeta meta = this.tool.getItemMeta();
            meta.setDisplayName(name);
            meta.setLore(lore);
            this.tool.setItemMeta(meta);
        }
        
        this.cmanager = new ChunkManager(this);
        this.cmanager.load();
        
        PluginManager pm = Bukkit.getPluginManager();
        
        if(Bukkit.getWorld(this.world) == null)
        {
            log.log(Level.SEVERE, "World {0} not found. Disabling plugin", this.world);
            pm.disablePlugin(this);
            return;
        }
        
        Plugin p = pm.getPlugin("Essentials");
        if(p == null)
        {
            log.log(Level.SEVERE, "Failed to hook into Essentials Eco. Disabling plugin");
            pm.disablePlugin(this);
            return;
        }
        
        // Initializing commands
        this.cmdTool = new CommandTool(this);
        this.cmdList = new CommandList(this);
        this.cmdSell = new CommandSell(this);
        this.cmdNoClaim = new CommandNoClaim(this);
        this.cmdAddMember = new CommandAddMember(this);
        this.cmdRemoveMember = new CommandRemoveMember(this);
        
        // Register
        pm.registerEvents(new PlayerListener(this, this.cmdTool), this);
        pm.registerEvents(new BlockListener(this), this);
        pm.registerEvents(new InventoryListener(this), this);
        
        new BukkitRunnable()
        {
            @Override
            public void run()
            {
                cmanager.save();
            }
        }.runTaskTimer(this, 300L, getConfig().getLong("save-interval", 300L)*20L);
    }