function contains(l: objects, v: object) :: boolean: loop {_l::*}: if loop-value is {_v}: return true return false command party [] []: trigger: arg-1 = "invite": arg-2 is set: arg-2 != "%player%": (arg-2 parsed as player) is online: set {_uuid} to uuid of (arg-2 parsed as player) {party::inparty::%{_uuid}%} is not set: add "%player%" to {party::invites::%arg-2%::*} send "Invited to %player%'s party" to arg-2 parsed as player send "Invited %arg-2% to party" wait 60 seconds remove "%player%" from {party::invites::%arg-2%::*} else: send "%arg-2% is already in a party" else: send "%arg-2% is not online" else: send "You cannot invite yourself" else: send "Arg-2 was not set" arg-1 = "accept" or "join": size of {party::invites::%player%::*} = 0: send "You have not received an invite" else if arg-2 is set: contains({party:invites::%player%::*}, arg-2) is true: clear {party::invites::%player%::*} send "You have joined %arg-2%'s party" send "%player% has joined your party" to arg-2 parsed as player set {_uuid} to uuid of (arg-2 parsed as offlineplayer) size of {party::parties::%{_uuid}%::members::*} = 0: set {party::parties::%{_uuid}%::leader} to uuid of (arg-2 parsed as offlineplayer) set {party::inparty::%{_uuid}%} to true add uuid of player to {party::parties::%{_uuid}%::members::*} set {party::inparty::%uuid of player%} to {_uuid} else: send "You have not been invited to that party" arg-1 = "leave": {party::inparty::%uuid of player%} is set: set {_id} to {party::inparty::%uuid of player%} remove uuid of player from {party::parties::%{_id}%::members::*} clear {party::inparty::%uuid of player%} send "You left the party" send "%player% left the party" to {party::parties::%{_id}%::leader} parsed as player size of {party::parties::%{_id}%::members::*} = 0: send "The party was disbanded" to {party::parties::%{_id}%::leader} parsed as player clear {party::parties::%{_id}%::*} else: send "you aren't in a party, hehexd" arg-1 = "disband": {party::inparty::%uuid of player%} is set: {party::parties::%uuid of player%::leader} is set: loop all indexes of {party::parties::%uuid of player%::members::*}: clear {party::inparty::%uuid of player%} send "%{party::parties::%uuid of player%::leader} parsed as player% disbanded the party" to loop-value parsed as player clear {party::parties::%uuid of player%::*} clear {party::inparty::%uuid of player%} send "You disbanded the party" else: send "You are not in a party" arg-1 = "show" or "info": arg-2 is not set: {party::inparty::%uuid of player%} is set: set {_id} to {party::inparty::%uuid of player%} send "Leader: %{party::parties::%{_id}%::leader} parsed as offlineplayer%" send "Members: %{party::parties::%{_id}%::members::*}%" else: send "You are not in any party" else: set {_uuid} to uuid of (arg-2 parsed as offlineplayer) {party::inparty::%{_uuid}%} is set: set {_id} to {party::inparty::%{_uuid}%} send "Leader: %{party::parties::%{_id}%::leader} parsed as offlineplayer%" send "Members: %{party::parties::%{_id}%::members::*}%" else: send "%arg-2% is not in a any party" arg-1 is not set: {party::inparty::%uuid of player%} is set: player command "party show" else: player command "party help" arg-1 = "help": arg-2 is not set: player command "party help 1" stop 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 "invite a player to your party", "join a party you were invited to", "leave the party you're in", "disband your party", "show info about you or specific player" and "show commands and description" {_commands::names::%{_min}%} is set send "Available commands:" loop numbers from {_min} to {_max}: {_commands::names::%loop-value-1%} is not set: stop loop send "%{_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 "Next page /party help %((loop-value-1) / 9) + 1%" stop loop on load: clear {party::invites::*}