@Override
    public void onEnable() {
        log.info(String.format("[%s] - Initializing...", getDescription().getName()));

        log.info(String.format("[%s] - Checking for Vault...", getDescription().getName()));
        
        // Set up Vault
        if(!setupPermissions()) {
            log.info(String.format("[%s] - Could not find Vault dependency, disabling.", getDescription().getName()));
            this.getPluginLoader().disablePlugin(this);
            return;
        }

        //Check for CommandBook... Our Mutes clash big time.
        Plugin plugCB = getServer().getPluginManager().getPlugin("CommandBook");
        if(plugCB!=null)
        {
            log.info(String.format("[%s] - WARNING!!!! You need to disable CommandBook messaging or Mutes will error everytime.", getDescription().getName()));
        }
        
        log.info(String.format("[%s] - Checking for SimpleClans...", getDescription().getName()));
        
        Plugin plug = getServer().getPluginManager().getPlugin("SimpleClans2");
       
        // Set up simpleclans
        if(plug==null) {
            log.info(String.format("[%s] - Could not find Simpleclans dependency, disabling.", getDescription().getName()));
        }
        else
        {
        	simplelclans=true;
        	sc = ((SimpleClans) plug);
        	
        
        }
        
        setupChat();

        
        // Log completion of initialization
        getLogger().info(String.format("[%s] - Enabled with version %s", getDescription().getName(), getDescription().getVersion()));
        
        // Get config and handle
        
     // Configuration
     		try {
     			
     			fc= getConfig(); 					
     			//saveConfig();
     			if(fc.getList("channels") == null)
     			{
     				getConfig().options().copyDefaults(true);
     				saveDefaultConfig();
     				reloadConfig();
     			}
     		
     		} catch (Exception ex) {
     			getLogger().log(Level.SEVERE,
     					"[MumbleChat] Could not load configuration!", ex);
     		}
     	   

        log.info(String.format("[%s] - Registering Listeners", getDescription().getName()));

        // Channel information reference
        ccInfo = new ChatChannelInfo(this);
        
        if(ccInfo == null)
        	 log.info(String.format("[%s] - Configuration is BAD!", getDescription().getName()));

        
        if(simplelclans)
        {
        //	super.getServer().getPluginManager().registerEvents(new SimpleClansListener(this, ccInfo), this);
        	//super.getServer().getPluginManager().registerEvents(new SimpleClansListener(this, ccInfo), this);
        }
        
        chatListener = new ChatListener(this, ccInfo);
        PluginManager pluginManager = getServer().getPluginManager();
        pluginManager.registerEvents(chatListener, this);
       

        loginListener = new LoginListener(this, ccInfo);
        pluginManager.registerEvents(loginListener, this);
        
       

        //Future enhancement testing...
        //mp = new MumblePermissions(this,cci);
        //mp.PermissionsExAvailable();

        chatExecutor = new ChatCommand(this, ccInfo);
        pluginManager.registerEvents(chatExecutor, this);
        
        log.info(String.format("[%s] - Attaching to Executors", getDescription().getName()));
        
        muteExecutor = new MuteCommandExecutor(this, ccInfo);
        tellExecutor = new TellCommandExecutor(this, ccInfo);

        getCommand("tell").setExecutor(tellExecutor);
        getCommand("ignore").setExecutor(tellExecutor);
        getCommand("whisper").setExecutor(tellExecutor);

        getCommand("channel").setExecutor(chatExecutor);
        getCommand("leave").setExecutor(chatExecutor);
        getCommand("join").setExecutor(chatExecutor);
        getCommand("chlist").setExecutor(chatExecutor);
        getCommand("chwho").setExecutor(chatExecutor);

        getCommand("mute").setExecutor(muteExecutor);
        getCommand("unmute").setExecutor(muteExecutor);
    }