General Information
A lot of big minigame servers use party plugins to make it easier for their players to play together in a group. Most of them are Bungeecord server networks; parties join the next server whenever the party owner does. Since I always wanted but never found a party plugin not requiring Bungeecord, I'm now publishing my own party plugin developed for Non-Bungeecord servers.
Parties are created and managed via simple commands (as described below). There are three different ways a party owner can make his party perform an action:
- by performing a command registered in the config.yml. This command will be delegated to all party owners. If having the permission to do so, party owners can simply indicate they want a command to be delegated themselves by ending " -party" at the end of it.
- by clicking a sign registered by the server staff. The plugin will generate artificial click events for any member of the party in order to make other plugins (for example minigame systems) think they all would have clicked the sign.
- by clicking a sign mapped with a certain command. The whole party will perform this command.
Features
- compatible with any minigame (just register join commands and join signs)
- not minigame-related purposes are supported (e. g. teleportation of parties when party owners warp to a Location or enter a new world, just register the corresponding commands in config.yml)
- highly configurable
- colour mix feature
- tab completion supported
- GUI system (to be extended)
Commands
All commands are executed by typing " /party" / " /p" in front of one of the sub commands listed below. If you just type "/party invite|join|promote|kick|ban" without any command arguments, a GUI listing all possible command targets will be opened. Just select one to perform the command.
- help [page number] - displays information about all plugin-related commands
- reload - reloads the plugin configuration files
- create [party name] - creates a party with the specified name
- invite <player1> <player2> … - invites the specified players to the party
- join <party name … | party member> - makes the player join a party
- deny <party name … | party member> - denies a party invitation
- leave - makes the player leave his party
- kick <player> - kicks a player out of the party
- ban <player> - bans a player from your party / unbans him if currently banned
- delete - deletes the party
- msg <message ...> - sends a message to the party members (can also be done with "@p " + message)
- publish - publishs a party (players can join without invitation)
- randomjoin - joins a random party
- promote <player> - promotes a player (he will become the new party owner)
- list - displays a GUI showing all accessible parties
- info - displays a GUI providing information about the player's party
- setupsign <x> <y> <z> [+owner] [command ...] - registers a party sign in the player's world at the specified position (look at the sign, use F3 and look for its coordinates under the key Looking at). If you want the sign to be mapped to a specific command, you can add a command (without /). This command will be performed by the whole party (including the party owner, if you write "true" in front of the command).
Permissions
- imcparty.command. + name of sub command - authorizes players to perform this command
- imcparty.size. + key - sets the maximum size a player's party can reach. There are four keys, each one mapped to a maximum party size: "default" (5), "medium" (10), "big" (25) and "biggest" (50).
- imcparty.custom_party_cmd - allows party owners to delegate any command they want to their party members by adding " -party" at the end of the command (Be careful! Party owners could abuse this feature to exploit their members!)
- imcparty.user - allows creation and management of one's own party
- imcparty.* - grants access to all InspiredMcParty features
Other Information
default config.yml
# Color code prefix: '&'. For a full list of colour codes, see http://rjwattenhofer.com/articles/gaming/colors/
# Words surrounded by the '%' character are config variables, replaced at runtime.
# When describing items, three different attributes can be used. The usage of one of them is compulsory: the item material (a full list is available here: https://github.com/CryptoMorin/XMaterial/blob/master/XMaterial.java)
# In addition, you can specify display name (a single character sequence) and lore/description (a list of text components) of the item. Examples below.
# Plugin prefix. Used to introduce most plugin messages.
prefix: '&7[&xInspired/Party&x&7]'
#Default name for parties, used whenever no party name is given or the one specified by the creator is too long. May not be longer than 25 characters. May depened on the party owner's name, which counts 16 characters at maximum.
defaultPartyName: '%owner%''s Party'
# Attributes of the colour mix feature provided by this plugin. When applied for a certain text component, each character will have its own colour. Be aware that the length of this component (mix indicator exlusive) will triple!
ColourMix:
# The indicator surrounding all text components the colour mix feature should be applied to. Can be used in config.yml as well as in messages.yml.
indicator: '&x'
# Truth value indicating whether or not a text component should be coloured periodically. If this is set to false, the component will be coloured randomly. If true, the order of chat colours will remain as specified below.
periodical: false
# The chat colour codes to be used within a colour mix.
colours:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- a
- b
- c
- d
- e
# Registration of the commands delegated to the party members when executed by the party owner.
# Be careful: If you allow your party owners to delegate too many commands, they might be able to make their party members perform any command they want.
PartyCommands:
#If false, only commands registered below will be delegated. If true, all commands except the registered ones are delegated.
allowOnlyUnregistered: false
# A list of the commands (without '/' prefix) to be delegated. When containing a '*', all commands beginning with this character sequence will be allowed.
registration:
- mv tp *
- mvtp *
- warp *
# Attributes of the process of generating a character sequence containing the names of all players in a player list.
PlayerList:
# The format of o single player name in the list.
format: '&5%player%'
# The delimiter seperating the player names.
delimiter: '&7, '
# General settings
Settings:
# A truth value indicating whether or not a party should be deleted when its owner leaves. If false, a new party owner will be determined.
deleteOnOwnerLeave: false
# A truth value indicating whether or not a global broadcast message should be sent whenever a party is published. If false, only the party members will receive such a message.
broadcastOnPartyPublish: true
# A truth value indicating whether or not a graphical user interface containing a list of accessible parties should also includes the inaccessible ones (private parties the player has no invitation to).
onlyPublicPartiesInGUIs: true
# A number indication how often a party should be informed that the same player is trying to enter it, but failed. '-1' means infinitely often.
maxFailedJoinsReports: 2
# The number of commands displayed when executing the /party help command once. '-1' means there will only be a single help page containing all commands.
commandsPerHelpPage: 3
# The number of times a party can be published (it can be set private again at any time). '-1' means infinitely many.
maxPublications: 2
autoDeleteSeconds:
# The time (in seconds) a player is given to accept or deny a party invitation before it is withdrawn. '-1' means it will never be withdrawn.
invitation: 30
# The time (in seconds) a party can exist without any members (containing only the party owner). '-1' means it will never be auto-deleted by the server.
party: -1
# Attriutes of graphical user interfaces (GUIs)
GUI:
# Titles of different GUI list implemetations
Title:
# Title of the party list GUI showing parties the player is able to join
accessibleParties: '&5Suggested parties'
# Titles of GUIs used to provide a list of possible command target players / parties
CommandTargetList:
parties: '&5Choose a party!'
players: '&5Choose a player!'
# An item representing one certain player in a player list GUI. If a skull, it will appear as the one of this player.
PlayerIcon:
material: PLAYER_HEAD
displayName: '&6%player%'
lore: []
# A short note added to lore if the player the item stack is representing is currently banned from concerning party
banFlag: '&ccurrently banned'
# GUIs providing a list of parties
PartyList:
# An item showing information about the current GUI page (the party list GUI is divided in several pages or paragraphes).
CurrentPageIcon:
material: ORANGE_STAINED_GLASS
displayName: '&7Page &a%value%&6 / &c%max%'
# Navigator button items
Buttons:
# A button item. When pressed, the previous GUI page is displayed.
PreviousPage:
material: RED_STAINED_GLASS
displayName: '&cPrevious page'
# A button item. When pressed, the next GUI page is displayed.
NextPage:
material: LIME_STAINED_GLASS
displayName: '&aNext page'
# Item stack used to represent a single party in the list. When a skull, it will appear as the party owner's skull. The variables %party% and %owner% can be used. Be aware that a list of all party members is added to the lore.
PartyIcon:
material: PLAYER_HEAD
displayName: '&5%party%'
lore:
- '&6&n%owner%'
# GUIs providing detail information about single parties
SpecificPartyMenu:
# The filler item used to fill any inventory slot not containing another item stack. The display name may contain the variable %party% (the name of the party this GUI is refering to).
Filler:
material: LIGHT_BLUE_STAINED_GLASS_PANE
displayName: '&5%party%'
lore: []
# An item providing the main party information (owner and name). The variables %party% and %owner% can be used. When a skull, it will appear as the party owner's skull.
HeaderItem:
material: PLAYER_HEAD
displayName: '&5%party%'
lore:
- '&7von &6%owner%'
# An item providing information about the party members. The constants %value% (current party size) and %max% (maximum party size) can be used. Be aware that a list of all party members is added to the lore.
MembersItem:
material: PLAYER_HEAD
displayName: '&a%value%&6 / &c%max%'
lore: []
# An item representing the publication state of the party
PublicationStateItem:
# The item shown if the party is public.
Public:
material: OAK_FENCE_GATE
displayName: '&aThis party is public.'
lore:
- '&7All players are allowed to join.'
# The item shown if the party is private.
Private:
material: BARRIER
displayName: '&4This party is private.'
lore:
- '&7Only invited players are allowed to join.'
# A button item switching to the party list GUI when pressed
BackButton:
material: ORANGE_STAINED_GLASS
displayName: '&cBack'
lore:
- '&7to party list'
# A button item making a player join the party when pressed
JoinButton:
material: OAK_BUTTON
displayName: '&aJoin'
lore:
- '&7Join the party!'Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta