trivia modified, started speedtyping

This commit is contained in:
Master Kwoth 2016-01-23 10:18:00 +01:00
parent 80077445f8
commit a39edb1001
3 changed files with 78 additions and 5 deletions

View File

@ -0,0 +1,72 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Discord;
using Discord.Commands;
using NadekoBot.Extensions;
namespace NadekoBot.Classes {
public class TypingGame {
private Channel channel;
public TypingGame(Channel channel) {
this.channel = channel;
}
public Channel Channell { get; internal set; }
internal bool Stop() {
throw new NotImplementedException();
}
internal void Start() {
throw new NotImplementedException();
}
}
class SpeedTyping : DiscordCommand {
private static Dictionary<ulong, TypingGame> runningContests;
public SpeedTyping() : base() {
runningContests = new Dictionary<ulong, TypingGame>();
}
public override Func<CommandEventArgs, Task> DoFunc()=>
async e => {
if (runningContests.ContainsKey(e.User.Server.Id)) {
await e.Send($"Contest already running in { runningContests[e.User.Server.Id].Channell.Mention } channel.");
return;
}
var tg = new TypingGame(e.Channel);
runningContests.Add(e.Server.Id,tg);
await e.Send("Starting new typing contest!");
tg.Start();
};
private Func<CommandEventArgs,Task> QuitFunc() =>
async e => {
if (runningContests.ContainsKey(e.User.Server.Id) &&
runningContests[e.User.Server.Id].Stop())
{
runningContests.Remove(e.User.Server.Id);
await e.Send("Typing contest stopped");
return;
}
await e.Send("No contest to stop on this channel.");
};
public override void Init(CommandGroupBuilder cgb) {
cgb.CreateCommand("typing contest")
.Description("Starts a typing contest.")
.Do(DoFunc());
cgb.CreateCommand("typing stop")
.Description("Stops a typing contest on the current channel.")
.Do(QuitFunc());
}
}
}

View File

@ -137,11 +137,11 @@ namespace NadekoBot
client.MessageReceived += PotentialGuess; client.MessageReceived += PotentialGuess;
strictness = new List<Tuple<int, int>>(); strictness = new List<Tuple<int, int>>();
strictness.Add(new Tuple<int, int>(6, 0)); strictness.Add(new Tuple<int, int>(5, 0));
strictness.Add(new Tuple<int, int>(9, 1)); strictness.Add(new Tuple<int, int>(6, 1));
strictness.Add(new Tuple<int, int>(13, 2)); strictness.Add(new Tuple<int, int>(8, 2));
strictness.Add(new Tuple<int, int>(16, 3)); strictness.Add(new Tuple<int, int>(15, 3));
strictness.Add(new Tuple<int, int>(21, 4)); strictness.Add(new Tuple<int, int>(22, 4));
maxStringLength = 22; maxStringLength = 22;
timeout = new Timer(); timeout = new Timer();

View File

@ -12,6 +12,7 @@ namespace NadekoBot.Modules
{ {
public Games() : base() { public Games() : base() {
commands.Add(new Trivia()); commands.Add(new Trivia());
commands.Add(new SpeedTyping());
} }
public override void Install(ModuleManager manager) public override void Install(ModuleManager manager)