options: ShowOnlineIfOnline: true OnlineText: &aOnline # - Imports (Do not change!) - # import: de.simonsator.partyandfriends.spigot.api.pafplayers.PAFPlayer de.simonsator.partyandfriends.spigot.api.pafplayers.PAFPlayerManager de.simonsator.partyandfriends.spigot.api.pafplayers.PAFPlayerClass java.util.Date # - Imports (Do not change!) - # # - Needed data (Do not change!) - # on bungee player join: delete {bungeeplayers::*} loop all bungee players: add "%loop-bungeeplayer%" to {bungeeplayers::*} on bungee player quit: remove "%event-bungeeplayer%" from {bungeeplayers::*} on client disconnect: delete {bungeeplayers::*} # - Needed data (Do not change!) - # # - Expressions - # offline player property (paf|partyandfriends)[ ]player [data]: return type: object get: return PAFPlayerManager.getInstance().getPlayer(name of expr-1) offline player property (paf|partyandfriends) last online [date]: return type: object get: (expr-1's pafplayer.getLastOnline()/1000) != 0: {@ShowOnlineIfOnline} = false: return unix date of (expr-1's pafplayer.getLastOnline()/1000) {@ShowOnlineIfOnline} = true: return unix date of (expr-1's pafplayer.getLastOnline()/1000) if ({bungeeplayers::*} does not contain name of expr-1) return "{@OnlineText}" if ({bungeeplayers::*} contains name of expr-1) else: return null plural offline player property [(paf|partyandfriends)] friend[s]: return type: offline player get: set {_p} to expr-1 set {_friends::*} to ...{_p}'s pafplayer.getFriends() loop {_friends::*}: set {_pafPlayer} to loop-value.getName() parsed as offline player add {_pafPlayer} to {_names::*} return {_names::*} plural offline player property [(paf|partyandfriends)] on[line] friend[s]: return type: offline player get: set {_p} to expr-1 set {_friends::*} to ...PAFPlayerManager.getInstance().getPlayer({_p}).getFriends() loop {_friends::*}: set {_pafPlayer} to loop-value.getName() parsed as offline player add {_pafPlayer} to {_names::*} loop {_names::*}: {bungeeplayers::*} contains loop-value: add loop-value to {_return::*} return {_return::*} plural offline player property [(paf|partyandfriends)] [friend[(-| )]]request[s]: return type: offline player get: set {_p} to expr-1 set {_requests::*} to ...PAFPlayerManager.getInstance().getPlayer({_p}).getRequests() set {_count} to 0 loop {_requests::*}: set {_pafPlayer} to loop-value.getName() parsed as offline player add {_pafPlayer} to {_players::*} return {_players::*} plural expression [(all|any)] [of] [the] [(paf|partyandfriends)] [friend[s]] settings [option[s]]: return type: number get: return 1, 2, 3, 4, 6, 101 expression [the] [(paf|partyandfriends)] [friends] setting[s] [(with|of|from) (number|int[eger]|id|value|key)[s]] %$objects%: return type: object get: set {_exprs::*} to exprs-1 loop {_exprs::*}: add "Friend Request Setting" to {_l::*} if loop-value = 0 add "Party Invite Setting" to {_l::*} if loop-value = 1 add "PM Setting" to {_l::*} if loop-value = 2 add "Offline Setting" to {_l::*} if loop-value = 3 add "Jump Setting" to {_l::*} if loop-value = 4 add "Hide Setting" to {_l::*} if loop-value = 6 add "Online Status Notification" to {_l::*} if loop-value = 101 add 0 to {_l::*} if loop-value = "Friend Request Setting" add 1 to {_l::*} if loop-value = "Party Invite Setting" add 2 to {_l::*} if loop-value = "PM Setting" add 3 to {_l::*} if loop-value = "Offline Setting" add 4 to {_l::*} if loop-value = "Jump Setting" add 6 to {_l::*} if loop-value = "Hide Setting" add 101 to {_l::*} if loop-value = "Online Status Notification" return {_l::*} plural offline player property [the] [(paf|partyandfriends)] [friends] setting[s] (worth|value) [(of|from)] %$objects%: return type: number get: set {_exprs::*} to exprs-2 "%{_exprs::1}%" parsed as number is not set: loop {_exprs::*}: set {_exprs::%loop-index%} to setting from id loop-value if "%loop-value%" parsed as number is not set loop {_exprs::*}: add expr-1's pafplayer.getSettingsWorth(loop-value) to {_return::*} return {_return::*} set: set {_exprs::*} to exprs-2 {_exprs::*} are strings: loop {_exprs::*}: set {_exprs::%loop-index%} to setting from id loop-value if "%loop-value%" parsed as number is not set loop {_exprs::*}: set {_index} to loop-index parsed as number expr-1's pafplayer.setSetting(loop-value, {_index}st element of change values) # - Expressions - # # - Conditions - # condition: patterns: %offline player% (is|was) a friend of %offline player% %offline player% (is|was) [one of] %offline player%'s friend[s] %offline player% (is|was)[ ]n[(ot|'t)] a friend of %offline player% %offline player% (is|was)[ ]n[(ot|'t)] %offline player%'s friend[s] check: pattern = 1 or 2: continue if expr-1's pafplayer.isAFriendOf(expr-2's pafplayer) = true pattern = 2 or 3: continue if expr-1's pafplayer.isAFriendOf(expr-2's pafplayer) = false condition: patterns: %offline player% [does] ha(s|ve) [got] a [friend] request (of|from) %offline player% %offline player% [does(n(o|')t)] ha(s|ve) [got] a [friend] request (of|from) %offline player% check: pattern = 1 or 2: continue if expr-1's pafplayer.hasRequestFrom(expr-2's pafplayer) = true pattern = 2 or 3: continue if expr-1's pafplayer.hasRequestFrom(expr-2's pafplayer) = false # - Conditions - # command /testexpr [] []: trigger: arg-1 = "pafplayer": message "PAFPlayer: %player's pafplayer.getName()%" arg-1 = "friends": message "Friends: %player's paf friends% (%size of player's paf friends%)" arg-1 = "onlinefriends": message "Online Friends: %player's paf online friends% (%size of player's paf online friends%)" arg-1 = "requests": message "Requests from: %player's paf requests% (%size of player's paf requests%)" arg-1 = "lastOnline": message "lastonline: %(arg-2 ? player)'s paf last online%" arg-1 = "requestFrom": player has a request from arg-2: message "You got one from that player!" else: message "Couldn't find a request from that player :/" arg-1 = "FriendFrom": player is a friend of arg-2: message "You are friends with that player!" else: message "Couldn't find a friendship with that player :/"