2 Commits
2.5.8 ... main

Author SHA1 Message Date
Git Manager GUI
9f18a9a719 Upload folder via GUI - includes 2026-05-11 09:34:18 +02:00
Git Manager GUI
8e979a541e Upload via Git Manager GUI 2026-05-11 09:34:14 +02:00
3 changed files with 1049 additions and 974 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -295,8 +295,14 @@ class MC_Gallery_Forum_Bridge {
wp_send_json_error( 'Dieser Minecraft-Name ist bereits mit einem anderen Forum-Konto verknüpft.' );
}
// Server-ID auflösen und als Integer-Post-ID speichern
$resolved_server = self::resolve_server_id( $server );
if ( ! $resolved_server && ! empty( $server ) ) {
// Fallback: rohen Wert speichern wenn Auflösung fehlschlägt
$resolved_server = $server;
}
self::set_mc_username( $user->id, $mc_user );
self::set_mc_server( $user->id, $server );
self::set_mc_server( $user->id, $resolved_server );
// Verifizierung: automatisch wenn gültiger Ingame-Token vorliegt
$auto_verified = self::check_active_token_for( $mc_user );
self::set_verified( $user->id, $auto_verified );
@@ -376,19 +382,31 @@ class MC_Gallery_Forum_Bridge {
] );
}
$server_id = self::get_mc_server( $forum_user->id )
?: sanitize_text_field( $_POST['server_id'] ?? '' );
// Server-ID aus Profil laden und als gültige Post-ID auflösen
$raw_server = self::get_mc_server( $forum_user->id )
?: sanitize_text_field( $_POST['server_id'] ?? '' );
$server_id = self::resolve_server_id( $raw_server );
if ( empty( $server_id ) ) {
// Kein Server gefunden: ersten verfügbaren nehmen
if ( ! $server_id ) {
$servers = self::get_server_list();
if ( ! empty( $servers ) ) {
$first = array_key_first( $servers );
if ( $first !== null ) {
$server_id = (string) $first;
$server_id = (int) $first;
// Für diesen User speichern damit es beim nächsten Mal direkt klappt
self::set_mc_server( $forum_user->id, $server_id );
}
}
}
if ( ! $server_id ) {
wp_send_json_error( [
'code' => 'no_server',
'message' => 'Kein Server gefunden. Bitte einen Admin kontaktieren.',
] );
}
wp_send_json_success( [
'mc_username' => $mc_user,
'server_id' => $server_id,
@@ -762,10 +780,50 @@ class MC_Gallery_Forum_Bridge {
return false;
}
// Server-Liste aus Gallery-Config laden
// Server-Liste aus mc_server Custom Post Type laden (Post-ID => Titel)
private static function get_server_list() {
$servers = get_option( 'mc_gallery_servers', [] );
if ( ! empty( $servers ) && is_array( $servers ) ) return $servers;
return [ 'default' => 'Standard-Server' ];
$posts = get_posts( [
'post_type' => 'mc_server',
'posts_per_page' => -1,
'post_status' => 'publish',
'meta_key' => 'mc_server_active',
'meta_value' => 1,
] );
$out = [];
foreach ( $posts as $p ) {
$out[ $p->ID ] = $p->post_title;
}
if ( ! empty( $out ) ) return $out;
// Fallback: alle mc_server Posts ohne Aktiv-Filter
$posts = get_posts( [ 'post_type' => 'mc_server', 'posts_per_page' => -1, 'post_status' => 'publish' ] );
foreach ( $posts as $p ) {
$out[ $p->ID ] = $p->post_title;
}
return ! empty( $out ) ? $out : [];
}
// Löst einen Server-String (Slug oder ID) zu einer gültigen Post-ID auf
private static function resolve_server_id( $raw_server_id ) {
if ( empty( $raw_server_id ) ) return 0;
// Bereits eine gültige Post-ID?
if ( is_numeric( $raw_server_id ) && get_post_type( (int) $raw_server_id ) === 'mc_server' ) {
return (int) $raw_server_id;
}
// Slug-Lookup
$post = get_page_by_path( $raw_server_id, OBJECT, 'mc_server' );
if ( $post ) return $post->ID;
// Titel-Lookup (case-insensitive)
global $wpdb;
$id = (int) $wpdb->get_var( $wpdb->prepare(
"SELECT ID FROM {$wpdb->posts}
WHERE post_type = 'mc_server' AND post_status = 'publish'
AND LOWER(post_title) = LOWER(%s)
LIMIT 1",
(string) $raw_server_id
) );
return $id ?: 0;
}
}

View File

@@ -3,7 +3,7 @@
Plugin Name: MC MultiServer Gallery PRO
Plugin URI:https://git.viper.ipv64.net/M_Viper/Wordpress-MC-Gallery
Description: Professionelle Minecraft-Galerie mit Ingame-Verification, modernem UI, Lightbox und AJAX-Upload (multi-server fähig).
Version: 2.5.7
Version: 2.5.8
Author: M_Viper
Author URI: https://m-viper.de
Requires at least: 6.8
@@ -137,7 +137,7 @@ if (version_compare(PHP_VERSION, '7.0', '<')) {
if (defined('MCGALLERY_PRO_VERSION')) { return; }
define('MCGALLERY_PRO_VERSION', '2.5.4');
define('MCGALLERY_PRO_VERSION', '2.5.8');
define('MCGALLERY_PRO_DIR', plugin_dir_path(__FILE__));
define('MCGALLERY_PRO_URL', plugin_dir_url(__FILE__));
define('MCGALLERY_TOKEN_TTL', 300);