xety/laravel-rcon

This package is not installable via Composer 1.x, please make sure you upgrade to Composer 2+. Read more about our Composer 1.x deprecation policy.

Source RCON Protocol Service Provider for Laravel

v1.0.3 2020-08-06 21:20 UTC

This package is not auto-updated.

Last update: 2021-07-10 01:57:15 UTC


README

This package is developed to provide Laravel Framework service allowing you to work with source RCON protocol. You can read more protocol specification on this page: https://developer.valvesoftware.com/wiki/Source_RCON_Protocol

Installation

  1. Install composer package using command:
composer require lukasz-adamski/laravel-rcon
  1. Add Service Provider in config/app.php:
Adams\Rcon\RconServiceProvider::class,
  1. Add Facade in config/app.php:
'Rcon' => Adams\Rcon\Facades\Facade::class,
  1. Publish configuration file to your project:
php artisan vendor:publish --provider="Adams\Rcon\RconServiceProvider"

Environment

You can setup environment variables to establish default RCON connection.

  • RCON_CONNECTION - default RCON connection name stored in config/rcon.php,
  • RCON_HOST - RCON server hostname,
  • RCON_PORT - RCON server listening port,
  • RCON_PASSWORD - passphrase used to authorize connection, you can use null to skip authorization,
  • RCON_TIMEOUT - RCON server connection timeout.

Testing

To run predefined test set use:

php vendor/bin/phpunit

Usage

Below you have example controller implementation:

<?php

namespace App\Http\Controllers;

use Rcon;
use App\Http\Controllers\Controller;

class SimpleRconController extends Controller
{
    /**
     * Execute status command on default RCON server.
     *
     * @return Response
     */
    public function defaultStatus()
    {
        $response = Rcon::command('status');

        return view('console', compact('response'));
    }

    /**
     * Execute status command on specified RCON connection.
     *
     * @return Response
     */
    public function gameServerStatus()
    {
        $response = Rcon::connection('game_server')
            ->command('status');

        return view('console', compact('response'));
    }
}