mirror of
https://gitlab.com/crafty-controller/crafty-4.git
synced 2024-08-30 18:23:09 +00:00
Add max player/total player to stats keeping on dashboard
This commit is contained in:
parent
32852c00b9
commit
85eef71b9e
@ -260,6 +260,8 @@ class Stats:
|
||||
|
||||
server_stats = {}
|
||||
server = self.controller.get_server_obj(server_id)
|
||||
server_dt = servers_helper.get_server_data_by_id(server_id)
|
||||
|
||||
|
||||
logger.debug(f'Getting stats for server: {server_id}')
|
||||
|
||||
@ -279,8 +281,8 @@ class Stats:
|
||||
# TODO: search server properties file for possible override of 127.0.0.1
|
||||
#internal_ip = server['server_ip']
|
||||
#server_port = server['server_port']
|
||||
internal_ip = server_data.get('server_ip', "127.0.0.1")
|
||||
server_port = server_settings.get('server-port', "25565")
|
||||
internal_ip = server_dt['server_ip']
|
||||
server_port = server_dt['server_port']
|
||||
|
||||
|
||||
logger.debug(f"Pinging server '{server.name}' on {internal_ip}:{server_port}")
|
||||
|
@ -425,7 +425,10 @@ class TasksManager:
|
||||
})
|
||||
|
||||
for user in Users_Controller.get_all_users():
|
||||
total_players = 0
|
||||
max_players = 0
|
||||
servers_ping = []
|
||||
players_ping = {}
|
||||
if user.superuser:
|
||||
servers = Servers_Controller.get_all_servers_stats()
|
||||
else:
|
||||
@ -434,8 +437,6 @@ class TasksManager:
|
||||
if srv:
|
||||
server_id = srv['server_data']['server_id']
|
||||
srv['raw_ping_result'] = self.controller.stats.get_raw_server_stats(server_id)
|
||||
if f"{srv['raw_ping_result'].get('icon')}" == "b''":
|
||||
srv['raw_ping_result']['icon'] = False
|
||||
|
||||
servers_ping.append({
|
||||
'id': srv['raw_ping_result'].get('id'),
|
||||
@ -453,7 +454,6 @@ class TasksManager:
|
||||
'players': srv['raw_ping_result'].get('players'),
|
||||
'desc': srv['raw_ping_result'].get('desc'),
|
||||
'version': srv['raw_ping_result'].get('version'),
|
||||
'icon': None
|
||||
})
|
||||
if len(websocket_helper.clients) > 0:
|
||||
websocket_helper.broadcast_user_page_params(
|
||||
@ -478,9 +478,15 @@ class TasksManager:
|
||||
'players': srv['raw_ping_result'].get('players'),
|
||||
'desc': srv['raw_ping_result'].get('desc'),
|
||||
'version': srv['raw_ping_result'].get('version'),
|
||||
'icon': None
|
||||
}
|
||||
)
|
||||
total_players += int(srv['raw_ping_result'].get('online'))
|
||||
max_players += int(srv['raw_ping_result'].get('max'))
|
||||
players_ping = {
|
||||
'total_players': total_players,
|
||||
'max_players': max_players
|
||||
}
|
||||
websocket_helper.broadcast_user_page('/panel/dashboard', user.user_id, 'update_player_status', players_ping)
|
||||
|
||||
if (len(servers_ping) > 0) & (len(websocket_helper.clients) > 0):
|
||||
try:
|
||||
|
@ -68,12 +68,11 @@
|
||||
<div class="wrapper">
|
||||
<h5 class="mb-1 font-weight-medium text-primary">{{ translate('dashboard', 'players', data['lang']) }}
|
||||
</h5>
|
||||
<h3 class="mb-0 font-weight-semibold">{{ data['num_players'] }}</h3>
|
||||
<h3 class="mb-0 font-weight-semibold" id="total_players">{{ data['num_players'] }}</h3>
|
||||
|
||||
</div>
|
||||
<div class="wrapper my-auto ml-auto ml-lg-4">
|
||||
<p class="mb-0 text-success">35 {{ translate('dashboard', 'max', data['lang']) }}</p>
|
||||
<p class="mb-0 text-warning">10 {{ translate('dashboard', 'avg', data['lang']) }}</p>
|
||||
<p class="mb-0 text-warning"><span id="max_players">0</span> {{ translate('dashboard', 'max', data['lang']) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -224,7 +223,7 @@
|
||||
<span class="text-success"><i class="fas fa-signal"></i> {{ translate('dashboard', 'online',
|
||||
data['lang']) }}</span>
|
||||
{% else %}
|
||||
<span class="text-danger"><i class="fas fa-ban"></i> {{ translate('dashboard', 'offline',
|
||||
<span class="text-warning"><i class="fas fa-ban"></i> {{ translate('dashboard', 'offline',
|
||||
data['lang']) }}</span>
|
||||
{% end %}
|
||||
</td>
|
||||
@ -412,7 +411,7 @@
|
||||
online_status = `<span class="text-success"><i class="fas fa-signal"></i> {{ translate('dashboard', 'online', data['lang'])}}</span>`;
|
||||
}
|
||||
else {
|
||||
online_status = `<span class="text-danger"><i class="fas fa-ban"></i> {{ translate('dashboard', 'offline', data['lang'])}}</span>`;
|
||||
online_status = `<span class="text-warning"><i class="fas fa-ban"></i> {{ translate('dashboard', 'offline', data['lang'])}}</span>`;
|
||||
}
|
||||
server_online_status.innerHTML = online_status;
|
||||
}
|
||||
@ -494,6 +493,8 @@
|
||||
cpu_usage = document.getElementById('cpu_usage');
|
||||
mem_usage = document.getElementById('mem_usage');
|
||||
mem_percent = document.getElementById('mem_percent');
|
||||
total_players = document.getElementById('total_players');
|
||||
max_players = document.getElementById('max_players');
|
||||
|
||||
webSocket.on('update_host_stats', function (hostStats) {
|
||||
var cpuDataTitle = `{% raw translate('dashboard', 'cpuCores', data['lang']) %}: ${hostStats.cpu_cores} <br /> {% raw translate("dashboard", "cpuCurFreq", data['lang']) %}: ${hostStats.cpu_cur_freq} <br /> {% raw translate("dashboard", "cpuMaxFreq", data['lang']) %}: ${hostStats.cpu_max_freq}`;
|
||||
@ -502,6 +503,10 @@
|
||||
mem_usage.setAttribute('data-original-title', `{% raw translate("dashboard", "memUsage", data['lang']) %}: ${hostStats.mem_usage}`);
|
||||
mem_percent.textContent = hostStats.mem_percent + '%';
|
||||
});
|
||||
webSocket.on('update_player_status', function (playerStats) {
|
||||
total_players.innerHTML = playerStats.total_players;
|
||||
max_players.innerHTML = playerStats.max_players;
|
||||
});
|
||||
}
|
||||
|
||||
if (webSocket) {
|
||||
|
Loading…
Reference in New Issue
Block a user