cleanup
This commit is contained in:
parent
e9cf57d46f
commit
263a95a6ad
@ -37,7 +37,7 @@ namespace NadekoBot.Modules.Administration
|
||||
if (role == null)
|
||||
{
|
||||
conf.AutoAssignRoleId = 0;
|
||||
_service.AutoAssignedRoles.TryRemove(Context.Guild.Id, out ulong throwaway);
|
||||
_service.AutoAssignedRoles.TryRemove(Context.Guild.Id, out _);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -61,8 +61,7 @@ namespace NadekoBot.Modules.Administration
|
||||
return;
|
||||
}
|
||||
|
||||
AntiRaidStats throwaway;
|
||||
if (_service.AntiRaidGuilds.TryRemove(Context.Guild.Id, out throwaway))
|
||||
if (_service.AntiRaidGuilds.TryRemove(Context.Guild.Id, out _))
|
||||
{
|
||||
using (var uow = _db.UnitOfWork)
|
||||
{
|
||||
@ -118,10 +117,9 @@ namespace NadekoBot.Modules.Administration
|
||||
if (messageCount < 2 || messageCount > 10)
|
||||
return;
|
||||
|
||||
AntiSpamStats throwaway;
|
||||
if (_service.AntiSpamGuilds.TryRemove(Context.Guild.Id, out throwaway))
|
||||
if (_service.AntiSpamGuilds.TryRemove(Context.Guild.Id, out var removed))
|
||||
{
|
||||
throwaway.UserStats.ForEach(x => x.Value.Dispose());
|
||||
removed.UserStats.ForEach(x => x.Value.Dispose());
|
||||
using (var uow = _db.UnitOfWork)
|
||||
{
|
||||
var gc = uow.GuildConfigs.For(Context.Guild.Id, set => set.Include(x => x.AntiSpamSetting)
|
||||
|
@ -30,9 +30,9 @@ namespace NadekoBot.Modules.Administration
|
||||
[RequireUserPermission(GuildPermission.ManageMessages)]
|
||||
public async Task Slowmode()
|
||||
{
|
||||
if (_service.RatelimitingChannels.TryRemove(Context.Channel.Id, out Ratelimiter throwaway))
|
||||
if (_service.RatelimitingChannels.TryRemove(Context.Channel.Id, out Ratelimiter removed))
|
||||
{
|
||||
throwaway.CancelSource.Cancel();
|
||||
removed.CancelSource.Cancel();
|
||||
await ReplyConfirmLocalized("slowmode_disabled").ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
|
@ -18,17 +18,19 @@ namespace NadekoBot.Modules.Administration.Services
|
||||
private readonly Logger _log;
|
||||
private readonly Replacer _rep;
|
||||
private readonly DbService _db;
|
||||
public BotConfig BotConfig { get; private set; } //todo load whole botconifg, not just for this service when you have the time
|
||||
private readonly IBotConfigProvider _bcp;
|
||||
|
||||
public BotConfig BotConfig => _bcp.BotConfig;
|
||||
|
||||
private class TimerState
|
||||
{
|
||||
public int Index { get; set; }
|
||||
}
|
||||
|
||||
public PlayingRotateService(DiscordSocketClient client, BotConfig bc, MusicService music, DbService db)
|
||||
public PlayingRotateService(DiscordSocketClient client, IBotConfigProvider bcp, MusicService music, DbService db)
|
||||
{
|
||||
_client = client;
|
||||
BotConfig = bc;
|
||||
_bcp = bcp;
|
||||
_music = music;
|
||||
_db = db;
|
||||
_log = LogManager.GetCurrentClassLogger();
|
||||
@ -42,10 +44,8 @@ namespace NadekoBot.Modules.Administration.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var uow = _db.UnitOfWork)
|
||||
{
|
||||
BotConfig = uow.BotConfig.GetOrCreate();
|
||||
}
|
||||
bcp.Reload();
|
||||
|
||||
var state = (TimerState)objState;
|
||||
if (!BotConfig.RotatingStatuses)
|
||||
return;
|
||||
|
@ -15,7 +15,6 @@ namespace NadekoBot.Modules.Administration.Services
|
||||
{
|
||||
public class SelfService : ILateExecutor, INService
|
||||
{
|
||||
//todo bot config
|
||||
public bool ForwardDMs => _bc.BotConfig.ForwardMessages;
|
||||
public bool ForwardDMsToAllOwners => _bc.BotConfig.ForwardToAllOwners;
|
||||
|
||||
|
@ -433,8 +433,7 @@ namespace NadekoBot.Modules.CustomReactions
|
||||
}
|
||||
else
|
||||
{
|
||||
uint throwaway;
|
||||
if (_service.ReactionStats.TryRemove(trigger, out throwaway))
|
||||
if (_service.ReactionStats.TryRemove(trigger, out _))
|
||||
{
|
||||
await ReplyErrorLocalized("stats_cleared", Format.Bold(trigger)).ConfigureAwait(false);
|
||||
}
|
||||
|
@ -158,8 +158,7 @@ namespace NadekoBot.Modules.Gambling
|
||||
|
||||
private void End()
|
||||
{
|
||||
AnimalRace throwaway;
|
||||
AnimalRaces.TryRemove(_serverId, out throwaway);
|
||||
AnimalRaces.TryRemove(_serverId, out _);
|
||||
}
|
||||
|
||||
private async Task StartRace()
|
||||
|
@ -28,7 +28,7 @@ namespace NadekoBot.Modules.Games
|
||||
{
|
||||
var channel = (ITextChannel)Context.Channel;
|
||||
|
||||
if (_service.ChatterBotGuilds.TryRemove(channel.Guild.Id, out Lazy<IChatterBotSession> throwaway))
|
||||
if (_service.ChatterBotGuilds.TryRemove(channel.Guild.Id, out _))
|
||||
{
|
||||
using (var uow = _db.UnitOfWork)
|
||||
{
|
||||
|
@ -11,6 +11,14 @@ using NadekoBot.Modules.Games.Services;
|
||||
|
||||
namespace NadekoBot.Modules.Games
|
||||
{
|
||||
/*todo more games
|
||||
- Blackjack
|
||||
- Shiritori
|
||||
- Simple RPG adventure
|
||||
- The nunchi game
|
||||
- Wheel of fortune
|
||||
- Connect 4
|
||||
*/
|
||||
public partial class Games : NadekoTopLevelModule<GamesService>
|
||||
{
|
||||
private readonly IImagesService _images;
|
||||
|
@ -45,7 +45,7 @@ namespace NadekoBot.Modules.Games
|
||||
|
||||
hm.OnEnded += g =>
|
||||
{
|
||||
HangmanGames.TryRemove(g.GameChannel.Id, out HangmanGame throwaway);
|
||||
HangmanGames.TryRemove(g.GameChannel.Id, out _);
|
||||
};
|
||||
try
|
||||
{
|
||||
@ -54,8 +54,8 @@ namespace NadekoBot.Modules.Games
|
||||
catch (Exception ex)
|
||||
{
|
||||
try { await Context.Channel.SendErrorAsync(GetText("hangman_start_errored") + " " + ex.Message).ConfigureAwait(false); } catch { }
|
||||
HangmanGames.TryRemove(Context.Channel.Id, out HangmanGame throwaway);
|
||||
throwaway.Dispose();
|
||||
if(HangmanGames.TryRemove(Context.Channel.Id, out var removed))
|
||||
removed.Dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
@ -66,9 +66,9 @@ namespace NadekoBot.Modules.Games
|
||||
[RequireContext(ContextType.Guild)]
|
||||
public async Task HangmanStop()
|
||||
{
|
||||
if (HangmanGames.TryRemove(Context.Channel.Id, out HangmanGame throwaway))
|
||||
if (HangmanGames.TryRemove(Context.Channel.Id, out var removed))
|
||||
{
|
||||
throwaway.Dispose();
|
||||
removed.Dispose();
|
||||
await ReplyConfirmLocalized("hangman_stopped").ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
|
@ -74,8 +74,7 @@ namespace NadekoBot.Modules.Permissions
|
||||
// else
|
||||
// {
|
||||
// bc.CommandCosts.RemoveAt(bc.CommandCosts.IndexOf(cmdPrice));
|
||||
// int throwaway;
|
||||
// _commandCosts.TryRemove(cmdName, out throwaway);
|
||||
// _commandCosts.TryRemove(cmdName, out _);
|
||||
// }
|
||||
|
||||
// await uow.CompleteAsync().ConfigureAwait(false);
|
||||
|
@ -10,8 +10,15 @@ namespace NadekoBot.Modules.Utility
|
||||
{
|
||||
public partial class Utility
|
||||
{
|
||||
public class BotConfigCommands : NadekoSubmodule<IBotConfigProvider>
|
||||
public class BotConfigCommands : NadekoSubmodule
|
||||
{
|
||||
private readonly IBotConfigProvider _service;
|
||||
|
||||
public BotConfigCommands(IBotConfigProvider service)
|
||||
{
|
||||
_service = service;
|
||||
}
|
||||
|
||||
[NadekoCommand, Usage, Description, Aliases]
|
||||
[OwnerOnly]
|
||||
public async Task BotConfigEdit()
|
||||
|
@ -42,10 +42,8 @@ namespace NadekoBot.Modules.Utility
|
||||
|
||||
if (string.IsNullOrWhiteSpace(mapping))
|
||||
{
|
||||
ConcurrentDictionary<string, string> maps;
|
||||
string throwaway;
|
||||
if (!_service.AliasMaps.TryGetValue(Context.Guild.Id, out maps) ||
|
||||
!maps.TryRemove(trigger, out throwaway))
|
||||
if (!_service.AliasMaps.TryGetValue(Context.Guild.Id, out var maps) ||
|
||||
!maps.TryRemove(trigger, out _))
|
||||
{
|
||||
await ReplyErrorLocalized("alias_remove_fail", Format.Code(trigger)).ConfigureAwait(false);
|
||||
return;
|
||||
@ -113,8 +111,7 @@ namespace NadekoBot.Modules.Utility
|
||||
if (page < 0)
|
||||
return;
|
||||
|
||||
ConcurrentDictionary<string, string> maps;
|
||||
if (!_service.AliasMaps.TryGetValue(Context.Guild.Id, out maps) || !maps.Any())
|
||||
if (!_service.AliasMaps.TryGetValue(Context.Guild.Id, out var maps) || !maps.Any())
|
||||
{
|
||||
await ReplyErrorLocalized("aliases_none").ConfigureAwait(false);
|
||||
return;
|
||||
|
@ -32,7 +32,7 @@ namespace NadekoBot
|
||||
public DiscordSocketClient Client { get; }
|
||||
public CommandService CommandService { get; }
|
||||
|
||||
public DbService Db { get; }
|
||||
private readonly DbService _db;
|
||||
public ImmutableArray<GuildConfig> AllGuildConfigs { get; private set; }
|
||||
|
||||
/* I don't know how to make this not be static
|
||||
@ -64,7 +64,7 @@ namespace NadekoBot
|
||||
TerribleElevatedPermissionCheck();
|
||||
|
||||
Credentials = new BotCredentials();
|
||||
Db = new DbService(Credentials);
|
||||
_db = new DbService(Credentials);
|
||||
Client = new DiscordSocketClient(new DiscordSocketConfig
|
||||
{
|
||||
MessageCacheSize = 10,
|
||||
@ -83,7 +83,7 @@ namespace NadekoBot
|
||||
port = port ?? Credentials.ShardRunPort;
|
||||
_comClient = new ShardComClient(port.Value);
|
||||
|
||||
using (var uow = Db.UnitOfWork)
|
||||
using (var uow = _db.UnitOfWork)
|
||||
{
|
||||
_botConfig = uow.BotConfig.GetOrCreate();
|
||||
OkColor = new Color(Convert.ToUInt32(_botConfig.OkColor, 16));
|
||||
@ -120,20 +120,22 @@ namespace NadekoBot
|
||||
var startingGuildIdList = Client.Guilds.Select(x => (long)x.Id).ToList();
|
||||
|
||||
//this unit of work will be used for initialization of all modules too, to prevent multiple queries from running
|
||||
using (var uow = Db.UnitOfWork)
|
||||
using (var uow = _db.UnitOfWork)
|
||||
{
|
||||
AllGuildConfigs = uow.GuildConfigs.GetAllGuildConfigs(startingGuildIdList).ToImmutableArray();
|
||||
|
||||
var localization = new Localization(_botConfig.Locale, AllGuildConfigs.ToDictionary(x => x.GuildId, x => x.Locale), Db);
|
||||
IBotConfigProvider botConfigProvider = new BotConfigProvider(_db, _botConfig);
|
||||
|
||||
//var localization = new Localization(_botConfig.Locale, AllGuildConfigs.ToDictionary(x => x.GuildId, x => x.Locale), Db);
|
||||
|
||||
//initialize Services
|
||||
Services = new NServiceProvider.ServiceProviderBuilder()
|
||||
.AddManual<IBotCredentials>(Credentials)
|
||||
.AddManual(Db)
|
||||
.AddManual(_botConfig)
|
||||
.AddManual(_db)
|
||||
.AddManual(Client)
|
||||
.AddManual(CommandService)
|
||||
.AddManual<ILocalization>(localization)
|
||||
.AddManual(botConfigProvider)
|
||||
//.AddManual<ILocalization>(localization)
|
||||
.AddManual<IEnumerable<GuildConfig>>(AllGuildConfigs) //todo wrap this
|
||||
.AddManual<NadekoBot>(this)
|
||||
.AddManual<IUnitOfWork>(uow)
|
||||
|
@ -261,10 +261,11 @@ namespace NadekoBot.Services
|
||||
}
|
||||
}
|
||||
var prefix = GetPrefix(guild?.Id);
|
||||
var isPrefixCommand = messageContent == ".prefix";
|
||||
// execute the command and measure the time it took
|
||||
if (messageContent.StartsWith(prefix))
|
||||
if (messageContent.StartsWith(prefix) || isPrefixCommand)
|
||||
{
|
||||
var result = await ExecuteCommandAsync(new CommandContext(_client, usrMsg), messageContent, prefix.Length, _services, MultiMatchHandling.Best);
|
||||
var result = await ExecuteCommandAsync(new CommandContext(_client, usrMsg), messageContent, isPrefixCommand ? 1 : prefix.Length, _services, MultiMatchHandling.Best);
|
||||
execTime = Environment.TickCount - execTime;
|
||||
|
||||
if (result.Success)
|
||||
|
@ -3,7 +3,7 @@ using NadekoBot.Services.Database.Models;
|
||||
|
||||
namespace NadekoBot.Services
|
||||
{
|
||||
public interface IBotConfigProvider : INService
|
||||
public interface IBotConfigProvider
|
||||
{
|
||||
BotConfig BotConfig { get; }
|
||||
void Reload();
|
||||
|
@ -4,7 +4,7 @@ using Discord;
|
||||
|
||||
namespace NadekoBot.Services
|
||||
{
|
||||
public interface ILocalization
|
||||
public interface ILocalization : INService
|
||||
{
|
||||
CultureInfo DefaultCultureInfo { get; }
|
||||
ConcurrentDictionary<ulong, CultureInfo> GuildCultureInfos { get; }
|
||||
|
@ -4,6 +4,7 @@ using System.Globalization;
|
||||
using System.Linq;
|
||||
using Discord;
|
||||
using NLog;
|
||||
using NadekoBot.Services.Database.Models;
|
||||
|
||||
namespace NadekoBot.Services.Impl
|
||||
{
|
||||
@ -16,10 +17,15 @@ namespace NadekoBot.Services.Impl
|
||||
public CultureInfo DefaultCultureInfo { get; private set; } = CultureInfo.CurrentCulture;
|
||||
|
||||
private Localization() { }
|
||||
public Localization(string defaultCulture, IDictionary<ulong, string> cultureInfoNames, DbService db)
|
||||
public Localization(IBotConfigProvider bcp, IEnumerable<GuildConfig> gcs, DbService db)
|
||||
{
|
||||
_log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
var cultureInfoNames = gcs.ToDictionary(x => x.GuildId, x => x.Locale);
|
||||
var defaultCulture = bcp.BotConfig.Locale;
|
||||
|
||||
_db = db;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(defaultCulture))
|
||||
DefaultCultureInfo = new CultureInfo("en-US");
|
||||
else
|
||||
@ -74,8 +80,7 @@ namespace NadekoBot.Services.Impl
|
||||
|
||||
public void RemoveGuildCulture(ulong guildId) {
|
||||
|
||||
CultureInfo throwaway;
|
||||
if (GuildCultureInfos.TryRemove(guildId, out throwaway))
|
||||
if (GuildCultureInfos.TryRemove(guildId, out var _))
|
||||
{
|
||||
using (var uow = _db.UnitOfWork)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user