@@ -0,0 +1,2701 @@
+package org.priory751.utils;%0A%0Aimport edu.wpi.first.wpilibj.Joystick;%0Aimport edu.wpi.first.wpilibj.buttons.Button;%0Aimport edu.wpi.first.wpilibj.buttons.JoystickButton;%0A%0A/**%0A * Represents a Logitech Attack 3 joystick and provides access to its buttons.%0A * %3Cp%3E%0A * When using the command-based robot system, the OI class would normally%0A * contain something like this:%0A * %3Cp%3E%0A * %3Cpre%3E%0A * public class OI %7B%0A *      %0A *      public final Joystick driveStick = new Joystick(1);%0A * %0A *      private Button driveTrigger = new JoystickButton(driveStick, 1);%0A *      ...%0A * %0A *      public OI() %7B%0A *          driveTrigger.whenPressed(...);%0A *      %7D%0A * %7D%0A * %3C/pre%3E%0A * %3Cp%3E%0A * This technique could be considered to make the OI class needlessly verbose%0A * because it specifies the mapping between button numbers and descriptions%0A * for each joystick individually.%0A * %3C/p%3E%0A * %3Cp%3E%0A * With this class, it is possible to construct an Attack3 and access its buttons%0A * directly.%0A * %3C/p%3E%0A * %0A * @author Sam Crow%0A */%0Apublic class Attack3 extends Joystick %7B%0A%0A    public Attack3(int port) %7B%0A        super(port);%0A    %7D%0A    %0A    /**%0A     * The trigger on this joystick.%0A     */%0A    public final Button trigger = new JoystickButton(this, 1);%0A    /**%0A     * The left side button on the top of the joystick,%0A     * button 4.%0A     */%0A    public final Button topLeft = new JoystickButton(this, 4);%0A    /**%0A     * The right side button on the top of the joystick,%0A     * button 5.%0A     */%0A    public final Button topRight = new JoystickButton(this, 5);%0A    /**%0A     * Rearward button on the top of the joystick, button 2%0A     */%0A    public final Button topBack = new JoystickButton(this, 2);%0A    %0A    /**%0A     * Forward button on the top of the joystick, button 2%0A     */%0A    public final Button topFront = new JoystickButton(this, 3);%0A    /**%0A     * Forward button on the left side of the base, button 6%0A     */%0A    public final Button baseLeftForward = new JoystickButton(this, 6);%0A    /**%0A     * Rearward button on the left side of the base, button 7%0A     */%0A    public final Button baseLeftBack = new JoystickButton(this, 7);%0A    %0A    /**%0A     * Forward button on the right side of the base, button 11%0A     */%0A    public final Button baseRightForward = new JoystickButton(this, 11);%0A    /**%0A     * Rearward button on the right side of the base, button 10%0A     */%0A    public final Button baseRightBack = new JoystickButton(this, 10);%0A%09/**%0A%09 * Pair of buttons on the back of the joystick, left one of the pair%0A%09 */%0A%09public final Button baseRearLeft = new JoystickButton(this, 11);%0A%09/**%0A%09 * Pair of buttons on the back of the joystick, right one of the pair%0A%09 */%0A%09public final Button baseRearRight = new JoystickButton(this, 12);%0A%7D%0A

Add utils package and Attack3 class