Merge branch '2.3' of https://github.com/RaidMax/IW4M-Admin into 2.3
This commit is contained in:
commit
a5414c2c57
98
README.md
98
README.md
@ -1,9 +1,10 @@
|
||||
|
||||
# IW4MAdmin
|
||||
### Quick Start Guide
|
||||
### Version 2.3
|
||||
_______
|
||||
### About
|
||||
**IW4MAdmin** is an administration tool for [IW4x](https://iw4xcachep26muba.onion.link/), [Pluto T6](https://forum.plutonium.pw/category/33/plutonium-t6), ~~[Pluto IW5](https://forum.plutonium.pw/category/5/plutonium-iw5)~~, and most Call of Duty® dedicated servers. It allows complete control of your server; from changing maps, to banning players, **IW4MAdmin** monitors and records activity on your server(s). With plugin support, extending its functionality is a breeze.
|
||||
**IW4MAdmin** is an administration tool for [IW4x](https://iw4xcachep26muba.onion.link/), [Pluto T6](https://forum.plutonium.pw/category/33/plutonium-t6), [CoD4x](https://cod4x.me/), [TeknoMW3](https://www.teknomw3.pw/), and most Call of Duty® dedicated servers. It allows complete control of your server; from changing maps, to banning players, **IW4MAdmin** monitors and records activity on your server(s). With plugin support, extending its functionality is a breeze.
|
||||
### Download
|
||||
Latest binary builds are always available at:
|
||||
- [RaidMax](https://raidmax.org/IW4MAdmin)
|
||||
@ -13,17 +14,26 @@ Latest binary builds are always available at:
|
||||
### Setup
|
||||
**IW4MAdmin** requires minimal effort to get up and running.
|
||||
#### Prerequisites
|
||||
* [.NET Core 2.1.5 Runtime](https://www.microsoft.com/net/download) *or newer*
|
||||
* [.NET Core 2.2.2 Runtime](https://www.microsoft.com/net/download) *or newer*
|
||||
#### Installation
|
||||
1. Install .NET Core Runtime
|
||||
2. Extract `IW4MAdmin-<version>.zip`
|
||||
#### Launching
|
||||
1. Run `StartIW4MAdmin.cmd` (Windows)
|
||||
2. Run `StartIW4MAdmin.sh` (Linux)
|
||||
Windows
|
||||
1. Run `StartIW4MAdmin.cmd`
|
||||
2. Configure **IW4MAdmin**
|
||||
|
||||
Linux
|
||||
1. Execute `chmod +x StartIW4MAdmin.sh`
|
||||
2. Run `StartIW4MAdmin.sh`
|
||||
3. Configure **IW4MAdmin**
|
||||
|
||||
### Updating
|
||||
1. Extract newer version of **IW4MAdmin** into pre-existing **IW4MAdmin** folder and overwrite existing files
|
||||
- _Your configuration and database will be saved_
|
||||
1. Download the latest version of **IW4MAdmin**
|
||||
2. Extract the newer version of **IW4MAdmin** into pre-existing **IW4MAdmin** folder and overwrite existing files
|
||||
|
||||
_Your configuration and database will be saved_
|
||||
|
||||
---
|
||||
### Help
|
||||
Feel free to join the **IW4MAdmin** [Discord](https://discord.gg/ZZFK5p3)
|
||||
@ -75,29 +85,22 @@ After initial configuration is finished, you will be prompted to configure your
|
||||
* The *\(R\)emote (Con)sole* password set in your server configuration (can be obtained via `rcon_password`)
|
||||
* Default — `n/a`
|
||||
|
||||
`Use Pluto T6 parser`
|
||||
* Used if setting up a server for Plutonium T6 (BO2)
|
||||
* Default — `false`
|
||||
|
||||
`Use Pluto IW5 parser`
|
||||
* Used if setting a server for Plutonium IW5 (MW3)
|
||||
* Default — `false`
|
||||
|
||||
`Enter number of reserved slots`
|
||||
* The number of client slots reserver for privileged players (unavailable for regular users to occupy)
|
||||
* The number of client slots reserved for privileged players (unavailable for regular users to occupy)
|
||||
* For example, if you enter **2** reserved slots on an **18** slot server, you will have **16** publicly available slots
|
||||
* Default — `0`
|
||||
|
||||
#### Advanced Configuration
|
||||
If you wish to further customize your experience of **IW4MAdmin**, the following configuration file(s) will allow you to changes core options using any text-editor.
|
||||
|
||||
#### `IW4MAdminSettings.json`-- _this file is created after initial setup_
|
||||
* This file uses the [JSON](https://en.wikipedia.org/wiki/JSON#JSON_sample) specification, so please validate it before running **IW4MAdmin**
|
||||
#### `IW4MAdminSettings.json`-- this file is created after initial setup
|
||||
* This file uses the [JSON](https://en.wikipedia.org/wiki/JSON#JSON_sample) specification, so please validate your configuration before running **IW4MAdmin**
|
||||
|
||||
`WebfrontBindUrl`
|
||||
* Specifies the address and port the webfront will listen on.
|
||||
* The value can be an [IP Address](https://en.wikipedia.org/wiki/IP_address):port or [Domain Name](https://en.wikipedia.org/wiki/Domain_name):port
|
||||
* Example http://gameserver.com:8080
|
||||
* Default — `http://0.0.0.0:1624`
|
||||
* Default — `http://0.0.0.0:1624` (indicates that it will listen on all IP Addresses available to the default interface)
|
||||
|
||||
`CustomLocale`
|
||||
* Specifies a [locale name](https://msdn.microsoft.com/en-us/library/39cwe7zf.aspx) to use instead of system default
|
||||
@ -114,7 +117,7 @@ If you wish to further customize your experience of **IW4MAdmin**, the following
|
||||
* Default — `sqlite`
|
||||
|
||||
`Ignore Bots`
|
||||
* Disables bots from being registered by **IW4MAdmin**
|
||||
* Disables bots from being registered and tracked by **IW4MAdmin**
|
||||
|
||||
`RConPollRate`
|
||||
* Specifies (in milliseconds) how often to poll each server for updates
|
||||
@ -136,15 +139,19 @@ If you wish to further customize your experience of **IW4MAdmin**, the following
|
||||
* Specifies the log path to be used instead of the automatically generated one
|
||||
* To use the `GameLogServer`, this should be set to the http address that the `GameLogServer` is listening on
|
||||
* Example — http://gamelogserver.com/
|
||||
* Default — `null`
|
||||
* `AutoMessages`
|
||||
* Specifies the list of messages that are broadcasted to the particular server
|
||||
* Default — `null`
|
||||
* Default — `[]`
|
||||
* `Rules`
|
||||
* Specifies the list of rules that apply to the particular server
|
||||
* Default — `null`
|
||||
* Default — `[]`
|
||||
* `ReservedSlotNumber`
|
||||
* Specifies the number of client slots to reserve for privileged users
|
||||
* Default — `0`
|
||||
* `GameLogServerUrl`
|
||||
* Specifies the HTTP Url for the Game Log Server
|
||||
* Default — `null`
|
||||
|
||||
`AutoMessagePeriod`
|
||||
* Specifies (in seconds) how often messages should be broadcasted to each server
|
||||
@ -309,7 +316,7 @@ ___
|
||||
#### VPN Detection [Script Plugin]
|
||||
- This plugin detects if a client is using a VPN and kicks them if they are
|
||||
- To disable this plugin, delete `Plugins\VPNDetection.js`
|
||||
- Adding ClientIds to `vpnExceptionIds` 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]
|
||||
- This plugin kicks users using a specific GUID
|
||||
@ -359,6 +366,10 @@ Werkzeug>=0.14.1
|
||||
```console
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
If this fails, you can alternatively try installing with:
|
||||
```console
|
||||
python -m pip install -r requirements.txt
|
||||
```
|
||||
2. Allow TCP port 1625 through firewall
|
||||
* [Windows Instructions](https://www.tomshardware.com/news/how-to-open-firewall-ports-in-windows-10,36451.html)
|
||||
* [Linux Instructions (iptables)](https://www.digitalocean.com/community/tutorials/how-to-set-up-a-basic-iptables-firewall-on-centos-6#open-up-ports-for-selected-services)
|
||||
@ -367,14 +378,20 @@ With Python 3 installed, open a terminal/command prompt window open in the `Game
|
||||
```console
|
||||
python runserver.py
|
||||
```
|
||||
The Game Log Server window will need to remain running/open as long as **IW4MAdmin** is running
|
||||
|
||||
---
|
||||
### Extending Plugins
|
||||
|
||||
#### 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)
|
||||
Referencing this package will give you the ability to write plugins against **IW4MAdmin's** core library.
|
||||
#### Code
|
||||
IW4Madmin 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.
|
||||
See the existing plugins for examples.
|
||||
See the existing [plugins](https://github.com/RaidMax/IW4M-Admin/tree/master/Plugins) for examples.
|
||||
#### JavaScript
|
||||
IW4MAdmin functionality can 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.
|
||||
#### Plugin Object Template
|
||||
In order to be properly parsed by the JavaScript engine, every plugin must conform to the following template.
|
||||
@ -407,38 +424,11 @@ var plugin = {
|
||||
- `onLoadAsync` — [function] Handler executed when the plugin is loaded by code
|
||||
- `manager` — [parameter object] Object reference to the application manager (see the IManager interface definition)
|
||||
- `onUnloadAsync` — [function] Handler executed when the plugin is unloaded by code (see live reloading)
|
||||
- `onTickAsync` — [function] Handler executed approximately once per second by code *(unimplemented as of version 2.1)*
|
||||
- `onTickAsync` — [function] Handler executed approximately once per second by code *(unimplemented as of version 2.\*)*
|
||||
- `server` — [parameter object] Object containing information and methods about the server the event occured on (see the Server class declaration)
|
||||
### Live Reloading
|
||||
Thanks to JavaScript's flexibility and parsability, the plugin importer scans the plugins folder and reloads the JavaScript plugins on demand as they're modified. This allows faster development/testing/debugging.
|
||||
|
||||
---
|
||||
### Discord Webhook
|
||||
If you'd like to receive notifications on your Discord guild, configure and start `DiscordWebhook.py`
|
||||
#### Requirements
|
||||
- [Python 3.6](https://www.python.org/downloads/) or newer
|
||||
- The following [PIP](https://pypi.org/project/pip/) packages (provided in `requirements.txt`)
|
||||
```certifi>=2018.4.16
|
||||
chardet>=3.0.4
|
||||
idna>=2.7
|
||||
pip>=18.0
|
||||
requests>=2.19.1
|
||||
setuptools>=39.0.1
|
||||
urllib3>=1.23
|
||||
```
|
||||
#### Configuration Options
|
||||
- `IW4MAdminUrl` — Base url corresponding to your IW4MAdmin `WebfrontBindUrl`.
|
||||
Example http://127.0.0.1
|
||||
- `DiscordWebhookNotificationUrl` — [required] Discord generated URL to send notifications/alerts to; this includes **Reports** and **Bans**
|
||||
Example https://discordapp.com/api/webhooks/id/token
|
||||
- `DiscordWebhookInformationUrl` — [optional] Discord generated URL to send information to; this includes information such as player messages
|
||||
- `NotifyRoleIds` — [optional] List of [discord role ids](https://discordhelp.net/role-id) to mention when notification hook is sent
|
||||
#### Launching
|
||||
With Python installed, open a terminal/command prompt window open in the `Webhook` folder and execute:
|
||||
```console
|
||||
python DiscordWebhook.py
|
||||
```
|
||||
|
||||
---
|
||||
### Misc
|
||||
#### Anti-cheat
|
||||
@ -453,4 +443,4 @@ Should you need to reset your database, this file can simply be deleted.
|
||||
Additionally, this file should be preserved during updates to retain client information.
|
||||
|
||||
Setting the `ConnectionString` and `DatabaseProvider` properties in `IW4MAdminSettings.json`
|
||||
will allow **IW4MAdmin** to use alternate methods for database storage.
|
||||
will allow **IW4MAdmin** to use alternate methods for database storage
|
||||
|
Loading…
Reference in New Issue
Block a user