.reloadimages owner-only command added.
This commit is contained in:
parent
a728e6f670
commit
dcc2f8f9e0
@ -3,6 +3,7 @@ using Discord.Commands;
|
|||||||
using NadekoBot.Attributes;
|
using NadekoBot.Attributes;
|
||||||
using NadekoBot.Extensions;
|
using NadekoBot.Extensions;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
@ -168,6 +169,23 @@ namespace NadekoBot.Modules.Administration
|
|||||||
await Context.Channel.SendConfirmAsync("🆗").ConfigureAwait(false);
|
await Context.Channel.SendConfirmAsync("🆗").ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
|
[RequireContext(ContextType.Guild)]
|
||||||
|
[OwnerOnly]
|
||||||
|
public async Task ReloadImages()
|
||||||
|
{
|
||||||
|
var channel = (ITextChannel)Context.Channel;
|
||||||
|
|
||||||
|
var msg = await Context.Channel.SendMessageAsync("Reloading Images...").ConfigureAwait(false);
|
||||||
|
var sw = Stopwatch.StartNew();
|
||||||
|
await NadekoBot.Images.Reload().ConfigureAwait(false);
|
||||||
|
sw.Stop();
|
||||||
|
await msg.ModifyAsync(x =>
|
||||||
|
{
|
||||||
|
x.Content = "✅ Images reloaded.";
|
||||||
|
}).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
|
||||||
private static UserStatus SettableUserStatusToUserStatus(SettableUserStatus sus)
|
private static UserStatus SettableUserStatusToUserStatus(SettableUserStatus sus)
|
||||||
{
|
{
|
||||||
switch (sus)
|
switch (sus)
|
||||||
|
@ -51,62 +51,70 @@ namespace NadekoBot.Modules.Games
|
|||||||
.SelectMany(c => c.GenerateCurrencyChannelIds.Select(obj => obj.ChannelId)));
|
.SelectMany(c => c.GenerateCurrencyChannelIds.Select(obj => obj.ChannelId)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static async Task PotentialFlowerGeneration(SocketMessage imsg)
|
private static Task PotentialFlowerGeneration(SocketMessage imsg)
|
||||||
{
|
{
|
||||||
try
|
var msg = imsg as SocketUserMessage;
|
||||||
|
if (msg == null || msg.IsAuthor() || msg.Author.IsBot)
|
||||||
|
return Task.CompletedTask;
|
||||||
|
|
||||||
|
var channel = imsg.Channel as ITextChannel;
|
||||||
|
if (channel == null)
|
||||||
|
return Task.CompletedTask;
|
||||||
|
|
||||||
|
if (!generationChannels.Contains(channel.Id))
|
||||||
|
return Task.CompletedTask;
|
||||||
|
|
||||||
|
var _ = Task.Run(async () =>
|
||||||
{
|
{
|
||||||
var msg = imsg as SocketUserMessage;
|
try
|
||||||
if (msg == null || msg.IsAuthor() || msg.Author.IsBot)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var channel = imsg.Channel as ITextChannel;
|
|
||||||
if (channel == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!generationChannels.Contains(channel.Id))
|
|
||||||
return;
|
|
||||||
|
|
||||||
var lastGeneration = lastGenerations.GetOrAdd(channel.Id, DateTime.MinValue);
|
|
||||||
var rng = new NadekoRandom();
|
|
||||||
|
|
||||||
if (DateTime.Now - TimeSpan.FromSeconds(NadekoBot.BotConfig.CurrencyGenerationCooldown) < lastGeneration) //recently generated in this channel, don't generate again
|
|
||||||
return;
|
|
||||||
|
|
||||||
var num = rng.Next(1, 101) + NadekoBot.BotConfig.CurrencyGenerationChance * 100;
|
|
||||||
|
|
||||||
if (num > 100)
|
|
||||||
{
|
{
|
||||||
lastGenerations.AddOrUpdate(channel.Id, DateTime.Now, (id, old) => DateTime.Now);
|
var lastGeneration = lastGenerations.GetOrAdd(channel.Id, DateTime.MinValue);
|
||||||
|
var rng = new NadekoRandom();
|
||||||
|
|
||||||
var dropAmount = NadekoBot.BotConfig.CurrencyDropAmount;
|
//todo i'm stupid :rofl: wtg kwoth. real async programming :100: :ok_hand: :100: :100: :thumbsup:
|
||||||
|
if (DateTime.Now - TimeSpan.FromSeconds(NadekoBot.BotConfig.CurrencyGenerationCooldown) < lastGeneration) //recently generated in this channel, don't generate again
|
||||||
|
return;
|
||||||
|
|
||||||
if (dropAmount > 0)
|
var num = rng.Next(1, 101) + NadekoBot.BotConfig.CurrencyGenerationChance * 100;
|
||||||
|
|
||||||
|
if (num > 100)
|
||||||
{
|
{
|
||||||
var msgs = new IUserMessage[dropAmount];
|
lastGenerations.AddOrUpdate(channel.Id, DateTime.Now, (id, old) => DateTime.Now);
|
||||||
|
|
||||||
string firstPart;
|
var dropAmount = NadekoBot.BotConfig.CurrencyDropAmount;
|
||||||
if (dropAmount == 1)
|
|
||||||
|
if (dropAmount > 0)
|
||||||
{
|
{
|
||||||
firstPart = $"A random { NadekoBot.BotConfig.CurrencyName } appeared!";
|
var msgs = new IUserMessage[dropAmount];
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
firstPart = $"{dropAmount} random { NadekoBot.BotConfig.CurrencyPluralName } appeared!";
|
|
||||||
}
|
|
||||||
var file = GetRandomCurrencyImage();
|
|
||||||
var sent = await channel.SendFileAsync(
|
|
||||||
file.Item2,
|
|
||||||
file.Item1,
|
|
||||||
$"❗ {firstPart} Pick it up by typing `{NadekoBot.ModulePrefixes[typeof(Games).Name]}pick`")
|
|
||||||
.ConfigureAwait(false);
|
|
||||||
|
|
||||||
msgs[0] = sent;
|
string firstPart;
|
||||||
|
if (dropAmount == 1)
|
||||||
|
{
|
||||||
|
firstPart = $"A random { NadekoBot.BotConfig.CurrencyName } appeared!";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
firstPart = $"{dropAmount} random { NadekoBot.BotConfig.CurrencyPluralName } appeared!";
|
||||||
|
}
|
||||||
|
var file = GetRandomCurrencyImage();
|
||||||
|
var sent = await channel.SendFileAsync(
|
||||||
|
file.Item2,
|
||||||
|
file.Item1,
|
||||||
|
$"❗ {firstPart} Pick it up by typing `{NadekoBot.ModulePrefixes[typeof(Games).Name]}pick`")
|
||||||
|
.ConfigureAwait(false);
|
||||||
|
|
||||||
plantedFlowers.AddOrUpdate(channel.Id, msgs.ToList(), (id, old) => { old.AddRange(msgs); return old; });
|
msgs[0] = sent;
|
||||||
|
|
||||||
|
plantedFlowers.AddOrUpdate(channel.Id, msgs.ToList(), (id, old) => { old.AddRange(msgs); return old; });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
catch (Exception ex)
|
||||||
catch { }
|
{
|
||||||
|
_log.Warn(ex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
@ -162,7 +170,7 @@ namespace NadekoBot.Modules.Games
|
|||||||
var file = GetRandomCurrencyImage();
|
var file = GetRandomCurrencyImage();
|
||||||
IUserMessage msg;
|
IUserMessage msg;
|
||||||
var vowelFirst = new[] { 'a', 'e', 'i', 'o', 'u' }.Contains(NadekoBot.BotConfig.CurrencyName[0]);
|
var vowelFirst = new[] { 'a', 'e', 'i', 'o', 'u' }.Contains(NadekoBot.BotConfig.CurrencyName[0]);
|
||||||
|
|
||||||
var msgToSend = $"Oh how Nice! **{Context.User.Username}** planted {(amount == 1 ? (vowelFirst ? "an" : "a") : amount.ToString())} {(amount > 1 ? NadekoBot.BotConfig.CurrencyPluralName : NadekoBot.BotConfig.CurrencyName)}. Pick it using {NadekoBot.ModulePrefixes[typeof(Games).Name]}pick";
|
var msgToSend = $"Oh how Nice! **{Context.User.Username}** planted {(amount == 1 ? (vowelFirst ? "an" : "a") : amount.ToString())} {(amount > 1 ? NadekoBot.BotConfig.CurrencyPluralName : NadekoBot.BotConfig.CurrencyName)}. Pick it using {NadekoBot.ModulePrefixes[typeof(Games).Name]}pick";
|
||||||
if (file == null)
|
if (file == null)
|
||||||
{
|
{
|
||||||
|
27
src/NadekoBot/Resources/CommandStrings.Designer.cs
generated
27
src/NadekoBot/Resources/CommandStrings.Designer.cs
generated
@ -5621,6 +5621,33 @@ namespace NadekoBot.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to reloadimages.
|
||||||
|
/// </summary>
|
||||||
|
public static string reloadimages_cmd {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("reloadimages_cmd", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Reloads images bot is using. Safe to use even when bot is being used heavily..
|
||||||
|
/// </summary>
|
||||||
|
public static string reloadimages_desc {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("reloadimages_desc", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to `{0}reloadimages`.
|
||||||
|
/// </summary>
|
||||||
|
public static string reloadimages_usage {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("reloadimages_usage", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to remind.
|
/// Looks up a localized string similar to remind.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -3042,4 +3042,13 @@
|
|||||||
<data name="setmusicchannel_usage" xml:space="preserve">
|
<data name="setmusicchannel_usage" xml:space="preserve">
|
||||||
<value>`{0}smch`</value>
|
<value>`{0}smch`</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="reloadimages_cmd" xml:space="preserve">
|
||||||
|
<value>reloadimages</value>
|
||||||
|
</data>
|
||||||
|
<data name="reloadimages_desc" xml:space="preserve">
|
||||||
|
<value>Reloads images bot is using. Safe to use even when bot is being used heavily.</value>
|
||||||
|
</data>
|
||||||
|
<data name="reloadimages_usage" xml:space="preserve">
|
||||||
|
<value>`{0}reloadimages`</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
Loading…
Reference in New Issue
Block a user