private void AddSecondaryFunctions(IConfigSource source, IRegistryCore registry)
        {
            m_rpc = new DustRPCHandler(this, source, registry);

            if (!m_doRemoteCalls)
            {
                m_options = new StarDustConfig(source.Configs["StarDustCurrency"]);

                IConfig handlerConfig = source.Configs["Handlers"];
                string  password      = handlerConfig.GetString("WireduxHandlerPassword",
                                                                handlerConfig.GetString("WebUIHandlerPassword", string.Empty));

                IHttpServer httpServer = registry.RequestModuleInterface <ISimulationBase>().GetHttpServer(
                    handlerConfig.GetUInt("WireduxHandlerPort", handlerConfig.GetUInt("WebUIHTTPPort", 8002)));

                if (password != "")
                {
                    httpServer.AddStreamHandler(new StarDustCurrencyPostHandlerWebUI("/StarDustWebUI", this, m_registry,
                                                                                     password, m_options));
                }

                if ((m_options.ATMGridURL != "") && (m_options.ATMPassword != ""))
                {
                    httpServer.AddStreamHandler(new StarDustCurrencyPostHandlerATM("/StardustATM_" + m_options.ATMGridURL, this, m_registry, m_options));
                }

                if ((m_options.GiveStipends) && (m_options.Stipend > 0))
                {
                    m_stupends = new GiveStipends(m_options, m_registry, this);
                }
            }
        }
 public void RegionLoaded(IScene scene)
 {
     if (m_connector == null)
     {
         return;
     }
     m_options = m_connector.GetConfig();
 }
 public StarDustCurrencyPostHandlerWebUI(string url, DustCurrencyService service, IRegistryCore registry, string password, StarDustConfig options)
     : base("POST", url)
 {
     m_options = options;
     m_starDustCurrencyService = service;
     m_registry = registry;
     m_password = Util.Md5Hash(password);
 }
 public StarDustConfig GetConfig()
 {
     if ((m_options == null) && (m_doRemoteCalls))
     {
         m_options = (StarDustConfig)DoRemote();
         if (m_options != null)
         {
             m_moneyModule.Options = m_options;
         }
     }
     return(m_options);
 }
Beispiel #5
0
 public StarDustCurrencyPostHandlerATM(string url, DustCurrencyService service, IRegistryCore registry, StarDustConfig options)
     : base("POST", url)
 {
     m_options = options;
     m_starDustCurrencyService = service;
     m_registry         = registry;
     m_password         = Util.Md5Hash(m_options.ATMPassword);
     BanIPs             = m_options.ATMIPBan.Split(';').ToList();
     AllowedIPs         = m_options.ATMIPAllow.Split(';').ToList();
     taskTimer.Interval = (120 * 60) * 60; // every 120 min
     taskTimer.Elapsed += taskTimer_Elapsed;
 }
Beispiel #6
0
        public void Initialize(IGenericData gd, IConfigSource source, IRegistryCore registry, string defaultConnectionString)
        {
            if (source.Configs["AuroraConnectors"].GetString("CurrencyConnector", "LocalConnector") != "LocalConnector")
            {
                return;
            }
            m_gd       = gd;
            m_registry = registry;

            if (source.Configs["Currency"].GetString("Module", "") != "StarDust")
            {
                return;
            }

            IConfig economyConfig = source.Configs["StarDustCurrency"];

            m_enabled = ((economyConfig != null) &&
                         (economyConfig.GetString("CurrencyModule", "Dust") == "Dust") &&
                         (economyConfig.GetString("CurrencyConnector", "Local") == "Local"));

            if (!m_enabled)
            {
                return;
            }

            if (source.Configs[Name] != null)
            {
                defaultConnectionString = source.Configs[Name].GetString("ConnectionString", defaultConnectionString);
            }

            gd.ConnectToDatabase(defaultConnectionString, "Currency", true);
            DataManager.RegisterPlugin(Name, this);

            m_options = new StarDustConfig(economyConfig);

            MainConsole.Instance.Commands.AddCommand("money add", "money add", "Adds money to a user's account.",
                                                     AddMoney);
            MainConsole.Instance.Commands.AddCommand("money set", "money set", "Sets the amount of money a user has.",
                                                     AddMoney);
            MainConsole.Instance.Commands.AddCommand("money get", "money get", "Gets the amount of money a user has.",
                                                     AddMoney);
        }
        private void EconomyDataRequestHandler(IClientAPI remoteClient)
        {
            bool wasnull = (m_options == null);

            if (wasnull)
            {
                m_options = new StarDustConfig();
            }
            remoteClient.SendEconomyData(0, m_objectCapacity, remoteClient.Scene.RegionInfo.ObjectCapacity,
                                         m_options.PriceEnergyUnit, m_options.PriceGroupCreate,
                                         m_options.PriceObjectClaim, m_options.PriceObjectRent,
                                         m_options.PriceObjectScaleFactor, m_options.PriceParcelClaim,
                                         m_options.PriceParcelClaimFactor,
                                         m_options.PriceParcelRent, m_options.PricePublicObjectDecay,
                                         m_options.PricePublicObjectDelete, m_options.PriceRentLight,
                                         m_options.PriceUpload,
                                         m_options.TeleportMinPrice, m_options.TeleportPriceExponent);
            if (wasnull)
            {
                m_options = null;
            }
        }
Beispiel #8
0
        public GiveStipends(StarDustConfig options, IRegistryCore registry, DustCurrencyService dustCurrencyService)
        {
            m_enabled = options.GiveStipends;
            if (!m_enabled)
            {
                return;
            }

            m_dustCurrencyService = dustCurrencyService;
            m_options             = options;
            m_registry            = registry;
            taskTimer.Interval    = 360000;
            taskTimer.Elapsed    += TimerElasped;
            m_scheduler           = registry.RequestModuleInterface <IScheduleService>();
            m_scheduler.Register("StipendsPayout", StupendsPayOutEvent);
            if (m_options.StipendsLoadOldUsers)
            {
                taskTimer.Enabled = true;
            }
            registry.RequestModuleInterface <ISimulationBase>().EventManager.RegisterEventHandler("DeleteUserInformation", DeleteUserInformation);
            registry.RequestModuleInterface <ISimulationBase>().EventManager.RegisterEventHandler("CreateUserInformation", CreateUserInformation);
            registry.RequestModuleInterface <ISimulationBase>().EventManager.RegisterEventHandler("UpdateUserInformation", CreateUserInformation);
        }