Skip to content

Clubs

MCTennis includes an integrated club system powered internally by ShyGuild. Clubs allow players to form teams, manage rosters, and join MCTennis games together. No extra plugin installation is required — MCTennis already ships with ShyGuild built in.

Premium Feature

The club system is exclusive to Patreon supporters who have funded this advanced feature. Support development to access these tools! ❤️

LuckPerms Required

Clubs use automatic per-club permission management. LuckPerms must be installed for role permissions to be applied automatically when a player creates or joins a club.


🎯 Overview

A club is a named group of players with a structured role hierarchy. The built-in mctennis_club template provides four roles out of the box:

Role Description
owner Full control — can manage roles, kick members, invite players, and delete the club
coach Can manage captains and players, invite and remove members, but cannot delete the club or promote owners
captain Can invite new players and view the roster
player Default role — can view the roster and leave the club

When a club is created, the creator is automatically assigned the owner role and all role permissions are applied via LuckPerms.


🚀 Quick Start (Player Self-Service)

This scenario covers servers where players manage their own clubs.

Required Permissions for Players

# Grant these to all players (e.g. via your default group)
- mctennis.shyguild.command
- mctennis.shyguild.cmd.create
- mctennis.shyguild.cmd.delete
- mctennis.shyguild.cmd.guild.list
- mctennis.shyguild.cmd.role.add
- mctennis.shyguild.cmd.role.remove
- mctennis.shyguild.cmd.role.list
- mctennis.shyguild.cmd.member.invite
- mctennis.shyguild.cmd.member.accept
- mctennis.shyguild.cmd.member.leave
- mctennis.shyguild.cmd.member.remove
- mctennis.shyguild.cmd.member.list
- mctennis.shyguild.template.mctennis_club

Step 1: Create a Club

Any player with the required permissions can create their own club:

/mctennisclub create mctennis_club <name> <displayName>
Parameter Description
<name> Internal club identifier — alphanumeric and hyphens only (e.g. red-falcons)
<displayName> Display name shown in chat — use underscores for spaces (e.g. Red_Falcons)

Example:

/mctennisclub create mctennis_club red-falcons Red_Falcons

The player who runs this command automatically becomes the club owner and all owner role permissions are applied via LuckPerms.


Step 2: Invite Members

As an owner or captain, invite other online players to your club:

/mctennisclub member invite <clubName> <player>

Example:

/mctennisclub member invite red-falcons Steve
/mctennisclub member invite red-falcons Alex


Step 3: Accept an Invite

Invited players must accept before they are added to the club:

/mctennisclub member accept <clubName>

Example:

/mctennisclub member accept red-falcons

Accepted players are assigned the player role (the default role).


Step 4: Assign Roles

Owners and coaches can promote members to higher roles:

/mctennisclub role add <clubName> <role> [player]

Example:

# Promote Steve to captain
/mctennisclub role add red-falcons captain Steve

# Promote Alex to coach
/mctennisclub role add red-falcons coach Alex


Step 5: View Club Roster

List all current members and their roles:

/mctennisclub member list <clubName>

Step 6: Leave or Delete a Club

Leave a club:

/mctennisclub member leave <clubName>

Owner Restriction

You cannot leave a club if you are the only owner. Promote another member to owner first with /mctennisclub role add <clubName> owner <player>.

Delete a club (owner only):

/mctennisclub delete <clubName>


🛡️ Admin-Managed Clubs

This scenario covers servers where staff or the server owner creates clubs and distributes ownership to specific players afterwards.

Required Permissions for Admins

# Staff group — in addition to all player permissions above
- mctennis.shyguild.cmd.member.add
- mctennis.shyguild.cmd.template.list
- mctennis.shyguild.cmd.reload

Step 1: Check Available Templates

First, verify that the mctennis_club template is loaded:

/mctennisclub template list

You should see mctennis_club in the output. If not, ensure mctennis_club.yml exists in the clubs/ folder and run /mctennisclub reload.


Step 2: Create the Club as Admin

An admin creates the club from the console or in-game:

/mctennisclub create mctennis_club red-falcons Red_Falcons

Console vs In-Game

When created from the console, no owner is automatically assigned. When created in-game by a player, that player becomes the owner. For the admin-managed workflow, create the club in-game as a staff player, or assign the owner role manually in the next step.


Step 3: Add Members Directly

Admins can bypass the invite system and add players directly:

/mctennisclub member add <clubName> <player>

Example:

/mctennisclub member add red-falcons Steve
/mctennisclub member add red-falcons Alex
/mctennisclub member add red-falcons Notch

All added players receive the player (default) role.


Step 4: Assign the Owner Role

Grant a player ownership of the club so they can manage it going forward:

/mctennisclub role add <clubName> owner <player>

Example:

/mctennisclub role add red-falcons owner Steve

Steve now has all owner permissions for the red-falcons club (delete, role management, invite, kick) applied automatically via LuckPerms.


Step 5: Optionally Assign Other Roles

Assign coach and captain roles to other members:

/mctennisclub role add red-falcons coach Alex
/mctennisclub role add red-falcons captain Notch

Full Admin Workflow Example

# 1. Verify templates
/mctennisclub template list

# 2. Create the club
/mctennisclub create mctennis_club red-falcons Red_Falcons

# 3. Add all members
/mctennisclub member add red-falcons Steve
/mctennisclub member add red-falcons Alex
/mctennisclub member add red-falcons Notch

# 4. Assign owner
/mctennisclub role add red-falcons owner Steve

# 5. Assign other roles
/mctennisclub role add red-falcons coach Alex
/mctennisclub role add red-falcons captain Notch

# 6. Verify
/mctennisclub member list red-falcons

📋 Club Template Reference (mctennis_club.yml)

The mctennis_club template ships with MCTennis and defines the role hierarchy and permissions for every club created from it.

name: "mctennis_club"
maxPlayers: 30
defaultRole: "player"
roles:
  # The club owner has full control over the guild
  - name: "owner"
    allowPermissions:
      - "mctennis.shyguild.guild.%mctennis_guild_name%.delete"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.role.add.owner"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.role.remove.owner"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.role.add.coach"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.role.remove.coach"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.role.add.captain"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.role.remove.captain"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.role.add.player"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.role.remove.player"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.role.list"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.member.remove"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.member.list"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.member.invite"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.member.leave"
      # Club arena access — add one entry per club arena
      - "mctennis.club.join.<arena>"
      - "mctennis.club.start.<arena>"
    denyPermissions: []

  # Coaches can manage captains and players, but cannot delete the club or assign owners
  - name: "coach"
    allowPermissions:
      - "mctennis.shyguild.guild.%mctennis_guild_name%.role.add.captain"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.role.remove.captain"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.role.add.player"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.role.remove.player"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.role.list"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.member.remove"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.member.list"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.member.invite"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.member.leave"
      # Club arena access — add one entry per club arena
      - "mctennis.club.join.<arena>"
      - "mctennis.club.start.<arena>"
    denyPermissions: []

  # Captains can invite new players and view the roster, but cannot manage roles
  - name: "captain"
    allowPermissions:
      - "mctennis.shyguild.guild.%mctennis_guild_name%.role.list"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.member.list"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.member.invite"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.member.leave"
      # Club arena access — add one entry per club arena
      - "mctennis.club.join.<arena>"
      - "mctennis.club.start.<arena>"
    denyPermissions: []

  # Regular players can only view the roster and leave
  - name: "player"
    allowPermissions:
      - "mctennis.shyguild.guild.%mctennis_guild_name%.role.list"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.member.list"
      - "mctennis.shyguild.guild.%mctennis_guild_name%.member.leave"
      # Club arena access — players can join but cannot start a club game
      - "mctennis.club.join.<arena>"
    denyPermissions: []

The %mctennis_guild_name% placeholder is automatically replaced with the actual club name when permissions are applied via LuckPerms.


📋 Complete Command Reference

All commands use /mctennisclub (alias: /mctennisclub). The base permission mctennis.shyguild.command is required for every command.

Command Description Permission
/mctennisclub create <template> <name> <displayName> Create a new club mctennis.shyguild.cmd.create + mctennis.shyguild.template.<template>
/mctennisclub delete <club> Delete a club mctennis.shyguild.cmd.delete + mctennis.shyguild.guild.<club>.delete
/mctennisclub member add <club> <player> Add a player directly (admin) mctennis.shyguild.cmd.member.add + mctennis.shyguild.guild.<club>.member.add
/mctennisclub member remove <club> <player> Remove a player from a club mctennis.shyguild.cmd.member.remove + mctennis.shyguild.guild.<club>.member.remove
/mctennisclub member list <club> List all club members mctennis.shyguild.cmd.member.list + mctennis.shyguild.guild.<club>.member.list
/mctennisclub member invite <club> <player> Invite a player to the club mctennis.shyguild.cmd.member.invite + mctennis.shyguild.guild.<club>.member.invite
/mctennisclub member accept <club> Accept a club invite mctennis.shyguild.cmd.member.accept
/mctennisclub member leave <club> Leave a club mctennis.shyguild.cmd.member.leave + mctennis.shyguild.guild.<club>.member.leave
/mctennisclub role add <club> <role> [player] Assign a role to a member mctennis.shyguild.cmd.role.add + mctennis.shyguild.guild.<club>.role.add.<role>
/mctennisclub role remove <club> <role> [player] Remove a role from a member mctennis.shyguild.cmd.role.remove + mctennis.shyguild.guild.<club>.role.remove.<role>
/mctennisclub role list <club> [player] List club roles or a player's roles mctennis.shyguild.cmd.role.list + mctennis.shyguild.guild.<club>.role.list
/mctennisclub guild list List your joined clubs mctennis.shyguild.cmd.guild.list
/mctennisclub template list List all loaded templates mctennis.shyguild.cmd.template.list
/mctennisclub reload Reload club configurations mctennis.shyguild.cmd.reload

Two Permissions Per Action

Most actions require two permissions: a command-level permission (e.g. mctennis.shyguild.cmd.delete) and a club-specific permission (e.g. mctennis.shyguild.guild.<club>.delete). The club-specific permissions are handled automatically by LuckPerms via the role template — you do not need to assign them manually.


🔍 Troubleshooting

Problem Likely Cause Solution
"No permission" on /mctennisclub Missing base permission Add mctennis.shyguild.command
Can't create a club Missing create or template permission Add mctennis.shyguild.cmd.create and mctennis.shyguild.template.mctennis_club
Role permissions not applied LuckPerms not installed Install LuckPerms
Template not found mctennis_club.yml missing Ensure the file exists in the clubs/ folder and run /mctennisclub reload
Owner can't delete club Missing guild-level permission Ensure LuckPerms applied mctennis.shyguild.guild.<club>.delete — try /mctennisclub reload
Can't leave as owner Only owner in club Assign owner role to another member first, then leave
Can't join a club arena Missing mctennis.club.join.<arena> Add the permission to the appropriate roles in mctennis_club.yml and reload
Can't start a club game Missing mctennis.club.start.<arena> Add the permission to owner, coach, and captain roles in mctennis_club.yml and reload
Non-club players can enter club arenas mctennis.join.<arena> granted to default group Remove mctennis.join.<arena> from the default group; club access should come from the template only