mirror of
https://github.com/xPaw/PHP-Source-Query.git
synced 2026-05-18 12:53:34 +02:00
Merge pull request #72 from timmw/master
PSR-4 support for #70 plus PhpDoc
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
<?php
|
||||
require __DIR__ . '/SourceQuery/SourceQuery.class.php';
|
||||
require __DIR__ . '/../SourceQuery/bootstrap.php';
|
||||
|
||||
use xPaw\SourceQuery\SourceQuery;
|
||||
|
||||
// For the sake of this example
|
||||
Header( 'Content-Type: text/plain' );
|
||||
@@ -1,5 +1,7 @@
|
||||
<?php
|
||||
require __DIR__ . '/SourceQuery/SourceQuery.class.php';
|
||||
require __DIR__ . '/../SourceQuery/bootstrap.php';
|
||||
|
||||
use xPaw\SourceQuery\SourceQuery;
|
||||
|
||||
// For the sake of this example
|
||||
Header( 'Content-Type: text/plain' );
|
||||
@@ -1,5 +1,7 @@
|
||||
<?php
|
||||
require __DIR__ . '/SourceQuery/SourceQuery.class.php';
|
||||
require __DIR__ . '/../SourceQuery/bootstrap.php';
|
||||
|
||||
use xPaw\SourceQuery\SourceQuery;
|
||||
|
||||
// Edit this ->
|
||||
define( 'SQ_SERVER_ADDR', 'localhost' );
|
||||
@@ -56,7 +58,7 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="container">
|
||||
<div class="jumbotron">
|
||||
<h1>Source Query PHP Class</h1>
|
||||
|
||||
@@ -1,12 +1,23 @@
|
||||
<?php
|
||||
/**
|
||||
* Class written by xPaw
|
||||
* @author Pavel Djundik <sourcequery@xpaw.me>
|
||||
*
|
||||
* Website: https://xpaw.me
|
||||
* GitHub: https://github.com/xPaw/PHP-Source-Query-Class
|
||||
* @link https://xpaw.me
|
||||
* @link https://github.com/xPaw/PHP-Source-Query-Class
|
||||
*
|
||||
* @license GNU Lesser General Public License, version 2.1
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
|
||||
class SourceQueryBuffer
|
||||
|
||||
namespace xPaw\SourceQuery;
|
||||
|
||||
/**
|
||||
* Class Buffer
|
||||
*
|
||||
* @package xPaw\SourceQuery
|
||||
*/
|
||||
class Buffer
|
||||
{
|
||||
/**
|
||||
* Buffer
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Pavel Djundik <sourcequery@xpaw.me>
|
||||
*
|
||||
* @link https://xpaw.me
|
||||
* @link https://github.com/xPaw/PHP-Source-Query-Class
|
||||
*
|
||||
* @license GNU Lesser General Public License, version 2.1
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
|
||||
namespace xPaw\SourceQuery\Exception;
|
||||
|
||||
class AuthenticationException extends SourceQueryException
|
||||
{
|
||||
const BAD_PASSWORD = 1;
|
||||
const BANNED = 2;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Pavel Djundik <sourcequery@xpaw.me>
|
||||
*
|
||||
* @link https://xpaw.me
|
||||
* @link https://github.com/xPaw/PHP-Source-Query-Class
|
||||
*
|
||||
* @license GNU Lesser General Public License, version 2.1
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
|
||||
namespace xPaw\SourceQuery\Exception;
|
||||
|
||||
class InvalidArgumentException extends SourceQueryException
|
||||
{
|
||||
const TIMEOUT_NOT_INTEGER = 1;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Pavel Djundik <sourcequery@xpaw.me>
|
||||
*
|
||||
* @link https://xpaw.me
|
||||
* @link https://github.com/xPaw/PHP-Source-Query-Class
|
||||
*
|
||||
* @license GNU Lesser General Public License, version 2.1
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
|
||||
namespace xPaw\SourceQuery\Exception;
|
||||
|
||||
class InvalidPacketException extends SourceQueryException
|
||||
{
|
||||
const PACKET_HEADER_MISMATCH = 1;
|
||||
const BUFFER_EMPTY = 2;
|
||||
const BUFFER_NOT_EMPTY = 3;
|
||||
const CHECKSUM_MISMATCH = 4;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Pavel Djundik <sourcequery@xpaw.me>
|
||||
*
|
||||
* @link https://xpaw.me
|
||||
* @link https://github.com/xPaw/PHP-Source-Query-Class
|
||||
*
|
||||
* @license GNU Lesser General Public License, version 2.1
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
|
||||
namespace xPaw\SourceQuery\Exception;
|
||||
|
||||
class SocketException extends SourceQueryException
|
||||
{
|
||||
const COULD_NOT_CREATE_SOCKET = 1;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Pavel Djundik <sourcequery@xpaw.me>
|
||||
*
|
||||
* @link https://xpaw.me
|
||||
* @link https://github.com/xPaw/PHP-Source-Query-Class
|
||||
*
|
||||
* @license GNU Lesser General Public License, version 2.1
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
|
||||
namespace xPaw\SourceQuery\Exception;
|
||||
|
||||
abstract class SourceQueryException extends \Exception
|
||||
{
|
||||
// Base exception class
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Pavel Djundik <sourcequery@xpaw.me>
|
||||
*
|
||||
* @link https://xpaw.me
|
||||
* @link https://github.com/xPaw/PHP-Source-Query-Class
|
||||
*
|
||||
* @license GNU Lesser General Public License, version 2.1
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
|
||||
namespace xPaw\SourceQuery\Exception;
|
||||
|
||||
class TimeoutException extends SourceQueryException
|
||||
{
|
||||
const TIMEOUT_CONNECT = 1;
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Class written by xPaw
|
||||
*
|
||||
* Website: https://xpaw.me
|
||||
* GitHub: https://github.com/xPaw/PHP-Source-Query-Class
|
||||
*/
|
||||
|
||||
namespace xPaw\SourceQuery\Exception;
|
||||
|
||||
abstract class SourceQueryException extends \Exception
|
||||
{
|
||||
// Base exception class
|
||||
}
|
||||
|
||||
class InvalidArgumentException extends SourceQueryException
|
||||
{
|
||||
const TIMEOUT_NOT_INTEGER = 1;
|
||||
}
|
||||
|
||||
class TimeoutException extends SourceQueryException
|
||||
{
|
||||
const TIMEOUT_CONNECT = 1;
|
||||
}
|
||||
|
||||
class InvalidPacketException extends SourceQueryException
|
||||
{
|
||||
const PACKET_HEADER_MISMATCH = 1;
|
||||
const BUFFER_EMPTY = 2;
|
||||
const BUFFER_NOT_EMPTY = 3;
|
||||
const CHECKSUM_MISMATCH = 4;
|
||||
}
|
||||
|
||||
class AuthenticationException extends SourceQueryException
|
||||
{
|
||||
const BAD_PASSWORD = 1;
|
||||
const BANNED = 2;
|
||||
}
|
||||
|
||||
class SocketException extends SourceQueryException
|
||||
{
|
||||
const COULD_NOT_CREATE_SOCKET = 1;
|
||||
}
|
||||
@@ -1,26 +1,39 @@
|
||||
<?php
|
||||
/**
|
||||
* Class written by xPaw
|
||||
* @author Pavel Djundik <sourcequery@xpaw.me>
|
||||
*
|
||||
* Website: https://xpaw.me
|
||||
* GitHub: https://github.com/xPaw/PHP-Source-Query-Class
|
||||
* @link https://xpaw.me
|
||||
* @link https://github.com/xPaw/PHP-Source-Query-Class
|
||||
*
|
||||
* @license GNU Lesser General Public License, version 2.1
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
|
||||
namespace xPaw\SourceQuery;
|
||||
|
||||
use xPaw\SourceQuery\Exception\AuthenticationException;
|
||||
|
||||
class SourceQueryGoldSourceRcon
|
||||
|
||||
/**
|
||||
* Class GoldSourceRcon
|
||||
*
|
||||
* @package xPaw\SourceQuery
|
||||
*
|
||||
* @uses xPaw\SourceQuery\Exception\AuthenticationException
|
||||
*/
|
||||
class GoldSourceRcon
|
||||
{
|
||||
/**
|
||||
* Points to buffer class
|
||||
*
|
||||
* @var SourceQueryBuffer
|
||||
* @var Buffer
|
||||
*/
|
||||
private $Buffer;
|
||||
|
||||
/**
|
||||
* Points to socket class
|
||||
*
|
||||
* @var SourceQuerySocket
|
||||
* @var Socket
|
||||
*/
|
||||
private $Socket;
|
||||
|
||||
@@ -57,6 +70,7 @@
|
||||
/**
|
||||
* @param int $Length
|
||||
* @throws AuthenticationException
|
||||
* @return bool
|
||||
*/
|
||||
public function Read( $Length = 1400 )
|
||||
{
|
||||
@@ -1,15 +1,29 @@
|
||||
<?php
|
||||
/**
|
||||
* Class written by xPaw
|
||||
* @author Pavel Djundik <sourcequery@xpaw.me>
|
||||
*
|
||||
* Website: https://xpaw.me
|
||||
* GitHub: https://github.com/xPaw/PHP-Source-Query-Class
|
||||
* @link https://xpaw.me
|
||||
* @link https://github.com/xPaw/PHP-Source-Query-Class
|
||||
*
|
||||
* @license GNU Lesser General Public License, version 2.1
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
|
||||
namespace xPaw\SourceQuery;
|
||||
|
||||
use xPaw\SourceQuery\Exception\InvalidPacketException;
|
||||
use xPaw\SourceQuery\Exception\SocketException;
|
||||
|
||||
class SourceQuerySocket
|
||||
|
||||
/**
|
||||
* Class Socket
|
||||
*
|
||||
* @package xPaw\SourceQuery
|
||||
*
|
||||
* @uses xPaw\SourceQuery\Exception\InvalidPacketException
|
||||
* @uses xPaw\SourceQuery\Exception\SocketException
|
||||
*/
|
||||
class Socket
|
||||
{
|
||||
public $Socket;
|
||||
public $Engine;
|
||||
@@ -21,7 +35,7 @@
|
||||
/**
|
||||
* Points to buffer class
|
||||
*
|
||||
* @var SourceQueryBuffer
|
||||
* @var Buffer
|
||||
*/
|
||||
private $Buffer;
|
||||
|
||||
@@ -144,7 +158,7 @@
|
||||
// Let's make sure this function exists, it's not included in PHP by default
|
||||
if( !Function_Exists( 'bzdecompress' ) )
|
||||
{
|
||||
throw new RuntimeException( 'Received compressed packet, PHP doesn\'t have Bzip2 library installed, can\'t decompress.' );
|
||||
throw new \RuntimeException( 'Received compressed packet, PHP doesn\'t have Bzip2 library installed, can\'t decompress.' );
|
||||
}
|
||||
|
||||
$Buffer = bzdecompress( $Buffer );
|
||||
@@ -1,30 +1,36 @@
|
||||
<?php
|
||||
/**
|
||||
* Class written by xPaw
|
||||
* This class provides the public interface to the PHP-Source-Query library.
|
||||
*
|
||||
* Website: https://xpaw.me
|
||||
* GitHub: https://github.com/xPaw/PHP-Source-Query-Class
|
||||
* @author Pavel Djundik <sourcequery@xpaw.me>
|
||||
*
|
||||
* Special thanks to koraktor for his awesome Steam Condenser class,
|
||||
* I used it as a reference at some points.
|
||||
* @link https://xpaw.me
|
||||
* @link https://github.com/xPaw/PHP-Source-Query-Class
|
||||
*
|
||||
* @license GNU Lesser General Public License, version 2.1
|
||||
*/
|
||||
|
||||
require __DIR__ . '/Exceptions.class.php';
|
||||
require __DIR__ . '/Buffer.class.php';
|
||||
require __DIR__ . '/Socket.class.php';
|
||||
require __DIR__ . '/SourceRcon.class.php';
|
||||
require __DIR__ . '/GoldSourceRcon.class.php';
|
||||
|
||||
|
||||
namespace xPaw\SourceQuery;
|
||||
|
||||
use xPaw\SourceQuery\Exception\InvalidArgumentException;
|
||||
use xPaw\SourceQuery\Exception\TimeoutException;
|
||||
use xPaw\SourceQuery\Exception\InvalidPacketException;
|
||||
|
||||
|
||||
/**
|
||||
* Class SourceQuery
|
||||
*
|
||||
* @package xPaw\SourceQuery
|
||||
*
|
||||
* @uses xPaw\SourceQuery\Exception\InvalidArgumentException
|
||||
* @uses xPaw\SourceQuery\Exception\TimeoutException
|
||||
* @uses xPaw\SourceQuery\Exception\InvalidPacketException
|
||||
*/
|
||||
class SourceQuery
|
||||
{
|
||||
/**
|
||||
* Values returned by GetChallenge()
|
||||
*
|
||||
* TODO: Get rid of this? Improve? Do something else?
|
||||
* @todo Get rid of this? Improve? Do something else?
|
||||
*/
|
||||
const GETCHALLENGE_FAILED = 0;
|
||||
const GETCHALLENGE_ALL_CLEAR = 1;
|
||||
@@ -71,21 +77,21 @@
|
||||
/**
|
||||
* Points to rcon class
|
||||
*
|
||||
* @var SourceQueryRcon
|
||||
* @var SourceRcon
|
||||
*/
|
||||
private $Rcon;
|
||||
|
||||
/**
|
||||
* Points to buffer class
|
||||
*
|
||||
* @var SourceQueryBuffer
|
||||
* @var Buffer
|
||||
*/
|
||||
private $Buffer;
|
||||
|
||||
/**
|
||||
* Points to socket class
|
||||
*
|
||||
* @var SourceQuerySocket
|
||||
* @var Socket
|
||||
*/
|
||||
private $Socket;
|
||||
|
||||
@@ -112,8 +118,8 @@
|
||||
|
||||
public function __construct( )
|
||||
{
|
||||
$this->Buffer = new SourceQueryBuffer( );
|
||||
$this->Socket = new SourceQuerySocket( $this->Buffer );
|
||||
$this->Buffer = new Buffer( );
|
||||
$this->Socket = new Socket( $this->Buffer );
|
||||
}
|
||||
|
||||
public function __destruct( )
|
||||
@@ -530,13 +536,13 @@
|
||||
{
|
||||
case SourceQuery :: GOLDSOURCE:
|
||||
{
|
||||
$this->Rcon = new SourceQueryGoldSourceRcon( $this->Buffer, $this->Socket );
|
||||
$this->Rcon = new GoldSourceRcon( $this->Buffer, $this->Socket );
|
||||
|
||||
break;
|
||||
}
|
||||
case SourceQuery :: SOURCE:
|
||||
{
|
||||
$this->Rcon = new SourceQuerySourceRcon( $this->Buffer, $this->Socket );
|
||||
$this->Rcon = new SourceRcon( $this->Buffer, $this->Socket );
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -1,28 +1,43 @@
|
||||
<?php
|
||||
/**
|
||||
* Class written by xPaw
|
||||
* @author Pavel Djundik <sourcequery@xpaw.me>
|
||||
*
|
||||
* Website: https://xpaw.me
|
||||
* GitHub: https://github.com/xPaw/PHP-Source-Query-Class
|
||||
* @link https://xpaw.me
|
||||
* @link https://github.com/xPaw/PHP-Source-Query-Class
|
||||
*
|
||||
* @license GNU Lesser General Public License, version 2.1
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
|
||||
namespace xPaw\SourceQuery;
|
||||
|
||||
use xPaw\SourceQuery\Exception\AuthenticationException;
|
||||
use xPaw\SourceQuery\Exception\TimeoutException;
|
||||
use xPaw\SourceQuery\Exception\InvalidPacketException;
|
||||
|
||||
class SourceQuerySourceRcon
|
||||
|
||||
/**
|
||||
* Class SourceRcon
|
||||
*
|
||||
* @package xPaw\SourceQuery
|
||||
*
|
||||
* @uses xPaw\SourceQuery\Exception\AuthenticationException
|
||||
* @uses xPaw\SourceQuery\Exception\TimeoutException
|
||||
* @uses xPaw\SourceQuery\Exception\InvalidPacketException
|
||||
*/
|
||||
class SourceRcon
|
||||
{
|
||||
/**
|
||||
* Points to buffer class
|
||||
*
|
||||
* @var SourceQueryBuffer
|
||||
* @var Buffer
|
||||
*/
|
||||
private $Buffer;
|
||||
|
||||
/**
|
||||
* Points to socket class
|
||||
*
|
||||
* @var SourceQuerySocket
|
||||
* @var Socket
|
||||
*/
|
||||
private $Socket;
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
/**
|
||||
* Library to query servers that implement Source Engine Query protocol.
|
||||
*
|
||||
* Special thanks to koraktor for his awesome Steam Condenser class,
|
||||
* I used it as a reference at some points.
|
||||
*
|
||||
* @author Pavel Djundik <sourcequery@xpaw.me>
|
||||
*
|
||||
* @link https://xpaw.me
|
||||
* @link https://github.com/xPaw/PHP-Source-Query-Class
|
||||
*
|
||||
* @license GNU Lesser General Public License, version 2.1
|
||||
*/
|
||||
|
||||
require_once __DIR__ . '/Exception/SourceQueryException.php';
|
||||
require_once __DIR__ . '/Exception/AuthenticationException.php';
|
||||
require_once __DIR__ . '/Exception/InvalidArgumentException.php';
|
||||
require_once __DIR__ . '/Exception/SocketException.php';
|
||||
require_once __DIR__ . '/Exception/InvalidPacketException.php';
|
||||
require_once __DIR__ . '/Exception/TimeoutException.php';
|
||||
|
||||
require_once __DIR__ . '/Buffer.php';
|
||||
require_once __DIR__ . '/Socket.php';
|
||||
require_once __DIR__ . '/SourceRcon.php';
|
||||
require_once __DIR__ . '/GoldSourceRcon.php';
|
||||
require_once __DIR__ . '/SourceQuery.php';
|
||||
+3
-4
@@ -17,9 +17,8 @@
|
||||
},
|
||||
"autoload":
|
||||
{
|
||||
"files":
|
||||
[
|
||||
"SourceQuery/SourceQuery.class.php"
|
||||
]
|
||||
"psr-4": {
|
||||
"xPaw\\SourceQuery\\": "SourceQuery/"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user