private bool IsRocketModRole(string id)
        {
            if (!RocketModIntegration.IsRocketModReady())
            {
                return(false);
            }

            return(R.Permissions.GetGroup(id) != null);
        }
Example #2
0
 private bool RocketModIntegrationEnabled()
 {
     // todo: check from config
     return(RocketModIntegration.IsRocketModReady());
 }
Example #3
0
        private bool EnsureUconomyReady()
        {
            if (m_UconomyReady)
            {
                return(true);
            }

            if (!RocketModIntegration.IsRocketModReady())
            {
                return(false);
            }

            var uconomyAssembly = UconomyIntegration.GetUconomyAssembly();

            if (uconomyAssembly == null)
            {
                return(false);
            }

            var uconomyType = uconomyAssembly.GetType("fr34kyn01535.Uconomy.Uconomy");

            if (uconomyType == null)
            {
                throw new Exception($"Failed to find Uconomy type in {uconomyAssembly}");
            }

            var instanceField = uconomyType.GetField("Instance", c_BindingFlags);

            if (instanceField == null)
            {
                throw new Exception($"Failed to find Instance field in {uconomyType}");
            }

            m_DatabaseField         = uconomyType.GetField("Database", c_BindingFlags);
            m_DatabaseType          = m_DatabaseField.FieldType;
            m_GetBalanceMethod      = m_DatabaseType.GetMethod("GetBalance", c_BindingFlags);
            m_IncreaseBalanceMethod = m_DatabaseType.GetMethod("IncreaseBalance", c_BindingFlags);

            var uconomyConfigurationType = uconomyAssembly.GetType("fr34kyn01535.Uconomy.UconomyConfiguration");

            m_MoneySymbolField = uconomyConfigurationType.GetField("MoneySymbol", c_BindingFlags);
            m_MoneyNameField   = uconomyConfigurationType.GetField("MoneyName", c_BindingFlags);

            m_UconomyInstance = instanceField.GetValue(null);
            if (m_UconomyInstance == null)
            {
                return(false);
            }

            var pluginType = typeof(RocketPlugin <>).MakeGenericType(uconomyConfigurationType);
            var pluginConfigurationAssetField    = pluginType.GetField("configuration", c_BindingFlags);
            var pluginConfigurationAssetInstance = pluginConfigurationAssetField.GetValue(m_UconomyInstance);

            var uconomyConfigurationInstanceProperty = pluginConfigurationAssetField.FieldType.GetProperty("Instance", c_BindingFlags);

            m_UconomyConfigurationInstance = uconomyConfigurationInstanceProperty.GetGetMethod()
                                             .Invoke(pluginConfigurationAssetInstance, new object[0]);

            m_DatabaseInstance = m_DatabaseField.GetValue(m_UconomyInstance);
            if (m_DatabaseInstance == null)
            {
                return(false);
            }

            PatchUconomy();
            m_UconomyReady = true;
            return(true);
        }