Use String#startsWith instead of substring and ==
Add messages for joining and leaving channels
Make PluginManagementPlugin take context arguments