Person8880/Shine — pull request #241 by lancehilliard (2013-09-21 08:23:17+00:00)
Title: added: workshopupdatehandler

This extension monitors the Steam Workshop for updates to mods actively
running on the server. When an update is found, it either notifies
players that no one new can connect or, in the case of an empty server,
immediately cycles the map.

Wiki page for https://github.com/Person8880/Shine/wiki/Workshop-Update-Handler:

## Overview
The Workshop Update Handler plugin monitors the Steam Workshop and notifies players when an active mod on your server has updated. If the server is empty when an active mod updates, the plugin immediately cycles the map. All of this minimizes the chances for incoming players seeing the "mod out of date" error when joining your server.

When the plugin detects an update to an active mod, it notifies players with a message similar to the following:

Shine Administration mod has updated in Steam Workshop.
Players cannot connect to the server until mapchange.

Once the plugin detects an update in any active mod, it stops monitoring the Steam Workshop and begins notifying (or, if the server is empty, cycling the map).

## Config
The plugin automatically detects which Steam Workshop mods are active on your server, so all that's left is configuring how often you want it to check for updates and, if one is found, how often you want it to display notifications (for the duration of the current map).

The default config looks something like this:

```
{
"CheckIntervalInSeconds": 60,
"RepeatNotifications": true,
"NotifyIntervalInSeconds": 180
}
```

The file should be called "WorkshopUpdateHandler.json" and should be placed in the directory defined as your plugin config directory (default is config://shine/plugins).

|Option|Description|
|------|-----------|
|CheckIntervalInSeconds|Number of seconds between each check of the Steam Workshop.|
|RepeatNotifications|If true, notifications will repeat at the interval defined in "NotifyIntervalInSeconds".|
|NotifyIntervalInSeconds|Number of seconds between each repeated update notification.|