Client can be extended by providing custom states and conditions. Custom states must subclass from State class. Custom conditions must subclass from Condition class. Both states and conditions must be registered in player configuration file
Because states and conditions are loaded during execution time. It is possible (and recommended) that they should be in separate jar file. But remeber to add this jar to the class path when starting client.