๐ŸŽ‰ Public Parties

On this page, you will learn more about the Public Parties Add-On.

#Information

The Public Parties add-on lets a party leader list their party to the whole server, so players can find it and join it without ever being invited. Parties can be fully open, or accept join requests the leader approves one by one. This add-on requires PhoenixDuels Premium.

Public Parties Add-On

#Installation

To install this add-on, simply drag and drop the jar file into the PhoenixDuels/addons folder, then restart your server.

These are the following files that this add-on will generate to your PhoenixDuels folder:

  • PhoenixDuels/menus/publicparties/browser.yml - The party browser opened by /joinparty.
  • PhoenixDuels/menus/publicparties/bans.yml - The banned players menu.
  • PhoenixDuels/translations/publicparties.translations.en.yml - The translation file for the add-on.

It also adds a public-parties section to your config.yml, extends the existing menus/party/party.yml and menus/party/info.yml menus, and creates a %prefix%_publicparties_table table in your database.

circle-exclamation

The add-on replaces the party command and the party menus with its own versions while it is loaded, and puts the originals back when it is unloaded. If you already customised menus/party/info.yml, the new buttons are appended to it, but existing lines are never rewritten โ€” delete the file if you want the new layout generated from scratch.

#Visibility

A party is always in one of three states. The leader switches between them with a command, or by clicking the visibility button in the party menu, which cycles through all three.

State Behaviour
Private The default. The party is hidden from the browser and can only be joined by invite.
Public The party is listed in the browser and anyone can join it instantly.
Requests The party is listed, but clicking it sends the leader a request to approve or deny instead of joining.

Turning a party public or opening it for requests announces it once to every online player. The announcement is skipped for members of that party and for anyone banned from it.

#Commands

Command Description
/joinparty Opens the public parties browser.
/joinparty <player> Joins that player's party directly, or sends a request if the party is in Requests mode.
/joinparty accept <player> Accepts a pending join request. Leader only.
/joinparty deny <player> Denies a pending join request. Leader only.
/party public Lists the party and lets anyone join instantly. Leader only.
/party requests Lists the party, but every join has to be approved. Leader only.
/party private Unlists the party and drops every pending request. Leader only.
/party desc <text> Sets the description shown on the party's entry in the browser. Leader only.
/party desc clear Removes the description. Leader only.
/party ban <player> Bans a player from the party. Leader only.
/party unban <player> Lifts a ban. Leader only.
/party bans Opens the banned players menu. Leader only.

circle-info

If you renamed the party command through commands.party.alternative, these sub-commands follow the new name. Every other party sub-command keeps working exactly as before.

#The Browser

/joinparty opens a paginated list of every listed party, refreshed every second. Each entry shows the leader's head, the member count, the members themselves and the party's description.

  • Sorting - cycles between free slots, party size and leader name.
  • Hide Full Parties - hides parties with no room left, on by default.

Both buttons are per viewer, so two players browsing at the same time keep their own sorting and filtering.

The entry lore supports %player%, %members%, %max%, %members_list% and %description%. The %description% line is dropped entirely when the party has no description set, and parties in Requests mode use their own separate entry item.

#Join Rules

A join attempt is refused when:

  • The joiner is already in another party.
  • The joiner is in a match or in the queue.
  • The target party is in a match, in the queue, or has a pending challenge.
  • The party is full, unless the joiner has the bypass permission.
  • The joiner is banned from that party.

circle-exclamation

The match and queue checks cannot be turned off. They exist because a party's roster changing mid-duel breaks the match.

Free slots are counted as members plus pending invites, which is what the plugin itself enforces โ€” so a party showing an open slot in the browser really has one.

#Descriptions

/party desc <text> gives the party a short line of text that shows up on its browser entry, so leaders can say what they are looking for instead of just showing a member count. The length limit and the whole feature are configurable.

#Join Requests

In Requests mode, clicking a party in the browser sends its leader a message with clickable [ACCEPT] and [DENY] buttons, wired to /joinparty accept and /joinparty deny. Requests expire on their own after the configured time, and are dropped when the party goes private.

#Party Bans

A ban stops a player from rejoining a party they were kicked from. Banning someone removes them from the party on the spot, drops any request they had pending, hides the party from their browser, and skips them when the party is announced.

Bans last as long as the party exists and are cleared when it disbands. The leader can review and lift them from /party bans, or through the Banned Players button in the party menu, by clicking a head.

#Configuration

The add-on adds a public-parties section to your config.yml.

Configuration key Default Notes
advertisement.enabled true Announces a party to the server when it gets listed.
advertisement.cooldown-seconds 60 Blocks announcement spam from toggling visibility. Only the announcement is held back โ€” the visibility change still goes through.
maximum-listed-parties 0 Caps how many parties can be listed at once. 0 is unlimited.
browser.hide-full-parties true The starting state of the browser's hide-full toggle.
browser.default-sort SLOTS_REMAINING SLOTS_REMAINING, MEMBERS or LEADER_NAME.
requests.enabled true Turning this off removes Requests from the visibility cycle entirely.
requests.expiration-seconds 120 How long a pending request stays valid.
description.enabled true Enables /party desc.
description.maximum-length 48 Characters allowed in a description.
permissions.enabled false Gates joining and listing behind the permissions below. Off by default so existing setups keep working.

#Permissions

Permission Description
phoenixduels.publicparties.join Allows joining public parties. Only enforced when permissions.enabled is on.
phoenixduels.publicparties.advertise Allows listing your own party. Only enforced when permissions.enabled is on.
phoenixduels.publicparties.bypass-full Allows joining a party that is already full. Always enforced.

circle-exclamation

bypass-full works by raising that party's slot limit by one, because the plugin hard-caps a party at its maximum. The extra slot stays with the party after the bypassing player leaves.

#Storage

Visibility, descriptions and bans are written to the %prefix%_publicparties_table table through whichever database you have configured, SQLite or MySQL. The table is created and migrated on its own the first time the add-on loads.

State is saved when the add-on unloads and restored when it loads again, so reloading the add-on does not silently drop every public party back to private. Rows are deleted as they are read, so parties that died while the add-on was unloaded do not pile up.

circle-info

This does not survive a full server restart, and cannot: parties themselves are never persisted by the plugin, so after a restart there is no party left for a saved row to attach to and every row is discarded.

Last updated 5 days ago
My Cart (0 items)

Oops... looks like the spiders padded through here

Add products to your cart and remove them from here Lets buy