Add a better random number generator
This commit is contained in:
parent
fe08eee049
commit
4143180b42
8 changed files with 85 additions and 9 deletions
|
@ -8,6 +8,7 @@ using Geekbot.net.Lib.AlmostRedis;
|
|||
using Geekbot.net.Lib.ErrorHandling;
|
||||
using Geekbot.net.Lib.Extensions;
|
||||
using Geekbot.net.Lib.Localization;
|
||||
using Geekbot.net.Lib.RandomNumberGenerator;
|
||||
using StackExchange.Redis;
|
||||
|
||||
namespace Geekbot.net.Commands.Games
|
||||
|
@ -18,12 +19,14 @@ namespace Geekbot.net.Commands.Games
|
|||
private readonly IAlmostRedis _redis;
|
||||
private readonly ITranslationHandler _translation;
|
||||
private readonly DatabaseContext _database;
|
||||
private readonly IRandomNumberGenerator _randomNumberGenerator;
|
||||
|
||||
public Roll(IAlmostRedis redis, IErrorHandler errorHandler, ITranslationHandler translation, DatabaseContext database)
|
||||
public Roll(IAlmostRedis redis, IErrorHandler errorHandler, ITranslationHandler translation, DatabaseContext database, IRandomNumberGenerator randomNumberGenerator)
|
||||
{
|
||||
_redis = redis;
|
||||
_translation = translation;
|
||||
_database = database;
|
||||
_randomNumberGenerator = randomNumberGenerator;
|
||||
_errorHandler = errorHandler;
|
||||
}
|
||||
|
||||
|
@ -33,7 +36,7 @@ namespace Geekbot.net.Commands.Games
|
|||
{
|
||||
try
|
||||
{
|
||||
var number = new Random().Next(1, 100);
|
||||
var number = _randomNumberGenerator.Next(1, 100);
|
||||
var guess = 1000;
|
||||
int.TryParse(stuff, out guess);
|
||||
var transDict = await _translation.GetDict(Context);
|
||||
|
|
|
@ -7,18 +7,21 @@ using Geekbot.net.Database;
|
|||
using Geekbot.net.Database.Models;
|
||||
using Geekbot.net.Lib.ErrorHandling;
|
||||
using Geekbot.net.Lib.Extensions;
|
||||
using Geekbot.net.Lib.RandomNumberGenerator;
|
||||
|
||||
namespace Geekbot.net.Commands.Randomness
|
||||
{
|
||||
public class Ship : ModuleBase
|
||||
{
|
||||
private readonly IErrorHandler _errorHandler;
|
||||
private readonly IRandomNumberGenerator _randomNumberGenerator;
|
||||
private readonly DatabaseContext _database;
|
||||
|
||||
public Ship(DatabaseContext database, IErrorHandler errorHandler)
|
||||
public Ship(DatabaseContext database, IErrorHandler errorHandler, IRandomNumberGenerator randomNumberGenerator)
|
||||
{
|
||||
_database = database;
|
||||
_errorHandler = errorHandler;
|
||||
_randomNumberGenerator = randomNumberGenerator;
|
||||
}
|
||||
|
||||
[Command("Ship", RunMode = RunMode.Async)]
|
||||
|
@ -38,7 +41,7 @@ namespace Geekbot.net.Commands.Randomness
|
|||
var shippingRate = 0;
|
||||
if (dbval == null)
|
||||
{
|
||||
shippingRate = new Random().Next(1, 100);
|
||||
shippingRate = _randomNumberGenerator.Next(1, 100);
|
||||
_database.Ships.Add(new ShipsModel()
|
||||
{
|
||||
FirstUserId = userKeys.Item1,
|
||||
|
|
|
@ -9,6 +9,7 @@ using Geekbot.net.Lib.CommandPreconditions;
|
|||
using Geekbot.net.Lib.ErrorHandling;
|
||||
using Geekbot.net.Lib.Extensions;
|
||||
using Geekbot.net.Lib.Localization;
|
||||
using Geekbot.net.Lib.RandomNumberGenerator;
|
||||
|
||||
namespace Geekbot.net.Commands.Rpg
|
||||
{
|
||||
|
@ -19,12 +20,14 @@ namespace Geekbot.net.Commands.Rpg
|
|||
private readonly DatabaseContext _database;
|
||||
private readonly IErrorHandler _errorHandler;
|
||||
private readonly ITranslationHandler _translation;
|
||||
private readonly IRandomNumberGenerator _randomNumberGenerator;
|
||||
|
||||
public Cookies(DatabaseContext database, IErrorHandler errorHandler, ITranslationHandler translation)
|
||||
public Cookies(DatabaseContext database, IErrorHandler errorHandler, ITranslationHandler translation , IRandomNumberGenerator randomNumberGenerator)
|
||||
{
|
||||
_database = database;
|
||||
_errorHandler = errorHandler;
|
||||
_translation = translation;
|
||||
_randomNumberGenerator = randomNumberGenerator;
|
||||
}
|
||||
|
||||
[Command("get", RunMode = RunMode.Async)]
|
||||
|
@ -114,7 +117,7 @@ namespace Geekbot.net.Commands.Rpg
|
|||
return;
|
||||
}
|
||||
|
||||
var amount = new Random().Next(1, 5);
|
||||
var amount = _randomNumberGenerator.Next(1, 5);
|
||||
actor.Cookies -= amount;
|
||||
|
||||
await SetUser(actor);
|
||||
|
|
|
@ -4,11 +4,19 @@ using System.Linq;
|
|||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Discord.Commands;
|
||||
using Geekbot.net.Lib.RandomNumberGenerator;
|
||||
|
||||
namespace Geekbot.net.Commands.Utils.Dice
|
||||
{
|
||||
public class Dice : ModuleBase
|
||||
{
|
||||
private readonly IRandomNumberGenerator _randomNumberGenerator;
|
||||
|
||||
public Dice(IRandomNumberGenerator randomNumberGenerator)
|
||||
{
|
||||
_randomNumberGenerator = randomNumberGenerator;
|
||||
}
|
||||
|
||||
[Command("dice", RunMode = RunMode.Async)]
|
||||
[Summary("Roll a dice.")]
|
||||
public async Task RollCommand([Remainder] [Summary("diceType")] string diceType = "1d20")
|
||||
|
@ -66,7 +74,7 @@ namespace Geekbot.net.Commands.Utils.Dice
|
|||
var results = new List<int>();
|
||||
for (var i = 0; i < dice.Times; i++)
|
||||
{
|
||||
var roll = new Random().Next(1, dice.Sides);
|
||||
var roll = _randomNumberGenerator.Next(1, dice.Sides);
|
||||
total += roll;
|
||||
results.Add(roll);
|
||||
if (roll == dice.Sides) extraText = "**Critical Hit!**";
|
||||
|
|
|
@ -9,6 +9,7 @@ using Geekbot.net.Lib.CommandPreconditions;
|
|||
using Geekbot.net.Lib.ErrorHandling;
|
||||
using Geekbot.net.Lib.Extensions;
|
||||
using Geekbot.net.Lib.Polyfills;
|
||||
using Geekbot.net.Lib.RandomNumberGenerator;
|
||||
|
||||
namespace Geekbot.net.Commands.Utils.Quote
|
||||
{
|
||||
|
@ -18,11 +19,13 @@ namespace Geekbot.net.Commands.Utils.Quote
|
|||
{
|
||||
private readonly IErrorHandler _errorHandler;
|
||||
private readonly DatabaseContext _database;
|
||||
private readonly IRandomNumberGenerator _randomNumberGenerator;
|
||||
|
||||
public Quote(IErrorHandler errorHandler, DatabaseContext database)
|
||||
public Quote(IErrorHandler errorHandler, DatabaseContext database, IRandomNumberGenerator randomNumberGenerator)
|
||||
{
|
||||
_errorHandler = errorHandler;
|
||||
_database = database;
|
||||
_randomNumberGenerator = randomNumberGenerator;
|
||||
}
|
||||
|
||||
[Command]
|
||||
|
@ -39,7 +42,7 @@ namespace Geekbot.net.Commands.Utils.Quote
|
|||
return;
|
||||
}
|
||||
|
||||
var random = new Random().Next(s.Count());
|
||||
var random = _randomNumberGenerator.Next(0, s.Count());
|
||||
var quote = s[random];
|
||||
|
||||
var embed = QuoteBuilder(quote);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue