Channel disable is respected everywhere
Some fixes
Components can be enabled/disabled/listed at runtime
Made RTP a component
Made e v e r y t h i n g a component
Made e v e r y t h i n g configurable
The plugin list is no longer written by default
#48
Using the per-component AddCommand method
CommandComponent got removed, no need for that
Made channel properties configurable (DisplayName, Color)
Made configs testable, it will only use the cached value in that case
This was needed so channel registering continue to work during testing
Made channels possible to disable (WIP)
#48
Removed redundant delegate methods by making the methods non-static
Automatically saving config option to the yaml model when it's accessed for the first time
Automatically saving yaml config on component/plugin disable
Automatically resetting config cache on plugin/component disable
Caching the config values so reading is cheaper (it still writes through)
Correctly handling (non-)primitive types in configs
Allowing to set either a primitive or non-primitive default value and the other is obtained from the provided value
#48
Separated enabling the component from registering it - a component will be always registerd, even if it's disabled
Component data implemented similarily to player data, just kind of better
Bunch of changes, less code repetition
The channel is no longer required for sending a message
All user accounts now store which channel they are in to make things simpler
Added the concept of 'sender converters' which is used to get the CG user which sent a command for example
No longer allowing getAs() for the same user type
SendChatMessage now takes a ChatMessage param (with a builder)
Code cleanup
/schrestart error msg added
Whole plugin update made async (the plugin list)
Javadoc additions