Exemplo n.º 1
0
        public async Task AssignExistingRole(string id, string roletoadd)
        {
            var roleid = ulong.Parse(roletoadd);

            var userid = Convert.ToUInt64(id);
            var guild  = await discord.GetGuildAsync(718945666348351570);

            var user = await guild.GetMemberAsync(userid);

            if (user.Roles.Any(tr => tr.Name.Equals(roletoadd)))
            {
                return;
            }
            await discordrest.AddGuildMemberRoleAsync(718945666348351570, userid, roleid, "");
        }
Exemplo n.º 2
0
        private async Task AssignLinkedRole(LinkCompleteEventArgs args)
        {
            var db = _services.GetRequiredService <QAIDatabaseModel>();

            var guild = await db.FindAsync <DiscordGuildConfiguration>(args.Guild);

            if (guild is not null &&
                guild.RoleWhenLinked is not null &&
                args.Complete)
            {
                try
                {
                    await Rest.AddGuildMemberRoleAsync(guild.GuildId, args.Link?.DiscordId ?? 0, guild.RoleWhenLinked.Value, "Account Linked.");
                }
                catch (Exception ex)
                {
                    _logger.LogWarning(ex, "An error occoured when attempting to assign the linked role.");
                }
            }
        }
Exemplo n.º 3
0
        public async Task Assign(CommandContext ctx, string message)
        {
            var intakeStrings = message.Split(' ').ToList();
            var classes       = "";
            var id            = intakeStrings[0];

            intakeStrings.RemoveAt(0);
            foreach (var elem in intakeStrings)
            {
                classes = classes + elem + " ";
            }

            var rolestoadd = classes.Split(',');
            var token      = File.ReadAllText(@"token.txt");

            var discord = new DiscordRestClient(new DiscordConfiguration
            {
                Token                 = token,
                TokenType             = TokenType.Bot,
                UseInternalLogHandler = true,
                LogLevel              = LogLevel.Debug
            });
            var userid = Convert.ToUInt64(id);
            var guild  = await discord.GetGuildAsync(718945666348351570);

            foreach (var elem in rolestoadd)
            {
                var trimmed = elem.Trim();
                if (guild.Roles.Any(tr => tr.Value.Name.Equals(trimmed)))
                {
                    var roleid = guild.Roles.FirstOrDefault(x => x.Value.Name.ToString() == trimmed).Key;
                    await discord.AddGuildMemberRoleAsync(718945666348351570, userid, roleid, "");
                }
                else
                {
                    var role = await guild.CreateRoleAsync(trimmed, Permissions.SendMessages);

                    var channel = await guild.CreateChannelAsync(trimmed, ChannelType.Text);

                    var voicechannel = await guild.CreateChannelAsync(trimmed, ChannelType.Voice);

                    await discord.ModifyChannelAsync(channel.Id, channel.Name, 0, "", false, 718991556107042817,
                                                     null, 0, 0, "");

                    await discord.ModifyChannelAsync(voicechannel.Id, voicechannel.Name, 0, "", false,
                                                     718945666797404230,
                                                     64000, 0, 0, "");

                    await channel.AddOverwriteAsync(role, Permissions.AccessChannels);

                    await voicechannel.AddOverwriteAsync(role, Permissions.AccessChannels);

                    await channel.AddOverwriteAsync(guild.EveryoneRole, Permissions.None, Permissions.AccessChannels);

                    await voicechannel.AddOverwriteAsync(guild.EveryoneRole, Permissions.None,
                                                         Permissions.AccessChannels);

                    await discord.AddGuildMemberRoleAsync(718945666348351570, userid, role.Id, "");
                }
            }
        }