dice rolls localizable
This commit is contained in:
parent
bd485b87f3
commit
b287321712
@ -22,7 +22,7 @@ namespace NadekoBot.Modules.Gambling
|
|||||||
private Regex dndRegex { get; } = new Regex(@"^(?<n1>\d+)d(?<n2>\d+)(?:\+(?<add>\d+))?(?:\-(?<sub>\d+))?$", RegexOptions.Compiled);
|
private Regex dndRegex { get; } = new Regex(@"^(?<n1>\d+)d(?<n2>\d+)(?:\+(?<add>\d+))?(?:\-(?<sub>\d+))?$", RegexOptions.Compiled);
|
||||||
private Regex fudgeRegex { get; } = new Regex(@"^(?<n1>\d+)d(?:F|f)$", RegexOptions.Compiled);
|
private Regex fudgeRegex { get; } = new Regex(@"^(?<n1>\d+)d(?:F|f)$", RegexOptions.Compiled);
|
||||||
|
|
||||||
private readonly char[] fateRolls = new[] { '-', ' ', '+' };
|
private readonly char[] _fateRolls = { '-', ' ', '+' };
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
public async Task Roll()
|
public async Task Roll()
|
||||||
@ -40,7 +40,9 @@ namespace NadekoBot.Modules.Gambling
|
|||||||
return ms;
|
return ms;
|
||||||
}).ConfigureAwait(false);
|
}).ConfigureAwait(false);
|
||||||
|
|
||||||
await Context.Channel.SendFileAsync(imageStream, "dice.png", $"{Context.User.Mention} rolled " + Format.Code(gen.ToString())).ConfigureAwait(false);
|
await Context.Channel.SendFileAsync(imageStream,
|
||||||
|
"dice.png",
|
||||||
|
Context.User.Mention + " " + GetText("dice_rolled", Format.Code(gen.ToString()))).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum RollOrderType
|
public enum RollOrderType
|
||||||
@ -82,7 +84,7 @@ namespace NadekoBot.Modules.Gambling
|
|||||||
{
|
{
|
||||||
if (num < 1 || num > 30)
|
if (num < 1 || num > 30)
|
||||||
{
|
{
|
||||||
await Context.Channel.SendErrorAsync("Invalid number specified. You can roll up to 1-30 dice at a time.").ConfigureAwait(false);
|
await ReplyErrorLocalized("dice_invalid_number", 1, 30).ConfigureAwait(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,7 +122,12 @@ namespace NadekoBot.Modules.Gambling
|
|||||||
var ms = new MemoryStream();
|
var ms = new MemoryStream();
|
||||||
bitmap.SaveAsPng(ms);
|
bitmap.SaveAsPng(ms);
|
||||||
ms.Position = 0;
|
ms.Position = 0;
|
||||||
await Context.Channel.SendFileAsync(ms, "dice.png", $"{Context.User.Mention} rolled {values.Count} {(values.Count == 1 ? "die" : "dice")}. Total: **{values.Sum()}** Average: **{(values.Sum() / (1.0f * values.Count)).ToString("N2")}**").ConfigureAwait(false);
|
await Context.Channel.SendFileAsync(ms, "dice.png",
|
||||||
|
Context.User.Mention +
|
||||||
|
GetText("dice_rolled_num", Format.Bold(values.Count.ToString())) +
|
||||||
|
" " + GetText("Total: {1} Average: {2}",
|
||||||
|
Format.Bold(values.Sum().ToString()),
|
||||||
|
Format.Bold((values.Sum() / (1.0f * values.Count)).ToString("N2")))).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task InternallDndRoll(string arg, bool ordered)
|
private async Task InternallDndRoll(string arg, bool ordered)
|
||||||
@ -138,9 +145,9 @@ namespace NadekoBot.Modules.Gambling
|
|||||||
|
|
||||||
for (int i = 0; i < n1; i++)
|
for (int i = 0; i < n1; i++)
|
||||||
{
|
{
|
||||||
rolls.Add(fateRolls[rng.Next(0, fateRolls.Length)]);
|
rolls.Add(_fateRolls[rng.Next(0, _fateRolls.Length)]);
|
||||||
}
|
}
|
||||||
var embed = new EmbedBuilder().WithOkColor().WithDescription($"{Context.User.Mention} rolled {n1} fate {(n1 == 1 ? "die" : "dice")}.")
|
var embed = new EmbedBuilder().WithOkColor().WithDescription(Context.User.Mention + " " + GetText("dice_rolled_num", Format.Bold(n1.ToString())))
|
||||||
.AddField(efb => efb.WithName(Format.Bold("Result"))
|
.AddField(efb => efb.WithName(Format.Bold("Result"))
|
||||||
.WithValue(string.Join(" ", rolls.Select(c => Format.Code($"[{c}]")))));
|
.WithValue(string.Join(" ", rolls.Select(c => Format.Code($"[{c}]")))));
|
||||||
await Context.Channel.EmbedAsync(embed).ConfigureAwait(false);
|
await Context.Channel.EmbedAsync(embed).ConfigureAwait(false);
|
||||||
@ -164,7 +171,7 @@ namespace NadekoBot.Modules.Gambling
|
|||||||
}
|
}
|
||||||
|
|
||||||
var sum = arr.Sum();
|
var sum = arr.Sum();
|
||||||
var embed = new EmbedBuilder().WithOkColor().WithDescription($"{Context.User.Mention} rolled {n1} {(n1 == 1 ? "die" : "dice")} `1 to {n2}`")
|
var embed = new EmbedBuilder().WithOkColor().WithDescription(Context.User.Mention + " " +GetText("dice_rolled_num", n1) + $"`1 - {n2}`")
|
||||||
.AddField(efb => efb.WithName(Format.Bold("Rolls"))
|
.AddField(efb => efb.WithName(Format.Bold("Rolls"))
|
||||||
.WithValue(string.Join(" ", (ordered ? arr.OrderBy(x => x).AsEnumerable() : arr).Select(x => Format.Code(x.ToString())))))
|
.WithValue(string.Join(" ", (ordered ? arr.OrderBy(x => x).AsEnumerable() : arr).Select(x => Format.Code(x.ToString())))))
|
||||||
.AddField(efb => efb.WithName(Format.Bold("Sum"))
|
.AddField(efb => efb.WithName(Format.Bold("Sum"))
|
||||||
@ -177,30 +184,26 @@ namespace NadekoBot.Modules.Gambling
|
|||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
public async Task NRoll([Remainder] string range)
|
public async Task NRoll([Remainder] string range)
|
||||||
{
|
{
|
||||||
try
|
int rolled;
|
||||||
|
if (range.Contains("-"))
|
||||||
{
|
{
|
||||||
int rolled;
|
var arr = range.Split('-')
|
||||||
if (range.Contains("-"))
|
.Take(2)
|
||||||
|
.Select(int.Parse)
|
||||||
|
.ToArray();
|
||||||
|
if (arr[0] > arr[1])
|
||||||
{
|
{
|
||||||
var arr = range.Split('-')
|
await ReplyErrorLocalized("second_larger_than_first").ConfigureAwait(false);
|
||||||
.Take(2)
|
return;
|
||||||
.Select(int.Parse)
|
|
||||||
.ToArray();
|
|
||||||
if (arr[0] > arr[1])
|
|
||||||
throw new ArgumentException("Second argument must be larger than the first one.");
|
|
||||||
rolled = new NadekoRandom().Next(arr[0], arr[1] + 1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
rolled = new NadekoRandom().Next(0, int.Parse(range) + 1);
|
|
||||||
}
|
}
|
||||||
|
rolled = new NadekoRandom().Next(arr[0], arr[1] + 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rolled = new NadekoRandom().Next(0, int.Parse(range) + 1);
|
||||||
|
}
|
||||||
|
|
||||||
await Context.Channel.SendConfirmAsync($"{Context.User.Mention} rolled **{rolled}**.").ConfigureAwait(false);
|
await ReplyConfirmLocalized("dice_rolled", Format.Bold(rolled.ToString())).ConfigureAwait(false);
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
await Context.Channel.SendErrorAsync($":anger: {ex.Message}").ConfigureAwait(false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Image GetDice(int num)
|
private Image GetDice(int num)
|
||||||
|
36
src/NadekoBot/Resources/ResponseStrings.Designer.cs
generated
36
src/NadekoBot/Resources/ResponseStrings.Designer.cs
generated
@ -2207,6 +2207,33 @@ namespace NadekoBot.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Invalid number specified. You can roll up to {0}-{1} dice at a time..
|
||||||
|
/// </summary>
|
||||||
|
public static string gambling_dice_invalid_number {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("gambling_dice_invalid_number", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to rolled {0}.
|
||||||
|
/// </summary>
|
||||||
|
public static string gambling_dice_rolled {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("gambling_dice_rolled", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Dice rolled: {1}.
|
||||||
|
/// </summary>
|
||||||
|
public static string gambling_dice_rolled_num {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("gambling_dice_rolled_num", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to You guessed it! You won {0}.
|
/// Looks up a localized string similar to You guessed it! You won {0}.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -2378,6 +2405,15 @@ namespace NadekoBot.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to second_larger_than_first.
|
||||||
|
/// </summary>
|
||||||
|
public static string gambling_second_larger_than_first {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("gambling_second_larger_than_first", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Bet.
|
/// Looks up a localized string similar to Bet.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
Loading…
Reference in New Issue
Block a user