2026-09-06 13:43:16 +07:00
2026-09-06 13:43:16 +07:00
2026-09-06 13:43:16 +07:00
2026-09-06 13:43:16 +07:00
2026-09-06 13:43:16 +07:00
2026-09-06 13:43:16 +07:00
2026-09-06 13:43:16 +07:00
2026-09-06 13:43:16 +07:00
2026-09-06 13:43:16 +07:00

Lobby Systems - Fabric 26.2

Server-side lobby router untuk Minecraft Java 26.2 / Fabric.

Identity

  • Mod ID: dartokloning
  • Java package: id.dartokloning.lobbysystems
  • Maven group: id.dartokloning
  • Mod name: Lobby Systems

Requirements

  • JDK / Java 25 atau lebih baru
  • Minecraft 26.2
  • Fabric Loader 0.19.3+
  • Fabric API 0.156.0+26.2
  • Internet pada build pertama untuk mengunduh Gradle dan dependency Fabric/Minecraft
  • Optional: World Manager 1.4.4+26.2 hanya untuk membuat/mengelola world; Lobby Systems tidak memiliki hard dependency ke World Manager

Compile di Windows

Cara termudah: double-click compile.bat.

Script tersebut memanggil compile.ps1, mengecek Java 25+, mengunduh Gradle 9.5.1 secara lokal ke .gradle-local bila diperlukan, lalu menjalankan:

clean build

Alternatif PowerShell:

powershell -ExecutionPolicy Bypass -File .\compile.ps1

JAR hasil build berada di:

build\libs\

Folder .gradle-local hanya cache Gradle lokal project dan boleh dihapus kapan saja.

Compile manual

Jika Gradle sudah terpasang:

gradle clean build

Configuration

Jalankan server sekali. Edit:

config/lobby-systems.json

Contoh:

{
  "lobbyDimension": "minecraft:overworld",
  "lobbyX": 0.5,
  "lobbyY": 100.0,
  "lobbyZ": 0.5,
  "lobbyYaw": 0.0,
  "lobbyPitch": 0.0,
  "minimumPlaySeconds": 300,
  "inLobbyMessage": "§eKamu sudah berada di lobby.",
  "returnedMessage": "§aKamu telah kembali ke lobby.",
  "waitMessage": "§cKamu belum bisa kembali ke lobby. Tunggu §e{time}§c lagi."
}

Set lobbyDimension ke identifier dimensi/world yang dibuat oleh World Manager.

Behavior

  1. Setiap login diarahkan ke dimensi dan koordinat lobby yang dikonfigurasi.
  2. Saat player keluar lobby dan masuk dimensi lain, timer sesi game baru dimulai.
  3. /lobby saat sudah berada di lobby hanya memberi informasi bahwa player sedang di lobby.
  4. /lobby di luar lobby diblokir sampai minimumPlaySeconds berlalu dan menampilkan countdown.
  5. Setelah timer selesai, /lobby mengembalikan player ke lobby.
  6. Pindah dari satu dimensi non-lobby ke dimensi game lain memulai timer baru untuk dimensi tersebut.
  7. Reconnect selalu mengembalikan player ke lobby dan membersihkan timer sesi sebelumnya.

World Manager integration

Lobby Systems tidak menggunakan internal API World Manager. World Manager cukup membuat/load custom world, kemudian ID dimensinya dimasukkan ke lobby-systems.json. Dengan desain ini, portal mod/command lain juga tetap bisa digunakan.

Admin command (v1.1.3)

Requires Minecraft admin/OP command permission.

  • /ls reload — reloads config/lobby-systems.json live without restarting the server.
  • /ls tp <dimension> — teleports the executing player to a loaded dimension. The <dimension> argument autocompletes from the server's currently loaded dimension keys.

Last-position behavior

Lobby Systems stores each player's last coordinates and rotation per dimension in:

config/lobby-systems-positions.json

When /ls tp <dimension> is used, the player returns to their last recorded position in that dimension. If the player has never visited that dimension before, the command falls back to the dimension's configured respawn/spawn position.

Positions are captured for non-lobby dimensions when players change dimensions, use /ls tp, use /lobby, disconnect, and are periodically flushed to disk. The configured lobby dimension is deliberately excluded: every teleport/login to the lobby always uses lobbyX/Y/Z/Yaw/Pitch from lobby-systems.json. Existing saved lobby-position entries are removed automatically on startup/reload.

v1.1.3 stability changes

  • Cross-dimension teleports now use Minecraft's TeleportTransition path instead of calling teleportTo(...) directly.
  • Destination chunk is loaded before the transition is sent.
  • Login-to-lobby is delayed 20 server ticks so the client has time to finish entering play state.
  • A 40-tick per-player teleport lock prevents overlapping dimension transitions.
  • Lobby position persistence is enforced inside PositionManager, not only at call sites. The configured lobby dimension is purged on startup/reload and filtered again before every save, so it cannot be written to lobby-systems-positions.json.
S
Description
No description provided
Readme
442 KiB
2026-10-04 00:05:09 +07:00
Languages
Java 85.5%
Batchfile 7.5%
Shell 7%