mc-player-history.php aktualisiert

This commit is contained in:
2026-05-11 06:41:54 +00:00
parent 67f893067e
commit e00deceae1

View File

@@ -214,10 +214,13 @@ function mcph_get_litebans_punishments( $uuid, $username ) {
$bans_table = esc_sql( $prefix . 'bans' );
$mutes_table = esc_sql( $prefix . 'mutes' );
$warns_table = esc_sql( $prefix . 'warnings' );
$kicks_table = esc_sql( $prefix . 'kicks' );
$bans = intval( $lbdb->get_var( $lbdb->prepare( "SELECT COUNT(*) FROM {$bans_table} WHERE uuid = %s", $search_uuid ) ) );
$bans = intval( $lbdb->get_var( $lbdb->prepare( "SELECT COUNT(*) FROM {$bans_table} WHERE uuid = %s", $search_uuid ) ) );
$mutes = intval( $lbdb->get_var( $lbdb->prepare( "SELECT COUNT(*) FROM {$mutes_table} WHERE uuid = %s", $search_uuid ) ) );
$warns = intval( $lbdb->get_var( $lbdb->prepare( "SELECT COUNT(*) FROM {$warns_table} WHERE uuid = %s", $search_uuid ) ) );
// FIX 1: kicks ebenfalls direkt aus LiteBans zählen
$kicks = intval( $lbdb->get_var( $lbdb->prepare( "SELECT COUNT(*) FROM {$kicks_table} WHERE uuid = %s", $search_uuid ) ) );
if ( ! empty( $lbdb->last_error ) ) {
mcph_log( 'LiteBans Query Fehler: ' . $lbdb->last_error );
@@ -229,6 +232,7 @@ function mcph_get_litebans_punishments( $uuid, $username ) {
'bans' => $bans,
'mutes' => $mutes,
'warns' => $warns,
'kicks' => $kicks,
);
return $count_cache[ $cache_key ];
@@ -334,6 +338,7 @@ function mcph_install() {
bans INT NOT NULL DEFAULT 0,
mutes INT NOT NULL DEFAULT 0,
warns INT NOT NULL DEFAULT 0,
kicks INT NOT NULL DEFAULT 0,
PRIMARY KEY (id),
UNIQUE KEY uuid (uuid),
KEY username (username),
@@ -395,6 +400,10 @@ function mcph_add_columns_v130() {
if ( ! $wpdb->get_var( "SHOW COLUMNS FROM $table_name LIKE 'warns'" ) ) {
$wpdb->query( "ALTER TABLE $table_name ADD COLUMN warns INT NOT NULL DEFAULT 0 AFTER mutes" );
}
// FIX 2: kicks Spalte hinzufügen
if ( ! $wpdb->get_var( "SHOW COLUMNS FROM $table_name LIKE 'kicks'" ) ) {
$wpdb->query( "ALTER TABLE $table_name ADD COLUMN kicks INT NOT NULL DEFAULT 0 AFTER warns" );
}
}
/**
@@ -463,6 +472,7 @@ function mcph_sync_from_statusapi() {
$bans = 0;
$mutes = 0;
$warns = 0;
$kicks = 0;
// Primär aus StatusAPI lesen (falls geliefert).
if ( isset( $p->punishments ) && is_object( $p->punishments ) ) {
@@ -471,12 +481,13 @@ function mcph_sync_from_statusapi() {
$warns = isset( $p->punishments->warns ) ? intval( $p->punishments->warns ) : 0;
}
// Falls LiteBans konfiguriert ist, dortige Werte bevorzugen.
// FIX 4: LiteBans bevorzugen (inkl. kicks) — überschreibt StatusAPI-Werte
$litebans_punishments = mcph_get_litebans_punishments( $uuid, $name );
if ( is_array( $litebans_punishments ) ) {
$bans = intval( $litebans_punishments['bans'] ?? 0 );
$bans = intval( $litebans_punishments['bans'] ?? 0 );
$mutes = intval( $litebans_punishments['mutes'] ?? 0 );
$warns = intval( $litebans_punishments['warns'] ?? 0 );
$kicks = intval( $litebans_punishments['kicks'] ?? 0 );
}
if ( empty( $name ) ) continue;
@@ -499,10 +510,11 @@ function mcph_sync_from_statusapi() {
'joins' => $joins,
'bans' => $bans,
'mutes' => $mutes,
'warns' => $warns
'warns' => $warns,
'kicks' => $kicks
);
// FIX BUG-2: kills/deaths im Fallback-UPDATE mitgespeichert
$update_format = array( '%s', '%s', '%d', '%d', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d' );
// FIX BUG-2 + FIX 5: kills/deaths/kicks im Fallback-UPDATE
$update_format = array( '%s', '%s', '%d', '%d', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d' );
if ( ! empty( $prefix ) ) {
$update_data['prefix'] = $prefix;
@@ -536,10 +548,11 @@ function mcph_sync_from_statusapi() {
'joins' => $joins,
'bans' => $bans,
'mutes' => $mutes,
'warns' => $warns
'warns' => $warns,
'kicks' => $kicks
);
// 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' );
// FIX BUG-2 + FIX 5: kills/deaths/kicks werden jetzt in DB gespeichert
$update_format = array( '%s', '%s', '%d', '%d', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d' );
if ( ! empty( $prefix ) ) {
$update_data['prefix'] = $prefix;
@@ -563,8 +576,9 @@ function mcph_sync_from_statusapi() {
'joins' => $joins,
'bans' => $bans,
'mutes' => $mutes,
'warns' => $warns
), array( '%s', '%s', '%s', '%s', '%s', '%d', '%d', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d' ) );
'warns' => $warns,
'kicks' => $kicks
), array( '%s', '%s', '%s', '%s', '%s', '%d', '%d', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d' ) );
}
}
}
@@ -717,6 +731,19 @@ function mcph_ajax_player_profile() {
$kd = ( $player->deaths > 0 ) ? round( $player->kills / $player->deaths, 2 ) : ( $player->kills > 0 ? $player->kills : 0 );
// FIX 6: Bans/Mutes/Warns/Kicks live aus LiteBans holen (immer aktuell)
$bans_val = intval( $player->bans );
$mutes_val = intval( $player->mutes );
$warns_val = intval( $player->warns );
$kicks_val = intval( $player->kicks ?? 0 );
$lb_live = mcph_get_litebans_punishments( $player->uuid, $player->username );
if ( is_array( $lb_live ) ) {
$bans_val = intval( $lb_live['bans'] ?? $bans_val );
$mutes_val = intval( $lb_live['mutes'] ?? $mutes_val );
$warns_val = intval( $lb_live['warns'] ?? $warns_val );
$kicks_val = intval( $lb_live['kicks'] ?? $kicks_val );
}
wp_send_json_success( array(
'uuid' => $player->uuid,
'username' => $player->username,
@@ -731,9 +758,10 @@ function mcph_ajax_player_profile() {
'balance' => $balance_value,
'is_bedrock' => $is_bedrock,
'joins' => intval( $player->joins ),
'bans' => intval( $player->bans ),
'mutes' => intval( $player->mutes ),
'warns' => intval( $player->warns ),
'bans' => $bans_val,
'mutes' => $mutes_val,
'warns' => $warns_val,
'kicks' => $kicks_val,
'forum_banner' => mcph_get_forum_banner( $player->uuid ),
) );
}
@@ -863,6 +891,7 @@ function mcph_default_display_settings() {
'show_bans' => 1,
'show_mutes' => 1,
'show_warns' => 1,
'show_kicks' => 1,
'show_first_seen'=> 1,
'show_last_seen' => 1,
'show_platform' => 1,
@@ -931,6 +960,7 @@ function mcph_options_page() {
'show_bans' => array( 'label' => 'Bans 🚫', 'group' => 'Strafen' ),
'show_mutes' => array( 'label' => 'Mutes 🔇', 'group' => 'Strafen' ),
'show_warns' => array( 'label' => 'Warns ⚠️', 'group' => 'Strafen' ),
'show_kicks' => array( 'label' => 'Kicks 👢', 'group' => 'Strafen' ),
'show_first_seen'=> array( 'label' => 'Zuerst gesehen 📅', 'group' => 'Zeitangaben' ),
'show_last_seen' => array( 'label' => 'Zuletzt online 🕐', 'group' => 'Zeitangaben' ),
);
@@ -1184,6 +1214,7 @@ function mcph_shortcode( $atts ) {
${ds.show_bans !== 0 ? statCard('🚫', 'Bans', p.bans, false) : ''}
${ds.show_mutes !== 0 ? statCard('🔇', 'Mutes', p.mutes, false) : ''}
${ds.show_warns !== 0 ? statCard('⚠️', 'Warns', p.warns, false) : ''}
${ds.show_kicks !== 0 ? statCard('👢', 'Kicks', p.kicks ?? 0, false) : ''}
${ds.show_first_seen!== 0 ? statCard('📅', 'Zuerst gesehen', formatDate(p.first_seen), false) : ''}
${ds.show_last_seen !== 0 ? statCard('🕐', 'Zuletzt online', formatDate(p.last_seen), false) : ''}
</div>