Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.techcavern.wavetact.ircCommands.fun; import com.techcavern.wavetact.annot.IRCCMD; import com.techcavern.wavetact.objects.IRCCommand; import com.techcavern.wavetact.utils.GeneralUtils; import com.techcavern.wavetact.utils.IRCUtils; import com.techcavern.wavetact.utils.Registry; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.RandomUtils; import org.apache.commons.lang3.StringUtils; import org.pircbotx.Channel; import org.pircbotx.PircBotX; import org.pircbotx.User; import java.util.ArrayList; import java.util.List; /** * @author jztech101 */ @IRCCMD public class Roll extends IRCCommand { public Roll() { super(GeneralUtils.toArray("rolldice roll dice"), 0, "rolldice (times) [x]d[y]", "rolls some dice", false); } @Override public void onCommand(String command, User user, PircBotX network, String prefix, Channel channel, boolean isPrivate, int userPermLevel, String... args) throws Exception { int x = 1; try { x = Integer.parseInt(args[0]); args = ArrayUtils.remove(args, 0); } catch (NumberFormatException e) { } if (x > 50) { IRCUtils.sendError(user, network, channel, "You may not roll the dice more than 50 times", prefix); return; } else if (x <= 0) { IRCUtils.sendError(user, network, channel, "I cannot roll the dice that amount of times", prefix); IRCUtils.sendError(user, network, channel, "I cannot roll the dice that amount of times", prefix); return; } String[] dice = StringUtils.split(args[0], "d"); if (Integer.parseInt(dice[0]) > 100) { IRCUtils.sendError(user, network, channel, "You may not roll more than 100 dice at a time", prefix); } else if (Integer.parseInt(dice[1]) > 100) { IRCUtils.sendError(user, network, channel, "You may not roll more than 100 sided dice", prefix); } else if (Integer.parseInt(dice[0]) <= 0) { IRCUtils.sendError(user, network, channel, "I cannot find that amount of dice", prefix); } else if (Integer.parseInt(dice[1]) <= 0) { IRCUtils.sendError(user, network, channel, "I cannot find dice with that amount of sides", prefix); } else { List<Integer> list = new ArrayList<>(); for (int i = 0; i < x; i++) { int b = 0; for (int j = 0; j < Integer.parseInt(dice[0]); j++) { { b += Registry.randNum.nextInt(Integer.parseInt(dice[1]) + 1); } } list.add(b); } IRCUtils.sendMessage(user, network, channel, StringUtils.join(list, ", "), prefix); } } }