Team-HomeGUI Plugin

A lightweight team system with team homes, private team chat, personal homes, and a clean home GUI

23

Team-HomeGUI Plugin

<div align="center">

<img src="https://cdn.modrinth.com/data/team-homegui-plugin/icon.png" width="120" alt="Team HomeGUI Icon"/>

Team HomeGUI Plugin

A lightweight team system with team homes, private team chat, personal homes, and a clean home GUI for Paper 1.21+

*Create teams, set shared team homes, manage private team chat, and let players use personal homes through a simple GUI.*

📥 Download🐛 Report a Bug📄 Changelog

</div>

---

📖 Table of Contents

* ✨ Features * 📦 Requirements * 🚀 Installation * ⌨️ Commands & Permissions * 🔧 Configuration * 🧩 PlaceholderAPI Integration * 🔍 Troubleshooting * ❓ FAQ * 📄 Credits

---

✨ Features

👥 Team System

Create and manage player teams directly in-game.

| Feature | Description | | ------- | ----------- | | Team creation | Players create one team with validated name | | Invitations | Owners and permitted members can invite | | Join flow | Accept or deny pending invites | | Roles | Owner, Admin, and Member roles | | Team list | Browse existing teams with pagination | | Team info | View owner, color, settings, member count | | Member list | View all members with role labels |

---

🏠 Team Homes

Teams can set a shared home location for all members.

| Command | Description | | ------- | ----------- | | `/team sethome` | Set current location as team home | | `/team home` | Teleport to team home |

⚠️ Fixed in 1.0.1: Paper 1.21.11 API compatibility for GUI items.

✔️ New in 1.0.3:

* Disabled world check - teleport blocked in configured worlds * Warmup cancellation on death/disconnect * Friendly fire toggle between team members

---

🏡 Personal Homes + GUI

Players can create personal homes and open a GUI menu.

| Feature | Description | | ------- | ----------- | | Multiple homes | Configurable default limit | | Permission limits | Grant 3, 4, or 5 homes with permissions | | GUI menu | `/home` opens clickable home menu | | Named homes | `/sethome <name>`, `/home <name>`, `/delhome <name>` | | Safe names | Letters, numbers, underscores only (1-16 chars) | | Cooldown | Configurable teleport cooldown | | Economy | Optional Vault integration for costs |

✔️ New in 1.0.3:

* Improved GUI appearance with black beds/banners * Sethome buttons for homes without permission (shows error) * Tab completion suggests default home names

---

💬 Team Chat

Communicate privately with your team.

| Command | Description | | ------- | ----------- | | `/team msg <message>` | Send private team message | | `/team chat enable` | Enable persistent team chat mode | | `/team chat disable` | Return to global chat |

Global chat can show team prefix via configured format.

---

🎨 Team Customization

Team owners can customize display settings.

| Setting | Command | | ------- | ------- | | Display name | `/team settings name <new-name>` | | Team color | `/team settings color <color>` | | Member invites | `/team settings members-can-invite <on|off>` | | Promote member | `/team settings promote <player>` | | Demote admin | `/team settings demote <player>` | | Transfer ownership | `/team settings transfer <player>` |

✔️ New in 1.0.1: GUI rows, filler material, and sound toggles configurable.

✔️ New in 1.0.3:

* Economy integration - optional costs for team creation and home operations * Enhanced team name validation with offensive word filtering * Cannot promote/demote/transfer to self

---

🛠️ Admin Tools

Manage teams and admin access in-game.

| Feature | Command | Permission | | ------- | ------- | ---------- | | Create admin team | `/team admin create <password>` | `teamplugin.admin` | | Add to admin team | `/team admin add <player>` | `teamplugin.admin` | | Ban from admin | `/team admin ban <player>` | `teamplugin.admin` | | Unban from admin | `/team admin unban <player>` | `teamplugin.admin` | | Manage a team | `/team admin manage <teamId>` | `teamplugin.admin` | | Remove a team | `/team admin remove <teamId>` | `teamplugin.admin` | | Edit team settings | `/team admin settings <teamId> <option> [value]` | `teamplugin.admin` |

---

📦 Requirements

| Component | Version | Notes | | -------------- | ------- | -------- | | Java | 21+ | Required | | Paper | 1.21+ | Required | | Vault | Optional| Enables economy integration | | PlaceholderAPI | Optional| Enables placeholders | | DiscordSRV | Optional| Chat compatibility |

> Spigot/Folia support not guaranteed. Built for Paper API 1.21+.

---

🚀 Installation

1. Download the `.jar` from Modrinth 2. Place it in `plugins/` 3. Start the server 4. Edit configs 5. Restart server

Generated files:

| File | Purpose | | ---- | ------- | | `team-config.yml` | Team messages, chat formats, admin settings | | `home-config.yml` | Home limits, cooldown, GUI settings | | `teams.yml` | Runtime team data | | `homes.yml` | Runtime personal home data |

> ⚠️ Avoid `/reload`. Restart server fully after updates.

---

⌨️ Commands

Player Commands

| Command | Description | | ------- | ----------- | | `/team` | Show help menu | | `/team create <name>` | Create new team | | `/team invite <player>` | Invite player | | `/team invite accept` | Accept pending invite | | `/team invite deny` | Deny pending invite | | `/team leave` | Leave current team | | `/team list [page]` | List teams | | `/team info [team]` | Show team info | | `/team members [team]` | Show members | | `/team msg <message>` | Send team message | | `/team chat <enable|disable>` | Toggle team chat | | `/team sethome` | Set team home | | `/team home` | Teleport to team home | | `/team menu` | Open home GUI | | `/team color <color>` | Change team color | | `/team settings` | Show settings | | `/team settings name <name>` | Rename team | | `/team settings color <color>` | Change color | | `/team settings members-can-invite <on|off>` | Toggle invites | | `/team settings promote <player>` | Promote to admin | | `/team settings demote <player>` | Demote to member | | `/team settings transfer <player>` | Transfer ownership | | `/team kick <player>` | Kick member |

Alias: `/t`

Personal Home Commands

| Command | Description | | ------- | ----------- | | `/home` | Open home GUI | | `/home <name>` | Teleport to named home | | `/sethome <name>` | Create/update named home | | `/delhome <name>` | Delete named home |

---

🔐 Permissions

| Permission | Description | Default | | ---------- | ----------- | ------- | | `teamplugin.player` | Basic player access | `true` | | `teamplugin.admin` | Admin commands | `op` | | `teamplugin.homes.3` | Up to 3 homes | `false` | | `teamplugin.homes.4` | Up to 4 homes | `false` | | `teamplugin.homes.5` | Up to 5 homes | `false` | | `teamplugin.home.nocooldown` | Bypass cooldown | `op` |

Home limit priority:

```text teamplugin.homes.5 > teamplugin.homes.4 > teamplugin.homes.3 > default-max-homes ```

---

🔧 Configuration

`home-config.yml`

```yaml default-max-homes: 2

gui: title: "&0Home &8- &0Menu" rows: 5 filler-material: "GRAY_STAINED_GLASS_PANE"

teleport: cooldown: 3 warmup: 0 freeze-on-warmup: true cancel-on-move: true

features: personal-homes: true team-homes: true sounds: true

disabled-worlds: - "world_nether" - "world_the_end"

economy: enabled: false sethome-cost: 0 teleport-cost: 0 create-cost: 0 ```

`team-config.yml`

```yaml admin: password: "admin123" # ⚠️ SECURITY WARNING: Change this immediately! team-name: "Admin"

settings: max-team-name-length: 16 min-team-name-length: 3 max-members: 20 global-format: "[{team}&r] {player}: {message}" chat-format: "&8[TC]&r [{team}&r] &7{player}&r: {message}" invite-timeout-seconds: 60

features: team-chat: true global-chat-prefix: true team-homes: true sounds: true

damage: disable-pvp-between-members: false disable-pvp-between-allies: false

creation: require-password: false default-invite-only: true default-members-can-invite: false

economy: enabled: false create-cost: 0 ```

---

🧩 PlaceholderAPI Integration

👉 https://placeholderapi.com

Optional integration exposes team-related placeholders.

| Placeholder | Description | | ----------- | ----------- | | `%team_name%` | Team display name | | `%team_colored_name%` | Team name with color codes | | `%team_color%` | Team color code | | `%team_role%` | Owner/Admin/Member | | `%team_count%` | Number of members |

---

🔍 Troubleshooting

GUI not opening on /home

* Fixed in 1.0.1 — Paper 1.21.11 API change for `setItemMeta()` * Update to latest plugin version * Check console for errors

Players cannot use admin commands

* Ensure permission is `teamplugin.admin` * Check permission plugin is working

/team home works but no cooldown

* Check `teleport.cooldown` in `home-config.yml` * Players with `teamplugin.home.nocooldown` bypass it

Cannot create more than 2 homes

Give permissions:

```text teamplugin.homes.3 teamplugin.homes.4 teamplugin.homes.5 ```

Home names with symbols don't work

* Intentional — only letters, numbers, underscores allowed (1-16 chars)

Chat format conflicts with other plugin

* Adjust plugin order or chat plugin configuration * Team HomeGUI listens to Paper chat events

Plugin doesn't load after config edit

* Check YAML indentation (spaces, not tabs) * Validate YAML syntax online * Restart server after fixing

---

❓ FAQ

Does this support Paper 1.21+?

Yes. Targets Paper API 1.21+ and Java 21+.

Does it support DiscordSRV?

DiscordSRV is soft dependency. Team chat stays private; global chat can show prefixes.

Can members invite players?

Yes, if owner enables it:

```text /team settings members-can-invite on ```

Can players have multiple homes?

Yes. Default in `default-max-homes`; higher limits via permissions.

Can team owners rename their team?

Yes:

```text /team settings name <new-name> ```

Is the plugin open source?

Yes. Apache License 2.0.

---

📄 Changelog

Version 1.0.6

Performance * Performance - Eliminated God Class pattern in TeamCommand.java * Performance - Created HomeService, CooldownManager, TeamValidator for better separation of concerns * Performance - Moved chat, color, and list logic from TeamCommand to dedicated handlers * Performance - Unified cooldown and home management logic * Performance - Created GUISlots enum to eliminate magic numbers * Performance - Improved code structure following SOLID principles * Performance - Better memory management and cleaner code organization

GUI Color Improvements * GUI Color Improvements - Team owners can now set shared team homes with `/team sethome` * GUI Color Improvements - Team owners can disband teams by using `/team leave` * GUI Color Improvements - Added comprehensive placeholders for teams and homes * GUI Color Improvements - Ready homes now show as cyan, unset homes as gray

Fixed Placeholder Conflicts * Fixed Placeholder Conflicts - All placeholders now work correctly with proper config separation * Fixed Placeholder Conflicts - `/sethome` now shows correct personal home messages instead of team messages * Fixed Placeholder Conflicts - Added missing messages like "owner-cannot-leave" and "team-sethome-success" * Fixed Placeholder Conflicts - Personal homes use home-config, team messages use team-config

GUI Visual Distinction * GUI Visual Distinction - Set to 5 seconds instead of 0 for better teleport experience * GUI Visual Distinction - Clear color coding: cyan (ready), gray (unset), black (no permission)

Version 1.0.5

Bug Fixes: * Fixed tab completion for /home and /sethome - now only shows actual homes instead of default home1,2,3 * Fixed EssentialX compatibility - removed blocking check that prevented /sethome <name> from working * Fixed missing "admin-help-list" message that caused errors in admin command help * Changed plugin prefix from "[Teams]" to "[Team-Home]" for better branding

Version 1.0.4

Bug Fixes: * Fixed command routing - created separate HomeCommand for home/sethome/delhome * Fixed /sethome command now correctly sets personal home instead of team home * Fixed /team command now correctly shows team help instead of opening home GUI * Fixed tab completion for /home and /sethome now shows home names instead of team commands * Fixed MenuListener banner color check (WHITE_BANNER vs BLACK_BANNER) for team home teleport

Version 1.0.3

New Features: * Economy integration with Vault - optional costs for team creation and home operations * Friendly fire toggle between team members * Disabled world check for teleportation * Warmup cancellation on player death/disconnect * Enhanced team name validation with offensive word filtering * Improved tab completion for home commands * GUI appearance improvements with black beds/banners

Improvements: * Cannot promote/demote/transfer to self * Sethome buttons for homes without permission (shows error) * Strong security warning for default admin password * Better code organization and reduced duplication

Bug Fixes: * Fixed handleDemote logic to check isAdmin() instead of getMembers() * Removed dead code (isTakenName method) * Removed unused RESERVED_NAMES constant

Version 1.0.2

Bug Fixes: * Fixed Paper 1.21.11 API compatibility for GUI items * Improved setItemMeta() usage

Version 1.0.1

New Features: * GUI rows, filler material, and sound toggles configurable * Economy messages in configuration files

Bug Fixes: * Fixed GUI not opening on /home command

---

📄 Credits

Modrinth: Duong2012G Modrinth: Apache 2.0 Modrinth: https://modrinth.com/plugin/team-homegui-plugin

*Open source — contributions welcome.*

ADS