Flower event is prettier
This commit is contained in:
		
							
								
								
									
										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();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user