liteprofilesutils_world: debug: false type: world events: ## load YAML data after server start: - ~run liteprofilesutils_load_data ## patch join/leave & rank sync on player quits: - define masteruuid ]> - define profilelimit # - flag server liteprofilesutils_lastseengroups:].with[<[masteruuid]>].as[]> # - define lastbestlimit ]> - flag server liteprofilesutils_lastbestlimit:<[lastbestlimit].with[<[masteruuid]>].as[<[profilelimit].max[<[lastbestlimit].get[<[masteruuid]>].if_null[1]>]>]> # - define joinleavedata - announce <[joinleavedata].get[leave].parsed> on player joins: - define masteruuid ]> # sync groups, O(scary) - define syncgroupdata - define lastseengroups ].if_null[]> - if <[lastseengroups].is_empty>: - goto joinmessage - foreach <[lastseengroups].include[]> as:trygroup: - define ok false - foreach <[syncgroupdata]> as:matchgroup: - if <[trygroup].advanced_matches[<[matchgroup]>]>: - define ok true - foreach stop - if !<[ok]>: - foreach next - if <[lastseengroups].contains[<[trygroup]>]>: - if !]>: - group add <[trygroup]> - else: - if ]>: - group remove <[trygroup]> - if !: - group add default # sync best perm level - define bestlimit ].if_null[1]> - if !]>: - permission add liteprofiles.limit.<[bestlimit]> # sync op - if ].is_op>: - adjust is_op:true - else: - adjust is_op:false # sync whitelist - if ].whitelisted>: - adjust whitelisted:true - else: - adjust whitelisted:false # adjust join message - mark joinmessage - define joinleavedata - if == <[masteruuid]>: - if ].contains[]>: - announce <[joinleavedata].get[welcome].parsed> - flag server liteprofilesutils_welcome:].include[]> - announce <[joinleavedata].get[join].parsed> ## prevent /profile remove on command: - if == profile || == account || == pf: - if == remove: - determine cancelled passively - narrate "<&c>You are forbidden from performing this operation." ## GUI menu on player clicks in inventory bukkit_priority:low: - if != <&f>邑邑邑邑鄈: - stop - if != liteprofiles: - stop - if > 45: - stop - if : - stop # logic - define data - if <[data]> == null: - stop - if <[data].get[type]> == master: - define value <[data].get[value]> - inventory close - execute as_player "profile use <[value]>" - else if <[data].get[type]> == slave: - define value <[data].get[value]> - inventory close - execute as_player "profile use <[value]>" - else if <[data].get[type]> == free: - execute as_player "profile add" - run liteprofilesutils_show_menu def.player: