public nadeko stuff
This commit is contained in:
parent
0eab51cfea
commit
e604bbca50
@ -1,4 +1,6 @@
|
||||
using Discord;
|
||||
|
||||
#if !GLOBAL_NADEKO
|
||||
using Discord;
|
||||
using Discord.Commands;
|
||||
using NadekoBot.Extensions;
|
||||
using NadekoBot.Core.Services;
|
||||
@ -14,7 +16,6 @@ using static NadekoBot.Modules.Administration.Services.LogCommandService;
|
||||
|
||||
namespace NadekoBot.Modules.Administration
|
||||
{
|
||||
#if !GLOBAL_NADEKO
|
||||
public partial class Administration
|
||||
{
|
||||
[Group]
|
||||
@ -181,5 +182,5 @@ namespace NadekoBot.Modules.Administration
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
@ -482,9 +482,11 @@ namespace NadekoBot.Modules.Administration
|
||||
public async Task ReloadImages()
|
||||
{
|
||||
var sw = Stopwatch.StartNew();
|
||||
_images.Reload();
|
||||
sw.Stop();
|
||||
await ReplyConfirmLocalized("images_loaded", sw.Elapsed.TotalSeconds.ToString("F3")).ConfigureAwait(false);
|
||||
var sub = _cache.Redis.GetSubscriber();
|
||||
sub.Publish(_creds.RedisKey() + "_reload_images",
|
||||
"",
|
||||
StackExchange.Redis.CommandFlags.FireAndForget);
|
||||
await ReplyConfirmLocalized("images_loaded", 0).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
private static UserStatus SettableUserStatusToUserStatus(SettableUserStatus sus)
|
||||
|
@ -1,4 +1,6 @@
|
||||
using System;
|
||||
|
||||
#if !GLOBAL_NADEKO
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@ -15,7 +17,6 @@ using NLog;
|
||||
|
||||
namespace NadekoBot.Modules.Administration.Services
|
||||
{
|
||||
#if !GLOBAL_NADEKO
|
||||
public class LogCommandService : INService
|
||||
{
|
||||
|
||||
@ -1023,5 +1024,6 @@ namespace NadekoBot.Modules.Administration.Services
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
#endif
|
||||
|
@ -10,6 +10,7 @@ using NadekoBot.Extensions;
|
||||
using NadekoBot.Core.Services;
|
||||
using NadekoBot.Core.Services.Impl;
|
||||
using NLog;
|
||||
using StackExchange.Redis;
|
||||
|
||||
namespace NadekoBot.Modules.Administration.Services
|
||||
{
|
||||
@ -18,6 +19,7 @@ namespace NadekoBot.Modules.Administration.Services
|
||||
public bool ForwardDMs => _bc.BotConfig.ForwardMessages;
|
||||
public bool ForwardDMsToAllOwners => _bc.BotConfig.ForwardToAllOwners;
|
||||
|
||||
private readonly ConnectionMultiplexer _redis;
|
||||
private readonly NadekoBot _bot;
|
||||
private readonly CommandHandler _cmdHandler;
|
||||
private readonly DbService _db;
|
||||
@ -28,10 +30,13 @@ namespace NadekoBot.Modules.Administration.Services
|
||||
private readonly IBotCredentials _creds;
|
||||
private ImmutableArray<AsyncLazy<IDMChannel>> ownerChannels = new ImmutableArray<AsyncLazy<IDMChannel>>();
|
||||
private readonly IBotConfigProvider _bc;
|
||||
private readonly IImagesService _imgs;
|
||||
|
||||
public SelfService(DiscordSocketClient client, NadekoBot bot, CommandHandler cmdHandler, DbService db,
|
||||
IBotConfigProvider bc, ILocalization localization, NadekoStrings strings, IBotCredentials creds)
|
||||
IBotConfigProvider bc, ILocalization localization, NadekoStrings strings, IBotCredentials creds,
|
||||
IDataCache cache, IImagesService imgs)
|
||||
{
|
||||
_redis = cache.Redis;
|
||||
_bot = bot;
|
||||
_cmdHandler = cmdHandler;
|
||||
_db = db;
|
||||
@ -41,6 +46,11 @@ namespace NadekoBot.Modules.Administration.Services
|
||||
_client = client;
|
||||
_creds = creds;
|
||||
_bc = bc;
|
||||
_imgs = imgs;
|
||||
|
||||
var sub = _redis.GetSubscriber();
|
||||
sub.Subscribe(_creds.RedisKey() + "_reload_images",
|
||||
delegate { _imgs.Reload(); }, CommandFlags.FireAndForget);
|
||||
|
||||
Task.Run(async () =>
|
||||
{
|
||||
|
@ -24,7 +24,35 @@ namespace NadekoBot.Modules.Games
|
||||
{
|
||||
_images = images;
|
||||
}
|
||||
|
||||
#if GLOBAL_NADEKO
|
||||
[NadekoCommand, Usage, Description, Aliases]
|
||||
[RequireContext(ContextType.Guild)]
|
||||
public async Task TrickOrTreat()
|
||||
{
|
||||
if (DateTime.UtcNow.Day != 31 ||
|
||||
DateTime.UtcNow.Month != 10
|
||||
|| !_service.HalloweenAwardedUsers.Add(Context.User.Id)
|
||||
)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (await _service.GetTreat(Context.User.Id))
|
||||
{
|
||||
await Context.Channel
|
||||
.SendConfirmAsync($"You've got a treat of 10🍬! Happy Halloween!")
|
||||
.ConfigureAwait(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
await Context.Channel
|
||||
.EmbedAsync(new EmbedBuilder()
|
||||
.WithDescription("No treat for you :c Happy Halloween!")
|
||||
.WithImageUrl("http://tinyurl.com/ybntddbb")
|
||||
.WithErrorColor())
|
||||
.ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
[NadekoCommand, Usage, Description, Aliases]
|
||||
public async Task Choose([Remainder] string list = null)
|
||||
{
|
||||
|
@ -13,7 +13,6 @@ using NadekoBot.Common.Collections;
|
||||
using NadekoBot.Extensions;
|
||||
using NadekoBot.Modules.Games.Common;
|
||||
using NadekoBot.Core.Services;
|
||||
using NadekoBot.Core.Services.Database.Models;
|
||||
using NadekoBot.Core.Services.Impl;
|
||||
using Newtonsoft.Json;
|
||||
using NLog;
|
||||
@ -30,6 +29,7 @@ namespace NadekoBot.Modules.Games.Services
|
||||
private readonly IBotConfigProvider _bc;
|
||||
|
||||
public readonly ConcurrentDictionary<ulong, GirlRating> GirlRatings = new ConcurrentDictionary<ulong, GirlRating>();
|
||||
|
||||
public readonly ImmutableArray<string> EightBallResponses;
|
||||
|
||||
private readonly Timer _t;
|
||||
@ -37,7 +37,8 @@ namespace NadekoBot.Modules.Games.Services
|
||||
private readonly NadekoStrings _strings;
|
||||
private readonly IImagesService _images;
|
||||
private readonly Logger _log;
|
||||
|
||||
private readonly NadekoRandom _rng;
|
||||
private readonly CurrencyService _cs;
|
||||
public readonly string TypingArticlesPath = "data/typing_articles2.json";
|
||||
private readonly CommandHandler _cmdHandler;
|
||||
|
||||
@ -56,7 +57,8 @@ namespace NadekoBot.Modules.Games.Services
|
||||
public ConcurrentDictionary<ulong, Nunchi> NunchiGames { get; } = new ConcurrentDictionary<ulong, Common.Nunchi.Nunchi>();
|
||||
|
||||
public GamesService(CommandHandler cmd, IBotConfigProvider bc, NadekoBot bot,
|
||||
NadekoStrings strings, IImagesService images, CommandHandler cmdHandler)
|
||||
NadekoStrings strings, IImagesService images, CommandHandler cmdHandler,
|
||||
CurrencyService cs)
|
||||
{
|
||||
_bc = bc;
|
||||
_cmd = cmd;
|
||||
@ -64,6 +66,8 @@ namespace NadekoBot.Modules.Games.Services
|
||||
_images = images;
|
||||
_cmdHandler = cmdHandler;
|
||||
_log = LogManager.GetCurrentClassLogger();
|
||||
_rng = new NadekoRandom();
|
||||
_cs = cs;
|
||||
|
||||
//8ball
|
||||
EightBallResponses = _bc.BotConfig.EightBallResponses.Select(ebr => ebr.Text).ToImmutableArray();
|
||||
@ -138,6 +142,7 @@ namespace NadekoBot.Modules.Games.Services
|
||||
public ConcurrentDictionary<ulong, DateTime> LastGenerations { get; } = new ConcurrentDictionary<ulong, DateTime>();
|
||||
|
||||
private ConcurrentDictionary<ulong, object> _locks { get; } = new ConcurrentDictionary<ulong, object>();
|
||||
public ConcurrentHashSet<ulong> HalloweenAwardedUsers { get; } = new ConcurrentHashSet<ulong>();
|
||||
|
||||
public (string Name, ImmutableArray<byte> Data) GetRandomCurrencyImage()
|
||||
{
|
||||
@ -211,5 +216,17 @@ namespace NadekoBot.Modules.Games.Services
|
||||
});
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
public async Task<bool> GetTreat(ulong userId)
|
||||
{
|
||||
if (_rng.Next(0, 10) != 0)
|
||||
{
|
||||
await _cs.AddAsync(userId, "Halloween 2017 Treat", 10)
|
||||
.ConfigureAwait(false);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ using System.Linq;
|
||||
|
||||
namespace NadekoBot.Core.Services.Impl
|
||||
{
|
||||
//todo move everything to redis
|
||||
public class ImagesService : IImagesService
|
||||
{
|
||||
private readonly Logger _log;
|
||||
|
Loading…
Reference in New Issue
Block a user