diff --git a/README.md b/README.md index 58fe431..8faf2ed 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,11 @@ -# Lobby Systems v1.2.0 — Fabric 26.2 +# Lobby Systems v1.2.2 — Fabric 26.2 + +Server-side lobby routing untuk Minecraft 26.2/Fabric. Versi 1.2.2 menambahkan portal antar-dimensi berbasis WorldEdit selection, last-position per player/per dimension, minimum playtime sebelum kembali ke lobby, dan konfigurasi terpusat di `config/lobby/`. + +### Reload feedback v1.2.2 + +`/ls reload` menulis banner `RELOAD START` dan `RELOAD COMPLETE` hanya ke console server. Ringkasan reload satu baris dikirim langsung hanya ke player admin/operator yang menjalankan command; ringkasan tersebut tidak dibroadcast ke player lain dan tidak dikirim melalui command feedback ke console. -Server-side lobby routing untuk Minecraft 26.2/Fabric. Versi 1.2.0 menambahkan portal antar-dimensi berbasis WorldEdit selection, last-position per player/per dimension, minimum playtime sebelum kembali ke lobby, dan konfigurasi terpusat di `config/lobby/`. ## Target build @@ -33,7 +38,7 @@ chmod +x compile.sh release.sh ```text ============================================ Lobby Systems - Fabric 26.2 Build - Version: 1.2.0 + Version: 1.2.2 Namespace: id.dartokloning.lobbysystems Mod ID: dartokloning ============================================ @@ -42,7 +47,7 @@ chmod +x compile.sh release.sh Output utama: ```text -build/libs/lobby-systems-1.2.0.jar +build/libs/lobby-systems-1.2.2.jar ``` `*-sources.jar` hanya source archive dan tidak perlu dipasang ke server. @@ -73,14 +78,14 @@ State penting Lobby Systems memakai separator agar mudah terlihat di server cons ```text ============================================ Lobby Systems - READY - Version: 1.2.0 + Version: 1.2.2 Minecraft: 26.2 Config directory: config/lobby WorldEdit: available ============================================ ``` -## Struktur konfigurasi v1.2.0 +## Struktur konfigurasi v1.2.2 ```text config/ @@ -148,7 +153,7 @@ Portal adalah region/cuboid, bukan harus Nether Portal asli. Anda bebas membuat ## Migrasi dari v1.1.x -Pada startup pertama v1.2.0: +Pada startup pertama v1.2.2: ```text config/lobby-systems.json @@ -172,7 +177,7 @@ akan dimigrasikan ke: config/lobby/player-positions.json ``` -Nama file lama hanya digunakan oleh `LegacyConfigMigrator` untuk proses migrasi. Runtime v1.2.0 membaca dan menulis file baru di `config/lobby/`. +Nama file lama hanya digunakan oleh `LegacyConfigMigrator` untuk proses migrasi. Runtime v1.2.2 membaca dan menulis file baru di `config/lobby/`. Jika file tujuan baru sudah ada, migrator tidak menimpanya. diff --git a/gradle.properties b/gradle.properties index d3a12f0..d1192b1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,6 +5,6 @@ minecraft_version=26.2 loader_version=0.19.3 loom_version=1.17-SNAPSHOT fabric_api_version=0.156.0+26.2 -mod_version=1.2.1 +mod_version=1.2.2 maven_group=id.dartokloning archives_base_name=lobby-systems diff --git a/src/main/java/id/dartokloning/lobbysystems/LegacyConfigMigrator.java b/src/main/java/id/dartokloning/lobbysystems/LegacyConfigMigrator.java index d5afbb9..a560a60 100644 --- a/src/main/java/id/dartokloning/lobbysystems/LegacyConfigMigrator.java +++ b/src/main/java/id/dartokloning/lobbysystems/LegacyConfigMigrator.java @@ -8,7 +8,7 @@ import java.nio.file.StandardCopyOption; /** * Satu-satunya tempat yang mengetahui nama file konfigurasi versi lama. - * Runtime v1.2.0 hanya membaca/menulis file di config/lobby/. + * Runtime saat ini hanya membaca/menulis file di config/lobby/. */ public final class LegacyConfigMigrator { private LegacyConfigMigrator() {} diff --git a/src/main/java/id/dartokloning/lobbysystems/LobbySystemsMod.java b/src/main/java/id/dartokloning/lobbysystems/LobbySystemsMod.java index 0dbe4c0..21fdfe6 100644 --- a/src/main/java/id/dartokloning/lobbysystems/LobbySystemsMod.java +++ b/src/main/java/id/dartokloning/lobbysystems/LobbySystemsMod.java @@ -226,10 +226,12 @@ public final class LobbySystemsMod implements ModInitializer { return 0; } - source.sendSuccess(() -> Component.literal( - "§aLobby Systems direload. §7Lobby: §f" + CONFIG.get().lobbyDimension - + " §7| Minimum play: §f" + CONFIG.get().minimumPlaySeconds + "s" - + " §7| Portals: §f" + PORTALS.size()), false); + if (source.getEntity() instanceof ServerPlayer player) { + player.sendSystemMessage(Component.literal( + "§aLobby Systems direload. §7Lobby: §f" + CONFIG.get().lobbyDimension + + " §7| Minimum play: §f" + CONFIG.get().minimumPlaySeconds + "s" + + " §7| Portals: §f" + PORTALS.size())); + } LobbyLog.state( "RELOAD COMPLETE", "Lobby: " + CONFIG.get().lobbyDimension,