Skip to content

Commit

Permalink
Added .roll command.
Browse files Browse the repository at this point in the history
  • Loading branch information
DV8FromTheWorld committed Mar 21, 2016
1 parent 5473d70 commit 69fe541
Show file tree
Hide file tree
Showing 2 changed files with 100 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/main/java/net/dv8tion/discord/Yui.java
Expand Up @@ -110,6 +110,7 @@ private static void setupBot()
jdaBuilder.addListener(help.registerCommand(new UpdateCommand()));
jdaBuilder.addListener(help.registerCommand(new PermissionsCommand()));
jdaBuilder.addListener(help.registerCommand(new EvalCommand()));
jdaBuilder.addListener(help.registerCommand(new RollCommand()));

for (IrcConnectInfo info : settings.getIrcConnectInfos())
{
Expand Down
99 changes: 99 additions & 0 deletions src/main/java/net/dv8tion/discord/commands/RollCommand.java
@@ -0,0 +1,99 @@
package net.dv8tion.discord.commands;

import net.dv8tion.jda.events.message.MessageReceivedEvent;

import java.util.Arrays;
import java.util.List;
import java.util.Random;

/**
* Created by Austin on 3/21/2016.
*/
public class RollCommand extends Command
{
private final Random dice = new Random();
@Override
public void onCommand(MessageReceivedEvent e, String[] args)
{
int lowerBound;
int upperBound;
int roll;

if (args.length == 1)
{
lowerBound = 1;
upperBound = 6;
}
else if (args.length == 2)
{
lowerBound = 1;
try
{
upperBound = Integer.parseInt(args[1]);
}
catch (NumberFormatException ex)
{
sendMessage(e, "The provided upperbound is not an integer! Provided value: " + args[1]);
return;
}
}
else
{
try
{
lowerBound = Integer.parseInt(args[1]);
}
catch (NumberFormatException ex)
{
sendMessage(e, "The provided lowerBound is not an integer! Provided value: " + args[1]);
return;
}

try
{
upperBound = Integer.parseInt(args[2]);
}
catch (NumberFormatException ex)
{
sendMessage(e, "The provided upperBound is not an integer! Provided value: " + args[2]);
return;
}
}
//Instead of erroring when the upper and lower are out of order, just flip them.
if (lowerBound > upperBound)
{
int temp = upperBound;
upperBound = lowerBound;
lowerBound = temp;
}

roll = dice.nextInt(upperBound - lowerBound) + lowerBound;
sendMessage(e, "Rolled dice with range of [" + lowerBound + " - " + upperBound + "] and got: **" + roll + "**");
}

@Override
public List<String> getAliases()
{
return Arrays.asList(".roll", ".dice");
}

@Override
public String getDescription()
{
return "Rolls the dice and produces a random value.";
}

@Override
public String getName()
{
return "Dice Roll";
}

@Override
public List<String> getUsageInstructions()
{
return Arrays.asList("\n`.roll` - Returns a roll of a 6 sided die (1 - 6)\n\n" +
"`.roll [upperLimit]` - Returns a roll of [1 - upperLimit]\n\n" +
"`.roll [lowerLimit] [upperLimit]` - Returns a roll of [lower - upper]");
}
}

0 comments on commit 69fe541

Please sign in to comment.