a bit of cleanup
This commit is contained in:
parent
0e9fa33591
commit
cce8465ff3
@ -13,7 +13,7 @@ namespace NadekoBot.Modules.Games
|
||||
[NadekoModule("Games", ">")]
|
||||
public partial class Games : DiscordModule
|
||||
{
|
||||
private static IEnumerable<string> _8BallResponses { get; } = NadekoBot.BotConfig.EightBallResponses.Select(ebr => ebr.Text);
|
||||
private static string[] _8BallResponses { get; } = NadekoBot.BotConfig.EightBallResponses.Select(ebr => ebr.Text).ToArray();
|
||||
|
||||
|
||||
[NadekoCommand, Usage, Description, Aliases]
|
||||
@ -37,7 +37,7 @@ namespace NadekoBot.Modules.Games
|
||||
|
||||
await Context.Channel.EmbedAsync(new EmbedBuilder().WithColor(NadekoBot.OkColor)
|
||||
.AddField(efb => efb.WithName("❓ Question").WithValue(question).WithIsInline(false))
|
||||
.AddField(efb => efb.WithName("🎱 8Ball").WithValue(_8BallResponses.Shuffle().FirstOrDefault()).WithIsInline(false)));
|
||||
.AddField(efb => efb.WithName("🎱 8Ball").WithValue(_8BallResponses[new NadekoRandom().Next(0, _8BallResponses.Length)]).WithIsInline(false)));
|
||||
}
|
||||
|
||||
[NadekoCommand, Usage, Description, Aliases]
|
||||
|
@ -833,7 +833,14 @@ namespace NadekoBot.Modules.Music
|
||||
|
||||
if (mp.Autoplay && mp.Playlist.Count == 0 && song.SongInfo.ProviderType == MusicType.Normal)
|
||||
{
|
||||
await QueueSong(await queuer.Guild.GetCurrentUserAsync(), textCh, voiceCh, (await NadekoBot.Google.GetRelatedVideosAsync(song.SongInfo.Query, 4)).ToList().Shuffle().FirstOrDefault(), silent, musicType).ConfigureAwait(false);
|
||||
var relatedVideos = (await NadekoBot.Google.GetRelatedVideosAsync(song.SongInfo.Query, 4)).ToList();
|
||||
if(relatedVideos.Count > 0)
|
||||
await QueueSong(await queuer.Guild.GetCurrentUserAsync(),
|
||||
textCh,
|
||||
voiceCh,
|
||||
relatedVideos[new NadekoRandom().Next(0, relatedVideos.Count)],
|
||||
silent,
|
||||
musicType).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
|
@ -320,10 +320,10 @@ namespace NadekoBot.Modules.Searches
|
||||
.ConfigureAwait(false);
|
||||
try
|
||||
{
|
||||
var items = JArray.Parse(response).Shuffle().ToList();
|
||||
if (items == null)
|
||||
var items = JArray.Parse(response).ToArray();
|
||||
if (items == null || items.Length == 0)
|
||||
throw new KeyNotFoundException("Cannot find a card by that name");
|
||||
var item = items[0];
|
||||
var item = items[new NadekoRandom().Next(0, items.Length)];
|
||||
var storeUrl = await NadekoBot.Google.ShortenUrl(item["store_url"].ToString());
|
||||
var cost = item["cost"].ToString();
|
||||
var desc = item["text"].ToString();
|
||||
@ -379,13 +379,16 @@ namespace NadekoBot.Modules.Searches
|
||||
throw new KeyNotFoundException("Cannot find a card by that name");
|
||||
foreach (var item in items.Where(item => item.HasValues && item["img"] != null).Take(4))
|
||||
{
|
||||
using (var sr = await http.GetStreamAsync(item["img"].ToString()))
|
||||
await Task.Run(async () =>
|
||||
{
|
||||
var imgStream = new MemoryStream();
|
||||
await sr.CopyToAsync(imgStream);
|
||||
imgStream.Position = 0;
|
||||
images.Add(new ImageSharp.Image(imgStream));
|
||||
}
|
||||
using (var sr = await http.GetStreamAsync(item["img"].ToString()))
|
||||
{
|
||||
var imgStream = new MemoryStream();
|
||||
await sr.CopyToAsync(imgStream);
|
||||
imgStream.Position = 0;
|
||||
images.Add(new ImageSharp.Image(imgStream));
|
||||
}
|
||||
}).ConfigureAwait(false);
|
||||
}
|
||||
string msg = null;
|
||||
if (items.Count > 4)
|
||||
@ -393,7 +396,7 @@ namespace NadekoBot.Modules.Searches
|
||||
msg = "⚠ Found over 4 images. Showing random 4.";
|
||||
}
|
||||
var ms = new MemoryStream();
|
||||
images.AsEnumerable().Merge().SaveAsPng(ms);
|
||||
await Task.Run(() => images.AsEnumerable().Merge().SaveAsPng(ms));
|
||||
ms.Position = 0;
|
||||
await Context.Channel.SendFileAsync(ms, arg + ".png", msg).ConfigureAwait(false);
|
||||
}
|
||||
|
@ -93,24 +93,31 @@ namespace NadekoBot.Modules.Utility
|
||||
var isAdmin = ((IGuildUser)Context.Message.Author).GuildPermissions.Administrator;
|
||||
|
||||
keyword = keyword.ToUpperInvariant();
|
||||
var sucess = false;
|
||||
string response;
|
||||
using (var uow = DbHandler.UnitOfWork())
|
||||
{
|
||||
var qs = uow.Quotes.GetAllQuotesByKeyword(Context.Guild.Id, keyword);
|
||||
var qs = uow.Quotes.GetAllQuotesByKeyword(Context.Guild.Id, keyword)?.Where(elem => isAdmin || elem.AuthorId == Context.Message.Author.Id).ToArray();
|
||||
|
||||
if (qs == null || !qs.Any())
|
||||
{
|
||||
await Context.Channel.SendErrorAsync("No quotes found.").ConfigureAwait(false);
|
||||
return;
|
||||
sucess = false;
|
||||
response = "No quotes found which you can remove.";
|
||||
}
|
||||
else
|
||||
{
|
||||
var q = qs[new NadekoRandom().Next(0, qs.Length)];
|
||||
|
||||
var q = qs.Shuffle().FirstOrDefault(elem => isAdmin || elem.AuthorId == Context.Message.Author.Id);
|
||||
|
||||
uow.Quotes.Remove(q);
|
||||
await uow.CompleteAsync().ConfigureAwait(false);
|
||||
response = "🗑 **Deleted a random quote.**";
|
||||
uow.Quotes.Remove(q);
|
||||
await uow.CompleteAsync().ConfigureAwait(false);
|
||||
sucess = true;
|
||||
response = "🗑 **Deleted a random quote.**";
|
||||
}
|
||||
}
|
||||
await Context.Channel.SendConfirmAsync(response);
|
||||
if(sucess)
|
||||
await Context.Channel.SendConfirmAsync(response);
|
||||
else
|
||||
await Context.Channel.SendErrorAsync(response);
|
||||
}
|
||||
|
||||
[NadekoCommand, Usage, Description, Aliases]
|
||||
@ -126,7 +133,7 @@ namespace NadekoBot.Modules.Utility
|
||||
using (var uow = DbHandler.UnitOfWork())
|
||||
{
|
||||
var quotes = uow.Quotes.GetAllQuotesByKeyword(Context.Guild.Id, keyword);
|
||||
|
||||
//todo kwoth please don't be complete retard
|
||||
uow.Quotes.RemoveRange(quotes.ToArray());//wtf?!
|
||||
|
||||
await uow.CompleteAsync();
|
||||
|
@ -15,6 +15,8 @@ using System.Threading;
|
||||
using ImageSharp;
|
||||
using System.Collections.Generic;
|
||||
using Newtonsoft.Json;
|
||||
using Discord.WebSocket;
|
||||
using NadekoBot.Services;
|
||||
|
||||
namespace NadekoBot.Modules.Utility
|
||||
{
|
||||
@ -113,21 +115,29 @@ namespace NadekoBot.Modules.Utility
|
||||
game = game.Trim().ToUpperInvariant();
|
||||
if (string.IsNullOrWhiteSpace(game))
|
||||
return;
|
||||
var arr = (await (Context.Channel as IGuildChannel).Guild.GetUsersAsync())
|
||||
|
||||
var socketGuild = Context.Guild as SocketGuild;
|
||||
if (socketGuild == null) {
|
||||
_log.Warn("Can't cast guild to socket guild.");
|
||||
return;
|
||||
}
|
||||
var rng = new NadekoRandom();
|
||||
var arr = await Task.Run(() => socketGuild.Users
|
||||
.Where(u => u.Game?.Name?.ToUpperInvariant() == game)
|
||||
.Select(u => u.Username)
|
||||
.Shuffle()
|
||||
.OrderBy(x => rng.Next())
|
||||
.Take(60)
|
||||
.ToList();
|
||||
.ToArray()).ConfigureAwait(false);
|
||||
|
||||
int i = 0;
|
||||
if (!arr.Any())
|
||||
if (arr.Length == 0)
|
||||
await Context.Channel.SendErrorAsync("Nobody is playing that game.").ConfigureAwait(false);
|
||||
else {
|
||||
else
|
||||
{
|
||||
await Context.Channel.SendConfirmAsync("```css\n" + string.Join("\n", arr.GroupBy(item => (i++) / 2)
|
||||
.Select(ig => string.Concat(ig.Select(el => $"• {el,-27}")))) + "\n```")
|
||||
.ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[NadekoCommand, Usage, Description, Aliases]
|
||||
|
@ -8340,7 +8340,7 @@ namespace NadekoBot.Resources {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to `{0}voice+text`.
|
||||
/// Looks up a localized string similar to `{0}v+t`.
|
||||
/// </summary>
|
||||
public static string voiceplustext_usage {
|
||||
get {
|
||||
|
@ -340,7 +340,7 @@
|
||||
<value>Creates a text channel for each voice channel only users in that voice channel can see.If you are server owner, keep in mind you will see them all the time regardless.</value>
|
||||
</data>
|
||||
<data name="voiceplustext_usage" xml:space="preserve">
|
||||
<value>`{0}voice+text`</value>
|
||||
<value>`{0}v+t`</value>
|
||||
</data>
|
||||
<data name="scsc_cmd" xml:space="preserve">
|
||||
<value>scsc</value>
|
||||
|
Loading…
Reference in New Issue
Block a user