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' );
|
$bans_table = esc_sql( $prefix . 'bans' );
|
||||||
$mutes_table = esc_sql( $prefix . 'mutes' );
|
$mutes_table = esc_sql( $prefix . 'mutes' );
|
||||||
$warns_table = esc_sql( $prefix . 'warnings' );
|
$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 ) ) );
|
$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 ) ) );
|
$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 ) ) {
|
if ( ! empty( $lbdb->last_error ) ) {
|
||||||
mcph_log( 'LiteBans Query Fehler: ' . $lbdb->last_error );
|
mcph_log( 'LiteBans Query Fehler: ' . $lbdb->last_error );
|
||||||
@@ -229,6 +232,7 @@ function mcph_get_litebans_punishments( $uuid, $username ) {
|
|||||||
'bans' => $bans,
|
'bans' => $bans,
|
||||||
'mutes' => $mutes,
|
'mutes' => $mutes,
|
||||||
'warns' => $warns,
|
'warns' => $warns,
|
||||||
|
'kicks' => $kicks,
|
||||||
);
|
);
|
||||||
|
|
||||||
return $count_cache[ $cache_key ];
|
return $count_cache[ $cache_key ];
|
||||||
@@ -334,6 +338,7 @@ function mcph_install() {
|
|||||||
bans INT NOT NULL DEFAULT 0,
|
bans INT NOT NULL DEFAULT 0,
|
||||||
mutes INT NOT NULL DEFAULT 0,
|
mutes INT NOT NULL DEFAULT 0,
|
||||||
warns INT NOT NULL DEFAULT 0,
|
warns INT NOT NULL DEFAULT 0,
|
||||||
|
kicks INT NOT NULL DEFAULT 0,
|
||||||
PRIMARY KEY (id),
|
PRIMARY KEY (id),
|
||||||
UNIQUE KEY uuid (uuid),
|
UNIQUE KEY uuid (uuid),
|
||||||
KEY username (username),
|
KEY username (username),
|
||||||
@@ -395,6 +400,10 @@ function mcph_add_columns_v130() {
|
|||||||
if ( ! $wpdb->get_var( "SHOW COLUMNS FROM $table_name LIKE 'warns'" ) ) {
|
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" );
|
$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;
|
$bans = 0;
|
||||||
$mutes = 0;
|
$mutes = 0;
|
||||||
$warns = 0;
|
$warns = 0;
|
||||||
|
$kicks = 0;
|
||||||
|
|
||||||
// Primär aus StatusAPI lesen (falls geliefert).
|
// Primär aus StatusAPI lesen (falls geliefert).
|
||||||
if ( isset( $p->punishments ) && is_object( $p->punishments ) ) {
|
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;
|
$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 );
|
$litebans_punishments = mcph_get_litebans_punishments( $uuid, $name );
|
||||||
if ( is_array( $litebans_punishments ) ) {
|
if ( is_array( $litebans_punishments ) ) {
|
||||||
$bans = intval( $litebans_punishments['bans'] ?? 0 );
|
$bans = intval( $litebans_punishments['bans'] ?? 0 );
|
||||||
$mutes = intval( $litebans_punishments['mutes'] ?? 0 );
|
$mutes = intval( $litebans_punishments['mutes'] ?? 0 );
|
||||||
$warns = intval( $litebans_punishments['warns'] ?? 0 );
|
$warns = intval( $litebans_punishments['warns'] ?? 0 );
|
||||||
|
$kicks = intval( $litebans_punishments['kicks'] ?? 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( empty( $name ) ) continue;
|
if ( empty( $name ) ) continue;
|
||||||
@@ -499,10 +510,11 @@ function mcph_sync_from_statusapi() {
|
|||||||
'joins' => $joins,
|
'joins' => $joins,
|
||||||
'bans' => $bans,
|
'bans' => $bans,
|
||||||
'mutes' => $mutes,
|
'mutes' => $mutes,
|
||||||
'warns' => $warns
|
'warns' => $warns,
|
||||||
|
'kicks' => $kicks
|
||||||
);
|
);
|
||||||
// FIX BUG-2: kills/deaths im Fallback-UPDATE mitgespeichert
|
// 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' );
|
$update_format = array( '%s', '%s', '%d', '%d', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d' );
|
||||||
|
|
||||||
if ( ! empty( $prefix ) ) {
|
if ( ! empty( $prefix ) ) {
|
||||||
$update_data['prefix'] = $prefix;
|
$update_data['prefix'] = $prefix;
|
||||||
@@ -536,10 +548,11 @@ function mcph_sync_from_statusapi() {
|
|||||||
'joins' => $joins,
|
'joins' => $joins,
|
||||||
'bans' => $bans,
|
'bans' => $bans,
|
||||||
'mutes' => $mutes,
|
'mutes' => $mutes,
|
||||||
'warns' => $warns
|
'warns' => $warns,
|
||||||
|
'kicks' => $kicks
|
||||||
);
|
);
|
||||||
// FIX BUG-2: kills/deaths werden jetzt in DB gespeichert
|
// 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' );
|
$update_format = array( '%s', '%s', '%d', '%d', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d' );
|
||||||
|
|
||||||
if ( ! empty( $prefix ) ) {
|
if ( ! empty( $prefix ) ) {
|
||||||
$update_data['prefix'] = $prefix;
|
$update_data['prefix'] = $prefix;
|
||||||
@@ -563,8 +576,9 @@ function mcph_sync_from_statusapi() {
|
|||||||
'joins' => $joins,
|
'joins' => $joins,
|
||||||
'bans' => $bans,
|
'bans' => $bans,
|
||||||
'mutes' => $mutes,
|
'mutes' => $mutes,
|
||||||
'warns' => $warns
|
'warns' => $warns,
|
||||||
), array( '%s', '%s', '%s', '%s', '%s', '%d', '%d', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d' ) );
|
'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 );
|
$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(
|
wp_send_json_success( array(
|
||||||
'uuid' => $player->uuid,
|
'uuid' => $player->uuid,
|
||||||
'username' => $player->username,
|
'username' => $player->username,
|
||||||
@@ -731,9 +758,10 @@ function mcph_ajax_player_profile() {
|
|||||||
'balance' => $balance_value,
|
'balance' => $balance_value,
|
||||||
'is_bedrock' => $is_bedrock,
|
'is_bedrock' => $is_bedrock,
|
||||||
'joins' => intval( $player->joins ),
|
'joins' => intval( $player->joins ),
|
||||||
'bans' => intval( $player->bans ),
|
'bans' => $bans_val,
|
||||||
'mutes' => intval( $player->mutes ),
|
'mutes' => $mutes_val,
|
||||||
'warns' => intval( $player->warns ),
|
'warns' => $warns_val,
|
||||||
|
'kicks' => $kicks_val,
|
||||||
'forum_banner' => mcph_get_forum_banner( $player->uuid ),
|
'forum_banner' => mcph_get_forum_banner( $player->uuid ),
|
||||||
) );
|
) );
|
||||||
}
|
}
|
||||||
@@ -863,6 +891,7 @@ function mcph_default_display_settings() {
|
|||||||
'show_bans' => 1,
|
'show_bans' => 1,
|
||||||
'show_mutes' => 1,
|
'show_mutes' => 1,
|
||||||
'show_warns' => 1,
|
'show_warns' => 1,
|
||||||
|
'show_kicks' => 1,
|
||||||
'show_first_seen'=> 1,
|
'show_first_seen'=> 1,
|
||||||
'show_last_seen' => 1,
|
'show_last_seen' => 1,
|
||||||
'show_platform' => 1,
|
'show_platform' => 1,
|
||||||
@@ -931,6 +960,7 @@ function mcph_options_page() {
|
|||||||
'show_bans' => array( 'label' => 'Bans 🚫', 'group' => 'Strafen' ),
|
'show_bans' => array( 'label' => 'Bans 🚫', 'group' => 'Strafen' ),
|
||||||
'show_mutes' => array( 'label' => 'Mutes 🔇', 'group' => 'Strafen' ),
|
'show_mutes' => array( 'label' => 'Mutes 🔇', 'group' => 'Strafen' ),
|
||||||
'show_warns' => array( 'label' => 'Warns ⚠️', '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_first_seen'=> array( 'label' => 'Zuerst gesehen 📅', 'group' => 'Zeitangaben' ),
|
||||||
'show_last_seen' => array( 'label' => 'Zuletzt online 🕐', '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_bans !== 0 ? statCard('🚫', 'Bans', p.bans, false) : ''}
|
||||||
${ds.show_mutes !== 0 ? statCard('🔇', 'Mutes', p.mutes, false) : ''}
|
${ds.show_mutes !== 0 ? statCard('🔇', 'Mutes', p.mutes, false) : ''}
|
||||||
${ds.show_warns !== 0 ? statCard('⚠️', 'Warns', p.warns, 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_first_seen!== 0 ? statCard('📅', 'Zuerst gesehen', formatDate(p.first_seen), false) : ''}
|
||||||
${ds.show_last_seen !== 0 ? statCard('🕐', 'Zuletzt online', formatDate(p.last_seen), false) : ''}
|
${ds.show_last_seen !== 0 ? statCard('🕐', 'Zuletzt online', formatDate(p.last_seen), false) : ''}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user