Add gamerule per dimension
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
# Lobby Systems v1.3.3 — Fabric 26.2
|
||||
# Lobby Systems v1.4.0 — Fabric 26.2
|
||||
|
||||
Server-side lobby routing untuk Minecraft 26.2/Fabric. Versi 1.3.0 menambahkan viewer gamerule per-dimension dengan pagination dan pengelolaan gamemode player berdasarkan dimension, sambil mempertahankan portal antar-dimensi, last-position, minimum playtime, dan konfigurasi terpusat di `config/lobby/`.
|
||||
Server-side lobby routing untuk Minecraft 26.2/Fabric. v1.4.0 menambahkan **native persistent per-dimension gamerules** milik Lobby Systems, tetap mempertahankan portal antar-dimensi, last-position, minimum playtime, gamerule viewer ber-pagination, serta per-dimension player gamemode.
|
||||
|
||||
**v1.3.3 bugfix:** viewer gamerule sekarang membaca nilai gamerule Minecraft 26.x secara aman per-rule, melewati rule yang tidak aktif/tidak tersedia untuk feature set dimension, dan tidak lagi menggagalkan seluruh command ketika satu rule bermasalah. Versi ini juga mengganti lisensi project menjadi proprietary **All Rights Reserved** dengan penggunaan hanya berdasarkan izin tertulis dari DartoKloning.
|
||||
**v1.4.0 feature release:** gamerule tidak lagi bergantung pada WorldGameRules. Lobby Systems membuat instance `GameRules` terpisah untuk setiap `ServerLevel`, menyimpan override ke `config/lobby/dimension-gamerules.json`, lalu menerapkannya kembali saat world load, server start, dan `/ls reload`. WorldGameRules harus dihapus karena kedua mod mengubah mekanisme gamerule per-world.
|
||||
|
||||
### Reload feedback
|
||||
|
||||
@@ -40,7 +40,7 @@ chmod +x compile.sh release.sh
|
||||
```text
|
||||
============================================
|
||||
Lobby Systems - Fabric 26.2 Build
|
||||
Version: 1.3.3
|
||||
Version: 1.4.0
|
||||
Namespace: id.dartokloning.lobbysystems
|
||||
Mod ID: dartokloning
|
||||
============================================
|
||||
@@ -49,7 +49,7 @@ chmod +x compile.sh release.sh
|
||||
Output utama:
|
||||
|
||||
```text
|
||||
build/libs/lobby-systems-1.3.3.jar
|
||||
build/libs/lobby-systems-1.4.0.jar
|
||||
```
|
||||
|
||||
`*-sources.jar` hanya source archive dan tidak perlu dipasang ke server.
|
||||
@@ -80,14 +80,14 @@ State penting Lobby Systems memakai separator agar mudah terlihat di server cons
|
||||
```text
|
||||
============================================
|
||||
Lobby Systems - READY
|
||||
Version: 1.3.3
|
||||
Version: 1.4.0
|
||||
Minecraft: 26.2
|
||||
Config directory: config/lobby
|
||||
WorldEdit: available
|
||||
============================================
|
||||
```
|
||||
|
||||
## Struktur konfigurasi v1.3.3
|
||||
## Struktur konfigurasi v1.4.0
|
||||
|
||||
```text
|
||||
config/
|
||||
@@ -95,7 +95,8 @@ config/
|
||||
├── config.json
|
||||
├── player-positions.json
|
||||
├── portals.json
|
||||
└── dimension-gamemodes.json
|
||||
├── dimension-gamemodes.json
|
||||
└── dimension-gamerules.json
|
||||
```
|
||||
|
||||
### `config/lobby/config.json`
|
||||
@@ -157,7 +158,7 @@ Portal adalah region/cuboid, bukan harus Nether Portal asli. Anda bebas membuat
|
||||
|
||||
### `config/lobby/dimension-gamemodes.json`
|
||||
|
||||
Minecraft menyimpan gamemode pada player, bukan pada dimension. Lobby Systems v1.3.3 menambahkan mapping dimension → gamemode dan menerapkannya ketika player masuk ke dimension tersebut. File ini dibuat otomatis dan dapat dikelola lewat command admin.
|
||||
Minecraft menyimpan gamemode pada player, bukan pada dimension. Lobby Systems v1.4.0 menambahkan mapping dimension → gamemode dan menerapkannya ketika player masuk ke dimension tersebut. File ini dibuat otomatis dan dapat dikelola lewat command admin.
|
||||
|
||||
Contoh:
|
||||
|
||||
@@ -173,7 +174,7 @@ Gamemode yang didukung: `survival`, `creative`, `adventure`, dan `spectator`.
|
||||
|
||||
## Migrasi dari v1.1.x
|
||||
|
||||
Pada startup pertama v1.3.3:
|
||||
Pada startup pertama v1.4.0:
|
||||
|
||||
```text
|
||||
config/lobby-systems.json
|
||||
@@ -197,7 +198,7 @@ akan dimigrasikan ke:
|
||||
config/lobby/player-positions.json
|
||||
```
|
||||
|
||||
Nama file lama hanya digunakan oleh `LegacyConfigMigrator` untuk proses migrasi. Runtime v1.3.3 membaca dan menulis file baru di `config/lobby/`.
|
||||
Nama file lama hanya digunakan oleh `LegacyConfigMigrator` untuk proses migrasi. Runtime v1.4.0 membaca dan menulis file baru di `config/lobby/`.
|
||||
|
||||
Jika file tujuan baru sudah ada, migrator tidak menimpanya.
|
||||
|
||||
@@ -220,6 +221,8 @@ Jika file tujuan baru sudah ada, migrator tidak menimpanya.
|
||||
|
||||
/ls gamerule <dimension>
|
||||
/ls gamerule <dimension> --page <page>
|
||||
/ls gamerule set <dimension> <rule> <value>
|
||||
/ls gamerule reset <dimension> <rule>
|
||||
|
||||
/ls gamemode <dimension>
|
||||
/ls gamemode list
|
||||
@@ -236,9 +239,27 @@ Jika file tujuan baru sudah ada, migrator tidak menimpanya.
|
||||
`/ls tp` tetap command maintenance/admin. Player biasa tidak memerlukannya karena flow normal menggunakan portal.
|
||||
|
||||
|
||||
### Gamerule viewer per dimension
|
||||
### Gamerule per dimension
|
||||
|
||||
`/ls gamerule <dimension>` menampilkan gamerule aktual dari dimension yang sedang ter-load. Viewer ini bersifat read-only dan cocok dipakai bersama WorldGameRules. Hasil ditampilkan 10 rule per halaman.
|
||||
`/ls gamerule <dimension>` menampilkan gamerule aktual dari dimension yang sedang ter-load. Hasil ditampilkan 10 rule per halaman dan dipisahkan separator agar lebih mudah dibaca di chat.
|
||||
|
||||
Untuk perubahan yang harus **persist setelah restart**, gunakan `/ls gamerule set ...`. Perintah vanilla `/gamerule` dapat mengubah nilai runtime yang terlihat pada dimension aktif, tetapi perubahan tersebut tidak ditulis ke `dimension-gamerules.json`, sehingga bukan source of truth Lobby Systems.
|
||||
|
||||
> **Catatan Minecraft 26.2:** mayoritas gamerule gameplay server-side dapat diisolasi melalui `ServerLevel#getGameRules()`. Rule yang berhubungan dengan clock/weather seperti `minecraft:advance_time` dan `minecraft:advance_weather` memiliki mekanisme sinkronisasi tambahan di 26.x; uji keduanya secara khusus sebelum mengandalkannya untuk world yang membutuhkan waktu/cuaca benar-benar independen.
|
||||
|
||||
Gunakan command berikut untuk membuat override persistent:
|
||||
|
||||
```text
|
||||
/ls gamerule set minecraft:lobby minecraft:spawn_mobs false
|
||||
/ls gamerule set minecraft:lobby minecraft:mob_griefing false
|
||||
/ls gamerule set minecraft:lobby minecraft:keep_inventory true
|
||||
```
|
||||
|
||||
Untuk menghapus override dan mengembalikan rule ke default Minecraft:
|
||||
|
||||
```text
|
||||
/ls gamerule reset minecraft:lobby minecraft:spawn_mobs
|
||||
```
|
||||
|
||||
Contoh:
|
||||
|
||||
@@ -268,6 +289,7 @@ Reload live:
|
||||
- `config/lobby/config.json`
|
||||
- `config/lobby/portals.json`
|
||||
- `config/lobby/dimension-gamemodes.json`
|
||||
- `config/lobby/dimension-gamerules.json`
|
||||
- lobby exclusion pada player-position store
|
||||
|
||||
Tidak perlu restart untuk perubahan JSON tersebut.
|
||||
|
||||
Reference in New Issue
Block a user