diff --git a/src/commands/general/CommandRoll.java b/src/commands/general/CommandRoll.java index 498ebe8..06f1b76 100644 --- a/src/commands/general/CommandRoll.java +++ b/src/commands/general/CommandRoll.java @@ -7,6 +7,8 @@ import java.util.Stack; import core.Command; import core.LocStrings; import dataStructures.*; +import utils.GlobalLog; +import utils.LogFilter; public class CommandRoll extends Command { @@ -32,6 +34,7 @@ public class CommandRoll extends Command } catch(Exception e) { + GlobalLog.error(LogFilter.Command, e); res.send(LocStrings.stub("RollError")); } } @@ -170,18 +173,18 @@ public class CommandRoll extends Command private int[] roll(int first, int second) { - int roll = 0; - int dice = first; - int sides = second; - int [] rolls = new int [sides]; + int numberOfDice = first; + int diceSideCount = second; + int [] rolls = new int[numberOfDice]; - if(dice < 1) + GlobalLog.log("number: " + numberOfDice + " diceSides: " + diceSideCount); + + if(numberOfDice < 1) return new int[0]; - for(int i = 0; dice > i; i ++) - { - roll = (int)(Math.random() * sides) + 1; - rolls[i] = roll; - } + + for(int i = 0; i < numberOfDice; i++) + rolls[i] = (int)(Math.random() * diceSideCount + 1); + return rolls; } diff --git a/src/utils/GlobalLog.java b/src/utils/GlobalLog.java index e1c43aa..556bd55 100644 --- a/src/utils/GlobalLog.java +++ b/src/utils/GlobalLog.java @@ -1,6 +1,7 @@ package utils; import java.io.FileNotFoundException; +import java.io.PrintStream; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.text.DateFormat; @@ -28,18 +29,27 @@ public class GlobalLog GlobalLog.log(LogFilter.Util, "Finished initializing logging system"); } - private static void write(String status, LogFilter filter, String body) + private static void write(String status, LogFilter filter, String body, PrintStream stream) { String logLine = "[" + status + "] " + "[" + filter.name() + "] " + body; outputLog.write(logLine + "\n"); outputLog.flush(); - System.out.println(logLine); + stream.println(logLine); } - public static void log(LogFilter filter, String msg) { write(log, filter, msg); } - public static void warn(LogFilter filter, String msg) { write(warn, filter, msg); } - public static void error(LogFilter filter, String msg) { write(error, filter, msg); System.err.println(msg); System.err.flush(); } - public static void fatal(LogFilter filter, String msg) throws Exception { write(fatal, filter, msg); throw new Exception(msg); } + public static void log(LogFilter filter, String msg) { write(log, filter, msg, System.out); } + public static void warn(LogFilter filter, String msg) { write(warn, filter, msg, System.out); } + public static void error(LogFilter filter, String msg) { write(error, filter, msg, System.err); System.err.println(msg); System.err.flush(); } + public static void error(LogFilter filter, Exception e) + { + write(error, filter, e.toString(), System.err); + e.printStackTrace(outputLog); + e.printStackTrace(System.err); + outputLog.flush(); + System.err.flush(); + } + + public static void fatal(LogFilter filter, String msg) throws Exception { write(fatal, filter, msg, System.out); throw new Exception(msg); } public static void log(String msg) { log(LogFilter.Debug, msg); } public static void warn(String msg) { warn(LogFilter.Debug, msg); }