Updated Plugins (markdown)

RaidMax 2020-08-06 13:17:51 -05:00
parent e400a4b46e
commit 51d9678908

@ -10,12 +10,12 @@ The following options can be configured by modifying `ActionOnReport.js`
| tempBanDurationMinutes | How long to temporarily ban the client | >0 | | tempBanDurationMinutes | How long to temporarily ban the client | >0 |
#### Welcome ## Welcome
- This plugin uses geo-location data to welcome a player based on their country of origin - This plugin uses geo-location data to welcome a player based on their country of origin
- All privileged users ( Trusted or higher ) receive a specialized welcome message as well - All privileged users ( Trusted or higher ) receive a specialized welcome message as well
- Welcome messages can be customized in `WelcomePluginSettings.json` - Welcome messages can be customized in `WelcomePluginSettings.json`
#### Stats ## Stats
- This plugin calculates basic player performance, skill approximation, and kill/death ratio - This plugin calculates basic player performance, skill approximation, and kill/death ratio
- Skill is an number derived from an algorithmic processing of a player's Kill Death Ratio (KDR) and Score per Minute (SPM). - Skill is an number derived from an algorithmic processing of a player's Kill Death Ratio (KDR) and Score per Minute (SPM).
- Elo Rating is based off of the number of encounters a player wins. - Elo Rating is based off of the number of encounters a player wins.
@ -32,7 +32,7 @@ The following options can be configured by modifying `ActionOnReport.js`
- To qualify for top stats, a client must have played for at least `3 hours` and connected within the past `15 days`. - To qualify for top stats, a client must have played for at least `3 hours` and connected within the past `15 days`.
#### Login ## Login
- This plugin deters GUID spoofing by requiring privileged users to login with their password before executing commands - This plugin deters GUID spoofing by requiring privileged users to login with their password before executing commands
- A password must be set using the `setpassword` command before logging in - A password must be set using the `setpassword` command before logging in
@ -42,39 +42,37 @@ The following options can be configured by modifying `ActionOnReport.js`
|--------------| -----| --------------------------------------------------------| -----------------| -------------| ----------------| |--------------| -----| --------------------------------------------------------| -----------------| -------------| ----------------|
|login|l|login using password|False|!l \<password\>|Trusted| |login|l|login using password|False|!l \<password\>|Trusted|
#### Profanity Determent ## Profanity Determent
- This plugin warns and kicks players for using profanity - This plugin warns and kicks players for using profanity
- Profane words and warning message can be specified in `ProfanityDetermentSettings.json` - Profane words and warning message can be specified in `ProfanityDetermentSettings.json`
- If a client's name contains a word listed in the settings, they will immediately be kicked - If a client's name contains a word listed in the settings, they will immediately be kicked
#### IW4 Script Commands ## IW4 Script Commands
- This plugin provides additional integration to IW4x - This plugin provides additional integration to IW4x
- In order to take advantage of it, copy the `userraw` folder into your IW4x server directory - In order to take advantage of it, copy the `userraw` folder into your IW4x server directory
#### VPN Detection [Script Plugin] ## VPN Detection [Script Plugin]
- This plugin detects if a client is using a VPN and kicks them if they are - This plugin detects if a client is using a VPN and kicks them if they are
- To disable this plugin, delete `Plugins\VPNDetection.js` - To disable this plugin, delete `Plugins\VPNDetection.js`
- Adding **Client IDs** to the `vpnExceptionIds` array will prevent a client from being kicked. - Adding **Client IDs** to the `vpnExceptionIds` array will prevent a client from being kicked.
#### Shared GUID Kicker [Script Plugin] ## Shared GUID Kicker [Script Plugin]
- This plugin kicks users using a specific GUID - This plugin kicks users using a specific GUID
- GUID `F4D2C30B712AC6E3` on IW4x was packed into a torrent version of the game. - GUID `F4D2C30B712AC6E3` on IW4x was packed into a torrent version of the game.
--- ## Extending Plugins
### Extending Plugins ### NuGet Package
#### NuGet Package
The NuGet package for **IW4MAdmin's** "Shared Library" can be obtained from the [NuGet Gallery](https://www.nuget.org/packages/RaidMax.IW4MAdmin.SharedLibraryCore) The NuGet package for **IW4MAdmin's** "Shared Library" can be obtained from the [NuGet Gallery](https://www.nuget.org/packages/RaidMax.IW4MAdmin.SharedLibraryCore)
Referencing this package will give you the ability to write plugins against **IW4MAdmin's** core library. Referencing this package will give you the ability to write plugins against **IW4MAdmin's** core library.
#### Code ### Code
**IW4MAdmin's** functionality can be extended by writing additional plugins in C#. **IW4MAdmin's** functionality can be extended by writing additional plugins in C#.
Each class library must implement the `IPlugin` interface. Each class library must implement the `IPlugin` interface.
See the existing [plugins](https://github.com/RaidMax/IW4M-Admin/tree/master/Plugins) for examples. See the existing [plugins](https://github.com/RaidMax/IW4M-Admin/tree/master/Plugins) for examples.
#### JavaScript ### JavaScript
**IW4MAdmin** functionality can also be extended using JavaScript. **IW4MAdmin** functionality can also be extended using JavaScript.
The JavaScript parser supports [ECMA 5.1](https://ecma-international.org/ecma-262/5.1/) standards. The JavaScript parser supports [ECMA 5.1](https://ecma-international.org/ecma-262/5.1/) standards.
#### Plugin Object Template ### Plugin Object Template
In order to be properly parsed by the JavaScript engine, every plugin must conform to the following template. In order to be properly parsed by the JavaScript engine, every plugin must conform to the following template.
```js ```js
var plugin = { var plugin = {
@ -95,7 +93,7 @@ var plugin = {
} }
}; };
``` ```
#### Required Properties ### Required Properties
- `author` &mdash; [string] Author of the plugin (usually your name or online name/alias) - `author` &mdash; [string] Author of the plugin (usually your name or online name/alias)
- `version` &mdash; [float] Version number of your plugin (useful if you release several different versions) - `version` &mdash; [float] Version number of your plugin (useful if you release several different versions)
- `name` &mdash; [string] Name of your plugin (be descriptive!) - `name` &mdash; [string] Name of your plugin (be descriptive!)