KataParty

Introduction

Have you seen the millions of other party chat plugins, but not been satisfied with their features? Well, maybe this one will finally quench your hunger. You can have multiple parties, created and managed with labeled GUI controls, each member with a rank within their party, and party persistence across relogs and restarts. There's also optional shared inventories, toggleable TP per party and per member, and more!

KataParty was made by special request for Minecraft user Katatunka.

Features

Coming to v1.2.x, refactored code and all messages are fully translatable, as well as settings in a config file!

Creating a Party

Players with the KataParty.create permission can create parties with /kpcreate [name] - after using the command, they will be presented with a GUI:

Create GUI

Each item is labeled and has lore to describe how to use it.

  • Name Tag: create the party with the chosen settings
  • Ender Pearl: disable/enable party teleportation (requires KataParty.teleport.disable to disable)
  • Sword: enable/disable PvP
  • Ender chest: enable/disable shared inventory with 4 rows (requires KataParty.inventory.enable to enable)
  • Pumpkin: hide/show the party in the party list GUI (requires KataParty.hide to hide, players with KataParty.seehidden can still see hidden parties)

Once the party is created, the creator automatically as admin permissions within the party (not within the server). The creation of the party can be cancelled by closing the inventory screen. Parties are forced to have unique names. The default settings for a party are configurable.

Party Ranks

Within parties, there are three ranks: Member, Moderator, and Admin. Party ranks control which settings can be changed and which actions can be performed within a party. As you would guess, an Admin has full privileges, a Moderators have less, and Members have the least. All ranks are still limited by plugin permissions.

Party Management

A player with the KataParty.manage permission can access the management screen for their party - members of all ranks can access the management screen, but the option they have depend on their party rank and server permissions.

Management GUI

Each item is labeled and has lore to describe how to use it. Players with KataParty.admin have full access to everything regardless of whether they are in the party or what rank they have in the party.

  • Name tag: members can left click to leave the party (requires KataParty.create to use). In a future version of Bukkit, party admins or players with KataParty.admin can right click to rename the party in an anvil.
  • Player head: used to access a submenu to view the players within the party
  • Ender Pearl: A party admin/moderator can disable/enable party teleportation (requires KataParty.teleport.disable to disable)
  • Sword: A party admin/moderator can enable/disable PvP
  • Ender chest: A party admin can enable/disable shared inventory with 4 rows (requires KataParty.inventory.enable to enable)
  • Pumpkin: A party admin can hide/show the party in the party list GUI (requires KataParty.hide to hide, players with KataParty.seehidden can still see hidden parties)
  • TNT: A party admin can disband the party (requires KataParty.disband to use)
  • End portal frame: A party admin can teleport all members of the party to them (requires KataParty.teleport.do to use)
  • Eye of ender: A party member can allow or disallow party-related teleportation, to or from them (requires KataParty.teleport.disallow to disable)

Member Management

From the management GUI, clicking the player head will open a GUI with player heads for each player in the party, even players who are offline. An admin can left click to increase rank or right click to decrease rank, and an admin or moderator can right click on a member with the Member rank to kick them from the party. The first item in the GUI will always be a name tag which, when clicked, will return you to the party management GUI.

Party List

Players with the KataParty.list permission can use the /kplist command to bring up a GUI with a list of existing parties:

Party List

Each item represents a party - the item name is the party name and the lore show information about how many players are in the party as well as the names of players in the party. Name tags are public parties which are visible to everyone, whereas papers are hidden parties and are only visible to players with the KataParty.seehidden permission. Clicking an item will have you join the party, but you will leave any party you are currently in as you can only be in one party at a time.

Party Teleportation

Players with the KataParty.teleport.do permission can use the /kptp command to bring up a GUI with a list of players in their party, even offline players. Each item is a player head named after the party member it represents, and show information about the member's rank, online status, dead or alive, and whether or not that member allows teleportation. Clicking an item will teleport you to that player if that player has teleportation enabled.

Party Chat Filtering

Being in a party means messages you send will only be visible to other party members. The chat messages will be prefixed with your party's name. Messages in the global chat will be greyed and italic. To send a message to global chat, start your message with an exclamation point! You can calso use the /kptoggle command to swap chat filtering - party chat will be greyed and italic whereas global chat will be normal, and your messages will go to normal chat by default. Start messages with an exclamation point to send to party chat instead! Or, use /kptoggle again.

When you log in and are already in a party, you will default to speaking in global chat for greetings and such. This behavior as well as the exclamation point are configurable.

Shared Inventory

If enabled in the party settings, party members with the KataParty.inventory.use permission can access a shared 4-row inventory with the /kpshare command. If the inventory is later disabled or the party disbanded, the person who did so will have the items dropped at their feet.

Important: Only give the KataParty.inventory.enable permission to trusted users, otherwise it could be abused by creating as many parties with shared inventories as they like and be able to use them all like ender chests.

Persistence

While players can only be in one party at a time, they can freely log off and remain in the party. Parties also persist across server restarts and are saved in /plugins/KataParty/parties.yml - this plugin uses UUIDs for everything so it is safe for when Mojang will allow changing Minecraft usernames.

Smart Wolves

When players in a party have tamed wolves and PvP is disabled, wolves will not target or attack other members of the player's party. If wolves are attacking a party member and PvP is then disabled, they will stop trying to attack. Additionally, other party members cannot attack your tamed wolves with PvP disabled (but you can still attack them yourself if you need to).

Invite Tickets

KataParty was originally designed to intentionally not have an invite feature due to server mods and admins complaining about invites being a nuisance with other party plugins. Witch tickets however, you can get similar functionality without the annoyance. For invite-only parties, party admins can generate tickets (special name tag items) that they can physically give to the people they want to invite. Players given a ticket can right-click to accept the invitation and join the party, or they can drop the ticket from their inventory (destroying the item) to reject it. When delivering tickets players have to be careful not to give it to the wrong person. Tickets cannot be used as normal name tags or stored in inventories.

Upcoming Features

These features are planned to be in a future version of the plugin.

Sticky Parties

Using the stick button in the creation or management GUI, players can make their party stick around with no one in it if the plugin is configured to normally remove empty parties. Will require the KataParty.stick permission.

API

Coming to KataParty 1.3.x will be a full API for plugin developers. With the API, your plugin can add new kinds of parties and party members, and you will also be able to allow invitation tickets to be placed in your special inventories. The API is being heavily worked on and may have breaking changes during the first few releases.

Smart Splash Potions

When PvP is disabled in a party, splash potions with negative effects will not affect other members of the same party. This means party members can heal and buff each other, and only harm and debuff players not in their party. Additionally, with PvP disabled, team-only buffing can be enabled so that splash potions with positive effects do not affect players not on your team.

Shared Health & Experience Gain

Mutually exclusive from PvP, when this option is enabled all players will share the same health based on the number of online alive players in the party. All members will see health drop as any member takes damage. Once the health reach zero, the entire party dies. (Death message collapsing is planned to show a death message for just the party and not every player). Additionally, as any party member gains experience, it is split evenly among all online living party members.

Commands

  • /kataparty - display info about the plugin (no permission required)
  • /kpcreate [party-name] - open the party creation GUI (requires KataParty.create permission to use)
  • /kplist - open the party list GUI (requires KataParty.list permission to use)
  • /kpjoin [party-name] - join a hidden party (requires KataParty.join permission to use)
  • /kpleave - leave your current party (requires KataParty.join permission to use, and no that is not a copy-paste error)
  • /kpdisband - disbands your party if your party rank is Admin (requires KataParty.disband permission to use)
  • /kpclose [party-name] - closes a party (for admins, requires KataParty.close permission to use)
  • /kpmanage - open the management GUI for your party (requires KataParty.manage permission to use)
  • /kpadmin [party-name] - open the management GUI for a party (for admins, requires KataParty.admin permission to use)
  • /kptp [optional-playername] - open the party teleportation GUI or teleport to a member by name (requires KataParty.teleport.do permission to use)
  • /kpshare - open the shared party inventory if it is enabled (requires KataParty.inventory.use permission to use)
  • /kptoggle - toggle chat filtering between party chat and global chat (no permission required)
  • /kpreload - reload/regenerate the config file (requires the KataParty.reload permission to use)

Permissions

  • KataParty.* - Give this command to anyone who should have full access to KataParty features (e.g. server admins/moderators)
  • KataParty.create - Allows creation of parties
  • KataParty.hide - Allows the player to create hidden parties
  • KataParty.seehidden - Allows seeing hidden parties in the party list
  • KataParty.list - Allows viewing the party list
  • KataParty.join - Allows joining and leaving parties
  • KataParty.disband - Allows disbanding parties
  • KataParty.manage - Allows accessing party management (should be available to everyone)
  • KataParty.admin - Allows bypassing party rank and managing other parties
  • KataParty.reload - Allows use of the /kpreload command
  • KataParty.teleport.* - Gives all teleportation-related permissions
  • KataParty.teleport.do - Allows players to teleport to other members in their party
  • KataParty.teleport.disable - Allows teleportation to be disabled/enabled at will
  • KataParty.teleport.disallow - Allows players to, at will, prevent other party members from teleporting to them
  • KataParty.inventory.* - Gives all shared-inventory-related permissions
  • KataParty.inventory.use - Allows access to the shared party inventory
  • KataParty.inventory.enable - Allows the shared inventory to be enabled/disabled at will

Configuration

Aside from the parties.yml file which is used for party persistence across restarts, there is a separate config.yml file. This configuration file is smart - if you remove a config setting from the file, on next reload it will be added back with the default value, while leaving your other settings as they are. All settings are documented in the config, and things you can configure include:

  • Default party settings (teleports, pvp, shared inventory, visibility, new member default tp setting)
  • Option to remove empty parties automatically (on server restart load and/or when all players leave the party)
  • Configuration for chat filtering behavior (formatting of prefix, formatting of grayed messages, the string to use instead of he exclamation point, default preferred chat in different circumstances)
  • All text ever sent or shown to the player is fully editable including support for colors and formatting codes

Videos

Source Code

Source Code on GitHub

NOTICE: The plugin is written in Java 7, and as such, your server will need to run Java 7.

Technical Information

To implement chat filtering, this plugin listens to AsyncPlayerChatEvent with the highest priority (to be processed last), cancels the event, and then manually sends chat messages to the console and to individual players. It respects the target set and message formatting as well as display names. If you have issues with chat filtering, please tell me what other plugins you are using.


Comments

  • To post a comment, please or register a new account.
Posts Quoted:
Reply
Clear All Quotes

About This Project

  • Project ID
    81209
  • Created
    Jun 12, 2014
  • Last Released File
    Jan 24, 2015
  • Total Downloads
    2,791
  • License

Categories

Members

Recent Files

Bukkit