Page 1 of 1

[PHP library] Game Server Query

Posted: 09 May 2019, 19:37
by fan_haulin
Salutare! Stiu ca prin comunitatea asta sunt multi care au avut o versiunea a script-ului meu (phpGameTracker) sau au detinut alte site-uri de genul. Script-ul meu ca si multe altele folosea libraria GameQ 3, o librarie open-source.

Ideea este ca din pacate librarie este slab intretinuta, chiar daca in jurul ei s-a format o mica comunitate. Ea este foarte greu de modificat (dpdv extindere - inheritance) si rezultatele intoarse de aceasta nu au o consistenta. Am petrecut ceva ore incercat sa gandesc o varianta mai buna a acesteia, iar astazi am lansat prima versiune pe github. Codul este open-source de asemenea, deci nu este reclama fiindca e ceva moca si nici macar nu e site-ul meu.

Am sa va las cateva link-uri mai jos. Daca este cineva interesat sa o instaleze si sa o testeze, l-as ruga sa vina si cu feedback. In perioada urmatoare o sa import si alte jocuri din GameQ.

Nota: In cazul in care o testati, iar aplicatia nu returneaza un status pozitiv pentru server, incercati sa adaugati si al 4-lea parametru: query_port.

Format standard adresa server: <IP>:<CLIENT_PORT> - client-port este complet diferit de query port!

Link-uri:
- https://packagist.org/packages/gasjki/game-server-query
- https://github.com/Gasjki/GameServerQuery

P.S.: Documentatia este destul de slaba, dar sunt aici pentru informatii suplimentare!

Re: [PHP library] Game Server Query

Posted: 10 May 2019, 14:19
by Xeno985
Nu înțeleg, cu ce este diferit al tău fata de gameq, "In perioada urmatoare o sa import si alte jocuri din GameQ." asta înseamnă că practic plagiezi gameq și nu este o idee originală.
Nu am testat încă, voi încerca când ajung acasă, dar dacă are același concepte precum gameq, ți-ai bătut capul degeaba. Dacă ai și informații noi despre jucători, ceea ca ma interesează pe mine, precum IP, steamid, ping, etc, ai un + de la mine 👍.
Am sa revin cu edit după ce o voi testa și ma aștept la ceva nou nu doar copy paste.

Re: [PHP library] Game Server Query

Posted: 10 May 2019, 18:22
by fan_haulin
Xeno985 wrote:
10 May 2019, 14:19
Nu înțeleg, cu ce este diferit al tău fata de gameq, "In perioada urmatoare o sa import si alte jocuri din GameQ." asta înseamnă că practic plagiezi gameq și nu este o idee originală.
Nu am testat încă, voi încerca când ajung acasă, dar dacă are același concepte precum gameq, ți-ai bătut capul degeaba. Dacă ai și informații noi despre jucători, ceea ca ma interesează pe mine, precum IP, steamid, ping, etc, ai un + de la mine 👍.
Am sa revin cu edit după ce o voi testa și ma aștept la ceva nou nu doar copy paste.
Salut @Xeno985!

Asa cum am scris si in prima postare, script-ul este de fapt o reinterpretare a GameQ, numai ca versiunea mea este muuult mai permisiva si mai personalizabila comparativ cu versiunea originala. Iti poti face propriile protocoale numai extinzand o clasa sau implementand interfata corespunzatoare, la fel si in cazul clasei ce formateaza rezultatul, la fel si in cazul clasei care se ocupa de citirea socket-urilor efectiv, dar nu il ultimul rand si in cazul filtrelor.

Mai mult de atat, filtrele pot fi setate sa fie aplicate pe un joc anume (sau nu) si/sau pot fi aplicate pe anumite campuri sau nu.

Aceste lucruri sunt foarte greu de obtinut cu versiunea actuala de GameQ, iar pentru a le obtine trebuie sa scrii o multime de cod. Nu am vrut sa reinventez roata, doar am vrut sa o finisez sa fie mai rotunda.

In legatura cu informatiile suplimentare despre jucatori, din pacate sunt date pe care nu le poti obtine cu o astfel de librarie, indiferent daca e scrisa de mine, Austinb (GameQ), xPaw (PHP Source) sau oricine altcineva. Acele date nu sunt intoarse de servere! In cazul in care ai vazut astfel de informatii pe undeva, vreau sa te asigur ca sigur exista un plugin pe server care trimite acele date.

Multumesc! Sper ca totusi vei vrea sa testezi versiunea mea a script-ului! Zi faina! :D

Re: [PHP library] Game Server Query

Posted: 13 May 2019, 21:39
by Xeno985
fan_haulin wrote:
10 May 2019, 18:22
Xeno985 wrote:
10 May 2019, 14:19
Nu înțeleg, cu ce este diferit al tău fata de gameq, "In perioada urmatoare o sa import si alte jocuri din GameQ." asta înseamnă că practic plagiezi gameq și nu este o idee originală.
Nu am testat încă, voi încerca când ajung acasă, dar dacă are același concepte precum gameq, ți-ai bătut capul degeaba. Dacă ai și informații noi despre jucători, ceea ca ma interesează pe mine, precum IP, steamid, ping, etc, ai un + de la mine 👍.
Am sa revin cu edit după ce o voi testa și ma aștept la ceva nou nu doar copy paste.
Salut @Xeno985!

Asa cum am scris si in prima postare, script-ul este de fapt o reinterpretare a GameQ, numai ca versiunea mea este muuult mai permisiva si mai personalizabila comparativ cu versiunea originala. Iti poti face propriile protocoale numai extinzand o clasa sau implementand interfata corespunzatoare, la fel si in cazul clasei ce formateaza rezultatul, la fel si in cazul clasei care se ocupa de citirea socket-urilor efectiv, dar nu il ultimul rand si in cazul filtrelor.

Mai mult de atat, filtrele pot fi setate sa fie aplicate pe un joc anume (sau nu) si/sau pot fi aplicate pe anumite campuri sau nu.

Aceste lucruri sunt foarte greu de obtinut cu versiunea actuala de GameQ, iar pentru a le obtine trebuie sa scrii o multime de cod. Nu am vrut sa reinventez roata, doar am vrut sa o finisez sa fie mai rotunda.

In legatura cu informatiile suplimentare despre jucatori, din pacate sunt date pe care nu le poti obtine cu o astfel de librarie, indiferent daca e scrisa de mine, Austinb (GameQ), xPaw (PHP Source) sau oricine altcineva. Acele date nu sunt intoarse de servere! In cazul in care ai vazut astfel de informatii pe undeva, vreau sa te asigur ca sigur exista un plugin pe server care trimite acele date.

Multumesc! Sper ca totusi vei vrea sa testezi versiunea mea a script-ului! Zi faina! :D
https://i.imgur.com/xA35Alc.png

Re: [PHP library] Game Server Query

Posted: 13 May 2019, 23:28
by The Kalu
Xeno985 wrote:
13 May 2019, 21:39
fan_haulin wrote:
10 May 2019, 18:22
Xeno985 wrote:
10 May 2019, 14:19
Nu înțeleg, cu ce este diferit al tău fata de gameq, "In perioada urmatoare o sa import si alte jocuri din GameQ." asta înseamnă că practic plagiezi gameq și nu este o idee originală.
Nu am testat încă, voi încerca când ajung acasă, dar dacă are același concepte precum gameq, ți-ai bătut capul degeaba. Dacă ai și informații noi despre jucători, ceea ca ma interesează pe mine, precum IP, steamid, ping, etc, ai un + de la mine 👍.
Am sa revin cu edit după ce o voi testa și ma aștept la ceva nou nu doar copy paste.
Salut @Xeno985!

Asa cum am scris si in prima postare, script-ul este de fapt o reinterpretare a GameQ, numai ca versiunea mea este muuult mai permisiva si mai personalizabila comparativ cu versiunea originala. Iti poti face propriile protocoale numai extinzand o clasa sau implementand interfata corespunzatoare, la fel si in cazul clasei ce formateaza rezultatul, la fel si in cazul clasei care se ocupa de citirea socket-urilor efectiv, dar nu il ultimul rand si in cazul filtrelor.

Mai mult de atat, filtrele pot fi setate sa fie aplicate pe un joc anume (sau nu) si/sau pot fi aplicate pe anumite campuri sau nu.

Aceste lucruri sunt foarte greu de obtinut cu versiunea actuala de GameQ, iar pentru a le obtine trebuie sa scrii o multime de cod. Nu am vrut sa reinventez roata, doar am vrut sa o finisez sa fie mai rotunda.

In legatura cu informatiile suplimentare despre jucatori, din pacate sunt date pe care nu le poti obtine cu o astfel de librarie, indiferent daca e scrisa de mine, Austinb (GameQ), xPaw (PHP Source) sau oricine altcineva. Acele date nu sunt intoarse de servere! In cazul in care ai vazut astfel de informatii pe undeva, vreau sa te asigur ca sigur exista un plugin pe server care trimite acele date.

Multumesc! Sper ca totusi vei vrea sa testezi versiunea mea a script-ului! Zi faina! :D
https://i.imgur.com/xA35Alc.png
include "./src/GameServerQuery/GameServerQuery.php"

Re: [PHP library] Game Server Query

Posted: 14 May 2019, 08:45
by fan_haulin
The Kalu wrote:
13 May 2019, 23:28
Xeno985 wrote:
13 May 2019, 21:39
fan_haulin wrote:
10 May 2019, 18:22


Salut @Xeno985!

Asa cum am scris si in prima postare, script-ul este de fapt o reinterpretare a GameQ, numai ca versiunea mea este muuult mai permisiva si mai personalizabila comparativ cu versiunea originala. Iti poti face propriile protocoale numai extinzand o clasa sau implementand interfata corespunzatoare, la fel si in cazul clasei ce formateaza rezultatul, la fel si in cazul clasei care se ocupa de citirea socket-urilor efectiv, dar nu il ultimul rand si in cazul filtrelor.

Mai mult de atat, filtrele pot fi setate sa fie aplicate pe un joc anume (sau nu) si/sau pot fi aplicate pe anumite campuri sau nu.

Aceste lucruri sunt foarte greu de obtinut cu versiunea actuala de GameQ, iar pentru a le obtine trebuie sa scrii o multime de cod. Nu am vrut sa reinventez roata, doar am vrut sa o finisez sa fie mai rotunda.

In legatura cu informatiile suplimentare despre jucatori, din pacate sunt date pe care nu le poti obtine cu o astfel de librarie, indiferent daca e scrisa de mine, Austinb (GameQ), xPaw (PHP Source) sau oricine altcineva. Acele date nu sunt intoarse de servere! In cazul in care ai vazut astfel de informatii pe undeva, vreau sa te asigur ca sigur exista un plugin pe server care trimite acele date.

Multumesc! Sper ca totusi vei vrea sa testezi versiunea mea a script-ului! Zi faina! :D
https://i.imgur.com/xA35Alc.png
include "./src/GameServerQuery/GameServerQuery.php"

Nu este vorba de path-ul folosit aici. Ideea e ca libraria aceasta, fata de GameQ depinde de composer pentru a se face autoload. Pot adauga si un autoloader in caz de ceva. Am sa revin cu edit in postul asta in jurul pranzului.

EDIT: Acum am vazut ca nici macar n-ai citit documentatia despre cum se foloseste libraria si ai scris o versiune a ta. Vezi wiki
EDIT: Autoload-ul va fii totusi adaug in librarie in cursul zilei.

Re: [PHP library] Game Server Query

Posted: 14 May 2019, 08:53
by The Kalu
Nici eu nu am observat documentatia, credeam ca se include libraria direct si nu ii lua calea catre fisier cum trebuie.

Re: [PHP library] Game Server Query

Posted: 14 May 2019, 17:33
by fan_haulin
Cum sa rulezi script-ul fara composer?

index.php (pe care l-am adaugat in folder-ul root)
Cod sursa | Afiseaza codul
<?php
use GameServerQuery\GameServerQuery;
use GameServerQuery\Protocols\Games\Source\CounterStrikeGlobalOffensive;

require_once 'src/GameServerQuery/autoloader.php';

try {
    $gameServerQuery = new GameServerQuery();

    // Add custom server.
    $gameServerQuery->addServer([
        'protocol'   => CounterStrikeGlobalOffensive::class,
        'ip_address' => '89.40.105.241',
        'port'       => 27015,
    ]);

    // Get result
    $result = $gameServerQuery->execute();

    var_dump($result);
} catch (Exception $exception) {
    var_dump($exception->getMessage());
}

autoloader.php (cred ca nu e o idee stralucita sa il adaug inca librarie) - pentru testare l-am adaugat in /folder/src/GameServerQuery
Cod sursa | Afiseaza codul
<?php

spl_autoload_register(function ($class) {
    $prefix   = 'GameServerQuery\\';
    $base_dir = __DIR__ . DIRECTORY_SEPARATOR;
    $len      = strlen($prefix);
    if (strncmp($prefix, $class, $len) !== 0) {
        // no, move to the next registered autoloader
        return;
    }

    $relative_class = substr($class, $len);
    $file           = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
    if (file_exists($file)) {
        require $file;
    }
});

Codul sursa din autoloader poate sta acolo in continuare sau te poti juca cu $base_dir (e fix cel de la GameQ, l-am updatat putin pentru asta pentru a iti usura viata).

Re: [PHP library] Game Server Query

Posted: 14 May 2019, 18:34
by levin
voiam să postez de la început faza cu autoload, da am zis că sunt eu nebun sau prost, faptul că nu-mi mergea:))
înainte să postezi un proiect, mai și testează-l..să fie funcțional într-o proporție cel puțin la fel de bună pe cât merge cel original
iar despre documentație...nu ai făcut nimic special în așa fel încât să ceri altă versiune de php sau alte chestii pe care nu le cere baza

Re: [PHP library] Game Server Query

Posted: 14 May 2019, 18:42
by fan_haulin
L E V I N wrote:
14 May 2019, 18:34
voiam să postez de la început faza cu autoload, da am zis că sunt eu nebun sau prost, faptul că nu-mi mergea:))
înainte să postezi un proiect, mai și testează-l..să fie funcțional într-o proporție cel puțin la fel de bună pe cât merge cel original
iar despre documentație...nu ai făcut nimic special în așa fel încât să ceri altă versiune de php sau alte chestii pe care nu le cere baza
Proiectul a fost testat inainte de a-l publica. Numai ca eu am zis ca e mult mai bine si util sa il integrez numai cu Composer, dat fiind ca tot e la moda ca toata lumea sa foloseasca framework-uri si sa fie artizani (se stiu baietii cu Laravel :D)

Exact cum am scris si mai sus, nu am vrut sa reinventez roata, iar singurele beneficii aduse au fost refactorizarea codului si rescrierea lui (partiala) astfel incat sa poti adauga filtre mult mai usor (cel mai comun lucru) sau sa iti creezi propria versiune a oricarei clase.

In prezent, pe versiunea actuala a GameQ, singura librarie ce poate fi modificata / extinsa este cea de Query. Atat! Au fost cazuri in doua proiecte precedente cand pentru a scapa de aceasta limitare a trebuit sa renunt la integrarea script-ului cu composer si sa copiez efectiv intreaga librarie in codul meu si sa fac modificarile necesare. :D

Edit: Cat despre versiunea de PHP, cred ca a fost mai mult un exces de zel, dar am luat decizia fiindca PHP 5.6 a atins EOL.

Re: [PHP library] Game Server Query

Posted: 14 May 2019, 19:17
by levin
dacă tot vrei să simplifici, fă un global/config în care să definești protocolul dorit ip port etc...

Re: [PHP library] Game Server Query

Posted: 14 May 2019, 20:37
by fan_haulin
L E V I N wrote:
14 May 2019, 19:17
dacă tot vrei să simplifici, fă un global/config în care să definești protocolul dorit ip port etc...
Am lamurit lucrurile in privat. A fost o neintelegere. :D