FreeMoney.FreeMoneyModule.Initialise C# (CSharp) Method

Initialise() public method

public Initialise ( IConfigSource source ) : void
source IConfigSource
return void
        public void Initialise(IConfigSource source)
        {
            m_log.Info ("[FreeMoney] Initialising.");
            m_config = source;

            IConfig config = m_config.Configs["FreeMoney"];

            if (null == config) {
                m_log.Warn ("[FreeMoney] No configuration specified. Skipping.");
                return;
            }

            if (!config.GetBoolean ("Enabled", false))
            {
                m_log.Info ("[FreeMoney] Not enabled. (to enable set \"Enabled = true\" in [FreeMoney])");
                return;
            }

            m_allowPayPal = config.GetBoolean("AllowPayPal", false);
            m_allowBitcoin = config.GetBoolean("AllowBitcoin", false);

            if (!m_allowBitcoin && !m_allowPayPal) {
                m_log.Warn ("[FreeMoney] No payment methods permitted - PayPal and Bitcoin both disabled. Skipping.");
                return;
            }

            // If we use PayPal, we need a page allowing the user to start a PayPal transaction or choose a Bitcoin one.
            // If we only do Bitcoin, we can skip that page and take them straight to a Bitcoin transaction.
            m_directToBitcoin = ( m_allowBitcoin && !m_allowPayPal );

            m_ppurl = config.GetString ("FreeMoneyURL", m_ppurl);
            m_ppprotocol = config.GetString ("FreeMoneyProtocol", m_ppprotocol);
            m_pprequesturi = config.GetString ("FreeMoneyRequestURI", m_pprequesturi);

            m_allowGridEmails = config.GetBoolean ("AllowGridEmails", false);
            m_allowGroups = config.GetBoolean ("AllowGroups", false);
            m_balanceOnEntry = config.GetBoolean ("BalanceOnEntry", true);
            m_messageOnEntry = config.GetString ("MessageOnEntry", m_messageOnEntry);

            IConfig startupConfig = m_config.Configs["Startup"];

            if (startupConfig != null)
            {
                m_enabled = (startupConfig.GetString("economymodule", "FreeMoneyModule") == "FreeMoneyModule");

                if (!m_enabled) {
                    m_log.Info ("[FreeMoney] Not enabled. (to enable set \"economymodule = FreeMoneyMoneyModule\" in [Startup])");
                    return;
                }
            }

            IConfig economyConfig = m_config.Configs["Economy"];

            if (economyConfig != null)
            {
                PriceEnergyUnit = economyConfig.GetInt("PriceEnergyUnit", 100);
                PriceObjectClaim = economyConfig.GetInt("PriceObjectClaim", 10);
                PricePublicObjectDecay = economyConfig.GetInt("PricePublicObjectDecay", 4);
                PricePublicObjectDelete = economyConfig.GetInt("PricePublicObjectDelete", 4);
                PriceParcelClaim = economyConfig.GetInt("PriceParcelClaim", 1);
                PriceParcelClaimFactor = economyConfig.GetFloat("PriceParcelClaimFactor", 1f);
                PriceUpload = economyConfig.GetInt("PriceUpload", 0);
                PriceRentLight = economyConfig.GetInt("PriceRentLight", 5);
                TeleportMinPrice = economyConfig.GetInt("TeleportMinPrice", 2);
                TeleportPriceExponent = economyConfig.GetFloat("TeleportPriceExponent", 2f);
                EnergyEfficiency = economyConfig.GetFloat("EnergyEfficiency", 1);
                PriceObjectRent = economyConfig.GetFloat("PriceObjectRent", 1);
                PriceObjectScaleFactor = economyConfig.GetFloat("PriceObjectScaleFactor", 10);
                PriceParcelRent = economyConfig.GetInt("PriceParcelRent", 1);
                PriceGroupCreate = economyConfig.GetInt("PriceGroupCreate", -1);
            }

            m_log.Info ("[FreeMoney] Getting btc config.");

            m_gridCurrencyCode = config.GetString("GridCurrencyCode", "USD");
            m_gridCurrencyText = config.GetString("GridCurrencyText", "US$");
            m_gridCurrencySmallDenominationText  = config.GetString("GridCurrencySmallDenominationText", "US$ cents");
            m_gridCurrencySmallDenominationFraction = Convert.ToDecimal(config.GetFloat("GridCurrencySmallDenominationFraction", 100.0f));

            m_btcNumberOfConfirmationsRequired = config.GetInt("BitcoinNumberOfConfirmations", 0);

            m_btcconfig.Add("bitcoin_db_host", config.GetString ("BitcoinDBHost", "localhost"));
            m_btcconfig.Add("bitcoin_db_name", config.GetString ("BitcoinDBName", "opensim_btc"));
            m_btcconfig.Add("bitcoin_db_user", config.GetString ("BitcoinDBUser", "opensim_btc_user"));
            m_btcconfig.Add("bitcoin_db_password", config.GetString ("BitcoinDBPassword", ""));

            m_btcconfig.Add("bitcoin_external_url", config.GetString ("BitcoinServerExternalURL", ""));

            m_btcconfig.Add("bitcoin_address_for_email_payer_name", config.GetString ("BitcoinEmailServicePayerName", "OpenSim Bitcoin Processor"));
            m_btcconfig.Add("bitcoin_address_for_email_message_text", config.GetString ("BitcoinEmailServiceMessageText", "To make payments go directly to your own wallet in future instead of via email, please login and register some Bitcoin addresses."));

            m_btcconfig.Add("bitcoin_address_for_email_service_1_url", config.GetString ("BitcoinEmailService1URL", "http://coinapult.com/payload/send/"));

            m_btcconfig.Add("bitcoin_ping_service_1_agent_name", config.GetString ("BitcoinConfirmationService1AgentName", "opensim_bitcoin_dev_agent"));
            m_btcconfig.Add("bitcoin_ping_service_1_base_url", config.GetString ("BitcoinConfirmationService1BaseURL", ""));

            // If you put an agent ID in the config, this will save the money server somework.
            m_btcconfig.Add("bitcoin_ping_service_1_agent_id", config.GetString ("BitcoinConfirmationService1AgentID", ""));

            m_btcconfig.Add("bitcoin_ping_service_1_accesskey", config.GetString ("BitcoinConfirmationService1AccessKey", ""));
            m_btcconfig.Add("bitcoin_ping_service_1_verificationkey", config.GetString ("BitcoinConfirmationService1VerificationKey", ""));

            m_btcconfig.Add("bitcoin_exchange_rate_service_1_url", config.GetString ("BitcoinExchangeRateService1", "http://bitcoincharts.com/t/weighted_prices.json"));

            // Fixed exchange rate.
            // If this is zero, we'll use an external lookup service.
            m_btcconfig.Add("bitcoin_exchange_rate", config.GetString("BitcoinExchangeRate", "0"));

            //string baseUrl = m_scenes[0].RegionInfo.ExternalHostName + ":" + m_scenes[0].RegionInfo.HttpPort;
            m_log.Info ("[FreeMoney] Got btc config.");

            m_connectionString = "" +
                "Server="  + m_btcconfig["bitcoin_db_host"]+";" +
                "Database="+ m_btcconfig["bitcoin_db_name"]+";" +
                "User ID=" + m_btcconfig["bitcoin_db_user"]+";" +
                "Password="+ m_btcconfig["bitcoin_db_password"]+";" +
                "Pooling=false";

            m_log.Info ("[FreeMoney] Loaded.");

            m_enabled = true;
        }