public static void OnBotVarUpdatedGuild(ulong guildId, BotVar botVar)
 {
     if (botVar.TryConvert(out EventLoggerSettings newSettings))
     {
         GuildEventLoggerSettings[guildId] = newSettings;
     }
 }
示例#2
0
 private static void OnBotVarUpdated(BotVar botvar)
 {
     if (!string.IsNullOrWhiteSpace(botvar.String))
     {
         storedMessagePrefix = botvar.String;
     }
 }
示例#3
0
 private void OnBotVarUpdate(ulong guildId, BotVar var)
 {
     if (var.IsString && !string.IsNullOrEmpty(var.String))
     {
         Prefix = var.String;
     }
 }
示例#4
0
 private static void OnBotVarUpdated(ulong guildid, BotVar var)
 {
     if (var.Identifier == "defaultguildchannelmeta" && var.TryConvert(out GuildChannelMeta newGuildDefault))
     {
         guildDefaults[guildid] = newGuildDefault;
     }
 }
 private void OnBotVarUpdate(BotVar var)
 {
     if (var.IsString && !string.IsNullOrEmpty(var.String))
     {
         prefix = var.String;
     }
 }
示例#6
0
        internal static void LoadSettings(ulong guildId, BotVar var)
        {
            if (var.IsGeneric)
            {
                JSONContainer json = var.Generic;

                if (json.TryGetField(JSON_ENABLEDEBUG, out JSONContainer debugSettings))
                {
                    if (debugSettings.IsArray)
                    {
                        for (int i = 0; i < debugSettings.Array.Count && i < debugLogging.Length; i++)
                        {
                            debugLogging[i] = debugSettings.Array[i].Boolean;
                        }
                    }
                }
                json.TryGetField(JSON_MODERATORROLE, out AdminRole);
                json.TryGetField(JSON_WELCOMINGMESSAGE, out welcomingMessage, welcomingMessage);
                json.TryGetField(JSON_MUTEROLE, out MuteRole);
                if (json.TryGetField(JSON_CHANNELINFOS, out JSONContainer guildChannelInfoContainer))
                {
                    GuildChannelHelper.FromJSON(guildChannelInfoContainer);
                }
                if (json.TryGetArrayField(JSON_AUTOASSIGNROLEIDS, out JSONContainer autoAssignRoles))
                {
                    foreach (JSONField idField in autoAssignRoles.Array)
                    {
                        if (idField.IsNumber && !idField.IsFloat && !idField.IsSigned)
                        {
                            EventLogger.AutoAssignRoleIds.Add(idField.Unsigned_Int64);
                        }
                    }
                }
            }
        }
示例#7
0
        private static void SetupBotVarDefaults()
        {
            BotVar defaultColor = new BotVar("embedcolor", new ColorBotVar(new Color(255, 255, 255)));

            BotVarCollection.SetDefault(defaultColor);
            BotVarManager.GlobalBotVars.SubscribeToBotVarUpdateEvent(OnBotVarUpdated, "botadmins", "embedcolor");

            MessageHandler.SetupBotVarSubscription();
            ExceptionHandler.SetupBotVar();

            OnBotVarDefaultSetup?.Invoke();
        }
 private static void OnBotVarUpdated(ulong guildId, BotVar var)
 {
     if (var.IsString)
     {
         if (var.Identifier == "inara_appname")
         {
             inara_appname = var.String;
         }
         else if (var.Identifier == "inara_apikey")
         {
             inara_apikey = var.String;
         }
     }
 }
示例#9
0
        private static void OnBotVarUpdated(ulong guildId, BotVar var)
        {
            switch (var.Identifier)
            {
            case "botadmins":
                if (var.TryConvert(out ULongHashsetBotVar newBotAdmins))
                {
                    botAdmins = newBotAdmins;
                }
                break;

            case "embedcolor":
                if (var.TryConvert(out ColorBotVar color))
                {
                    EmbedColor = color.C;
                }
                break;
            }
        }
示例#10
0
        private static void OnBotVarsUpdated(BotVar var)
        {
            if (var.IsUnsignedInt64)
            {
                switch (var.Identifier)
                {
                case "exceptionhandler.guildid":
                    GuildId = var.UInt64;
                    break;

                case "exceptionhandler.roleid":
                    RoleId = var.UInt64;
                    break;

                case "exceptionhandler.channelid":
                    ChannelId = var.UInt64;
                    break;
                }
            }
        }
示例#11
0
        protected override Task <ArgumentParseResult> ParseArguments(IDMCommandContext context)
        {
            if (context.Arguments.TotalCount == 0)
            {
                mode = CommandMode.listall;
                return(Task.FromResult(ArgumentParseResult.DefaultNoArguments));
            }

            if (context.Arguments.First.ToLower() == "save")
            {
                mode = CommandMode.save;
                return(Task.FromResult(ArgumentParseResult.SuccessfullParse));
            }

            BotVarId = context.Arguments.First;
            BotVarManager.TryGetBotVar(BotVarId, out BotVar);

            if (context.Arguments.TotalCount == 1)
            {
                mode = CommandMode.get;
                if (BotVar.IsDefined)
                {
                    return(Task.FromResult(ArgumentParseResult.SuccessfullParse));
                }
                else
                {
                    return(Task.FromResult(new ArgumentParseResult(Arguments[0], $"Couldn't locate a config variable named `{BotVarId}`!")));
                }
            }
            else
            {
                mode = CommandMode.set;
            }

            context.Arguments.Index++;

            if (context.Arguments.First.ToLower() == "delete")
            {
                mode = CommandMode.delete;
                if (!BotVar.IsDefined)
                {
                    return(Task.FromResult(new ArgumentParseResult(Arguments[0], $"Couldn't locate a config variable named `{BotVarId}`!")));
                }
                else
                {
                    return(Task.FromResult(ArgumentParseResult.SuccessfullParse));
                }
            }

            if (context.Arguments.TotalCount == 2)
            {
                return(Task.FromResult(new ArgumentParseResult(Arguments[2], "Cannot assign an empty value!")));
            }

            if (!Enum.TryParse(context.Arguments.First, true, out assignType))
            {
                return(Task.FromResult(new ArgumentParseResult(Arguments[1])));
            }

            if (assignType == BotVarType.Undefined)
            {
                return(Task.FromResult(new ArgumentParseResult(Arguments[1])));
            }

            context.Arguments.Index++;

            value = context.Arguments.First;

            switch (assignType)
            {
            case BotVarType.UInt64:
                if (ulong.TryParse(value, out ulong uint64Val))
                {
                    BotVar = new BotVar(BotVarId, uint64Val);
                }
                else
                {
                    return(Task.FromResult(new ArgumentParseResult(Arguments[2])));
                }
                break;

            case BotVarType.Int64:
                if (long.TryParse(value, out long int64Val))
                {
                    BotVar = new BotVar(BotVarId, int64Val);
                }
                else
                {
                    return(Task.FromResult(new ArgumentParseResult(Arguments[2])));
                }
                break;

            case BotVarType.Float64:
                if (double.TryParse(value, out double float64Val))
                {
                    BotVar = new BotVar(BotVarId, float64Val);
                }
                else
                {
                    return(Task.FromResult(new ArgumentParseResult(Arguments[2])));
                }
                break;

            case BotVarType.String:
                BotVar = new BotVar(BotVarId, value);
                break;

            case BotVarType.Bool:
                if (bool.TryParse(value, out bool boolVal))
                {
                    BotVar = new BotVar(BotVarId, boolVal);
                }
                else
                {
                    return(Task.FromResult(new ArgumentParseResult(Arguments[2])));
                }
                break;

            case BotVarType.Generic:
                if (JSONContainer.TryParse(value, out JSONContainer json, out string error))
                {
                    BotVar = new BotVar(BotVarId, json);
                }
                else
                {
                    return(Task.FromResult(new ArgumentParseResult(Arguments[2], error)));
                }
                break;