Just so you know, we don't know the file format for every file. If it's just a bunch of random characters, it's probably a .zip or .jar.
options:
prefix: &3Party &8ยป &7
notInAParty: You are not in a party
notPartyLeader: You are not the party leader
arg2NotSet: Arg-2 is not set
cantInviteYourself: You cannot invite yourself
arg2IsNotOnline: %arg-2% is not online
arg2AlreadyInvited: %arg-2% has already been invited
arg2AlreadyInParty: %arg-2% is already in a party
alreadyInParty: You are already in a party
noInvite: You have not received an invite
joinedArg2Party:You have joined %arg-2%'s party
playerJoinedParty: %player% has joined your party
arg2InvitedToParty: Invited %arg-2% to party
invitedToParty: You have been invited to <cmd:/party join %player%>&n%player%'s party (CLICK)
notInvited: You have not been invited to that party
arg2NotInYourParty: %arg-2% is not in your party
arg2NotInParty: %arg-2% is not in a party
availableCommands: Available Commands >
nextPage: Next page
cmdHelpInvite: invite a player to your party
cmdHelpJoin: join a party you were invited to
cmdHelpLeave: leave the party you're in
cmdHelpDisband: disband your party
cmdHelpInfo: show info about you or specific player
CmdHelp: show commands and description
infoLeader: Leader >
infoMembers: Members >
partyDisbanded: The party was disbanded
leaveParty: You left the party
leftParty: %{_p}% left the party
#
# * Checks if offlineplayer is in a party
# * Returns a boolean:
# * - true <if offlineplayer is in a party>
# * - false <if offlineplayer is not in a party>
#
function isInParty(p: offlineplayer) :: boolean:
set {_uuid} to uuid of {_p}
return true if {party::inparty::%{_uuid}%} is set else false
#
# * Checks if uuid of a player is in a party
# * Returns a boolean:
# * - true <if uuid of a player is in a party>
# * - false <if uuid of a player is not in a party>
#
function isInPartyUUID(uuid: text) :: boolean:
return true if {party::inparty::%{_uuid}%} is set else false
#
# * Checks if offlineplayer is a party leader
# * Returns a boolean:
# * - true <if offlineplayer is a party leader>
# * - false <if offlineplayer is not a party leader>
#
function isPartyLeader(p: offlineplayer) :: boolean:
set {_uuid} to uuid of {_p}
return true if {party::parties::%{_uuid}%::leader} = {_uuid} else false
#
# * Checks if uuid of player is a party leader
# * Returns a boolean:
# * - true <if uuid of player is a party leader>
# * - false <if uuid of player is not a party leader>
#
function isPartyLeaderUUID(uuid: text) :: boolean:
return true if {party::parties::%{_uuid}%::leader} = {_uuid} else false
#
# * Gets party from a player
# * Returns a text:
# * - text <if party exists>
# * - null <if party doesn't exist>
#
function getPartyOfPlayer(p: offlineplayer) :: text:
set {_uuid} to uuid of {_p}
return {party::inparty::%{_uuid}%}
#
# * Gets party from a uuid of player
# * Returns a text:
# * - text <if party exists>
# * - null <if party doesn't exist>
#
function getPartyOfUUID(uuid: text) :: text:
return {party::inparty::%{_uuid}%}
#
# * Gets party leader from a party
# * Returns an offlineplayer:
# * - offlineplayer <if party exists>
# * - null <if party doesn't exist>
#
function getPartyLeader(party: text) :: offlineplayer:
return {party::parties::%{_party}%::leader} parsed as offlineplayer
#
# * Gets party members from a party
# * Returns a list of offlineplayer objects:
# * - offlineplayers <if party exists>
# * - null <if party doesn't exist>
#
function getPartyMembers(party: text) :: offlineplayers:
loop {party::parties::%{_party}%::members::*}:
set {_members::%loop-index%} to loop-value parsed as offlineplayer
return {_members::*}
#
# * Disbands inputted party and sends
# * messages to leader and members
# * Returns a boolean:
# * - true <if party existed>
# * - false <if party didn't exist>
#
function partyDisband(party: text) :: boolean:
{party::parties::%{_party}%::leader} is set:
loop {party::parties::%{_party}%::members::*}:
clear {party::inparty::%loop-value%}
send "{@prefix}{@partyDisbanded}" to loop-value parsed as player
set {_partyLeader} to {_party} parsed as player
send "{@prefix}{@partyDisbanded}" to {_partyLeader}
clear {party::parties::%{_party}%::*}
clear {party::inparty::%{_party}%}
loop all indexes of {party::invites::*}:
clear {party::invites::%loop-value%::%{_partyLeader}%}
return true
return false
#
# * Removes offlineplayer from their party
# * Returns a boolean:
# * - true <if offlineplayer was in a party>
# * - false <if offlineplayer wasn't in a party>
#
function removePlayerFromParty(p: offlineplayer) :: boolean:
isInParty({_p}) = true:
set {_uuid} to uuid of {_p}
set {_party} to getPartyOfPlayer({_p})
send "{@prefix}{@leaveParty}" to {_p}
set {_partyLeader} to {_party} parsed as player
send "{@prefix}{@leftParty}" to {_partyLeader} and {party::parties::%{_party}%::members::*} where [input != {_uuid}]
size of {party::parties::%{_party}%::members::*} - 1 = 0:
partyDisband({_party})
else:
remove {_uuid} from {party::parties::%{_party}%::members::*}
clear {party::inparty::%{_uuid}%}
return true
return false
command party [<text>] [<text>]:
trigger:
arg-1 = "invite":
arg-2 is set:
arg-2 != "%player%":
isInParty(player) = true:
isPartyLeader(player) = false:
send "{@prefix}{@notPartyLeader}"
stop
set {_invitedPlayer} to arg-2 parsed as offlineplayer
{_invitedPlayer} is online:
set {_uuid} to uuid of {_invitedPlayer}
isInPartyUUID({_uuid}) = false:
{party::invites::%arg-2%::%player%} is not set:
set {party::invites::%arg-2%::%player%} to true
send "{@prefix}{@invitedToParty}" to {_invitedPlayer}
send "{@prefix}{@arg2InvitedToParty}"
wait 60 seconds
clear {party::invites::%arg-2%::%player%}
else:
send "{@prefix}{@arg2AlreadyInvited}"
else:
send "{@prefix}{@arg2AlreadyInParty}"
else:
send "{@prefix}{@arg2IsNotOnline}"
else:
send "{@prefix}{@cantInviteYourself}"
else:
send "{@prefix}{@arg2NotSet}"
arg-1 = "accept" or "join":
isInParty(player):
send "{@prefix}{@alreadyInParty}"
else if size of {party::invites::%player%::*} = 0:
send "{@prefix}{@noInvite}"
else if arg-2 is set:
{party::invites::%player%::%arg-2%} is set:
clear {party::invites::%player%::*}
clear {party::invites::%arg-2%::*}
send "{@prefix}{@joinedArg2Party}"
set {_PartyLeader} to arg-2 parsed as offlineplayer
send "{@prefix}{@playerJoinedParty}" to {_PartyLeader} and {party::parties::%{_uuid}%::members::*}
set {_uuid} to uuid of {_PartyLeader}
size of {party::parties::%{_uuid}%::members::*} = 0:
set {party::parties::%{_uuid}%::leader} to {_uuid}
set {party::inparty::%{_uuid}%} to {_uuid}
add uuid of player to {party::parties::%{_uuid}%::members::*}
set {party::inparty::%uuid of player%} to {_uuid}
else:
send "{@prefix}{@notInvited}"
else:
send "{@prefix}{@arg2NotSet}"
arg-1 = "leave":
isPartyLeader(player) = true:
player command "party disband"
else if isInParty(player) = true:
removePlayerFromParty(player)
else:
send "{@prefix}{@notInAParty}"
arg-1 = "disband":
isInParty(player) = true:
isPartyLeader(player) = true:
partyDisband(getPartyOfPlayer(player))
else:
send "{@prefix}{@notPartyLeader}"
else:
send "{@prefix}{@notInAParty}"
arg-1 = "kick":
isInParty(player) = true:
arg-2 is set:
isPartyLeader(player) = true:
set {_playerToKick} to arg-2 parsed as offlineplayer
getPartyOfPlayer(player) = getPartyOfPlayer({_playerToKick}):
removePlayerFromParty({_playerToKick})
else:
send "{@prefix}{@arg2NotInYourParty}"
else:
send "{@prefix}{@notPartyLeader}"
else:
send "{@prefix}{@arg2NotSet}"
else:
send "{@prefix}{@notInAParty}"
arg-1 = "show" or "info":
arg-2 is not set:
isInParty(player) = true:
set {_party} to getPartyOfPlayer(player)
send "{@prefix}{@infoLeader} %getPartyLeader({_party})%"
send "{@prefix}{@infoMembers} %getPartyMembers({_party})%"
else:
send "{@prefix}{@notInAParty}"
else:
set {_playerToCheck} to arg-2 parsed as offlineplayer
isInParty({_playerToCheck}) = true:
set {_party} to getPartyOfPlayer({_playerToCheck})
send "{@prefix}{@infoLeader} %getPartyLeader({_party})%"
send "{@prefix}{@infoMembers} %getPartyMembers({_party})%"
else:
send "{@prefix}{@arg2NotInParty}"
arg-1 is not set:
isInParty(player) = true:
player command "party show"
else:
player command "party help 1"
arg-1 = "help":
arg-2 is not set:
player command "party help 1"
else:
set {_max} to (arg-2 parsed as integer) * 9
set {_min} to {_max} - 8
set {_commands::names::*} to "invite", "accept/join", "leave", "disband", "show/info" and "help"
set {_commands::desc::*} to "{@cmdHelpInvite}", "{@cmdHelpJoin}", "{@cmdHelpLeave}", "{@cmdHelpDisband}", "{@cmdHelpInfo}" and "{@CmdHelp}"
{_commands::names::%{_min}%} is set
send "{@prefix}{@availableCommands}"
loop numbers from {_min} to {_max}:
{_commands::names::%loop-value-1%} is not set:
stop loop
send "{@prefix}%{_commands::names::%loop-value-1%}% &7&l- &r%{_commands::desc::%loop-value-1%}%"
mod((loop-value-1),9) = 0:
{_commands::names::%(loop-value-1) + 1%} is set
send "{@prefix}{@nextPage} /party help %((loop-value-1) / 9) + 1%"
stop loop
on load:
clear {party::invites::*}