#pragma once #include #include "APIHelp.h" class RoleClass : public ScriptClass { std::weak_ptr role; inline std::shared_ptr lock() { if (role.expired()) { throw Exception("Role pointer expired!"); } return role.lock(); } public: RoleClass(const Local& scriptObj, std::weak_ptr role); RoleClass(std::weak_ptr role); static RoleClass* constructor(const Arguments& args); Local getName(); Local getDisplayName(); Local getPriority(); Local getMembers(); Local getPermissions(); void setName(const Local& val); void setDisplayName(const Local& val); void setPriority(const Local& val); void setMembers(const Local& val); void setPermissions(const Local& val); Local hasMember(const Arguments& args); Local addMember(const Arguments& args); Local removeMember(const Arguments& args); Local hasPermission(const Arguments& args); Local setPermission(const Arguments& args); Local removePermission(const Arguments& args); Local permissionExists(const Arguments& args); Local isValid(const Arguments& args); }; extern ClassDefine RoleClassBuilder; class PermissionClass { public: static Local createRole(const Arguments& args); static Local roleExists(const Arguments& args); static Local getRole(const Arguments& args); static Local getOrCreateRole(const Arguments& args); static Local registerPermission(const Arguments& args); static Local deletePermission(const Arguments& args); static Local permissionExists(const Arguments& args); static Local checkPermission(const Arguments& args); static Local isMemberOf(const Arguments& args); static Local getPlayerRoles(const Arguments& args); static Local getPlayerPermissions(const Arguments& args); static Local saveData(const Arguments& args); }; extern ClassDefine PermissionClassBuilder;