@Override
	public void onEnable()
	{
		loadConfig();
		
		PluginManager pm = getServer().getPluginManager();
		
		pSpout = pm.getPlugin("Spout");
		
		pTag = pm.getPlugin("TagAPI");
		
		formatTranslations();
		
		setupDatabase();
		
		pm.registerEvents(playerlistener, this);
		
		for (DNCCommands cmd : DNCCommands.values())
		{
			getCommand(cmd.getName()).setExecutor(executor);
		}
		
		if (pSpout == null)
		{
			this.bUseSpout = false;
			
			log.info(DNCStrings.dnc_long
					+ localization.getString(DNCStrings.INFO_NO_SPOUT));
		}
		else
		{
			this.bUseSpout = true;
			
			log.info(DNCStrings.dnc_long
					+ localization.getString(DNCStrings.INFO_SPOUT));
		}
		
		if (pTag != null && !bUseSpout)
		{
			bUseTagAPI = true;
			
			tagListener = new TagListener();
			
			pm.registerEvents(tagListener, this);
			
			log.info(DNCStrings.dnc_long
					+ localization.getString(DNCStrings.INFO_TAGAPI));
		}
		else if (pTag != null && bUseSpout)
		{
			bUseTagAPI = false;
			
			log.warning(DNCStrings.dnc_long
					+ localization.getString(DNCStrings.INFO_TAGAPI_CONFLICT));
		}
		else
		{
			bUseTagAPI = false;
			
			log.info(DNCStrings.dnc_long
					+ localization.getString(DNCStrings.INFO_NO_TAGAPI));
		}
		
		log.info(DNCStrings.dnc_long
				+ localization.getString(DNCStrings.INFO_DNC_COMMANDS));
		
		if (!isSaveOnQuit() && !isSaveOnRename())
		{
			log.severe(DNCStrings.dnc_long
					+ localization.getString(DNCStrings.INFO_SAVE_DISABLED));
		}
		
		log.info(DNCStrings.dnc_long
				+ localization.getString(DNCStrings.INFO_DNC_ENABLED));
	}