mirror of
https://github.com/onyx-and-iris/q3rcon-ps.git
synced 2025-01-18 16:50:52 +00:00
80 lines
1.7 KiB
PowerShell
80 lines
1.7 KiB
PowerShell
|
. $PSScriptRoot\packet.ps1
|
||
|
. $PSScriptRoot\base.ps1
|
||
|
|
||
|
|
||
|
class Rcon {
|
||
|
[Object]$base
|
||
|
|
||
|
Rcon ([string]$hostname, [int]$port, [string]$passwd) {
|
||
|
$this.base = New-Base -hostname $hostname -port $port -passwd $passwd
|
||
|
}
|
||
|
|
||
|
[Rcon] Login() {
|
||
|
$resp = $this.base._send("login")
|
||
|
if ($resp -in @("Bad rcon", "Bad rconpassword.", "Invalid password.")) {
|
||
|
throw "invalid rcon password"
|
||
|
}
|
||
|
$this.base.ToString() | Write-Debug
|
||
|
return $this
|
||
|
}
|
||
|
|
||
|
[string] Send($msg) {
|
||
|
return $this.base._send($msg)
|
||
|
}
|
||
|
|
||
|
[void] Say($msg) {
|
||
|
$this.base._send($msg)
|
||
|
}
|
||
|
|
||
|
[void] FastRestart() {
|
||
|
$this.base._send("fast_restart", 2000)
|
||
|
}
|
||
|
|
||
|
[void] MapRotate() {
|
||
|
$this.base._send("map_rotate", 2000)
|
||
|
}
|
||
|
|
||
|
[void] MapRestart() {
|
||
|
$this.base._send("map_restart", 2000)
|
||
|
}
|
||
|
|
||
|
[string] Map() {
|
||
|
return $this.base._send("mapname")
|
||
|
}
|
||
|
|
||
|
[void] SetMap($mapname) {
|
||
|
$this.base._send("map mp_$mapname")
|
||
|
}
|
||
|
|
||
|
[string] Gametype() {
|
||
|
return $this.base._send("g_gametype")
|
||
|
}
|
||
|
|
||
|
[void] SetGametype($gametype) {
|
||
|
$this.base._send("g_gametype $gametype")
|
||
|
}
|
||
|
|
||
|
[string] HostName() {
|
||
|
return $this.base._send("sv_hostname")
|
||
|
}
|
||
|
|
||
|
[void] SetHostName($hostname) {
|
||
|
$this.base._send("sv_hostname $hostname")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Function Connect-Rcon {
|
||
|
param([string]$hostname, [int]$port, [string]$passwd)
|
||
|
|
||
|
[Rcon]::new($hostname, $port, $passwd).Login()
|
||
|
}
|
||
|
|
||
|
Function Disconnect-Rcon {
|
||
|
param([Rcon]$rcon)
|
||
|
|
||
|
$rcon.base._close()
|
||
|
"Disconnected from {0}:{1}" -f $rcon.base.hostname, $rcon.base.port | Write-Debug
|
||
|
}
|
||
|
|
||
|
Export-ModuleMember -Function Connect-Rcon, Disconnect-Rcon
|