Temporary Permissions

FREE

Sold by: IIIaKa

Useful plugin for managing temporary permissions, temporary groups and temporary permissions for groups. This is done through chat commands, built-in Oxide commands, and API methods.

Categories: , ,
Download Now

Description

Useful plugin for managing temporary permissions, temporary groups and temporary permissions for groups. This is done through chat commands, built-in Oxide commands, and API methods.
Note: The dates is in UTC format.

 

Temporary Permissions Temporary Permissions

  • The ability to grant players temporary permissions by specifying either the number of seconds, an exact expiration date or until the wipe occurs;
  • The ability to add players to temporary groups by specifying either the number of seconds, an exact expiration date or until the wipe occurs;
  • The ability to grant groups temporary permissions by specifying either the number of seconds, an exact expiration date or until the wipe occurs;
  • The ability to revoke temporary permissions from players and groups prematurely;
  • The ability to remove players from groups prematurely;
  • The ability to perform all the above actions using existing and familiar console commands(e.g., o.grant), simply by adding the number of secondsthe expiration date or the word “wipe” at the end;
  • The ability to perform all the above actions using a chat command (by default /tperm);
  • The ability to perform all the above actions using API methods;
  • The ability to remove all temporary permissions and groups upon wipe detection.

 

Temporary Permissions Temporary Permissions

  • temporarypermissions.admin – Grants access to the admin command(by default /tperm).

 

Temporary Permissions Temporary Permissions

{
  "Chat command": "myperm",
  "Chat admin command": "tperm",
  "Is it worth enabling GameTips for messages?": true,
  "Is it worth saving logs to a file?": true,
  "Is it worth using console logging?": true,
  "Interval in seconds for expiration check": 1.0,
  "Interval in seconds for checking the presence of temporary permissions and temporary groups. A value of 0 disables the check": 600.0,
  "Is it worth restoring removed temporary permissions and temporary groups if the timer hasn't expired? There are cases where removal cannot be tracked in the usual way": true,
  "Is it worth revoking temporary permissions and temporary groups when unloading the plugin, without removing them from the data file?": true,
  "Is it worth revoking temporary permissions and temporary groups that haven't expired yet upon detecting a wipe?": false,
  "Wipe ID": null,
  "Version": {
    "Major": 0,
    "Minor": 1,
    "Patch": 4
  }
}

Temporary Permissions Temporary Permissions

 

Temporary Permissions Temporary Permissions

EN:
{
  "CmdAdmin": "Available admin commands:nn<color=#D1CBCB>/tperm</color> <color=#D1AB9A>grant user *nameOrID* realpve.vip wipe</color> - Grants or extends the specified permission for the specified player until the end of the current wipen<color=#D1CBCB>/tperm</color> <color=#D1AB9A>grant user *nameOrID* realpve.vip *intValue* *boolValue*(optional)</color> - Grants or extends the specified permission for the specified player for the given number of secondsn<color=#D1CBCB>/tperm</color> <color=#D1AB9A>grant user *nameOrID* realpve.vip *expirationDate* *assignmentDate*(optional)</color> - Grants or extends the specified permission for the specified player until the given daten<color=#D1CBCB>/tperm</color> <color=#D1AB9A>grant group *groupName* realpve.vip wipe</color> - Grants or extends the specified permission for the specified group until the end of the current wipen<color=#D1CBCB>/tperm</color> <color=#D1AB9A>grant group *groupName* realpve.vip *intValue* *boolValue*(optional)</color> - Grants or extends the specified permission for the specified group for the given number of secondsn<color=#D1CBCB>/tperm</color> <color=#D1AB9A>grant group *groupName* realpve.vip *expirationDate* *assignmentDate*(optional)</color> - Grants or extends the specified permission for the specified group until the given daten<color=#D1CBCB>/tperm</color> <color=#D1AB9A>revoke user *nameOrID* realpve.vip</color> - Revokes the specified permission from the specified playern<color=#D1CBCB>/tperm</color> <color=#D1AB9A>revoke group *groupName* realpve.vip</color> - Revokes the specified permission from the specified groupn<color=#D1CBCB>/tperm</color> <color=#D1AB9A>add *nameOrID* *groupName* wipe</color> - Adds or extends the specified player's membership in the specified group until the end of the current wipen<color=#D1CBCB>/tperm</color> <color=#D1AB9A>add *nameOrID* *groupName* *intValue* *boolValue*(optional)</color> - Adds or extends the specified player's membership in the specified group for the given number of secondsn<color=#D1CBCB>/tperm</color> <color=#D1AB9A>add *nameOrID* *groupName* *expirationDate* *assignmentDate*(optional)</color> - Adds or extends the specified player's membership in the specified group until the given daten<color=#D1CBCB>/tperm</color> <color=#D1AB9A>remove *nameOrID* *groupName*</color> - Removes the specified player from the specified groupnn<color=#D1CBCB>Optional values:</color>n*boolValue* - If false(default) and an existing permission or group membership has not expired, the specified time will be added to the existing time. Otherwise, including when true, the specified time will be counted from the current timen*assignmentDate* - If the assignment date is not specified and there is no existing permission or group membership, the assignment date will be set to the current time. If the assignment date is specified, it will be applied regardless of existing permissions or group membershipsnn--------------------------------------------------",
  "CmdPermissionNotFound": "Permission '{0}' not found!",
  "CmdPlayerNotFound": "Player '{0}' not found! You must provide the player's name or ID.",
  "CmdMultiplePlayers": "Multiple players found for '{0}': {1}",
  "CmdGroupNotFound": "Group '{0}' not found!",
  "CmdGrantWrongFormat": "Incorrect command format! Example: /tperm grant user/group *NameOrId* realpve.vip *secondsOrDateTime*",
  "CmdRevokeWrongFormat": "Incorrect command format! Example: /tperm revoke user/group *NameOrId* realpve.vip",
  "CmdUserGroupWrongFormat": "Incorrect command format! Example: /tperm group add/remove *NameOrId* *groupName*",
  "CmdUserGranted": "Permission '{0}' granted to player '{1}'.",
  "CmdGroupGranted": "Permission '{0}' granted to group '{1}'.",
  "CmdUserGroupAdded": "Player '{0}' has been added to group '{1}'.",
  "CmdUserRevoked": "Permission '{0}' has been revoked for player '{1}'.",
  "CmdGroupRevoked": "Permission '{0}' has been revoked for group '{1}'.",
  "CmdUserGroupRemoved": "Player '{0}' has been removed from group '{1}'.",
  "CmdCheckNoActive": "You have no active temporary permissions or temporary groups!",
  "CmdCheckTargetNoActive": "Player '{0}' has no active temporary permissions or temporary groups!",
  "CmdCheckPermissions": "<color=#D1AB9A>You have {0} temporary permissions(time in UTC):</color>n{1}",
  "CmdCheckGroups": "<color=#D1AB9A>You have {0} temporary groups(time in UTC):</color>n{1}",
  "CmdCheckTargetPermissions": "<color=#D1AB9A>Player '{2}' has {0} temporary permissions(time in UTC):</color>n{1}",
  "CmdCheckTargetGroups": "<color=#D1AB9A>Player '{2}' has {0} temporary groups(time in UTC):</color>n{1}",
  "CmdCheckFormatPermissions": "'{0}' - {1}({2})",
  "CmdCheckFormatGroups": "'{0}' - {1}({2})"
}
RU:
{
  "CmdAdmin": "Доступные админ команды:nn<color=#D1CBCB>/tperm</color> <color=#D1AB9A>grant user *имяИлиАйди* realpve.vip wipe</color> - Выдать или продлить указанный пермишен указанному игроку до конца текущего вайпаn<color=#D1CBCB>/tperm</color> <color=#D1AB9A>grant user *имяИлиАйди* realpve.vip *числовоеЗначение* *булевоеЗначение*(опционально)</color> - Выдать или продлить указанный пермишен указанному игроку на указанное количество секундn<color=#D1CBCB>/tperm</color> <color=#D1AB9A>grant user *имяИлиАйди* realpve.vip *датаИстечения* *датаНазначения*(опционально)</color> - Выдать или продлить указанный пермишен указанному игроку до указанной датыn<color=#D1CBCB>/tperm</color> <color=#D1AB9A>grant group *имяГруппы* realpve.vip wipe</color> - Выдать или продлить указанный пермишен указанной группе до конца текущего вайпаn<color=#D1CBCB>/tperm</color> <color=#D1AB9A>grant group *имяГруппы* realpve.vip *числовоеЗначение* *булевоеЗначение*(опционально)</color> - Выдать или продлить указанный пермишен указанной группе на указанное количество секундn<color=#D1CBCB>/tperm</color> <color=#D1AB9A>grant group *имяГруппы* realpve.vip *датаИстечения* *датаНазначения*(опционально)</color> - Выдать или продлить указанный пермишен указанной группе до указанной датыn<color=#D1CBCB>/tperm</color> <color=#D1AB9A>revoke user *имяИлиАйди* realpve.vip</color> - Снять указанный пермишен у указанного игрокаn<color=#D1CBCB>/tperm</color> <color=#D1AB9A>revoke group *имяГруппы* realpve.vip</color> - Снять указанный пермишен у указанной группыn<color=#D1CBCB>/tperm</color> <color=#D1AB9A>add *имяИлиАйди* *имяГруппы* wipe</color> - Добавить или продлить пребывание в указанной группе указанному игроку до конца текущего вайпаn<color=#D1CBCB>/tperm</color> <color=#D1AB9A>add *имяИлиАйди* *имяГруппы* *числовоеЗначение* *булевоеЗначение*(опционально)</color> - Добавить или продлить пребывание в указанной группе указанному игроку на указанное количество секундn<color=#D1CBCB>/tperm</color> <color=#D1AB9A>add *имяИлиАйди* *имяГруппы* *датаИстечения* *датаНазначения*(опционально)</color> - Добавить или продлить пребывание в указанной группе указанному игроку до указанной датыn<color=#D1CBCB>/tperm</color> <color=#D1AB9A>remove *имяИлиАйди* *имяГруппы*</color> - Отменить пребывание в указанной группе указанному игрокуnn<color=#D1CBCB>Опциональные значения:</color>n*булевоеЗначение* - Если false(по умолчанию) и существующий пермишен или группа не истекли, указанное время будет добавлено к существующему времени. В противном случае, в т.ч. при true, указанное время будет отсчитываться от текущего времениn*датаНазначения* - Если дата назначения не указана и нет существующего пермишена или группы, дата назначения будет равна текущей. Если дата назначения указана, то вне зависимости от существования пермишенов или групп, присвоится указанная датаnn--------------------------------------------------",
  "CmdPermissionNotFound": "Пермишен '{0}' не найден!",
  "CmdPlayerNotFound": "Игрок '{0}' не найден! Вы должны указать имя или ID игрока.",
  "CmdMultiplePlayers": "По значению '{0}' найдено несколько игроков: {1}",
  "CmdGroupNotFound": "Группа '{0}' не найдена!",
  "CmdGrantWrongFormat": "Не верный формат команды! Пример: /tperm grant user/group *имяИлиАйди* realpve.vip *секундыИлиДата*",
  "CmdRevokeWrongFormat": "Не верный формат команды! Пример: /tperm revoke user/group *имяИлиАйди* realpve.vip",
  "CmdUserGroupWrongFormat": "Не верный формат команды! Пример: /tperm group add/remove *имяИлиАйди* *имяГруппы*",
  "CmdUserGranted": "Пермишен '{0}' выдан игроку '{1}'.",
  "CmdGroupGranted": "Пермишен '{0}' выдан группе '{1}'.",
  "CmdUserGroupAdded": "Игрок '{0}' был добавлен в группу '{1}'.",
  "CmdUserRevoked": "Пермишен '{0}' был удален для игрока '{1}'.",
  "CmdGroupRevoked": "Пермишен '{0}' был удален для группы '{1}'.",
  "CmdUserGroupRemoved": "Игрок '{0}' был удален из группы '{1}'.",
  "CmdCheckNoActive": "У вас нет активных временных пермишенов или временных групп!",
  "CmdCheckTargetNoActive": "У игрока '{0}' нет активных временных пермишенов или временных групп!",
  "CmdCheckPermissions": "<color=#D1AB9A>У вас есть {0} временных пермишенов(время по UTC):</color>n{1}",
  "CmdCheckGroups": "<color=#D1AB9A>У вас есть {0} временных групп(время по UTC):</color>n{1}",
  "CmdCheckTargetPermissions": "<color=#D1AB9A>У игрока '{2}' есть {0} временных пермишенов(время по UTC):</color>n{1}",
  "CmdCheckTargetGroups": "<color=#D1AB9A>У игрока '{2}' есть {0} временных групп(время по UTC):</color>n{1}",
  "CmdCheckFormatPermissions": "'{0}' - {1}({2})",
  "CmdCheckFormatGroups": "'{0}' - {1}({2})"
}

Temporary Permissions Temporary Permissions

 

Temporary Permissions Temporary Permissions

  • /myperm – Displays a list of all your temporary permissions and temporary groups;
  • /myperm *NameOrId* – Displays a list of all temporary permissions and temporary groups of the specified player. Permission “temporarypermissions.admin” required.

 

Admin commands(/tperm). Permission “temporarypermissions.admin” required:

  1. grant – Grants a temporary permission to a player or group.
    • user
      • *NameOrId* realpve.vip wipeGrants a temporary permission to a player until the next wipe by specifying the player’s name or Id, the permission name and the word “wipe“;
      • *NameOrId* realpve.vip 3600 true/falseGrants a temporary permission to a player by specifying the player’s name or Id, the permission name, the number of seconds and true/false(optional).
        If false(default) and an existing permission has not expired, the specified time will be added to the existing time. Otherwise, including when true, the specified time will be counted from the current time;
      • *NameOrId* realpve.vip “2024-08-19 17:57” “2024-08-19 16:57”Grants a temporary permission to a player by specifying the player’s name or Id, the permission name, the expiration date and the assigned date(optional).
        If the assignment date is not specified and there is no existing permission, the assignment date will be set to the current time. If the assignment date is specified, it will be applied regardless of existing permissions.
    • group
      • *GroupName* realpve.vip wipeGrants a temporary permission to a group until the next wipe by specifying the group’s name, the permission name and the word “wipe“;
      • *GroupName* realpve.vip 3600 true/falseGrants a temporary permission to a group by specifying the group’s name, the permission name, the number of seconds, and true/false(optional).
        If false(default) and an existing group membership has not expired, the specified time will be added to the existing time. Otherwise, including when true, the specified time will be counted from the current time;
      • *GroupName* realpve.vip “2024-08-19 17:57” “2024-08-19 16:57”Grants a temporary permission to a group by specifying the group’s name, the permission name, the expiration date and the assigned date(optional).
        If the assignment date is not specified and there is no existing group membership, the assignment date will be set to the current time. If the assignment date is specified, it will be applied regardless of existing group memberships.
  2. revoke – Revokes a temporary permission from a player or group.
    • user *NameOrId* realpve.vip – Revokes a temporary permission from a player by specifying the player’s name or Id and the permission name;
    • group *GroupName* realpve.vip – Revokes a temporary permission from a group by specifying the group’s name and the permission name.
  3. add – Temporary addition of a player to a group.
    • *NameOrId* *GroupName* wipe – Temporary addition of a player to a group until the next wipe by specifying the player’s name or Id, the group name and the word “wipe“;
    • *NameOrId* *GroupName* 3600 true/false – Temporary addition of a player to a group by specifying the player’s name or Id, the group name, the number of seconds, and true/false(optional).
      If true, the specified seconds will count from the current moment, otherwise(default), they will be added to the existing time;
    • *NameOrId* *GroupName* “2024-08-19 17:57” “2024-08-19 16:57” – Temporary addition of a player to a group by specifying the player’s name or Id, the group name, the expiration date and the assigned date(optional).
      If not specified, the assigned date will default to the current date, otherwise, it will be set to the provided date.
  4. remove *NameOrId* *GroupName* – Removal of a player from a temporary group by specifying the player’s name or Id and the group name.

Example:

  • /tperm grant user iiiaka realpve.vip wipe
  • /tperm grant user iiiaka realpve.vip 3600 true
  • /tperm grant user iiiaka realpve.vip “2024-08-19 17:57” “2024-08-19 16:57”

Note: To access the commands, the player must be an admin(console or owner) or have the temporarypermissions.admin permission.

P.S. Templates for the commands above can also be used with existing console commands. For example: o.grant user iiiaka realpve.vip 3600 true

 

Temporary Permissions Temporary Permissions

  • OnTemporaryPermissionsLoaded:
    • Called after the TemporaryPermissions plugin is fully loaded and ready.
  • OnTemporaryPermissionGranted:
    • Called after the player has been granted a temporary permission.
  • OnTemporaryPermissionUpdated:
    • Called after the player’s temporary permission has been updated.
  • OnTemporaryPermissionRevoked:
    • Called after the player’s temporary permission has expired or been revoked.
  • OnTemporaryGroupAdded:
    • Called after the player has been temporarily added to the group.
  • OnTemporaryGroupUpdated:
    • Called after the player’s temporary group has been updated.
  • OnTemporaryGroupRemoved:
    • Called after the player’s temporary group has expired or been removed.
  • OnGroupTemporaryPermissionGranted:
    • Called after the group has been granted a temporary permission.
  • OnGroupTemporaryPermissionUpdated:
    • Called after the group’s temporary permission has been updated.
  • OnGroupTemporaryPermissionRevoked:
    • alled after the group’s temporary permission has expired or been revoked.

 

void OnTemporaryPermissionsLoaded(VersionNumber version = default)
{
  Puts("The TemporaryPermissions plugin is loaded and ready to go!");
}

void OnTemporaryPermissionGranted(string userID, string perm, DateTime expireDate, DateTime assignedDate)
{
  Puts($"Player {userID} has been granted the temporary permission {perm} from {assignedDate} until {expireDate}.");
}

void OnTemporaryPermissionUpdated(string userID, string perm, DateTime expireDate, DateTime assignedDate)
{
  Puts($"Player {userID}'s temporary permission {perm} has been updated. New expiration date: {expireDate}. Assigned date: {assignedDate}.");
}

void OnTemporaryPermissionRevoked(string userID, string perm, bool isExpired)
{
  Puts($"Player {userID} has had the temporary permission {perm} revoked. Permission expired: {isExpired}.");
}

void OnTemporaryGroupAdded(string userID, string groupName, DateTime expireDate, DateTime assignedDate)
{
  Puts($"Player {userID} has been added to the temporary group {groupName} from {assignedDate} until {expireDate}.");
}

void OnTemporaryGroupUpdated(string userID, string groupName, DateTime expireDate, DateTime assignedDate)
{
  Puts($"Player {userID}'s temporary group {groupName} has been updated. New expiration date: {expireDate}. Assigned date: {assignedDate}.");
}

void OnTemporaryGroupRemoved(string userID, string groupName, bool isExpired)
{
  Puts($"Player {userID} has had the temporary group {groupName} revoked. Group expired: {isExpired}.");
}

void OnGroupTemporaryPermissionGranted(string groupName, string perm, DateTime expireDate, DateTime assignedDate)
{
  Puts($"Group {groupName} has been granted the temporary permission {perm}, valid from {assignedDate} until {expireDate}.");
}

void OnGroupTemporaryPermissionUpdated(string groupName, string perm, DateTime expireDate, DateTime assignedDate)
{
  Puts($"Group {groupName}'s temporary permission {perm} has been updated. New expiration date: {expireDate}. Assigned date: {assignedDate}.");
}

void OnGroupTemporaryPermissionRevoked(string groupName, string perm, bool isExpired)
{
  Puts($"Group {groupName} has had the temporary permission {perm} revoked. Permission expired: {isExpired}.");
}

Temporary Permissions Temporary Permissions

 

Temporary Permissions Temporary Permissions

[PluginReference]
private Plugin TemporaryPermissions;

Temporary Permissions Temporary Permissions

There are 30 methods:

  • IsReady
  • User’s Permissions:
    • GrantUserPermission
    • RevokeUserPermission
    • UserHasPermission
    • GrantActiveUsersPermission
    • GrantAllUsersPermission
    • RevokeActiveUsersPermission
    • RevokeAllUsersPermission
    • UserGetAllPermissions
    • UserGetPermissionByExpiry
    • UserGetAllPermissionsByExpiry
    • ActiveUsersGetAllPermissions
    • AllUsersGetAllPermissions
  • User’s Groups:
    • AddUserGroup
    • RemoveUserGroup
    • UserHasGroup
    • AddActiveUsersGroup
    • AddAllUsersGroup
    • RemoveActiveUsersGroup
    • RemoveAllUsersGroup
    • UserGetAllGroups
    • ActiveUsersGetAllGroups
    • AllUsersGetAllGroups
  • Group’s Permissions:
    • GrantGroupPermission
    • RevokeGroupPermission
    • GroupHasPermission
    • GrantAllGroupsPermission
    • RevokeAllGroupsPermission
    • GroupGetAllPermissions
    • AllGroupsGetAllPermissions

 

IsReady:
Used to check if the TemporaryPermissions plugin is loaded and ready to work.
The IsReady method returns true if it is ready, or null if it is not.

(bool)TemporaryPermissions?.Call("IsReady");//Calling the IsReady method. If the result is not null(bool true), the plugin is ready.

Temporary Permissions Temporary Permissions

 

GrantUserPermission:
Used to grant a temporary permission to a player.
Returns true if the grant was successful.
To call the GrantUserPermission method, you need to pass 5 parameters, 3 of which are optional:

  1. IPlayer or BasePlayer or <string>playerID – The player object or their Id;
  2. <string>permNameThe name of the permission;
  3. <int>secondsToAdd or <DateTime>expireDate – Optional. The time in seconds to add, or the end date. If a number less than 1 is specified, or if this parameter is not specified, the permission will be valid until the wipe;
  4. <bool>fromNow or <DateTime>assignedDateOptional. true/false to specify whether the seconds should be added to the current date or to the existing time, or an exact assignment date. Defaults to the current date;
  5. <bool>checkExistenceOptional. Whether to check for the existence of the permission.

 

(bool)TemporaryPermissions?.Call("GrantUserPermission", player.UserIDString, "realpve.vip");//Calling the GrantUserPermission method without specifying the third parameter, to grant temporary permission until the wipe.
(bool)TemporaryPermissions?.Call("GrantUserPermission", player.UserIDString, "realpve.vip", 0);//Calling the GrantUserPermission method with the specified number less than 1, to grant temporary permission until the wipe.
(bool)TemporaryPermissions?.Call("GrantUserPermission", player.UserIDString, "realpve.vip", 3600, true, true);//Calling the GrantUserPermission method with the specified number of seconds to add.
(bool)TemporaryPermissions?.Call("GrantUserPermission", player.UserIDString, "realpve.vip", expireDate, assignedDate, true);//Calling the GrantUserPermission method with the specified DateTime for the end and start of the temporary permission.

Temporary Permissions Temporary Permissions

 

RevokeUserPermission:
Used to revoke a temporary permission from a player.
Returns true if the revoke was successful.
To call the RevokeUserPermission method, you need to pass 2 parameters:

  1. IPlayer or BasePlayer or <string>playerID – The player object or their Id;
  2. <string>permNameThe name of the permission.

 

(bool)TemporaryPermissions?.Call("RevokeUserPermission", player.UserIDString, "realpve.vip");

Temporary Permissions Temporary Permissions

 

UserHasPermission:
Used to check if a player has a temporary permission.
Returns true if the player has the specified temporary permission.
To call the UserHasPermission method, you need to pass 2 parameters:

  1. IPlayer or BasePlayer or <string>playerID – The player object or their Id;
  2. <string>permNameThe name of the permission.

 

(bool)TemporaryPermissions?.Call("UserHasPermission", player.UserIDString, "realpve.vip");

Temporary Permissions Temporary Permissions

 

GrantActiveUsersPermission:
Used to temporarily grant a permission to all online players.
Returns the <int>number of successful grants of temporary permissions to players.
To call the GrantActiveUsersPermission method, you need to pass 3 parameters, 2 of which is optional:

  1. <string>permNameThe name of the permission;
  2. <int>secondsToAdd or <DateTime>expireDate – Optional. The time in seconds to add, or the end date. If a number less than 1 is specified, or if this parameter is not specified, the permission will be valid until the wipe;
  3. <bool>fromNow or <DateTime>assignedDateOptional. true/false to specify whether the seconds should be added to the current date or to the existing time, or an exact assignment date. Defaults to the current date.

 

(int)TemporaryPermissions?.Call("GrantActiveUsersPermission", "realpve.vip");// Calling the GrantActiveUsersPermission method without specifying the second parameter, to grant all online players temporary permission until the wipe.
(int)TemporaryPermissions?.Call("GrantActiveUsersPermission", "realpve.vip", 0);//Calling the GrantActiveUsersPermission method with the specified number less than 1, to grant all online players temporary permission until the wipe.
(int)TemporaryPermissions?.Call("GrantActiveUsersPermission", "realpve.vip", 3600, true);//Calling the GrantActiveUsersPermission method with the specified number of seconds to add.
(int)TemporaryPermissions?.Call("GrantActiveUsersPermission", "realpve.vip", expireDate, assignedDate);//Calling the GrantActiveUsersPermission method with the specified DateTime for the end and start of the temporary permission.

Temporary Permissions Temporary Permissions

 

GrantAllUsersPermission:
Used to grant a temporary permission to all players.
Returns the <int>number of successful grants of temporary permissions to players.
To call the GrantAllUsersPermission method, you need to pass 3 parameters, 2 of which is optional:

  1. <string>permNameThe name of the permission;
  2. <int>secondsToAdd or <DateTime>expireDate – Optional. The time in seconds to add, or the end date. If a number less than 1 is specified, or if this parameter is not specified, the permission will be valid until the wipe;
  3. <bool>fromNow or <DateTime>assignedDateOptional. true/false to specify whether the seconds should be added to the current date or to the existing time, or an exact assignment date. Defaults to the current date.

 

(int)TemporaryPermissions?.Call("GrantAllUsersPermission", "realpve.vip");//Calling the GrantAllUsersPermission method without specifying the second parameter, to grant all players temporary permission until the wipe.
(int)TemporaryPermissions?.Call("GrantAllUsersPermission", "realpve.vip", 0);//Calling the GrantAllUsersPermission method with the specified number less than 1, to grant all players temporary permission until the wipe.
(int)TemporaryPermissions?.Call("GrantAllUsersPermission", "realpve.vip", 3600, true);//Calling the GrantAllUsersPermission method with the specified number of seconds to add.
(int)TemporaryPermissions?.Call("GrantAllUsersPermission", "realpve.vip", expireDate, assignedDate);//Calling the GrantAllUsersPermission method with the specified DateTime for the end and start of the temporary permission.

Temporary Permissions Temporary Permissions

 

RevokeActiveUsersPermission:
Used to revoke a temporary permission from all online players.
Returns the <int>number of successful revokes of temporary permissions to players.
To call the RevokeActiveUsersPermission method, you need to pass 1 parameter:

  1. <string>permNameThe name of the permission.

 

(int)TemporaryPermissions?.Call("RevokeActiveUsersPermission", "realpve.vip");

Temporary Permissions Temporary Permissions

 

RevokeAllUsersPermission:
Used to revoke a temporary permission from all players.
Returns the <int>number of successful revokes of temporary permissions to players.
To call the RevokeAllUsersPermission method, you need to pass 1 parameter:

  1. <string>permNameThe name of the permission.

 

(int)TemporaryPermissions?.Call("RevokeAllUsersPermission", "realpve.vip");

Temporary Permissions Temporary Permissions

 

UserGetAllPermissions:
Used to retrieve all temporary permissions of a player.
Returns a Dictionary<string, DateTime[]> where the key is the permission name and the value is an array of 2 DateTimes: the first date is the assignment date and the second date is the expiration date of the permission.
If the expiration date is set to default, it means the permission is valid until the wipe.
To call the UserGetAllPermissions method, you need to pass 1 parameter:

  1. <string>playerID – The player’s Id.

 

(Dictionary<string, DateTime[]>)TemporaryPermissions?.Call("UserGetAllPermissions", player.UserIDString);

Temporary Permissions Temporary Permissions

 

UserGetPermissionByExpiry:
Used to get the expiration date of a player’s temporary permission, considering the temporary permission for the group they may belong to. The latest date is taken.
Returns a DateTime[]: the first date is the assignment date and the second date is the expiration date of the permission.
If the expiration date is set to default, it means the permission is valid until the wipe.
To call the UserGetPermissionByExpiry method, you need to pass 2 parameters:

  1. IPlayer or BasePlayer or <string>playerID – The player object or their Id;
  2. <string>permNameThe name of the permission.

 

(DateTime[])TemporaryPermissions?.Call("UserGetPermissionByExpiry", player.UserIDString, "realpve.vip");

Temporary Permissions Temporary Permissions

 

UserGetAllPermissionsByExpiry:
Used to get the expiration date of all temporary permissions for a player, considering the temporary permissions for the group they may belong to. The latest date is taken.
Returns a Dictionary<string, DateTime[]> where the key is the permission name and the value is an array of 2 DateTimes: the first date is the assignment date and the second date is the expiration date of the permission.
If the expiration date is set to default, it means the permission is valid until the wipe.
To call the UserGetAllPermissionsByExpiry method, you need to pass 1 parameter:

  1. IPlayer or BasePlayer or <string>playerID – The player object or their Id.

 

(Dictionary<string, DateTime[]>)TemporaryPermissions?.Call("UserGetAllPermissionsByExpiry", player.UserIDString);

Temporary Permissions Temporary Permissions

 

ActiveUsersGetAllPermissions:
Used to retrieve all temporary permissions of all online players who have temporary permissions.
Returns a Dictionary<string, Dictionary<string, DateTime[]>> where the key is userID and the value is another Dictionary<string, DateTime[]>, where the key is the permission name and the value is an array of 2 DateTimes: the first date is the assignment date and the second date is the expiration date of the permission.
If the expiration date is set to default, it means the permission is valid until the wipe.

 

(Dictionary<string, Dictionary<string, DateTime[]>>)TemporaryPermissions?.Call("ActiveUsersGetAllPermissions");

Temporary Permissions Temporary Permissions

 

AllUsersGetAllPermissions:
Used to retrieve all temporary permissions of all players who have temporary permissions.
Returns a Dictionary<string, Dictionary<string, DateTime[]>> where the key is userID and the value is another Dictionary<string, DateTime[]>, where the key is the permission name and the value is an array of 2 DateTimes: the first date is the assignment date and the second date is the expiration date of the permission.
If the expiration date is set to default, it means the permission is valid until the wipe.

 

(Dictionary<string, Dictionary<string, DateTime[]>>)TemporaryPermissions?.Call("AllUsersGetAllPermissions");

Temporary Permissions Temporary Permissions

 

AddUserGroup:
Used to temporarily add a player to a group.
Returns true if the addition was successful.
To call the AddUserGroup method, you need to pass 5 parameters, 3 of which are optional:

  1. IPlayer or BasePlayer or <string>playerID – The player object or their Id;
  2. <string>groupNameThe name of the group;
  3. <int>secondsToAdd or <DateTime>expireDate – Optional. The time in seconds to add, or the end date. If a number less than 1 is specified, or if this parameter is not specified, the group will be valid until the wipe;
  4. <bool>fromNow or <DateTime>assignedDateOptional. true/false to specify whether the seconds should be added to the current date or to the existing time, or an exact assignment date. Defaults to the current date;
  5. <bool>checkExistenceOptional. Whether to check for the existence of the group.

 

(bool)TemporaryPermissions?.Call("AddUserGroup", player.UserIDString, "vip");//Calling the AddUserGroup method without specifying the third parameter to temporarily add a player, to a group until the wipe.
(bool)TemporaryPermissions?.Call("AddUserGroup", player.UserIDString, "vip", 0);//Calling the AddUserGroup method with the specified number less than 1, to temporarily add a player to a group until the wipe.
(bool)TemporaryPermissions?.Call("AddUserGroup", player.UserIDString, "vip", 3600, true, true);//Calling the AddUserGroup method with the specified number of seconds to add.
(bool)TemporaryPermissions?.Call("AddUserGroup", player.UserIDString, "vip", expireDate, assignedDate, true);//Calling the AddUserGroup method with the specified DateTime for the end and start of the temporary permission.

Temporary Permissions Temporary Permissions

 

RemoveUserGroup:
Used to remove a temporary group from a player.
Returns true if the removal was successful.
To call the RemoveUserGroup method, you need to pass 2 parameters:

  1. IPlayer or BasePlayer or <string>playerID – The player object or their Id;
  2. <string>groupNameThe name of the group.

 

(bool)TemporaryPermissions?.Call("RemoveUserGroup", player.UserIDString, "vip");

Temporary Permissions Temporary Permissions

 

UserHasGroup:
Used to check if a player has a temporary group.
Returns true if the player has the specified temporary group.
To call the UserHasGroup method, you need to pass 2 parameters:

  1. IPlayer or BasePlayer or <string>playerID – The player object or their Id;
  2. <string>groupNameThe name of the group.

 

(bool)TemporaryPermissions?.Call("UserHasGroup", player.UserIDString, "vip");

Temporary Permissions Temporary Permissions

 

AddActiveUsersGroup:
Used to temporarily add a group to all online players.
Returns the <int>number of successful additions of the temporary group to players.
To call the AddActiveUsersGroup method, you need to pass 3 parameters, 2 of which is optional:

  1. <string>groupNameThe name of the group;
  2. <int>secondsToAdd or <DateTime>expireDate – Optional. The time in seconds to add, or the end date. If a number less than 1 is specified, or if this parameter is not specified, the group will be valid until the wipe;
  3. <bool>fromNow or <DateTime>assignedDateOptional. true/false to specify whether the seconds should be added to the current date or to the existing time, or an exact assignment date. Defaults to the current date.

 

(int)TemporaryPermissions?.Call("AddActiveUsersGroup", "vip");//Calling the AddActiveUsersGroup method without specifying the second parameter to temporarily add all online players to a group until the wipe.
(int)TemporaryPermissions?.Call("AddActiveUsersGroup", "vip", 0);//Calling the AddActiveUsersGroup method with the specified number less than 1, to temporarily add all online players to a group until the wipe.
(int)TemporaryPermissions?.Call("AddActiveUsersGroup", "vip", 3600, true);//Calling the AddActiveUsersGroup method with the specified number of seconds to add.
(int)TemporaryPermissions?.Call("AddActiveUsersGroup", "vip", expireDate, assignedDate);//Calling the AddActiveUsersGroup method with the specified DateTime for the end and start of the temporary permission.

Temporary Permissions Temporary Permissions

 

AddAllUsersGroup:
Used to temporarily add a group to all players.
Returns the <int>number of successful additions of the temporary group to players.
To call the AddAllUsersGroup method, you need to pass 3 parameters, 2 of which is optional:

  1. <string>groupNameThe name of the group;
  2. <int>secondsToAdd or <DateTime>expireDate – Optional. The time in seconds to add, or the end date. If a number less than 1 is specified, or if this parameter is not specified, the group will be valid until the wipe;
  3. <bool>fromNow or <DateTime>assignedDateOptional. true/false to specify whether the seconds should be added to the current date or to the existing time, or an exact assignment date. Defaults to the current date.

 

(int)TemporaryPermissions?.Call("AddAllUsersGroup", "vip");//Calling the AddAllUsersGroup method without specifying the second parameter to temporarily add all players to a group until the wipe.
(int)TemporaryPermissions?.Call("AddAllUsersGroup", "vip", 0);//Calling the AddAllUsersGroup method with the specified number less than 1, to temporarily add all players to a group until the wipe.
(int)TemporaryPermissions?.Call("AddAllUsersGroup", "vip", 3600, true);//Calling the AddAllUsersGroup method with the specified number of seconds to add.
(int)TemporaryPermissions?.Call("AddAllUsersGroup", "vip", expireDate, assignedDate);//Calling the AddAllUsersGroup method with the specified DateTime for the end and start of the temporary permission.

Temporary Permissions Temporary Permissions

 

RemoveActiveUsersGroup:
Used to remove a temporary group from all online players.
Returns the <int>number of successful removals of temporary groups from players.
To call the RemoveActiveUsersGroup method, you need to pass 1 parameter:

  1. <string>groupNameThe name of the group.

 

(int)TemporaryPermissions?.Call("RemoveActiveUsersGroup", "vip");

Temporary Permissions Temporary Permissions

 

RemoveAllUsersGroup:
Used to remove a temporary group from all players.
Returns the <int>number of successful removals of temporary groups from players.
To call the RemoveAllUsersGroup method, you need to pass 1 parameter:

  1. <string>permNameThe name of the permission.

 

(int)TemporaryPermissions?.Call("RemoveAllUsersGroup", "vip");

Temporary Permissions Temporary Permissions

 

UserGetAllGroups:
Used to retrieve all temporary groups of a player.
Returns a Dictionary<string, DateTime[]> where the key is the group name and the value is an array of 2 DateTimes: the first date is the assignment date and the second date is the expiration date of the group.
If the expiration date is set to default, it means the group is valid until the wipe.
To call the UserGetAllGroups method, you need to pass 1 parameter:

  1. <string>permNameThe name of the permission.

 

(Dictionary<string, DateTime[]>)TemporaryPermissions?.Call("UserGetAllGroups", player.UserIDString);

Temporary Permissions Temporary Permissions

 

ActiveUsersGetAllGroups:
Used to retrieve all temporary groups of all online players who have temporary groups.
Returns a Dictionary<string, Dictionary<string, DateTime[]>> where the key is userID and the value is another Dictionary<string, DateTime[]>, where the key is the group name and the value is an array of 2 DateTimes: the first date is the assignment date and the second date is the expiration date of the group.
If the expiration date is set to default, it means the group is valid until the wipe.

 

(Dictionary<string, Dictionary<string, DateTime[]>>)TemporaryPermissions?.Call("ActiveUsersGetAllGroups");

Temporary Permissions Temporary Permissions

 

AllUsersGetAllGroups:
Used to retrieve all temporary groups of all players who have temporary groups.
Returns a Dictionary<string, Dictionary<string, DateTime[]>> where the key is userID and the value is another Dictionary<string, DateTime[]>, where the key is the group name and the value is an array of 2 DateTimes: the first date is the assignment date and the second date is the expiration date of the group.
If the expiration date is set to default, it means the group is valid until the wipe.

 

(Dictionary<string, Dictionary<string, DateTime[]>>)TemporaryPermissions?.Call("AllUsersGetAllGroups");

Temporary Permissions Temporary Permissions

 

GrantGroupPermission:
Used to grant a temporary permission to a group.
Returns true if the grant was successful.
To call the GrantGroupPermission method, you need to pass 5 parameters, 3 of which are optional:

  1. <string>groupNameThe name of the group;
  2. <string>permNameThe name of the permission;
  3. <int>secondsToAdd or <DateTime>expireDate – Optional. The time in seconds to add, or the end date. If a number less than 1 is specified, or if this parameter is not specified, the permission will be valid until the wipe;
  4. <bool>fromNow or <DateTime>assignedDateOptional. true/false to specify whether the seconds should be added to the current date or to the existing time, or an exact assignment date. Defaults to the current date;
  5. <bool>checkExistenceOptional. Whether to check for the existence of the permission.

 

(bool)TemporaryPermissions?.Call("GrantGroupPermission", "vip", "realpve.vip");//Calling the GrantGroupPermission method without specifying the third parameter, to grant temporary permission until the wipe.
(bool)TemporaryPermissions?.Call("GrantGroupPermission", "vip", "realpve.vip", 0);//Calling the GrantGroupPermission method with the specified number less than 1, to grant temporary permission until the wipe.
(bool)TemporaryPermissions?.Call("GrantGroupPermission", "vip", "realpve.vip", 3600, true, true);//Calling the GrantGroupPermission method with the specified number of seconds to add.
(bool)TemporaryPermissions?.Call("GrantGroupPermission", "vip", "realpve.vip", expireDate, assignedDate, true);//Calling the GrantGroupPermission method with the specified DateTime for the end and start of the temporary permission.

Temporary Permissions Temporary Permissions

 

RevokeGroupPermission:
Used to revoke a temporary permission from a group.
Returns true if the revoke was successful.
To call the RevokeGroupPermission method, you need to pass 2 parameters:

  1. <string>groupNameThe name of the group;
  2. <string>permNameThe name of the permission.

 

(bool)TemporaryPermissions?.Call("RevokeGroupPermission", "vip", "realpve.vip");

Temporary Permissions Temporary Permissions

 

GroupHasPermission:
Used to check if a group has a temporary permission.
Returns true if the group has the specified temporary permission.
To call the GroupHasPermission method, you need to pass 2 parameters:

  1. <string>groupNameThe name of the group;
  2. <string>permNameThe name of the permission.

 

(bool)TemporaryPermissions?.Call("GroupHasPermission", "vip", "realpve.vip");

Temporary Permissions Temporary Permissions

 

GrantAllGroupsPermission:
Used to temporarily grant a permission to all groups.
Returns the <int>number of successful grants of temporary permissions to groups.
To call the GrantAllGroupsPermission method, you need to pass 3 parameters, 2 of which is optional:

  1. <string>permNameThe name of the permission;
  2. <int>secondsToAdd or <DateTime>expireDate – Optional. The time in seconds to add, or the end date. If a number less than 1 is specified, or if this parameter is not specified, the permission will be valid until the wipe;
  3. <bool>fromNow or <DateTime>assignedDateOptional. true/false to specify whether the seconds should be added to the current date or to the existing time, or an exact assignment date. Defaults to the current date.

 

(int)TemporaryPermissions?.Call("GrantAllGroupsPermission", "realpve.vip");//Calling the GrantAllGroupsPermission method without specifying the second parameter, to grant all groups temporary permission until the wipe.
(int)TemporaryPermissions?.Call("GrantAllGroupsPermission", "realpve.vip", 0);//Calling the GrantAllGroupsPermission method with the specified number less than 1, to grant all groups temporary permission until the wipe.
(int)TemporaryPermissions?.Call("GrantAllGroupsPermission", "realpve.vip", 3600, true);//Calling the GrantAllGroupsPermission method with the specified number of seconds to add.
(int)TemporaryPermissions?.Call("GrantAllGroupsPermission", "realpve.vip", expireDate, assignedDate);//Calling the GrantAllGroupsPermission method with the specified DateTime for the end and start of the temporary permission.

Temporary Permissions Temporary Permissions

 

RevokeAllGroupsPermission:
Used to revoke a temporary permission from all groups.
Returns the <int>number of successful revokes of temporary permissions to groups.
To call the RevokeAllGroupsPermission method, you need to pass 1 parameter:

  1. <string>permNameThe name of the permission.

 

(int)TemporaryPermissions?.Call("RevokeAllGroupsPermission", "realpve.vip");

Temporary Permissions Temporary Permissions

 

GroupGetAllPermissions:
Used to retrieve all temporary permissions of a group.
Returns a Dictionary<string, DateTime[]> where the key is the permission name and the value is an array of 2 DateTimes: the first date is the assignment date and the second date is the expiration date of the permission.
If the expiration date is set to default, it means the permission is valid until the wipe.
To call the GroupGetAllPermissions method, you need to pass 1 parameter:

  1. <string>groupNameThe name of the group.

 

(Dictionary<string, DateTime[]>)TemporaryPermissions?.Call("GroupGetAllPermissions", "vip");

Temporary Permissions Temporary Permissions

 

AllGroupsGetAllPermissions:
Used to retrieve all temporary permissions of all groups that have temporary permissions.
Returns a Dictionary<string, Dictionary<string, DateTime[]>> where the key is the group name and the value is another Dictionary<string, DateTime[]>, where the key is the permission name and the value is an array of 2 DateTimes: the first date is the assignment date and the second date is the expiration date of the permission.
If the expiration date is set to default, it means the permission is valid until the wipe.

 

(Dictionary<string, Dictionary<string, DateTime[]>>)TemporaryPermissions?.Call("AllGroupsGetAllPermissions");

Temporary Permissions Temporary Permissions

Reviews

There are no reviews yet.


Only logged in customers who have purchased this product may leave a review.

Version 0.1.4 | Updated March 10, 2025
  • Updated Reworked the processing of the /tperm command;
  • Added Added a user command /myperm, allowing players to check their temporary permissions and temporary groups. Admins can specify a player;
  • Added Added the ability to specify players by providing a partial ID or name(for chat commands);
  • Added Added new API methods: UserGetAllPermissionsByExpiry and GetUserPermissionByExpiry;
  • Fixed ther minor changes and code improvements.
  • Fixed Removal of a missed unnecessary condition
Version 0.1.3 | Updated February 7, 2025
  • Fixed Fixed an issue where 'Until Wipe' permissions and groups were removed but not revoked from players upon wipe detection. This happened when the last config property responsible for deleting all temporary permissions and groups (not just 'Until Wipe') was enabled;
  • Updated Renamed config file properties to more intuitive names, as some users found them unclear;
  • Added Added the ability to save logs to a file.
Version 0.1.2 | Updated January 4, 2025
  • Fixed Fixed a bug related to case sensitivity in permission and group names
  • Updated Other minor changes and improvements
Version 0.1.1 | Updated November 25, 2024
  • Added Initial release

Discussions

There are no discussions yet.

Leave a reply

Your email address will not be published. Required fields are marked *

Plugin FAQ – How do I use this .zip/.7z file I just purchased on my server?

• First, you want to unzip the file. You can do so by just double-clicking it to open, then drag the contents to the desired location (you may need to install an external unzipping software if you don’t already have one such as 7zip or winrar)
• Next you will find either a structure of folders or just the .cs file itself (it’s the actual plugin file itself).
• After that just install the .cs (plugin file) into your …/oxide/plugins/ folder where you will install plugins you ever need to.

Additionally, here’s a great video that easily covers adding a plugin to your server if you need! https://youtu.be/yWC_p97FhQA

• Installation is not included with any products on the site, however, if needed we may assist if you reach out to our support.

Currently all products on Lone.Design will be contained within a zipped file which is the .7z or .zip that you see. I believe windows 10 and up can unzip on its own without 3rd party tools, but in that case, if you’re unfamiliar with zipped files here are 2 programs I recommend to easily unzip zipped files.

Video On How to Zip and Unzip: https://youtu.be/Ep-L3PjBPCk (TechInsider Youtube Channel)

Zipping/Unzipping Tools
Winrar https://www.rarlab.com (I used to use for years, but works great!)
7zip https://www.7-zip.org/a/7z2107-x64.exe (the one I use currently)

Product Enquiry

Please Login to make enquiry about this product