diff --git a/NadekoBot/Classes/Cards.cs b/NadekoBot/Classes/Cards.cs
index 405f90af..d64474b5 100644
--- a/NadekoBot/Classes/Cards.cs
+++ b/NadekoBot/Classes/Cards.cs
@@ -113,6 +113,7 @@ public class Cards
}
}
}
+ private Random r = new Random();
///
/// Take a card from the pool, you either take it from the top if the deck is shuffled, or from a random place if the deck is in the default order.
///
@@ -122,7 +123,7 @@ public class Cards
if (CardPool.Count == 0)
Restart();
//you can either do this if your deck is not shuffled
- Random r = new Random((int)DateTime.Now.Ticks);
+
int num = r.Next(0, cardPool.Count);
Card c = cardPool[num];
cardPool.RemoveAt(num);
@@ -141,7 +142,6 @@ public class Cards
private void Shuffle() {
if (cardPool.Count > 1)
{
- Random r = new Random();
cardPool.OrderBy(x => r.Next());
}
}
@@ -195,15 +195,15 @@ public class Cards
handValues = new Dictionary, bool>>
{
- { "A Pair", isPair },
- { "Two Pairs", isTwoPair },
- { "Three Of A Kind", isThreeOfKind },
- { "Straight", isStraight },
- { "Flush", isFlush },
- { "Full House", isFullHouse },
- { "Four Of A Kind", isFourOfKind },
+ { "Royal Flush", isRoyalFlush },
{ "Straight Flush", isStraightFlush },
- { "Royal Flush", isRoyalFlush }
+ { "Four Of A Kind", isFourOfKind },
+ { "Full House", isFullHouse },
+ { "Flush", isFlush },
+ { "Straight", isStraight },
+ { "Three Of A Kind", isThreeOfKind },
+ { "Two Pairs", isTwoPair },
+ { "A Pair", isPair }
};
}
diff --git a/NadekoBot/Modules/Administration.cs b/NadekoBot/Modules/Administration.cs
index e4df1a5a..b945f530 100644
--- a/NadekoBot/Modules/Administration.cs
+++ b/NadekoBot/Modules/Administration.cs
@@ -579,59 +579,68 @@ namespace NadekoBot.Modules {
//THIS IS INTENTED TO BE USED ONLY BY THE ORIGINAL BOT OWNER
cgb.CreateCommand(".adddon")
- .Description("Add a donator to the database.")
- .Parameter("donator")
- .Parameter("amount")
- .Do(e => {
- try {
- if (NadekoBot.OwnerID != e.User.Id)
- return;
- var donator = e.Server.FindUsers(e.GetArg("donator")).FirstOrDefault();
- var amount = int.Parse(e.GetArg("amount"));
- Classes.DBHandler.Instance.InsertData(new Donator {
- Amount = amount,
- UserName = donator.Name,
- UserId = (long)e.User.Id
- });
- e.Channel.SendMessage("Successfuly added a new donator. 👑");
- } catch (Exception ex) {
- Console.WriteLine(ex);
- Console.WriteLine("---------------\nInner error:\n" + ex.InnerException);
- }
- });
+ .Alias(".donadd")
+ .Description("Add a donator to the database.")
+ .Parameter("donator")
+ .Parameter("amount")
+ .Do(e => {
+ try {
+ if (NadekoBot.OwnerID != e.User.Id)
+ return;
+ var donator = e.Server.FindUsers(e.GetArg("donator")).FirstOrDefault();
+ var amount = int.Parse(e.GetArg("amount"));
+ Classes.DBHandler.Instance.InsertData(new Donator {
+ Amount = amount,
+ UserName = donator.Name,
+ UserId = (long)e.User.Id
+ });
+ e.Channel.SendMessage("Successfuly added a new donator. 👑");
+ } catch (Exception ex) {
+ Console.WriteLine(ex);
+ Console.WriteLine("---------------\nInner error:\n" + ex.InnerException);
+ }
+ });
+ /*
+ cgb.CreateCommand(".no")
+ .Description("desc")
+ .Parameter("arg", ParameterType.Required)
+ .Do(async e => {
+ var arg = e.GetArg("arg");
- /*cgb.CreateCommand(".voicetext")
- .Description("Enabled or disabled voice to text channel connection. Only people in a certain voice channel will see ")
-
- cgb.CreateCommand(".jsontype")
- .Do(async e => {
- Newtonsoft.Json.Linq.JArray data = Newtonsoft.Json.Linq.JArray.Parse(File.ReadAllText("data.json"));
- if (data == null || data.Count == 0) return;
+ });
- var wer = data.Where(jt => jt["Description"].ToString().Length > 120);
- var list = wer.Select(jt => {
- var obj = new Parse.ParseObject("TypingArticles");
- obj["text"] = jt["Description"].ToString();
- return obj;
- });
- await Parse.ParseObject.SaveAllAsync(list);
- await e.Send("saved to parse");
+ cgb.CreateCommand(".voicetext")
+ .Description("Enabled or disabled voice to text channel connection. Only people in a certain voice channel will see ")
- });
+ cgb.CreateCommand(".jsontype")
+ .Do(async e => {
+ Newtonsoft.Json.Linq.JArray data = Newtonsoft.Json.Linq.JArray.Parse(File.ReadAllText("data.json"));
+ if (data == null || data.Count == 0) return;
- cgb.CreateCommand(".repeat")
- .Do(async e => {
- if (e.User.Id != NadekoBot.OwnerID) return;
+ var wer = data.Where(jt => jt["Description"].ToString().Length > 120);
+ var list = wer.Select(jt => {
+ var obj = new Parse.ParseObject("TypingArticles");
+ obj["text"] = jt["Description"].ToString();
+ return obj;
+ });
+ await Parse.ParseObject.SaveAllAsync(list);
+ await e.Send("saved to parse");
- string[] notifs = { "Admin use .bye .greet", "Unstable - fixing", "fixing ~ani, ~mang", "join NadekoLog server", "-h is help, .stats",};
- int i = notifs.Length;
- while (true) {
- await e.Channel.SendMessage($".setgame {notifs[--i]}");
- await Task.Delay(20000);
- if (i == 0) i = notifs.Length;
- }
- });
- */
+ });
+
+ cgb.CreateCommand(".repeat")
+ .Do(async e => {
+ if (e.User.Id != NadekoBot.OwnerID) return;
+
+ string[] notifs = { "Admin use .bye .greet", "Unstable - fixing", "fixing ~ani, ~mang", "join NadekoLog server", "-h is help, .stats",};
+ int i = notifs.Length;
+ while (true) {
+ await e.Channel.SendMessage($".setgame {notifs[--i]}");
+ await Task.Delay(20000);
+ if (i == 0) i = notifs.Length;
+ }
+ });
+ */
});
}
diff --git a/NadekoBot/Modules/Games.cs b/NadekoBot/Modules/Games.cs
index 80b420a2..940cec6e 100644
--- a/NadekoBot/Modules/Games.cs
+++ b/NadekoBot/Modules/Games.cs
@@ -3,16 +3,23 @@ using System.Linq;
using Discord.Modules;
using NadekoBot.Extensions;
using NadekoBot.Commands;
+using Newtonsoft.Json.Linq;
+using System.IO;
//🃏
//🏁
namespace NadekoBot.Modules
{
class Games : DiscordModule
{
+ private string[] _8BallAnswers;
+ private Random _r = new Random();
+
public Games() : base() {
commands.Add(new Trivia());
commands.Add(new SpeedTyping());
commands.Add(new PollCommand());
+
+ _8BallAnswers = JArray.Parse(File.ReadAllText("data/8ball.json")).Select(t => t.ToString()).ToArray();
}
public override void Install(ModuleManager manager)
@@ -34,6 +41,17 @@ namespace NadekoBot.Modules
await e.Send(list[new Random().Next(0, list.Length)]);
});
+ cgb.CreateCommand(">8ball")
+ .Description("Ask the 8ball a yes/no question.")
+ .Parameter("question",Discord.Commands.ParameterType.Unparsed)
+ .Do(async e => {
+ string question = e.GetArg("question").Replace("@everyone","[everyone]");
+ if (string.IsNullOrWhiteSpace(question))
+ return;
+ await e.Channel.SendMessage(
+ $":question: **Question:{question}**\n:crystal_ball: **8Ball Answers:**{_8BallAnswers[_r.Next(0, _8BallAnswers.Length)]}");
+ });
+
cgb.CreateCommand(">")
.Description("Attack a person. Supported attacks: 'splash', 'strike', 'burn', 'surge'.\n**Usage**: > strike @User")
.Parameter("attack_type",Discord.Commands.ParameterType.Required)
diff --git a/NadekoBot/bin/Debug/data/8ball.json b/NadekoBot/bin/Debug/data/8ball.json
new file mode 100644
index 00000000..a8110e75
--- /dev/null
+++ b/NadekoBot/bin/Debug/data/8ball.json
@@ -0,0 +1,23 @@
+[
+ "Most definitely yes",
+ "For sure",
+ "As I see it, yes",
+ "My sources say yes",
+ "Yes",
+ "Most likely",
+ "Perhaps",
+ "Maybe",
+ "Not sure",
+ "It is uncertain",
+ "Ask me again later",
+ "Don't count on it",
+ "Probably not",
+ "Very doubtful",
+ "Most likely no",
+ "Nope",
+ "No",
+ "My sources say no",
+ "Dont even think about it",
+ "Definitely no",
+ "NO - It may cause disease contraction"
+]
\ No newline at end of file