Removed module projects because it can't work like that atm. Commented out package commands.
This commit is contained in:
@ -0,0 +1,21 @@
|
||||
using System.Threading.Tasks;
|
||||
using NadekoBot.Core.Services;
|
||||
using System.Collections.Concurrent;
|
||||
using NadekoBot.Modules.Gambling.Common.AnimalRacing;
|
||||
|
||||
namespace NadekoBot.Modules.Gambling.Services
|
||||
{
|
||||
public class AnimalRaceService : INService, IUnloadableService
|
||||
{
|
||||
public ConcurrentDictionary<ulong, AnimalRace> AnimalRaces { get; } = new ConcurrentDictionary<ulong, AnimalRace>();
|
||||
|
||||
public Task Unload()
|
||||
{
|
||||
foreach (var kvp in AnimalRaces)
|
||||
{
|
||||
try { kvp.Value.Dispose(); } catch { }
|
||||
}
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
using Discord;
|
||||
using Discord.Commands;
|
||||
using NadekoBot.Modules.Gambling.Common;
|
||||
using NadekoBot.Modules.Gambling.Common.CurrencyEvents;
|
||||
using NadekoBot.Core.Services;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace NadekoBot.Modules.Gambling.Services
|
||||
{
|
||||
public class CurrencyEventsService : INService, IUnloadableService
|
||||
{
|
||||
public ConcurrentDictionary<ulong, List<ReactionEvent>> ReactionEvents { get; }
|
||||
|
||||
public SneakyEvent SneakyEvent { get; private set; } = null;
|
||||
private SemaphoreSlim _sneakyLock = new SemaphoreSlim(1, 1);
|
||||
|
||||
public CurrencyEventsService()
|
||||
{
|
||||
ReactionEvents = new ConcurrentDictionary<ulong, List<ReactionEvent>>();
|
||||
}
|
||||
|
||||
public async Task<bool> StartSneakyEvent(SneakyEvent ev, IUserMessage msg, ICommandContext ctx)
|
||||
{
|
||||
await _sneakyLock.WaitAsync().ConfigureAwait(false);
|
||||
try
|
||||
{
|
||||
if (SneakyEvent != null)
|
||||
return false;
|
||||
|
||||
SneakyEvent = ev;
|
||||
ev.OnEnded += () => SneakyEvent = null;
|
||||
var _ = SneakyEvent.Start(msg, ctx).ConfigureAwait(false);
|
||||
}
|
||||
finally
|
||||
{
|
||||
_sneakyLock.Release();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public async Task Unload()
|
||||
{
|
||||
foreach (var kvp in ReactionEvents)
|
||||
{
|
||||
foreach (var ev in kvp.Value)
|
||||
{
|
||||
try { await ev.Stop().ConfigureAwait(false); } catch { }
|
||||
}
|
||||
}
|
||||
ReactionEvents.Clear();
|
||||
|
||||
await _sneakyLock.WaitAsync().ConfigureAwait(false);
|
||||
try
|
||||
{
|
||||
await SneakyEvent.Stop().ConfigureAwait(false);
|
||||
}
|
||||
finally
|
||||
{
|
||||
_sneakyLock.Release();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
12
NadekoBot.Core/Modules/Gambling/Services/WaifuService.cs
Normal file
12
NadekoBot.Core/Modules/Gambling/Services/WaifuService.cs
Normal file
@ -0,0 +1,12 @@
|
||||
using NadekoBot.Core.Services;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
|
||||
namespace NadekoBot.Modules.Gambling.Services
|
||||
{
|
||||
public class WaifuService : INService
|
||||
{
|
||||
public ConcurrentDictionary<ulong, DateTime> DivorceCooldowns { get; } = new ConcurrentDictionary<ulong, DateTime>();
|
||||
public ConcurrentDictionary<ulong, DateTime> AffinityCooldowns { get; } = new ConcurrentDictionary<ulong, DateTime>();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user