public void Advantage()
        {
            var result = string.Empty;

            var roller = new DieRoller();

            var passed = roller.TryParseDieRoll("d20+", "joe", out result);

            Assert.IsTrue(passed);
            Assert.IsTrue(result.Contains("joe rolled D20 with advantage:"));
        }
        public void NegativeMod()
        {
            var result = string.Empty;

            var roller = new DieRoller();

            var passed = roller.TryParseDieRoll("3d8-3", "joe", out result);

            Assert.IsTrue(passed);
            Assert.IsTrue(result.Contains("joe rolled 3D8-3:"));
        }
        public void PositiveMod()
        {
            var result = string.Empty;

            var roller = new DieRoller();

            var passed = roller.TryParseDieRoll("4d6+2", "joe", out result);

            Assert.IsTrue(passed);
            Assert.IsTrue(result.Contains("joe rolled 4D6+2:"));
        }
        public void MultiDie()
        {
            var result = string.Empty;

            var roller = new DieRoller();

            var passed = roller.TryParseDieRoll("3D8", "joe", out result);

            Assert.IsTrue(passed);
            Assert.IsTrue(result.Contains("joe rolled 3D8:"));
        }
        public void Simple()
        {
            var result = string.Empty;

            var roller = new DieRoller();

            var passed = roller.TryParseDieRoll("d4", "joe", out result);

            Assert.IsTrue(passed);
            Assert.IsTrue(result.Contains("joe rolled 1D4:"));
        }
        public void BadInput()
        {
            var result = string.Empty;

            var roller = new DieRoller();

            var passed = roller.TryParseDieRoll("nomatch", "joe", out result);

            Assert.IsFalse(passed);
            Assert.IsTrue(string.IsNullOrEmpty(result));
        }
Exemple #7
0
        public async Task HandleCommand(SocketMessage parameterMessage)
        {
            // Don't handle the command if it is a system message
            var message = parameterMessage as SocketUserMessage;

            if (message == null)
            {
                return;
            }

            // Don't listen to bots
            if (message.Source != MessageSource.User)
            {
                return;
            }

            // Mark where the prefix ends and the command begins
            int argPos = 0;

            var prefix = char.Parse(config["prefix"]);

            // Determine if the message has a valid prefix, adjust argPos
            if (!(message.HasMentionPrefix(client.CurrentUser, ref argPos) ||
                  message.HasCharPrefix(prefix, ref argPos)))
            {
                return;
            }

            var context  = new SocketCommandContext(client, message);
            var username = UtilityMethods.GetUsername(context);

            if (message.Content.Length == 1)
            {
                await context.Channel.SendMessageAsync($"Why you f****n wit me, {username}? Don chu know I\'m loco?");

                return;
            }

            if (dieRoller.TryParseDieRoll(message.Content.Substring(1), username, out var msg))
            {
                await context.Channel.SendMessageAsync(msg);

                return;
            }

            await commands.ExecuteAsync(context, argPos, services);
        }