implement server address check

This commit is contained in:
ghost 2024-01-06 23:23:57 +02:00
parent 272d219066
commit fff29a762e
3 changed files with 125 additions and 18 deletions

View File

@ -12,6 +12,7 @@
/* vars */ /* vars */
--container-max-width: 768px; --container-max-width: 768px;
--color-success: #4bc432;
--color-warning: #ee784e; --color-warning: #ee784e;
--color-error: #ff6363; --color-error: #ff6363;
--color-default: #999; --color-default: #999;
@ -86,6 +87,53 @@ footer
} }
/* framework */ /* framework */
.cursor-default
{
cursor: default;
}
.cursor-pointer
{
cursor: pointer;
}
.cursor-help
{
cursor: help;
}
.color-success,
a.color-success,
a.color-success:active,
a.color-success:visited
{
color: var(--color-success);
}
.color-warning,
a.color-warning,
a.color-warning:active,
a.color-warning:visited
{
color: var(--color-warning);
}
.color-error,
a.color-error,
a.color-error:active,
a.color-error:visited
{
color: var(--color-error);
}
.color-default,
a.color-default,
a.color-default:active,
a.color-default:visited
{
color: var(--color-default);
}
.text-align-left .text-align-left
{ {
text-align: left; text-align: left;

View File

@ -43,6 +43,36 @@ class MainController extends AbstractController
foreach ($hlservers as $hlserver) foreach ($hlservers as $hlserver)
{ {
// Init defaults
$info = [];
$session = [];
$online = [];
// Generate CRC32 ID
$crc32server = crc32(
$hlserver->host . ':' . $hlserver->port
);
// Prepare aliases
$aliases = [];
foreach ($hlserver->alias as $value)
{
$alias = new \xPaw\SourceQuery\SourceQuery();
$alias->Connect(
$value->host,
$value->port
);
$aliases[] = [
'host' => $value->host,
'port' => $value->port,
'status' => $alias->Ping()
];
}
// Request server info
try try
{ {
$server = new \xPaw\SourceQuery\SourceQuery(); $server = new \xPaw\SourceQuery\SourceQuery();
@ -56,11 +86,6 @@ class MainController extends AbstractController
{ {
if ($info = (array) $server->GetInfo()) if ($info = (array) $server->GetInfo())
{ {
// Generate CRC32 ID
$crc32server = crc32(
$hlserver->host . ':' . $hlserver->port
);
// Get session // Get session
$session = empty($info['Players']) ? [] : (array) $server->GetPlayers(); $session = empty($info['Players']) ? [] : (array) $server->GetPlayers();
@ -87,18 +112,14 @@ class MainController extends AbstractController
], ],
10 10
); );
// Add server
$servers[] = [
'crc32server' => $crc32server,
'host' => $hlserver->host,
'port' => $hlserver->port,
'alias' => $hlserver->alias,
'info' => $info,
'session' => $session,
'online' => $online
];
} }
$status = true;
}
else
{
$status = false;
} }
} }
@ -111,6 +132,18 @@ class MainController extends AbstractController
{ {
$server->Disconnect(); $server->Disconnect();
} }
// Add server
$servers[] = [
'crc32server' => $crc32server,
'host' => $hlserver->host,
'port' => $hlserver->port,
'aliases' => $aliases,
'info' => $info,
'session' => $session,
'online' => $online,
'status' => $status
];
} }
return $this->render( return $this->render(

View File

@ -7,12 +7,38 @@
<h3 class="padding-y-8-px text-align-right">{{ 'Address' | trans }}</h3> <h3 class="padding-y-8-px text-align-right">{{ 'Address' | trans }}</h3>
<div> <div>
{{ server.host }}:{{ server.port }} {{ server.host }}:{{ server.port }}
{% if server.status %}
<span class="color-success" title="{{ 'online' | trans }}">
<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" fill="currentColor" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M8 13A5 5 0 1 0 8 3a5 5 0 0 0 0 10"/>
</svg>
</span>
{% else %}
<span class="color-error" title="{{ 'offline' | trans }}">
<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" fill="currentColor" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M8 13A5 5 0 1 0 8 3a5 5 0 0 0 0 10"/>
</svg>
</span>
{% endif %}
</div> </div>
{% if server.alias %} {% if server.aliases %}
<h3 class="padding-y-8-px text-align-right">{{ 'Aliases' | trans }}</h3> <h3 class="padding-y-8-px text-align-right">{{ 'Aliases' | trans }}</h3>
{% for alias in server.alias %} {% for alias in server.aliases %}
<div> <div>
{{ alias.host }}:{{ alias.port }} {{ alias.host }}:{{ alias.port }}
{% if alias.status %}
<span class="color-success" title="{{ 'online' | trans }}">
<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" fill="currentColor" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M8 13A5 5 0 1 0 8 3a5 5 0 0 0 0 10"/>
</svg>
</span>
{% else %}
<span class="color-error" title="{{ 'offline' | trans }}">
<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" fill="currentColor" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M8 13A5 5 0 1 0 8 3a5 5 0 0 0 0 10"/>
</svg>
</span>
{% endif %}
</div> </div>
{% endfor %} {% endfor %}
{% endif %} {% endif %}