Upload via Git Manager GUI

This commit is contained in:
Git Manager GUI
2026-05-10 15:08:05 +02:00
parent 21164b56c0
commit 67f893067e

View File

@@ -492,6 +492,8 @@ function mcph_sync_from_statusapi() {
'last_seen' => current_time( 'mysql' ), 'last_seen' => current_time( 'mysql' ),
'is_online' => 1, 'is_online' => 1,
'playtime_seconds' => $playtime, 'playtime_seconds' => $playtime,
'kills' => $kills,
'deaths' => $deaths,
'balance' => $balance, 'balance' => $balance,
'is_bedrock' => $is_bedrock, 'is_bedrock' => $is_bedrock,
'joins' => $joins, 'joins' => $joins,
@@ -499,7 +501,8 @@ function mcph_sync_from_statusapi() {
'mutes' => $mutes, 'mutes' => $mutes,
'warns' => $warns 'warns' => $warns
); );
$update_format = array( '%s', '%s', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d' ); // FIX BUG-2: kills/deaths im Fallback-UPDATE mitgespeichert
$update_format = array( '%s', '%s', '%d', '%d', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d' );
if ( ! empty( $prefix ) ) { if ( ! empty( $prefix ) ) {
$update_data['prefix'] = $prefix; $update_data['prefix'] = $prefix;
@@ -512,11 +515,12 @@ function mcph_sync_from_statusapi() {
// Zeitkonvertierung // Zeitkonvertierung
$last_seen_time = isset( $p->last_seen ) ? intval( $p->last_seen ) : time(); $last_seen_time = isset( $p->last_seen ) ? intval( $p->last_seen ) : time();
$last_seen_mysql = date( 'Y-m-d H:i:s', $last_seen_time ); // FIX BUG-3: wp_date() statt date() nutzt WordPress-Timezone (konsistent mit current_time())
$last_seen_mysql = wp_date( 'Y-m-d H:i:s', $last_seen_time );
$first_seen_mysql = current_time('mysql'); $first_seen_mysql = current_time('mysql');
if ( isset( $p->first_seen ) && ! $exists ) { if ( isset( $p->first_seen ) && ! $exists ) {
$first_seen_mysql = date( 'Y-m-d H:i:s', intval( $p->first_seen ) ); $first_seen_mysql = wp_date( 'Y-m-d H:i:s', intval( $p->first_seen ) );
} }
if ( $exists ) { if ( $exists ) {
@@ -525,6 +529,8 @@ function mcph_sync_from_statusapi() {
'last_seen' => $last_seen_mysql, 'last_seen' => $last_seen_mysql,
'is_online' => 1, 'is_online' => 1,
'playtime_seconds' => $playtime, 'playtime_seconds' => $playtime,
'kills' => $kills,
'deaths' => $deaths,
'balance' => $balance, 'balance' => $balance,
'is_bedrock' => $is_bedrock, 'is_bedrock' => $is_bedrock,
'joins' => $joins, 'joins' => $joins,
@@ -532,7 +538,8 @@ function mcph_sync_from_statusapi() {
'mutes' => $mutes, 'mutes' => $mutes,
'warns' => $warns 'warns' => $warns
); );
$update_format = array( '%s', '%s', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d' ); // FIX BUG-2: kills/deaths werden jetzt in DB gespeichert
$update_format = array( '%s', '%s', '%d', '%d', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d' );
if ( ! empty( $prefix ) ) { if ( ! empty( $prefix ) ) {
$update_data['prefix'] = $prefix; $update_data['prefix'] = $prefix;
@@ -540,6 +547,7 @@ function mcph_sync_from_statusapi() {
} }
$wpdb->update( $table_name, $update_data, array( 'uuid' => $uuid ), $update_format, array( '%s' ) ); $wpdb->update( $table_name, $update_data, array( 'uuid' => $uuid ), $update_format, array( '%s' ) );
} else { } else {
// FIX BUG-2: kills/deaths im INSERT mitgespeichert
$wpdb->insert( $table_name, array( $wpdb->insert( $table_name, array(
'uuid' => $uuid, 'uuid' => $uuid,
'username' => $name, 'username' => $name,
@@ -548,13 +556,15 @@ function mcph_sync_from_statusapi() {
'last_seen' => $last_seen_mysql, 'last_seen' => $last_seen_mysql,
'is_online' => 1, 'is_online' => 1,
'playtime_seconds' => $playtime, 'playtime_seconds' => $playtime,
'kills' => $kills,
'deaths' => $deaths,
'balance' => $balance, 'balance' => $balance,
'is_bedrock' => $is_bedrock, 'is_bedrock' => $is_bedrock,
'joins' => $joins, 'joins' => $joins,
'bans' => $bans, 'bans' => $bans,
'mutes' => $mutes, 'mutes' => $mutes,
'warns' => $warns 'warns' => $warns
), array( '%s', '%s', '%s', '%s', '%s', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d' ) ); ), array( '%s', '%s', '%s', '%s', '%s', '%d', '%d', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d' ) );
} }
} }
} }
@@ -681,9 +691,24 @@ function mcph_ajax_player_profile() {
} }
$is_online = isset( $live_uuids[ $player->uuid ] ); $is_online = isset( $live_uuids[ $player->uuid ] );
// Live-Daten bevorzugen, falls verfügbar. // FIX BUG-4: Live-Daten für Online-Spieler bevorzugen (Playtime, Kills, Deaths, Balance).
if ( $matched_live_player ) { if ( $matched_live_player ) {
$is_bedrock = (bool) mcph_detect_bedrock_player( $matched_live_player, $player->uuid, $player->username ); $is_bedrock = (bool) mcph_detect_bedrock_player( $matched_live_player, $player->uuid, $player->username );
// Live-Playtime: enthält laufende Session, immer aktueller als DB-Wert
if ( isset( $matched_live_player->playtime ) ) {
$live_playtime = intval( $matched_live_player->playtime );
if ( $live_playtime >= intval( $player->playtime_seconds ) ) {
$player->playtime_seconds = $live_playtime;
}
}
// Live-Kills/Deaths
if ( isset( $matched_live_player->kills ) ) {
$player->kills = intval( $matched_live_player->kills );
}
if ( isset( $matched_live_player->deaths ) ) {
$player->deaths = intval( $matched_live_player->deaths );
}
// Live-Balance
if ( isset( $matched_live_player->economy ) && is_object( $matched_live_player->economy ) && isset( $matched_live_player->economy->balance ) ) { if ( isset( $matched_live_player->economy ) && is_object( $matched_live_player->economy ) && isset( $matched_live_player->economy->balance ) ) {
$balance_value = floatval( $matched_live_player->economy->balance ); $balance_value = floatval( $matched_live_player->economy->balance );
} }