Random is now even more random

This commit is contained in:
dboerlage 2017-04-25 17:27:11 +02:00
parent 5dd7d343ee
commit 341de410f1
No known key found for this signature in database
GPG key ID: BDA07B7D3FCF147F
6 changed files with 46 additions and 9 deletions

View file

@ -0,0 +1,29 @@
using System;
namespace Geekbot.net.Lib.IClients
{
public interface IRandomClient
{
Random Client { get; set; }
}
public sealed class RandomClient : IRandomClient
{
public RandomClient()
{
try
{
Client = new Random();
}
catch (Exception)
{
Console.WriteLine("Start Redis pls...");
Environment.Exit(1);
}
}
public Random Client { get; set; }
}
}

View file

@ -2,11 +2,18 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Discord.Commands;
using Geekbot.net.Lib.IClients;
namespace Geekbot.net.Modules
{
public class EightBall : ModuleBase
{
private readonly IRandomClient rnd;
public EightBall(IRandomClient randomClient)
{
rnd = randomClient;
}
[Command("8ball"), Summary("Ask 8Ball a Question.")]
public async Task Ball([Remainder, Summary("The Question")] string echo)
{
@ -32,8 +39,7 @@ namespace Geekbot.net.Modules
"Outlook not so good",
"Very doubtful"};
var rnd = new Random();
var answer = rnd.Next(replies.Count);
var answer = rnd.Client.Next(replies.Count);
await ReplyAsync(replies[answer]);
}
}

View file

@ -1,23 +1,24 @@
using System;
using System.Threading.Tasks;
using System.Threading.Tasks;
using Discord.Commands;
using Geekbot.net.Lib;
using Geekbot.net.Lib.IClients;
namespace Geekbot.net.Modules
{
public class Roll : ModuleBase
{
private readonly IRedisClient redis;
public Roll(IRedisClient redisClient)
private readonly IRandomClient rnd;
public Roll(IRedisClient redisClient, IRandomClient randomClient)
{
redis = redisClient;
rnd = randomClient;
}
[Command("roll"), Summary("Roll a number between 1 and 100.")]
public async Task RollCommand([Remainder, Summary("stuff...")] string stuff = "nothing")
{
var rnd = new Random();
var number = rnd.Next(1, 100);
var number = rnd.Client.Next(1, 100);
var guess = 1000;
int.TryParse(stuff, out guess);
if (guess <= 100 && guess > 0)
@ -40,8 +41,7 @@ namespace Geekbot.net.Modules
[Command("dice"), Summary("Roll a dice")]
public async Task DiceCommand([Summary("The highest number on the dice")] int max = 6)
{
var rnd = new Random();
var number = rnd.Next(1, max);
var number = rnd.Client.Next(1, max);
await ReplyAsync(Context.Message.Author.Mention + ", you rolled " + number);
}
}

View file

@ -5,6 +5,7 @@ using Discord;
using Discord.Commands;
using Discord.WebSocket;
using Geekbot.net.Lib;
using Geekbot.net.Lib.IClients;
using Geekbot.net.Modules;
namespace Geekbot.net
@ -51,6 +52,7 @@ namespace Geekbot.net
map = new DependencyMap();
map.Add<ICatClient>(new CatClient());
map.Add(redis);
map.Add<IRandomClient>(new RandomClient());
await InstallCommands();
Console.WriteLine("Connecting to Discord...");