Server Tools Plugin

This is a built-in extension plugin that follows the plugin template system.
The server_tools plugin is an administrative plugin for high-permission users to set callback methods to mumble server events.
For now, the plugin contains callback events to play an audio clip and send a welcome message when users join the server.
This is an optional feature, configurable in the plugins' metadata.ini file.

Usage:

Plugin Metadata

    [Plugin Information]
    PluginVersion = 5.0.0
    PluginName = Server Tools
    PluginDescription = The Server Tools plugin is a miscellaneous collection of callbacks that are automatically executed on server events.
    PluginLanguage = EN
    PluginCommands: [
                    "wiki",
                    "setloginsound",
                    "getloginsound",
                    "clearloginsound",
                    "setdefaultloginsound",
                    "toggleloginsounds"
                    ]

    [Plugin Settings]
    ; Allows the bot to send a welcome message to a user that has connected to the server.
    UseWelcomeMessage = True
    ; Message a user that has connected to the server with the message provided below.
    WelcomeMessage = Hello! Welcome to the server.

    ; Allows the bot to play an audio clip when a user joins the server.
    PlayAudioClipOnUserJoin = True
    ; Only play audio clip when a user joins the server and there are people in the bots current channel.
    PlayAudioClipOnlyIfUsersInChannel = True
    ; Play the same audio clip when any user joins the server. (PlayAudioClipOnUserJoin must be enabled)
    ; If this is disabled and PlayAudioClipOnUserJoin is enabled, it will instead use the user_connections.csv to play the given track per person.
    ; If a user is not provided in the user_connections.csv file, then a generic track is played instead.
    PlaySameAudioClipOnAllUserJoin = False
    ; Generic audio clip to play when a user joins the server.(PlayAudioClipOnUserJoin must be enabled)
    ; If PlayAudioClipOnUserJoin is enabled and PlaySameAudioClipOnUserJoin is enabled, then a single audio clip is used for any user that joins.
    ; The audio clip given here is also used if PlaySameAudioClipOnUserJoin is disabled and a user is not provided in the user_connections.csv file.
    GenericAudioClipOnUserJoin =
    ; Use built-in default_user_sound.wav clip from the plugin resources folder if a generic audio clip is not specified.
    ; This field can be ignored if a custom generic audio clip is used.
    UseBuiltInAudioClip = True
    ; Use the sound board plugin's media storage for audio clips.
    ; Otherwise the plugin will only use sound clips placed in the server_tools permanent media directory.
    UseSoundBoardClips = True

    ; List commands that need the core thread to wait for completion.
    ; This may include processes that require multiple commands in succession.
    ; For example: [Youtube Plugin - !yt -> !p] process requires 2 commands in that order.
    ThreadWaitForCommands: []
    UseSingleThread = False

    [Plugin Type]
    ControllablePlugin = True
    AudioPlugin = True
    ImagePlugin = False
    CorePlugin = False
    ExtensionPlugin = True