Flower event is prettier
This commit is contained in:
parent
33d810f036
commit
d8d657e6bd
67
src/NadekoBot/Modules/Gambling/Commands/CurrencyEvents.cs
Normal file
67
src/NadekoBot/Modules/Gambling/Commands/CurrencyEvents.cs
Normal file
@ -0,0 +1,67 @@
|
||||
using Discord;
|
||||
using Discord.Commands;
|
||||
using NadekoBot.Attributes;
|
||||
using NadekoBot.Extensions;
|
||||
using NadekoBot.Services;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace NadekoBot.Modules.Gambling
|
||||
{
|
||||
public partial class Gambling
|
||||
{
|
||||
[Group]
|
||||
public class CurrencyEvents : ModuleBase
|
||||
{
|
||||
public enum CurrencyEvent
|
||||
{
|
||||
FlowerReaction
|
||||
}
|
||||
//flower reaction event
|
||||
public static readonly ConcurrentHashSet<ulong> _flowerReactionAwardedUsers = new ConcurrentHashSet<ulong>();
|
||||
|
||||
[NadekoCommand, Usage, Description, Aliases]
|
||||
[RequireContext(ContextType.Guild)]
|
||||
[OwnerOnly]
|
||||
public async Task StartEvent(CurrencyEvent e)
|
||||
{
|
||||
var channel = (ITextChannel)Context.Channel;
|
||||
|
||||
switch (e)
|
||||
{
|
||||
case CurrencyEvent.FlowerReaction:
|
||||
await FlowerReactionEvent(Context).ConfigureAwait(false);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static async Task FlowerReactionEvent(CommandContext Context)
|
||||
{
|
||||
var msg = await Context.Channel.SendConfirmAsync("Flower reaction event started!",
|
||||
"Add 🌸 reaction to this message to get 100" + NadekoBot.BotConfig.CurrencySign,
|
||||
footer: "This event is active for 24 hours.")
|
||||
.ConfigureAwait(false);
|
||||
await msg.AddReactionAsync("🌸").ConfigureAwait(false);
|
||||
using (msg.OnReaction(async (r) =>
|
||||
{
|
||||
if (r.Emoji.Name == "🌸" && r.User.IsSpecified && _flowerReactionAwardedUsers.Add(r.User.Value.Id))
|
||||
{
|
||||
try { await CurrencyHandler.AddCurrencyAsync(r.User.Value, "Flower Reaction Event", 100, true).ConfigureAwait(false); } catch { }
|
||||
}
|
||||
}))
|
||||
{
|
||||
await Task.Delay(TimeSpan.FromHours(24)).ConfigureAwait(false);
|
||||
try { await msg.DeleteAsync().ConfigureAwait(false); } catch { }
|
||||
_flowerReactionAwardedUsers.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user