private async Task OnReady() { SocketSelfUser user = _client.CurrentUser; _logger.LogInformation($"Logged in as {user.Username}#{user.Discriminator}"); await Task.CompletedTask; }
public async void UseLocalAvatar(DiscordShardedClient client, string AlbumName, string ArtistName, string LastFMName) { try { trackString = ArtistName + " - " + AlbumName + Environment.NewLine + LastFMName; _logger.Log("Changed avatar to: " + trackString); //FileStream fileStream = new FileStream(GlobalVars.CoversFolder + ArtistName + " - " + AlbumName + ".png", FileMode.Open); FileStream fileStream = new FileStream(GlobalVars.ImageFolder + "censored.png", FileMode.Open); Image image = new Image(fileStream); await client.CurrentUser.ModifyAsync(u => u.Avatar = image).ConfigureAwait(false); fileStream.Close(); await Task.Delay(5000).ConfigureAwait(false); ulong BroadcastServerID = Convert.ToUInt64(ConfigData.Data.BaseServer); ulong BroadcastChannelID = Convert.ToUInt64(ConfigData.Data.FeaturedChannel); SocketGuild guild = client.GetGuild(BroadcastServerID); SocketTextChannel channel = guild.GetTextChannel(BroadcastChannelID); EmbedBuilder builder = new EmbedBuilder(); SocketSelfUser SelfUser = client.CurrentUser; builder.WithThumbnailUrl(SelfUser.GetAvatarUrl()); builder.AddField("Featured:", trackString); await channel.SendMessageAsync("", false, builder.Build()).ConfigureAwait(false); } catch (Exception e) { _logger.LogException("UseLocalAvatar", e); } }
private async Task DiscordShardedClientOnCurrentUserUpdated(SocketSelfUser arg1, SocketSelfUser arg2) { if (CurrentUserUpdated != null) { await CurrentUserUpdated.Invoke(this, arg1, arg2).ConfigureAwait(false); } }
private List <string> GetPrefixes(SocketSelfUser botUser) { if (this.prefixes != null) { return(this.prefixes); } var prefixesRaw = new List <string>(); prefixesRaw.Add($"<@{botUser.Id}> "); prefixesRaw.Add($"<@!{botUser.Id}> "); prefixesRaw.Add($"@{botUser.Username}#{botUser.Discriminator} "); // By optional alias. if (this.settings.BotOptionalPrefix != null) { prefixesRaw.Add(this.settings.BotOptionalPrefix + " "); } // Allow double spaces if (AllowDoubleSpaces) { foreach (string prefix in prefixesRaw.ToList()) { prefixesRaw.Add(prefix + " "); } } prefixesRaw = prefixesRaw.OrderByDescending(s => s.Length).ToList(); this.prefixes = prefixesRaw; return(this.prefixes); }
public BotConfig GetBotConfig(SocketSelfUser Bot) { using (StatusBotContext SC = new StatusBotContext()) { return(SC.BotConfigs.FirstOrDefault(c => c.BotId == Bot.Id)); } }
public ReactionEvent(BotConfig bc, DiscordSocketClient client, CurrencyService cs, int amount) { _bc = bc; _log = LogManager.GetCurrentClassLogger(); _client = client; _botUser = client.CurrentUser; Source = new CancellationTokenSource(); CancelToken = Source.Token; var _ = Task.Run(async() => { var users = new List <ulong>(); while (!CancelToken.IsCancellationRequested) { await Task.Delay(1000).ConfigureAwait(false); while (_toGiveTo.TryDequeue(out var usrId)) { users.Add(usrId); } if (users.Count > 0) { await cs.AddToManyAsync("", amount, users.ToArray()).ConfigureAwait(false); } users.Clear(); } }, CancelToken); }
public Task Self_CurrentUserUpdated(SocketSelfUser old_user, SocketSelfUser new_user) { foreach (ISelfCurrentUserUpdatedEventHandler handler in this.SelfCurrentUserUpdatedEventHandler) { new Thread(() => handler.Self_CurrentUserUpdated(old_user, new_user)).Start(); } return(Task.CompletedTask); }
private Task BotUpdated(SocketSelfUser oldBot, SocketSelfUser newBot) { Formatter.GenerateLog(_logger, LogSeverity.Info, "Self", "Bot Updated - " + newBot.ToString()); var botDetails = new DiscordUser(newBot); return(SendEvent("bot", "Update", "GMBot.Bot.Update", botDetails.ToString())); }
public void UpdateQueue(SocketGuild guild, LavaPlayer player, SocketSelfUser selfUser) { embedBuilder.Author.IconUrl = guild.IconUrl; embedBuilder.Author.Name = $"{guild.Name}"; if (player is null || player.Queue.Count == 0) { embedBuilder.AddField("**Плэйлист**", "Плэйлист пуст" + '\n' + $"[Пригласить бота]({InviteBot})"); }
public async Task statusAsync() { ISelfUser SelfUser = Context.Client.CurrentUser; EmbedAuthorBuilder eab = new EmbedAuthorBuilder { IconUrl = SelfUser.GetAvatarUrl(), Name = SelfUser.Username }; EmbedBuilder builder = new EmbedBuilder(); builder.WithAuthor(eab); builder.WithDescription(SelfUser.Username + " Statistics"); TimeSpan startTime = (DateTime.Now - Process.GetCurrentProcess().StartTime); DiscordShardedClient client = Context.Client as DiscordShardedClient; SocketSelfUser SocketSelf = Context.Client.CurrentUser as SocketSelfUser; string status = "Online"; switch (SocketSelf.Status) { case UserStatus.Offline: status = "Offline"; break; case UserStatus.Online: status = "Online"; break; case UserStatus.Idle: status = "Idle"; break; case UserStatus.AFK: status = "AFK"; break; case UserStatus.DoNotDisturb: status = "Do Not Disturb"; break; case UserStatus.Invisible: status = "Invisible/Offline"; break; } string assemblyVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString(); int fixedCmdGlobalCount = GlobalVars.CommandExecutions + 1; int fixedCmdGlobalCount_Servers = GlobalVars.CommandExecutions_Servers + 1; int fixedCmdGlobalCount_DMs = GlobalVars.CommandExecutions_DMs + 1; builder.AddField("Bot Uptime: ", startTime.ToReadableString(), true); builder.AddField("Server Uptime: ", GlobalVars.SystemUpTime().ToReadableString(), true); builder.AddField("Usercount: ", (await userService.GetUserCountAsync()).ToString(), true); builder.AddField("Servercount: ", client.Guilds.Count, true); builder.AddField("Commands used since bot start: ", fixedCmdGlobalCount); builder.AddField("Commands in servers: ", fixedCmdGlobalCount_Servers); builder.AddField("Commands in DMs ", fixedCmdGlobalCount_DMs); builder.AddField("Bot status: ", status, true); builder.AddField("Latency: ", client.Latency + "ms", true); builder.AddField("Shards: ", client.Shards.Count, true); builder.AddField("Bot version: ", assemblyVersion, true); await Context.Channel.SendMessageAsync("", false, builder.Build()).ConfigureAwait(false); }
public HelpEmbed(SocketSelfUser selfUser) { embedBuilder = new EmbedBuilder(); Username = selfUser.Username; UserAvatarUrl = selfUser.GetAvatarUrl(); Commands.Add(".p | .play (название трека / ссылка)", "ищет и транслирует песню в голосовом канале"); Commands.Add(".panel | .controlpanel", "выводит панель управления и сведения о текущим треком "); Commands.Add(".q | .queue", "показывает текущий плэйлист"); }
internal async Task RemoveReaction(IEmote e, IUserMessage msg = null, SocketSelfUser bot = null) { options.Remove(e.ToString()); msg ??= await GetUiMessage(); _ = msg.RemoveReactionAsync(e, bot ?? Handlers.DiscordBotHandler.Client.CurrentUser); }
public static Embed CreateAwaitingOpponentEmbed(SocketSelfUser self) { return(new EmbedBuilder() .WithAuthor(self) .WithTitle("Waiting for other player…") .WithImageUrl("https://res.cloudinary.com/jbakeacake/image/upload/v1598238947/test/UnknownPlayer_yvpyjh.png") .WithFooter(footer => footer.Text = "Waiting Since ") .WithCurrentTimestamp() .Build()); }
public DiscordUser(SocketSelfUser user) { ID = user.Id; Discriminator = user.Discriminator; Username = user.Username; Status = user.Status; IsBot = user.IsBot; ActivityType = user.Activity.Type; ActivityName = user.Activity.Name; }
public static EmbedBuilder Create(SocketSelfUser author, SocketUser user) { EmbedBuilder embed = new EmbedBuilder(); embed.WithCurrentTimestamp(); embed.WithColor(Color.Gold); embed.WithAuthor(author); embed.WithFooter($"Requested by: {user}", user.GetAvatarUrl()); return(embed); }
public VoteEmbed(SocketGuildUser user, LavaPlayer player, SocketSelfUser selfuser) { embedBuilder = new EmbedBuilder(); this.user = user; _player = player; Channel = player.VoiceChannel; embedBuilder.Footer = new EmbedFooterBuilder { Text = "Для просмотра плейлиста | . q", IconUrl = selfuser.GetAvatarUrl() }; }
public bool BotPrefixMentioned(SocketUserMessage message, SocketSelfUser botUser, ref int argPos) { foreach (string prefix in this.GetPrefixes(botUser)) { if (message.HasStringPrefix(prefix, ref argPos)) { return(true); } } return(false); }
public MessageHandler(SocketSelfUser self) { _self = self; _handlers = new List <IHandleableMessage> { new NewThreadFromPost(), new NewThreadFromPostAndText(), new NewThreadFromText(), new NewEmptyThread(), new ReplyToThread() }; }
public static Embed CreateLosingPlayerEmbed(SocketSelfUser self, BattlePlayer player) { var pokemon = player.CurrentPokemon; var pokemonStats = pokemon.Stats.ToString(); return(new EmbedBuilder() .WithAuthor(self) .WithTitle("You whited out!") .WithDescription($"Your pokemon gained SOME experience...\n**{pokemon.Name.ToUpper()}**: \n{pokemonStats}") .WithFooter(footer => footer.Text = "Loser at ") .WithCurrentTimestamp() .Build()); }
public static Embed CreateInvitationMessage(SocketSelfUser self, SocketUser sender, SocketUser receiver) { var embeddedMessage = new EmbedBuilder() .WithAuthor(self) .WithTitle($"Duel Invitation for {receiver.Username}") .WithDescription($"{sender.Username} has sent you, {receiver.Mention}, an invite to duel!\n\nPress ✅ to accept\nPress ❌ to decline\n\n") .WithFooter(footer => footer.Text = "Sent ") .WithThumbnailUrl("https://i.etsystatic.com/15539528/r/il/da9a71/1266529816/il_570xN.1266529816_5abl.jpg") .WithCurrentTimestamp() .Build(); return(embeddedMessage); }
public static Embed NewEmbed(string username, SocketSelfUser synthbot, Uri signinUri) { var linkEmbed = new EmbedFieldBuilder() .WithName($"Click the link below to connect your Spotify account and run \"@{synthbot.Username} join\" to start listening!") .WithValue(signinUri.AbsoluteUri); var embed = new EmbedBuilder() .WithColor(Color.Green) .WithAuthor(synthbot) .WithTitle($"Hey {username}, you just joined a voice channel with an active Synthbot channel") .AddField(linkEmbed) .WithCurrentTimestamp(); return(embed.Build()); }
public static Embed CreatePokemonDetailEmbed(SocketSelfUser self, PokeEntity pokemon) { var pokemonStats = pokemon.Stats.ToString(); return(new EmbedBuilder() .WithAuthor(self) .WithColor(Color.Red) .WithTitle($"🎴 POKÉDEX") .WithThumbnailUrl(pokemon.FrontSpriteUrl) .WithDescription($"▼**{pokemon.Name.ToUpper()}**\n{pokemonStats}\n\n ►► Moves ◄◄ \n 1.) {pokemon.Moves[0].Name}\n2.) {pokemon.Moves[1].Name}\n3.) {pokemon.Moves[2].Name}\n4.) {pokemon.Moves[3].Name}") .WithFooter(footer => footer.Text = "Detailed at ") .WithCurrentTimestamp() .Build()); }
internal async Task InstallAsync(DiscordSocketClient c) { _client = c; // Save an instance of the discord client. _cmds = new CommandService(); // Create a new instance of the commandservice. _client.MessageReceived += HandleCommandAsync; await _cmds.AddModulesAsync(Assembly.GetEntryAssembly()); // Load all modules from the assembly. SocketSelfUser user = _client.CurrentUser; _client.Ready += ClientReady; _client.UserJoined += UserJoinedGuild; _client.JoinedGuild += FetchUsers; _client.UserVoiceStateUpdated += UserVoiceChannelState; }
public async Task Self_CurrentUserUpdated(SocketSelfUser oldUser, SocketSelfUser newUser) { string logs = "FINALLY FIRED [Self_CurrentUserUpdated] " + Users.Ferrone.Mention + breaker + "(User) => " + GetUserInfos(oldUser); breaker.Debug(oldUser.Username, newUser.Username); breaker.Debug(oldUser.IsVerified.ToString(), newUser.IsVerified.ToString()); breaker.Debug(oldUser.IsMfaEnabled.ToString(), newUser.IsMfaEnabled.ToString()); breaker.Debug(oldUser.Email, newUser.Email); breaker.Debug(oldUser.Discriminator, newUser.Discriminator); breaker.Debug(oldUser.Activity.Name, newUser.Activity.Name); breaker.Debug(oldUser.Activity.Type.ToString(), newUser.Activity.Type.ToString()); await SendLogs("Self_CurrentUserUpdated", logs, EmoteManager.Guilds.Prod.Edit); }
public static Embed CreateWinningPlayerEmbed(SocketSelfUser self, BattlePlayer player) { var pokemon = player.CurrentPokemon; var pokemonStats = pokemon.Stats.ToString(); return(new EmbedBuilder() .WithAuthor(self) .WithTitle("You Won!") .WithDescription($"Your pokemon gained ALOT of experience!\n**{pokemon.Name.ToUpper()}**: \n{pokemonStats}") .WithImageUrl("https://garyland.neocities.org/images/kingGary.jpg") .WithFooter(footer => footer.Text = "Winner at ") .WithCurrentTimestamp() .Build()); }
public async void ChangeToNewAvatar(DiscordShardedClient client, string thumbnail) { try { WebRequest request = WebRequest.Create(thumbnail); WebResponse response = await request.GetResponseAsync().ConfigureAwait(false); using (Stream output = File.Create(GlobalVars.ImageFolder + "newavatar.png")) using (Stream input = response.GetResponseStream()) { input.CopyTo(output); if (File.Exists(GlobalVars.ImageFolder + "newavatar.png")) { File.SetAttributes(GlobalVars.ImageFolder + "newavatar.png", FileAttributes.Normal); } output.Close(); input.Close(); } if (File.Exists(GlobalVars.ImageFolder + "newavatar.png")) { FileStream fileStream = new FileStream(GlobalVars.ImageFolder + "newavatar.png", FileMode.Open); await client.CurrentUser.ModifyAsync(u => u.Avatar = new Image(fileStream)).ConfigureAwait(false); fileStream.Close(); } await Task.Delay(5000).ConfigureAwait(false); ulong BroadcastServerID = Convert.ToUInt64(ConfigData.Data.BaseServer); ulong BroadcastChannelID = Convert.ToUInt64(ConfigData.Data.FeaturedChannel); SocketGuild guild = client.GetGuild(BroadcastServerID); SocketTextChannel channel = guild.GetTextChannel(BroadcastChannelID); EmbedBuilder builder = new EmbedBuilder(); SocketSelfUser SelfUser = client.CurrentUser; builder.WithThumbnailUrl(SelfUser.GetAvatarUrl()); builder.AddField("Featured:", trackString); await channel.SendMessageAsync("", false, builder.Build()).ConfigureAwait(false); } catch (Exception e) { _logger.LogException("ChangeToNewAvatar", e); } }
/// <summary> /// Determines whether the current user can access the supplied emoji /// </summary> /// <param name="user">The user for whom to determine emoji access.</param> /// <param name="emoji">The emoji that the user is attempting to access</param> /// <returns>A flag indicating whether the user can access the supplied emoji.</returns> public static bool CanAccessEmoji(this SocketSelfUser user, GuildEmote emoji) { if (user is null) { throw new ArgumentNullException(nameof(user)); } if (emoji is null) { throw new ArgumentNullException(nameof(emoji)); } var accessibleEmotes = user.MutualGuilds.SelectMany(x => x.Emotes); return(accessibleEmotes.Any(x => x.Id == emoji.Id)); }
public static Embed CreateWaitingForOtherPlayerEmbed(SocketSelfUser self, PokemonForReturnDto chosenPokemon, string thumbnailUrl) { return(new EmbedBuilder() .WithAuthor(self) .WithTitle("Your Opponent is waiting on you…") .WithThumbnailUrl(thumbnailUrl) .WithDescription($"Your Opponent's Pokemon:\n" + $"► {chosenPokemon.Name}\n" + $"► Lv. {chosenPokemon.Level}\n" + $"► `{chosenPokemon.Type}`\n" + $"► {chosenPokemon.MaxHP} / {chosenPokemon.MaxHP} HP\n" + $"► {chosenPokemon.Experience} / {Math.Pow(chosenPokemon.Level + 1, 3)}") .WithFooter(footer => footer.Text = "Waiting Since ") .WithCurrentTimestamp() .Build()); }
public static async Task <Embed> CreateBattleSceneEmbed(SocketSelfUser self, BattlePlayer playerInControl, BattlePlayer opponent, PokemonController pokemonController) { var controllerPokemon = playerInControl.CurrentPokemon; var opponentPokemon = opponent.CurrentPokemon; var backFacingSprite = (await pokemonController.GetPokemonData(controllerPokemon.PokeId)).BackSpriteUrl; var frontFacingSprite = (await pokemonController.GetPokemonData(opponentPokemon.PokeId)).FrontSpriteUrl; string controllerHealthbar = GetPokemonHealthBar(controllerPokemon); string opponentHealthBar = GetPokemonHealthBar(opponentPokemon); var opponentField = new EmbedFieldBuilder() .WithName($"`{opponentHealthBar}`\n{(int)opponentPokemon.Stats.HP}/{(int)opponentPokemon.Stats.MaxHP}") .WithValue($"`{opponentPokemon.Name} Lv. {opponentPokemon.Stats.Level}`"); var controllerField = new EmbedFieldBuilder() .WithName($"`{controllerHealthbar}`\n {(int)controllerPokemon.Stats.HP}/{(int)controllerPokemon.Stats.MaxHP}") .WithValue($"`{controllerPokemon.Name} Lv. {controllerPokemon.Stats.Level}`") .WithIsInline(true); var moves = "▄▄▄▄▄▄▄▄▄▄▄\n\n►► Moves ◄◄\n"; int counter = 1; foreach (var move in controllerPokemon.Moves) { moves += $"║ {counter}. {move.Name} :: {move.PP} PP\n"; counter++; } var fieldEmpty1 = new EmbedFieldBuilder() .WithName(".") .WithValue("."); var fieldEmpty2 = new EmbedFieldBuilder() .WithName(".") .WithValue("."); var fieldEmpty3 = new EmbedFieldBuilder() .WithName(".") .WithIsInline(true) .WithValue("."); var fieldEmpty4 = new EmbedFieldBuilder() .WithName(".") .WithIsInline(true) .WithValue("."); return(new EmbedBuilder() .WithFields(new[] { opponentField, fieldEmpty1, fieldEmpty2, fieldEmpty3, fieldEmpty4, controllerField }) .WithFooter(footer => footer.Text = moves) .WithThumbnailUrl(frontFacingSprite) .WithImageUrl(backFacingSprite) .Build()); }
public static Embed Notify(SocketSelfUser bot, SocketVoiceChannel newChannel, FullPlaylist newPlaylist, EmbedFieldBuilder previousPlaybackField = null) { var embedNewPlayback = new EmbedFieldBuilder() .WithName($"Joined Channel: {newChannel.Name}\t") .WithValue($"Active Playlist: [{newPlaylist.Name}]({newPlaylist.ExternalUrls.First().Value}) From: [{newPlaylist.Owner.Id}]({newPlaylist.Owner.ExternalUrls.First().Value})\t") .WithIsInline(false); var embed = new EmbedBuilder() .WithColor(Color.Green) .WithAuthor(bot) .WithTitle($"There's an active playback session in {newChannel.Name}, run \"@{bot.Username} join\" to start listening") .WithCurrentTimestamp(); if (previousPlaybackField != null) { embed.AddField(previousPlaybackField); } embed.AddField(embedNewPlayback); return(embed.Build()); }