mc-player-history.php aktualisiert
This commit is contained in:
@@ -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 ) ) );
|
||||
$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 );
|
||||
$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>
|
||||
|
||||
Reference in New Issue
Block a user