// Path: src/main/java/util/Timer.java
// public class Timer {
//     public long end;
//     public final long start;
//     public final long period;
// 
//     /**
//      * Instantiates a new util.Timer with a given time
//      * period in milliseconds.
//      *
//      * @param period Time period in milliseconds.
//      */
//     public Timer(final long period) {
//         this.period = period;
//         start = System.currentTimeMillis();
//         end = start + period;
//     }
// 
//     /**
//      * Returns the number of milliseconds elapsed since
//      * the start time.
//      *
//      * @return The elapsed time in milliseconds.
//      */
//     public long getElapsed() {
//         return System.currentTimeMillis() - start;
//     }
// 
//     /**
//      * Returns the number of milliseconds remaining
//      * until the timer is up.
//      *
//      * @return The remaining time in milliseconds.
//      */
//     public long getRemaining() {
//         return isRunning() ? (end - System.currentTimeMillis()) : 0L;
//     }
// 
//     /**
//      * Returns <tt>true</tt> if this timer's time period
//      * has not yet elapsed.
//      *
//      * @return <tt>true</tt> if the time period has not yet passed.
//      */
//     public boolean isRunning() {
//         return System.currentTimeMillis() < end;
//     }
// 
//     /**
//      * Restarts this timer using its period.
//      */
//     public void reset() {
//         setEndIn(period);
//     }
// 
//     /**
//      * Sets the end time of this timer to a given number of
//      * milliseconds from the time it is called. This does
//      * not edit the period of the timer (so will not affect
//      * operation after reset).
//      *
//      * @param ms The number of milliseconds before the timer
//      *           should stop running.
//      */
//     public void setEndIn(final long ms) {
//         end = System.currentTimeMillis() + ms;
//     }
// }


import util.StringArray;
import util.Timer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
package util.comm;



/**
 * Created to cleanup the horrendous HashMap that was the commandMap in GUIMain.
 */
public class Command {

    private Timer delayTimer;
    private String trigger;
    private StringArray contents;
    private List<String> arguments;

    public Command(String name, String... contents) {
        arguments = new ArrayList<>();
        this.contents = new StringArray(contents);
        trigger = name;
        delayTimer = new Timer(5000);
    }

    public String getTrigger() {
        return trigger;
    }

    public List<String> getArguments() {
// Path: src/main/java/util/Timer.java
// public class Timer {
//     public long end;
//     public final long start;
//     public final long period;
// 
//     /**
//      * Instantiates a new util.Timer with a given time
//      * period in milliseconds.
//      *
//      * @param period Time period in milliseconds.
//      */
//     public Timer(final long period) {
//         this.period = period;
//         start = System.currentTimeMillis();
//         end = start + period;
//     }
// 
//     /**
//      * Returns the number of milliseconds elapsed since
//      * the start time.
//      *
//      * @return The elapsed time in milliseconds.
//      */
//     public long getElapsed() {
//         return System.currentTimeMillis() - start;
//     }
// 
//     /**
//      * Returns the number of milliseconds remaining
//      * until the timer is up.
//      *
//      * @return The remaining time in milliseconds.
//      */
//     public long getRemaining() {
//         return isRunning() ? (end - System.currentTimeMillis()) : 0L;
//     }
// 
//     /**
//      * Returns <tt>true</tt> if this timer's time period
//      * has not yet elapsed.
//      *
//      * @return <tt>true</tt> if the time period has not yet passed.
//      */
//     public boolean isRunning() {
//         return System.currentTimeMillis() < end;
//     }
// 
//     /**
//      * Restarts this timer using its period.
//      */
//     public void reset() {
//         setEndIn(period);
//     }
// 
//     /**
//      * Sets the end time of this timer to a given number of
//      * milliseconds from the time it is called. This does
//      * not edit the period of the timer (so will not affect
//      * operation after reset).
//      *
//      * @param ms The number of milliseconds before the timer
//      *           should stop running.
//      */
//     public void setEndIn(final long ms) {
//         end = System.currentTimeMillis() + ms;
//     }
// }


// Path: src/main/java/util/comm/Command.java
import util.StringArray;
import util.Timer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

package util.comm;



/**
 * Created to cleanup the horrendous HashMap that was the commandMap in GUIMain.
 */
public class Command {

    private Timer delayTimer;
    private String trigger;
    private StringArray contents;
    private List<String> arguments;

    public Command(String name, String... contents) {
        arguments = new ArrayList<>();
        this.contents = new StringArray(contents);
        trigger = name;
        delayTimer = new Timer(5000);
    }

    public String getTrigger() {
        return trigger;
    }

    public List<String> getArguments() {
        return arguments;