/* * 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); } } }