Skip to content

Clubs

MCHockey includes an integrated club system powered internally by ShyGuild. Clubs allow players to form teams, manage rosters, and join MCHockey games together. No extra plugin installation is required — MCHockey 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 mchockey_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)
- mchockey.shyguild.command
- mchockey.shyguild.cmd.create
- mchockey.shyguild.cmd.delete
- mchockey.shyguild.cmd.guild.list
- mchockey.shyguild.cmd.role.add
- mchockey.shyguild.cmd.role.remove
- mchockey.shyguild.cmd.role.list
- mchockey.shyguild.cmd.member.invite
- mchockey.shyguild.cmd.member.accept
- mchockey.shyguild.cmd.member.leave
- mchockey.shyguild.cmd.member.remove
- mchockey.shyguild.cmd.member.list
- mchockey.shyguild.template.mchockey_club

Step 1: Create a Club

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

/mchockeyclub create mchockey_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:

/mchockeyclub create mchockey_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:

/mchockeyclub member invite <clubName> <player>

Example:

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


Step 3: Accept an Invite

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

/mchockeyclub member accept <clubName>

Example:

/mchockeyclub 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:

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

Example:

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

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


Step 5: View Club Roster

List all current members and their roles:

/mchockeyclub member list <clubName>

Step 6: Leave or Delete a Club

Leave a club:

/mchockeyclub member leave <clubName>

Owner Restriction

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

Delete a club (owner only):

/mchockeyclub 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
- mchockey.shyguild.cmd.member.add
- mchockey.shyguild.cmd.template.list
- mchockey.shyguild.cmd.reload

Step 1: Check Available Templates

First, verify that the mchockey_club template is loaded:

/mchockeyclub template list

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


Step 2: Create the Club as Admin

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

/mchockeyclub create mchockey_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:

/mchockeyclub member add <clubName> <player>

Example:

/mchockeyclub member add red-falcons Steve
/mchockeyclub member add red-falcons Alex
/mchockeyclub 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:

/mchockeyclub role add <clubName> owner <player>

Example:

/mchockeyclub 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:

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

Full Admin Workflow Example

# 1. Verify templates
/mchockeyclub template list

# 2. Create the club
/mchockeyclub create mchockey_club red-falcons Red_Falcons

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

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

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

# 6. Verify
/mchockeyclub member list red-falcons

📋 Club Template Reference (mchockey_club.yml)

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

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

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

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

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

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


📋 Complete Command Reference

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

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

Two Permissions Per Action

Most actions require two permissions: a command-level permission (e.g. mchockey.shyguild.cmd.delete) and a club-specific permission (e.g. mchockey.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 /mchockeyclub Missing base permission Add mchockey.shyguild.command
Can't create a club Missing create or template permission Add mchockey.shyguild.cmd.create and mchockey.shyguild.template.mchockey_club
Role permissions not applied LuckPerms not installed Install LuckPerms
Template not found mchockey_club.yml missing Ensure the file exists in the clubs/ folder and run /mchockeyclub reload
Owner can't delete club Missing guild-level permission Ensure LuckPerms applied mchockey.shyguild.guild.<club>.delete — try /mchockeyclub 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 mchockey.club.join.<arena> Add the permission to the appropriate roles in mchockey_club.yml and reload
Can't start a club game Missing mchockey.club.start.<arena> Add the permission to owner, coach, and captain roles in mchockey_club.yml and reload
Non-club players can enter club arenas mchockey.join.<arena> granted to default group Remove mchockey.join.<arena> from the default group; club access should come from the template only