public async Task Flip() { var random = new Random(); bool heads = random.Next(0, 2) == 1; await ReplyAsync(EmbedHandler.CreateBasicEmbed("Coin Flip", $"The coin landed on... `{(heads ? "heads" : "tails")}`", Color.LightOrange)); }
public async Task <Embed> AddAllToDatabase(PlayersRulesService _playersRulesService) { Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); IEnumerable <string> strings = await JsonHandler.GetAllJsonInFolder(JsonFiles); bool songsOnly = false; foreach (string s in strings) { if (s.ToLower().Contains("teams") || s.ToLower().Contains("co-op") || s.ToLower().Contains("coop")) { songsOnly = true; } await Task.Run(async() => await AddToDatabase(_playersRulesService, s, songsOnly)); } stopWatch.Stop(); // Get the elapsed time as a TimeSpan value. TimeSpan ts = stopWatch.Elapsed; // Format and display the TimeSpan value. string elapsedTime = String.Format("{0:00}:{1:00}.{2:00}", ts.Minutes, ts.Seconds, ts.Milliseconds / 10); return(await EmbedHandler.CreateBasicEmbed("Data", "All songs from the Json Files have" + " been added to the Database and player stats were updated \n" + "RunTime: " + elapsedTime, Color.Blue)); }
public async Task ShowRankEXP(int rank) { try { if (rank <= 0) { throw new ArgumentException("Rank cannot be less than 0"); } var rankedUsers = await GuildUsers.GetRankedGuildUsersAsync(Context.Guild); if (rank > rankedUsers.Count) { throw new ArgumentException("Rank exceeds number of ranked users"); } var target = rankedUsers[rank - 1]; if (target is null) { throw new InvalidOperationException($"User at rank `{rank}` could not be found"); } string imageURL = $"{Global.Config.DashboardURL}/api/servers/{target.Guild.Id}/users/{target.Id}/xp-card"; var stream = await CommandUtils.DownloadData(imageURL); await Context.Channel.SendFileAsync(stream, "server-xp-card.png"); } catch (ArgumentException ex) { await ReplyAsync(EmbedHandler.CreateErrorEmbed(ModuleName, ex.Message)); } }
public async Task UpdateWowSpec(SocketUser user, [Summary("The current spec you are playing in World of Warcraft")][Remainder] string spec) { if (spec.ToLower() != "tank" || spec.ToLower() != "dps" || spec.ToLower() != "healer") { await ReplyAsync("Sorry the accepted specs are: ``Tank``, ``DPS``, ``Healer``"); } else { switch (spec.ToLower()) { case "dps": spec = "DPS"; break; case "tank": spec = "Tank"; break; case "healer": spec = "Healer"; break; default: break; } UserAccounts.AccountUpdate(user, spec, UserAccounts.UpdateType.WowMainSpec); await ReplyAsync("", false, EmbedHandler.CreateEmbed("Account Updated", $"**The Current Main Spec Has Been Set To: __{spec}__**", EmbedHandler.EmbedMessageType.Success, true)); } }
public async Task Create(string name) { await Context.Message.DeleteAsync(); var blogs = DataStorage.RestoreObject <List <BlogItem> >(blogFile) ?? new List <BlogItem>(); if (blogs.FirstOrDefault(k => k.Name == name) == null) { var newBlog = new BlogItem { BlogId = Guid.NewGuid(), Author = Context.User.Id, Name = name, Subscribers = new List <ulong>() }; blogs.Add(newBlog); DataStorage.StoreObject(blogs, blogFile, Formatting.Indented); var embed = EmbedHandler.CreateEmbed("Blog", $"Your blog {name} was created.", EmbedHandler.EmbedMessageType.Success); await Context.Channel.SendMessageAsync("", false, embed); } else { var embed = EmbedHandler.CreateEmbed("Blog :x:", $"There is already a Blog with the name {name}", EmbedHandler.EmbedMessageType.Error); await Context.Channel.SendMessageAsync("", false, embed); } }
public async Task Text(string NazwaCzatu) { await Context.Guild.CreateTextChannelAsync(NazwaCzatu); var embed = EmbedHandler.CreateEmbed("Stworzyłem czat o nazwie " + NazwaCzatu + " na tym serwerze!", EmbedHandler.EmbedMessageType.Success); await Context.Channel.SendMessageAsync("", false, embed); }
public async Task Clear(int IlośćWiadomościDoUsunięcia) { await(Context.Message.Channel as SocketTextChannel).DeleteMessagesAsync(await Context.Message.Channel.GetMessagesAsync(IlośćWiadomościDoUsunięcia + 1).FlattenAsync()); var embed = EmbedHandler.CreateEmbed("Wyczyściłem :recycle: " + IlośćWiadomościDoUsunięcia + ":recycle: ostatnich wiadomości na " + Context.Channel + "!", EmbedHandler.EmbedMessageType.Success); await Context.Channel.SendMessageAsync("", false, embed); }
public async Task <Embed> PauseCurrentTrack(SocketGuildUser user, IMessageChannel channel) { LavaPlayer player = lavalink.DefaultNode.GetPlayer(Config.Bot.ServerID); player.TextChannel = channel; if (player.CurrentTrack != null) { if (player.IsPlaying && !player.IsPaused) { await player.PauseAsync(); return(await EmbedHandler.CreateEmbed("Audio", string.Format("{0} set the player to pause.", user.Username))); } else { await player.PauseAsync(); return(await EmbedHandler.CreateEmbed("Audio", string.Format("{0} unpaused the player.", user.Username))); } } else { return(await EmbedHandler.CreateEmbed("Audio", "There's nothing to pause currently.\nPerhaps add a track first, you retard.")); } }
public async Task Text() { var guildUser = Context.User as SocketGuildUser; if (!guildUser.GuildPermissions.ManageChannels) { string description = $"{Global.ENo} **|** You Need the **Manage Channels** Permission to do that {Context.User.Username}"; var errorEmbed = EmbedHandler.CreateEmbed(Context, "Error", description, EmbedHandler.EmbedMessageType.Exception); await ReplyAndDeleteAsync("", embed : errorEmbed); return; } var role = Context.Guild.Roles.FirstOrDefault(r => r.Name == "@everyone"); var perms = new OverwritePermissions( sendMessages: PermValue.Deny, addReactions: PermValue.Deny, viewChannel: PermValue.Allow ); var channel = await Context.Guild.CreateTextChannelAsync("Reports"); await channel.AddPermissionOverwriteAsync(role, perms); }
public async Task <Embed> SkipCurrentlyPlayingTrack(SocketGuildUser user, IMessageChannel channel) { LavaPlayer player = lavalink.DefaultNode.GetPlayer(Config.Bot.ServerID); player.TextChannel = channel; if (player.CurrentTrack != null && player.IsPlaying) { WasSkipped = true; LavaTrack track = player.CurrentTrack; await player.StopAsync(); if (player.Queue.Count > 0) { await player.PlayAsync(player.Queue.Items.ElementAt(0)); return(await EmbedHandler.CreateEmbed("Audio", string.Format("{0} was skipped.\nNext song: {1}.", track.Title, player.CurrentTrack.Title))); } else { return(await EmbedHandler.CreateEmbed("Audio", string.Format("{0} was skipped.\nThere are no more tracks in the queue.", track.Title))); } } else { return(await EmbedHandler.CreateErrorEmbed("Audio, Current Track", "There Are No Current Track.")); } }
public async Task OnFinished(LavaPlayer player, LavaTrack track, TrackReason reason) { if (reason is TrackReason.LoadFailed || reason is TrackReason.Cleanup) { return; } if (Loop && !WasSkipped) { await player.PlayAsync(track); await player.TextChannel.SendMessageAsync("", false, await EmbedHandler.CreateEmbed("Audio", string.Format("{0} is on repeat.", track.Title))); } else { WasSkipped = false; player.Queue.TryDequeue(out LavaTrack nextTrack); if (nextTrack is null) { await player.StopAsync(); } else { await player.PlayAsync(nextTrack); await player.TextChannel.SendMessageAsync("", false, await EmbedHandler.CreateEmbed("Audio", string.Format("Now playing: {0}", nextTrack.Title))); } } }
public async Task <Embed> NowPlayingAsync(ShardedCommandContext context) { if (!_lavaNode.TryGetPlayer(context.Guild, out var player)) { return(EmbedHandler.CreateEmbed(context, "Music", $"{Global.ENo} | I'm not connected to a voice channel.", EmbedHandler.EmbedMessageType.Error)); } if (player.PlayerState != PlayerState.Playing) { return(EmbedHandler.CreateEmbed(context, "Music", $"{Global.ENo} | There's nothing playing at the moment", EmbedHandler.EmbedMessageType.Error)); } var track = player.Track; var artwork = await track.FetchArtworkAsync(); var embed = new EmbedBuilder { Title = $"{track.Author} - {track.Title}", ThumbnailUrl = artwork, Description = GetSong(player), Url = track.Url, Color = Global.NayuColor, }; embed.WithFooter($"Id: {track.Id}"); return(embed.Build()); }
public async Task ClearCMD(SocketGuildUser user) { var guildUser = Context.User as SocketGuildUser; if (!guildUser.GuildPermissions.ManageMessages) { string description = $"{Global.ENo} **|** You Need the **Manage Messages** Permission to do that {Context.User.Username}"; var errorEmbed = EmbedHandler.CreateEmbed(Context, "Error", description, EmbedHandler.EmbedMessageType.Exception); await ReplyAndDeleteAsync("", embed : errorEmbed); return; } var messages = await Context.Channel.GetMessagesAsync(100).FlattenAsync(); var result = messages.Where(x => x.Author.Id == user.Id && x.CreatedAt >= DateTimeOffset.UtcNow.Subtract(TimeSpan.FromDays(14))); if (Context.Channel is ITextChannel channel) { await channel.DeleteMessagesAsync(result); } }
public async Task Suggest([Remainder] string details) { try { var features = details.Split("|"); if (features.Length < 3) { throw new ArgumentException("Suggest", "Please seperate *Title*, *Subtitle*, and *Description* with | (vertical bar)."); } else if (string.IsNullOrWhiteSpace(details.Replace("|", ""))) { throw new ArgumentException("Suggest", "Please add content to the suggestion."); } string title = features[0]; string subtitle = features[1]; string description = features[2]; var embed = new EmbedBuilder() .WithTitle(title) .AddField(subtitle, description) .WithColor(Color.DarkBlue) .WithFooter($"By {Context.User.Username}#{Context.User.Discriminator}") .WithCurrentTimestamp(); var suggestMessage = await ReplyAsync(embed); Emoji[] emotes = { new Emoji(CurrentGuild.General.UpvoteEmote), new Emoji(CurrentGuild.General.DownvoteEmote) }; emotes = emotes.Where(e => e != null).ToArray(); await suggestMessage.AddReactionsAsync(emotes); } catch (ArgumentException ex) { await ReplyAsync(EmbedHandler.CreateErrorEmbed(ModuleName, ex.Message)); } }
public async Task Ban([NoSelf][RequireBotHigherHirachy] SocketGuildUser Użytkownik) { await Context.Guild.AddBanAsync(Użytkownik); var embed = EmbedHandler.CreateEmbed("Zbanowałem użytkownika :raised_back_of_hand: " + Użytkownik + " :raised_back_of_hand: na tym serwerze!", EmbedHandler.EmbedMessageType.Success); await Context.Channel.SendMessageAsync("", false, embed); }
public async Task ListWelcomeMessages() { var guildUser = Context.User as SocketGuildUser; if (!guildUser.GuildPermissions.Administrator) { string description = $"{Global.ENo} **|** You Need the **Administrator** Permission to do that {Context.User.Username}"; var errorEmbed = EmbedHandler.CreateEmbed(Context, "Error", description, EmbedHandler.EmbedMessageType.Exception); await ReplyAndDeleteAsync("", embed : errorEmbed); return; } var welcomeMessages = GlobalGuildAccounts.GetGuildAccount(Context.Guild.Id).WelcomeMessages; var embed = new EmbedBuilder().WithTitle( "No Welcome Messages set yet... add some if you want to greet incoming people!"); if (welcomeMessages.Count > 0) { embed.WithTitle("Possible Welcome Messages:"); } embed.WithColor(Global.NayuColor); for (var i = 0; i < welcomeMessages.Count; i++) { embed.AddField($"Message #{i + 1}:", welcomeMessages[i], true); } await ReplyAsync("", false, embed.Build()); }
public async Task Nickname(SocketGuildUser NazwaUżytkownika, [Remainder] string Pseudonim) { await Context.Guild.GetUser(NazwaUżytkownika.Id).ModifyAsync(x => x.Nickname = Pseudonim); var embed = EmbedHandler.CreateEmbed("Zmieniłem pseudonim użytkowinika " + NazwaUżytkownika + " na " + Pseudonim + " na tym serwerze!", EmbedHandler.EmbedMessageType.Success); await Context.Channel.SendMessageAsync("", false, embed); }
public async Task SetIdIntoConfig(SocketGuildChannel chnl) { var guildUser = Context.User as SocketGuildUser; if (!guildUser.GuildPermissions.Administrator) { string description = $"{Global.ENo} **|** You Need the **Administrator** Permission to do that {Context.User.Username}"; var errorEmbed = EmbedHandler.CreateEmbed(Context, "Error", description, EmbedHandler.EmbedMessageType.Exception); await ReplyAndDeleteAsync("", embed : errorEmbed); return; } var config = GlobalGuildAccounts.GetGuildAccount(Context.Guild.Id); var response = $"Set this guild's welcome channel to #{chnl}."; config.WelcomeChannel = chnl.Id; GlobalGuildAccounts.SaveAccounts(Context.Guild.Id); var embed = EmbedHandler.CreateEmbed(Context, "Success!", response, EmbedHandler.EmbedMessageType.Success, false); await SendMessage(Context, embed); }
public async Task Voice([Remainder] string NazwaKanału) { await Context.Guild.CreateVoiceChannelAsync(NazwaKanału); var embed = EmbedHandler.CreateEmbed("Stworzyłem kanał głosowy o nazwie " + NazwaKanału + " na tym serwerze!", EmbedHandler.EmbedMessageType.Success); await Context.Channel.SendMessageAsync("", false, embed); }
public async Task AddWelcomeMessage([Remainder] string message) { var guildUser = Context.User as SocketGuildUser; if (!guildUser.GuildPermissions.Administrator) { string description = $"{Global.ENo} **|** You Need the **Administrator** Permission to do that {Context.User.Username}"; var errorEmbed = EmbedHandler.CreateEmbed(Context, "Error", description, EmbedHandler.EmbedMessageType.Exception); await ReplyAndDeleteAsync("", embed : errorEmbed); return; } var guildAcc = GlobalGuildAccounts.GetGuildAccount(Context.Guild.Id); var response = $"Failed to add this Welcome Message..."; if (guildAcc.WelcomeMessages.Contains(message) == false) { guildAcc.WelcomeMessages.Add(message); GlobalGuildAccounts.SaveAccounts(Context.Guild.Id); response = $"Successfully added ```\n{message}\n``` as Welcome Message!"; } var embed = EmbedHandler.CreateEmbed(Context, "Success!", response, EmbedHandler.EmbedMessageType.Success, false); await SendMessage(Context, embed); }
public async Task SetGame(int typ, [Remainder] string NazwaGry) { if (typ == 0) { await Context.Client.SetGameAsync(NazwaGry, "https://www.twitch.tv/jucha1337", ActivityType.Streaming); var embed = EmbedHandler.CreateEmbed($"Zmieniłem na streama o nazwie **{NazwaGry}**", EmbedHandler.EmbedMessageType.Success); await Context.Channel.SendMessageAsync("", false, embed); } else { await Context.Client.SetGameAsync(NazwaGry); var embed = EmbedHandler.CreateEmbed($"Zmieniłem na grę **{NazwaGry}**", EmbedHandler.EmbedMessageType.Success); await Context.Channel.SendMessageAsync("", false, embed); } /*else if (typ == 2) * { * await Context.Client.SetGameAsync(NazwaGry, "https://www.twitch.tv/bugger", ActivityType.Listening); * } * else if (typ == 3) * { * await Context.Client.SetGameAsync(NazwaGry, "https://www.youtube.com/watch?v=Z-tc91hArlM", ActivityType.Watching); * } */ }
public async Task RemoveWelcomeMessage(int messageIndex) { var guildUser = Context.User as SocketGuildUser; if (!guildUser.GuildPermissions.Administrator) { string description = $"{Global.ENo} **|** You Need the **Administrator** Permission to do that {Context.User.Username}"; var errorEmbed = EmbedHandler.CreateEmbed(Context, "Error", description, EmbedHandler.EmbedMessageType.Exception); await ReplyAndDeleteAsync("", embed : errorEmbed); return; } var messages = GlobalGuildAccounts.GetGuildAccount(Context.Guild.Id).WelcomeMessages; var response = $"Failed to remove this Welcome Message... Use the number shown in `welcome list` next to the `#` sign!"; if (messages.Count > messageIndex - 1) { messages.RemoveAt(messageIndex - 1); GlobalGuildAccounts.SaveAccounts(Context.Guild.Id); response = $"Successfully removed message #{messageIndex} as possible Welcome Message!"; } var embed = EmbedHandler.CreateEmbed(Context, "Success!", response, EmbedHandler.EmbedMessageType.Success, false); await SendMessage(Context, embed); }
public async Task UnblockChannel() { var guildUser = Context.User as SocketGuildUser; if (!guildUser.GuildPermissions.ManageChannels) { string description = $"{Global.ENo} **|** You Need the **Manage Channels** Permission to do that {Context.User.Username}"; var errorEmbed = EmbedHandler.CreateEmbed(Context, "Error", description, EmbedHandler.EmbedMessageType.Exception); await ReplyAndDeleteAsync("", embed : errorEmbed); return; } var config = BotAccounts.GetAccount(); config.BlockedChannels.Remove(Context.Channel.Id); BotAccounts.SaveAccounts(); var embed = MiscHelpers .CreateEmbed(Context, "Channel Unblocked", $":unlock: Unblocked {Context.Channel.Name}.") .WithColor(Constants.DefaultColor); await SendMessage(Context, embed.Build()); }
public async Task Lenny() { var embed = EmbedHandler.CreateEmbed(Context, "Lenny!", "( ͡° ͜ʖ ͡°)", EmbedHandler.EmbedMessageType.Success, false); await SendMessage(Context, embed); }
public async Task SetPrefix([Remainder] string prefix = "") { try { CurrentGuild ??= await Guilds.GetAsync(Context.Guild); if (string.IsNullOrEmpty(prefix)) { await ReplyAsync(EmbedHandler.CreateBasicEmbed(ModuleName, $"**Current Prefix**: `{CurrentGuild.General.CommandPrefix}`", ModuleColour)); return; } const int maxLength = 16; if (prefix.Length > maxLength) { throw new ArgumentException($"Prefix must be less than {maxLength + 1} characters long."); } CurrentGuild.General.CommandPrefix = prefix; await Guilds.Save(CurrentGuild); await ReplyAsync(EmbedHandler.CreateBasicEmbed(ModuleName, $"Prefix has been set to `{prefix}`", Color.Green)); } catch (ArgumentException ex) { await ReplyAsync(EmbedHandler.CreateErrorEmbed(ModuleName, ex.Message)); } }
public async Task Ping() { var embed = EmbedHandler.CreateEmbed(Context, "Ping", $":ping_pong: **|** Pong! {(Context.Client).Latency}ms", EmbedHandler.EmbedMessageType.Success, false); await SendMessage(Context, embed); }
public async Task <Embed> AddToDatabase(PlayersRulesService _playersRulesService, string filename, bool songsOnly) { List <SongData> data = await JsonHandler.ConvertJson(new FileInfo(filename)); List <string> rules = await _playersRulesService.GetRules(); foreach (SongData song in data) { if (_db.Find <SongTableObject>(MakeSongTableKey(song.anime.english, song.type, song.name)) == null) { SongTableObject tableObject = ConvertSongDataToTable(song); await _db.AddAsync(tableObject); } if (!songsOnly) { await UpdatePlayerStats(_playersRulesService, song, rules); } } await _db.SaveChangesAsync(); Console.WriteLine("Added only songs for this file" + filename); File.Move(filename, ArchivedFiles + filename.Substring(filename.LastIndexOf("\\")), true); return(await EmbedHandler.CreateBasicEmbed("Data", "All songs from the Json File have" + " been added to the Database and player stats were updated", Color.Blue)); }
public async Task Kick([NoSelf][RequireBotHigherHirachy] SocketGuildUser Użytkownik) { await Użytkownik.KickAsync(); var embed = EmbedHandler.CreateEmbed("Wyrzuciłem użytkownika :boot::boom: " + Użytkownik + " :boot::boom: z serwera!", EmbedHandler.EmbedMessageType.Success); await Context.Channel.SendMessageAsync("", false, embed); }
public async Task ClearCommand(int num) { SocketGuildUser user = (SocketGuildUser)Context.User; if (!user.GuildPermissions.ManageMessages) { var items = await Context.Channel.GetMessagesAsync(1).FlattenAsync(); await((ITextChannel)Context.Channel).DeleteMessagesAsync(items); var m = await ReplyAsync( embed : await EmbedHandler.ErrorEmbed("⚠️ You don't have permission to execute this command!")); const int delay = 4000; await Task.Delay(delay); await m.DeleteAsync(); } else { IEnumerable <IMessage> messages = await Context.Channel.GetMessagesAsync(num + 1).FlattenAsync(); await((ITextChannel)Context.Channel).DeleteMessagesAsync(messages); const int delay = 2000; var m = await ReplyAsync( embed : await EmbedHandler.BasicEmbed("Cleaning is complete.", $"{num} have been deleted.", Color.Green)); await LogService.LogInfoAsync("CLEAN", $"{num} messages have been deleted!"); await Task.Delay(delay); await m.DeleteAsync(); } }
public async Task AutoRoleRoleAdd([Remainder] string arg = "") { var guildUser = Context.User as SocketGuildUser; if (!guildUser.GuildPermissions.Administrator) { string description = $"{Global.ENo} **|** You Need the **Administrator** Permission to do that {Context.User.Username}"; var errorEmbed = EmbedHandler.CreateEmbed(Context, "Error", description, EmbedHandler.EmbedMessageType.Exception); await ReplyAndDeleteAsync("", embed : errorEmbed); return; } if (arg == null) { await ReplyAndDeleteAsync("Please include the name of the role you want to autorole"); } var config = GlobalGuildAccounts.GetGuildAccount(Context.Guild.Id); config.AutoRole = arg; GlobalGuildAccounts.SaveAccounts(Context.Guild.Id); var embed = new EmbedBuilder(); embed.WithDescription($"Added the **{arg}** role to AutoRole!"); embed.WithColor(Global.NayuColor); embed.WithFooter("Make sure that Nayu has a higher role than the autoroled role!"); await SendMessage(Context, embed.Build()); }