I have been playing around with some of my last years code and decided to revise the XboxController class.
The major changes in this version are that it no longer uses the Joystick class, it now supports commands, and it now checks if the sticks are in the user defined dead zone.
I have also not yet been able to remove the refresh method which is necessary for the changedUp and changedDown variables on each of the buttons in order for them to change only once per run.
Just a couple of small warnings.
I am confident that this code works but it has not yet been tested.
Also just like my last years code it only gets the current values for everything after the refresh method has been called.