Acrophobia and weather fixes

This commit is contained in:
Kwoth 2016-12-22 12:14:18 +01:00
parent c5376f999e
commit e8d8134321
4 changed files with 28 additions and 5 deletions

View File

@ -24,7 +24,7 @@ namespace NadekoBot.Modules.Games
[NadekoCommand, Usage, Description, Aliases]
[RequireContext(ContextType.Guild)]
public async Task Acro(IUserMessage imsg, int time = 45)
public async Task Acro(IUserMessage imsg, int time = 60)
{
var channel = (ITextChannel)imsg.Channel;
@ -67,6 +67,8 @@ namespace NadekoBot.Modules.Games
private readonly ConcurrentDictionary<string, IGuildUser> submissions = new ConcurrentDictionary<string, IGuildUser>();
public IReadOnlyDictionary<string, IGuildUser> Submissions => submissions;
private readonly ConcurrentHashSet<ulong> usersWhoVoted = new ConcurrentHashSet<ulong>();
private int spamCount = 0;
//text, votes
@ -136,7 +138,10 @@ namespace NadekoBot.Modules.Games
}
else if (submissions.Count == 1)
{
await channel.SendConfirmAsync("Acrophobia", $"{submissions.First().Value.Mention} is the winner for being the only user who made a submission!").ConfigureAwait(false);
await channel.EmbedAsync(new EmbedBuilder().WithOkColor()
.WithDescription($"{submissions.First().Value.Mention} is the winner for being the only user who made a submission!")
.WithFooter(efb => efb.WithText(submissions.First().Key.ToLowerInvariant().ToTitleCase()))
.Build()).ConfigureAwait(false);
return;
}
var submissionClosedEmbed = GetEmbed();
@ -226,9 +231,27 @@ namespace NadekoBot.Modules.Games
IGuildUser usr;
if (submissions.TryGetValue(input, out usr) && usr.Id != guildUser.Id)
{
if (!usersWhoVoted.Add(guildUser.Id))
return;
votes.AddOrUpdate(input, 1, (key, old) => ++old);
await channel.SendConfirmAsync("Acrophobia", $"{guildUser.Mention} cast their vote!").ConfigureAwait(false);
await msg.DeleteAsync().ConfigureAwait(false);
return;
}
int num;
if (int.TryParse(input, out num) && num >= 0 && num < submissions.Count)
{
var kvp = submissions.Skip(num).First();
usr = kvp.Value;
if (usr.Id == guildUser.Id)
return;
if (!usersWhoVoted.Add(guildUser.Id))
return;
votes.AddOrUpdate(kvp.Key, 1, (key, old) => ++old);
await channel.SendConfirmAsync("Acrophobia", $"{guildUser.Mention} cast their vote!").ConfigureAwait(false);
await msg.DeleteAsync().ConfigureAwait(false);
return;
}
}

View File

@ -32,7 +32,7 @@ namespace NadekoBot.Modules.Searches.Commands.Models
public class Wind
{
public double speed { get; set; }
public int deg { get; set; }
public double deg { get; set; }
}
public class Clouds

View File

@ -96,7 +96,7 @@ namespace NadekoBot.Resources {
}
/// <summary>
/// Looks up a localized string similar to Starts an Acrophobia game. Second argment is optional round length in seconds. (default is 45).
/// Looks up a localized string similar to Starts an Acrophobia game. Second argment is optional round length in seconds. (default is 60).
/// </summary>
public static string acro_desc {
get {

View File

@ -2794,7 +2794,7 @@
<value>acro</value>
</data>
<data name="acro_desc" xml:space="preserve">
<value>Starts an Acrophobia game. Second argment is optional round length in seconds. (default is 45)</value>
<value>Starts an Acrophobia game. Second argment is optional round length in seconds. (default is 60)</value>
</data>
<data name="acro_usage" xml:space="preserve">
<value>`{0}acro` or `{0}acro 30`</value>