# BHomes A simple home-management plugin for Paper servers, forked from [SiDaHomes](https://github.com/SiDaStuff/sidahomes). BHomes provides persistent SQLite storage, configurable limits, teleport cooldown/delay handling, optional LuckPerms-based group limits, and a full TPA system with blocked player management. ## About BHomes is designed for servers that want reliable player homes without unnecessary complexity. It supports modern Paper command registration, synchronous data operations (Folia-compatible), and configurable limits. ## Requirements - Server: Paper 1.21+ - Java: 21 - Optional: LuckPerms (for group-based home limits) ## Installation 1. Build or download the plugin JAR. 2. Place the JAR in your server `plugins/` folder. 3. Start or restart the server. 4. Edit `plugins/BHomes/config.yml` as needed. 5. Use `/bhomesreload` after config changes. ## Commands ### Player | Command | Description | |---|---| | `/sethome ` | Set a home at your current location | | `/home` | List your homes | | `/home ` | Teleport to one of your homes | | `/delhome ` | Delete one of your homes | | `/tpa ` | Request to teleport to a player | | `/tpahere ` | Request a player to teleport to you | | `/tpablock ` | Toggle blocking TPA requests from a player | | `/tpaaccept [player]` | Accept a pending TPA request | | `/tpaccept [player]` | Alias for `/tpaaccept` | | `/tpadeny [player]` | Deny a pending TPA request | ### Admin | Command | Description | |---|---| | `/homeadmin list ` | List a player's homes | | `/homeadmin delete ` | Delete a player's home | | `/homeadmin teleport ` | Teleport to a player's home | | `/homeadmin export` | Export homes data to CSV | | `/homeadmin import` | Import homes data from CSV | | `/bhomesreload` | Reload plugin configuration | ## Permissions | Permission | Default | Description | |---|---|---| | `bhomes.sethome` | `true` | Set homes | | `bhomes.home` | `true` | Use `/home` | | `bhomes.delhome` | `true` | Delete own homes | | `bhomes.tpa` | `true` | Use TPA commands | | `bhomes.bypass.cooldown` | `op` | Bypass teleport cooldown | | `bhomes.bypass.delay` | `op` | Bypass teleport delay | | `bhomes.admin.list` | `op` | List player homes | | `bhomes.admin.delete` | `op` | Delete any player's home | | `bhomes.admin.teleport` | `op` | Teleport to any player's home | | `bhomes.admin.reload` | `op` | Reload config | | `bhomes.admin.import` | `op` | Import homes data | | `bhomes.admin.export` | `op` | Export homes data | | `bhomes.admin.*` | `op` | All admin permissions | ## Configuration Main settings are in `plugins/BHomes/config.yml`: - `database`: storage backend and file name - `limits`: default and group-based home limits - `cooldown`: teleport cooldown settings - `teleport`: delay and movement-cancel behavior - `tpa`: TPA request timeout configuration - `messages`: MiniMessage-formatted plugin messages (includes TPA messages with clickable accept/deny buttons) ## TPA Features - **`/tpa `** — Send a teleport request to a player - **`/tpahere `** — Ask a player to teleport to you - **`/tpablock `** — Toggle blocking TPA requests from a player - **`/tpaaccept [player]`** — Accept a pending request (with optional player name to accept a specific one) - **`/tpadeny [player]`** — Deny a pending request - **Clickable accept/deny buttons** — Received requests show green `[ACCEPT]` and red `[DENY]` buttons in chat - **Request timeout** — Configurable expiry via `tpa.timeout` in config.yml - **Blocked players** — Stored in the same SQLite database, persisted across restarts - **Folia-compatible** — Uses player-based schedulers for teleport delays ## Build From Source ```bash ./gradlew build ``` Compiled JAR output: `build/libs/`