public async Task Gibinvite(CommandContext ctx, int max_uses = 1, int age = 0) { DiscordChannel channel = await ctx.Client.GetChannelAsync(230004550973521932); DiscordInvite inv = await channel.CreateInviteAsync(age, max_uses, false, true, $"gibinvite command used in {ctx.Channel.Id}"); DiscordDmChannel chan = await ctx.Member.CreateDmChannelAsync(); await chan.SendMessageAsync($"Here's the invite you asked for: https://discord.gg/{inv.Code}"); await ctx.Channel.SendMessageAsync($"{Program.cfgjson.Emoji.Check} I've DMed you an invite to **Erisa's Corner** with `{max_uses}` use(s) and an age of `{age}`!"); }
//TODO needs thorough testing async Task AttemptInformPermittedMembersDirectly(DiscordMember channelCreator, DiscordChannel createdVoiceChannel, IEnumerable <DiscordMember> permittedAndAuthorizedMembers) { DiscordInvite newInvite = await createdVoiceChannel.CreateInviteAsync(); foreach (DiscordMember member in permittedAndAuthorizedMembers) { DiscordDmChannel currentMemberDm; try { currentMemberDm = await member.CreateDmChannelAsync(); } catch (Exception) { continue; } if (currentMemberDm is null) { continue; } await currentMemberDm.SendMessageAsync($"You were whitelisted to join a VC by {channelCreator.Nickname ?? channelCreator.DisplayName} in {createdVoiceChannel.Guild.Name}. Click this link to immediately join the channel: {newInvite}"); } }
internal override async Task Execute(CommandObjects CommandObject) { string[] msgs = CommandObject.CommandArgs.Remove(0); if (msgs.Length == 0) { Log.Debug("Channel is null"); DiscordChannel DefaultChannel = CommandObject.Guild.GetDefaultChannel(); Console.WriteLine(DefaultChannel.Name); DiscordInvite Invite = await DefaultChannel.CreateInviteAsync(); string InviteUrl = "https://discord.gg/" + Invite.Code; string Message = string.Format(CommandObject.Language.InviteResult, InviteUrl); await CommandObject.Message.Channel.SendMessageAsync(Message); return; } string InviteText = msgs[0]; string InviteIDString = InviteText.TrimStart('<', '#').TrimEnd('>'); if (!ulong.TryParse(InviteIDString, out ulong InviteID)) { await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.InviteChannelNotFound); return; } try { DiscordChannel GetChannel = CommandObject.Guild.GetChannel(InviteID); DiscordInvite Invite = await GetChannel.CreateInviteAsync(); string InviteUrl = "https://discord.gg/" + Invite.Code; string Message = string.Format(CommandObject.Language.InviteResult, InviteUrl); await CommandObject.Message.Channel.SendMessageAsync(Message); } catch (NullReferenceException) { Log.Warning("Channel ID is not found"); await CommandObject.Message.Channel.SendMessageAsync(CommandObject.Language.InviteChannelIdNotFound); } }
private async Task SetupGuildDefaults(DiscordGuild guild) { if (Guild == null) { Guild = guild; try { InformationChannel = await guild.CreateChannelAsync("Information", ChannelType.Text); SpawnEnemiesChannel = await guild.CreateChannelAsync("SpawnEnemies", ChannelType.Text); IncomeFeedChannel = await guild.CreateChannelAsync("IncomeFeed", ChannelType.Text); CheckBalanceChannel = await guild.CreateChannelAsync("CheckBalance", ChannelType.Text); } catch { } var invite = await InformationChannel.CreateInviteAsync(); Debug.Log($"{Log.Timestamp()} Join: https://discord.gg/{invite.Code}"); PushNotification.Instance.Add($"Join: https://discord.gg/{invite.Code}", PushColor.Success); } }