public override void Initialize()
        {
            ConfigsFolder = ModuleFolder;
            ConfigFile    = Path.Combine(ConfigsFolder, "Rust++.cfg");
            Core.Init();
            Core.config = new IniParser(ConfigFile);

            if (Core.config == null)
            {
                Logger.LogError("[RPP] Can't load config!");
                return;
            }
            string chatname = Core.config.GetSetting("Settings", "chatname");

            if (!string.IsNullOrEmpty(chatname))
            {
                Core.Name = Core.config.GetSetting("Settings", "chatname");
            }
            if (Core.config.ContainsSetting("Settings", "joinmsg"))
            {
                JoinMsg = Core.config.GetSetting("Settings", "joinmsg");
            }
            if (Core.config.ContainsSetting("Settings", "leavemsg"))
            {
                LeaveMsg = Core.config.GetSetting("Settings", "leavemsg");
            }
            if (Core.config.ContainsSetting("Settings", "startermsg"))
            {
                StarterMsg = Core.config.GetSetting("Settings", "startermg");
            }
            if (Core.config.ContainsSetting("Settings", "startercdmsg"))
            {
                StarterCDMsg = Core.config.GetSetting("Settings", "startercdmsg");
            }
            TimedEvents.startEvents();
            AuthComponent.Init();
            Fougerite.Hooks.OnDoorUse            += DoorUse;
            Fougerite.Hooks.OnEntityHurt         += EntityHurt;
            Fougerite.Hooks.OnPlayerConnected    += PlayerConnect;
            Fougerite.Hooks.OnPlayerDisconnected += PlayerDisconnect;
            Fougerite.Hooks.OnPlayerHurt         += PlayerHurt;
            Fougerite.Hooks.OnPlayerKilled       += PlayerKilled;
            Fougerite.Hooks.OnServerShutdown     += OnServerShutdown;
            Fougerite.Hooks.OnShowTalker         += ShowTalker;
            Fougerite.Hooks.OnChatRaw            += ChatReceived;
            Fougerite.Hooks.OnChat        += Chat;
            Fougerite.Hooks.OnFallDamage  += OnFallDamage;
            Fougerite.Hooks.OnServerSaved += OnServerSaved;
            Fougerite.Hooks.OnEntityDeployedWithPlacer += OnEntityDeployedWithPlacer;
            Server.GetServer().LookForRustPP();
            RaidComponent.initComponent();
            Components.LanguageComponent.LanguageComponent.InitComponent();
            Components.EconomyComponent.EconomyComponent.InitComponent();
            Components.AdminComponent.AdminComponent.InitComponent();
            Components.FriendComponent.FriendComponent.InitComponent();
        }
        public override void DeInitialize()
        {
            Logger.LogDebug("DeInitialize RPP");

            Fougerite.Hooks.OnDoorUse    -= DoorUse;
            Fougerite.Hooks.OnEntityHurt -= EntityHurt;
            Fougerite.Hooks.OnEntityDeployedWithPlacer -= OnEntityDeployedWithPlacer;
            Fougerite.Hooks.OnPlayerConnected          -= PlayerConnect;
            Fougerite.Hooks.OnPlayerDisconnected       -= PlayerDisconnect;
            Fougerite.Hooks.OnPlayerHurt     -= PlayerHurt;
            Fougerite.Hooks.OnPlayerKilled   -= PlayerKilled;
            Fougerite.Hooks.OnServerShutdown -= OnServerShutdown;
            Fougerite.Hooks.OnShowTalker     -= ShowTalker;
            Fougerite.Hooks.OnChatRaw        -= ChatReceived;
            Fougerite.Hooks.OnChat           -= Chat;
            Fougerite.Hooks.OnFallDamage     -= OnFallDamage;
            Fougerite.Hooks.OnServerSaved    -= OnServerSaved;
            Components.AuthComponent.AuthComponent.Exit();
            TimedEvents.timer.Stop();
            RaidComponent.destroyComponent();
            Components.FriendComponent.FriendComponent.DestroyComponent();

            Logger.LogDebug("DeInitialized RPP");
        }