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, ""); }
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."); } } }
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, ""); } } }