private void Game_PostInitialize(EventArgs e)
        {
            ServerApi.Hooks.GamePostInitialize.Deregister(this, this.Game_PostInitialize);

            if (!Directory.Exists(HouseRegionsPlugin.DataDirectory))
            {
                Directory.CreateDirectory(HouseRegionsPlugin.DataDirectory);
            }

            if (!this.InitConfig())
            {
                return;
            }

            this.HousingManager = new HousingManager(this.Trace, this.Config);
            this.InitUserInteractionHandler();

            this.hooksEnabled = true;
        }
        public UserInteractionHandler(
            PluginTrace trace, PluginInfo pluginInfo, Configuration config, HousingManager housingManager,
            Func<Configuration> reloadConfigurationCallback
            )
            : base(trace)
        {
            Contract.Requires<ArgumentNullException>(trace != null);
              Contract.Requires<ArgumentException>(!pluginInfo.Equals(PluginInfo.Empty));
              Contract.Requires<ArgumentNullException>(config != null);
              Contract.Requires<ArgumentNullException>(housingManager != null);
              Contract.Requires<ArgumentNullException>(reloadConfigurationCallback != null);

              this.PluginInfo = pluginInfo;
              this.Config = config;
              this.HousingManager = housingManager;
              this.ReloadConfigurationCallback = reloadConfigurationCallback;

              #region Command Setup
              base.RegisterCommand(
            new[] { "house", "housing" }, this.RootCommand_Exec, this.RootCommand_HelpCallback
              );
              #endregion
        }