Features
Time-limited permission based on real time (Similar features to the TimedPermission plug-in)
Time-limited permission based on play time (Requires PlaytimeTracker Plug-in)
Automatically remove permission if the user does not connect to the server for a period of time
Manage multiple permission in one item
GUI Visualized Permission
About EffectThread
This plug-in provides a new way to give you a permission.
I decided to wrap the "permission" once because I had to add a property value to the existing "permission."It's EffectThread that rapped "permission."
EffectThread has the following properties:
multiple permission
Colors displayed in the GUI
Type of duration and duration
The value that determines if "EffectThread" is disabled a few seconds after the player disconnects.
As soon as EffectThread is given to the Player, "Permission" in EffectThread is also granted to the user
Then, items 3 and 4 determine when EffectThread will be removed from player.
There are three types of EffectThread duration: RealTime, Playtime, and No.
RealTime based duration EffectThread is will be removed when the time of the real world has elapsed.
PlayTime based duration EffectThread is will be removed when the player fills a specific time on the server.
An effect without time limit exists permanently until manually released
Permissions
This plugin uses the permission system. To assign a permission, use oxide.grant <user or group> <name or steam id> <permission>. To remove a permission, use oxide.revoke <user or group> <name or steam id> <permission>.
permissioneffects.admin -- Allows player to use the /eps command
Admin Commands
/eps add <user/group> <playername/groupname> <effectthread> -- add effect to player/group
/eps remove <user/group> <playername/groupname> <effectthread> -- remove effect from player/group
/eps removeall <user/group> <playername/groupname> -- remove all effect from player/group
/eps reset <user/group/all> -- reset players/groups thread data
/eps thread add <threadname> <threadcolor> <permission1,permission2,...> <sec> <rt/pt> <DisconnExpireSec> -- register thread
/eps thread remove <threadname> -- unregister thread
/eps rlist -- Check Registered Thread
/eps plist -- Check Players Thread
/eps glist -- Check Groups Thread
/eps pt <player> -- Check Player Thread
Add effectthread examples
ex)/eps thread add "Restore Upon Death" green restoreupondeath.admin 3600 pt 7200 -- Create EffectThread with restoreupondeath.admin permission of RestoreUponDeath plug-in. Based on playtime(pt) and has a duration of 1hour(3,600 seconds). remove after 2 hours(7200 seconds) of disconnection, GUI shown in green
ex2)/eps thread add "Loot Protection" #FF6C6C sleeperguard.damageprotection,sleeperguard.lootprotection 3600 rt 0 -- Create EffectThread with sleeperguard.damageprotection and sleeperguard.lootprotection permission of SleeperGuard plug-in. Based on realtime(rt) and has a duration of 1hour(3,600 seconds). Automatic release after certain hours after disconnecting is disabled(0), GUI shown in #FF6C6C(light red)
ex3)/eps thread add "NPC Targeting Disable" blue donttargetme.playernpc,donttargetme.npc 0 rt 0 -- Create EffectThread with donttargetme.playernpc and donttargetme.npc permission of DontTargetMe plug-in. The time limit is unlimited(0). Automatic release after certain hours after disconnecting is disabled(0), GUI shown in blue

An example of EffectThread applied
The plugin player data are stored in data/PermissionEffects/PlayerData.json. You must use the command "/eps reset" to reset this file
The plugin UI data are stored in data/PermissionEffects/PlayerGUIData.json. Erasing this file will reset the user's UItoggle and page information.
Time-limited permission based on real time (Similar features to the TimedPermission plug-in)
Time-limited permission based on play time (Requires PlaytimeTracker Plug-in)
Automatically remove permission if the user does not connect to the server for a period of time
Manage multiple permission in one item
GUI Visualized Permission
About EffectThread
This plug-in provides a new way to give you a permission.
I decided to wrap the "permission" once because I had to add a property value to the existing "permission."It's EffectThread that rapped "permission."
EffectThread has the following properties:
multiple permission
Colors displayed in the GUI
Type of duration and duration
The value that determines if "EffectThread" is disabled a few seconds after the player disconnects.
As soon as EffectThread is given to the Player, "Permission" in EffectThread is also granted to the user
Then, items 3 and 4 determine when EffectThread will be removed from player.
There are three types of EffectThread duration: RealTime, Playtime, and No.
RealTime based duration EffectThread is will be removed when the time of the real world has elapsed.
PlayTime based duration EffectThread is will be removed when the player fills a specific time on the server.
An effect without time limit exists permanently until manually released
Permissions
This plugin uses the permission system. To assign a permission, use oxide.grant <user or group> <name or steam id> <permission>. To remove a permission, use oxide.revoke <user or group> <name or steam id> <permission>.
permissioneffects.admin -- Allows player to use the /eps command
Admin Commands
/eps add <user/group> <playername/groupname> <effectthread> -- add effect to player/group
/eps remove <user/group> <playername/groupname> <effectthread> -- remove effect from player/group
/eps removeall <user/group> <playername/groupname> -- remove all effect from player/group
/eps reset <user/group/all> -- reset players/groups thread data
/eps thread add <threadname> <threadcolor> <permission1,permission2,...> <sec> <rt/pt> <DisconnExpireSec> -- register thread
/eps thread remove <threadname> -- unregister thread
/eps rlist -- Check Registered Thread
/eps plist -- Check Players Thread
/eps glist -- Check Groups Thread
/eps pt <player> -- Check Player Thread
Add effectthread examples
ex)/eps thread add "Restore Upon Death" green restoreupondeath.admin 3600 pt 7200 -- Create EffectThread with restoreupondeath.admin permission of RestoreUponDeath plug-in. Based on playtime(pt) and has a duration of 1hour(3,600 seconds). remove after 2 hours(7200 seconds) of disconnection, GUI shown in green
ex2)/eps thread add "Loot Protection" #FF6C6C sleeperguard.damageprotection,sleeperguard.lootprotection 3600 rt 0 -- Create EffectThread with sleeperguard.damageprotection and sleeperguard.lootprotection permission of SleeperGuard plug-in. Based on realtime(rt) and has a duration of 1hour(3,600 seconds). Automatic release after certain hours after disconnecting is disabled(0), GUI shown in #FF6C6C(light red)
ex3)/eps thread add "NPC Targeting Disable" blue donttargetme.playernpc,donttargetme.npc 0 rt 0 -- Create EffectThread with donttargetme.playernpc and donttargetme.npc permission of DontTargetMe plug-in. The time limit is unlimited(0). Automatic release after certain hours after disconnecting is disabled(0), GUI shown in blue

An example of EffectThread applied
Player Commands
- /effect -- Check Your EffectThread
Configuration
The settings and options can be configured in the PermissionEffects file under the config directory. The use of an editor and validator is recommended to avoid formatting issues and syntax errors.- DisconnectDetectTimerInterval -- The frequency with which the timer is operated to measure the user's lost connection time (the lower the value, the more accurate it is).
- EffectCommand -- Modify /effect command
- 'EPSCommand` -- Modify /eps command
- TimeLimitTimerInterval -- The frequency with which the timer is operated to measure the time limit of the permission (the lower the value, the more accurate it is).
- UIUpdateTimerInterval -- The frequency with which the timer update GUI (the lower the value, the more accurate it is).
- use_BroadCast -- When a user or group receives a "permission" through this plug-in, Decide if you want to broadcast a message that you received "permission"
- use_ConsoleMessage -- When a user or group receives a "permission" through this plug-in, Decide whether to output messages received "permission" to the console
- use_Message -- This option determines whether the user is notified by message when the user has permission.
- UIPosions -- This option is the value of the UI position and the number 10, 8 and 6 means different values depending on UIScale. The UI size is configured to respond to users with different UI sizes, and the basic UI size is 10.
- ConfigVersion -- It's for config update. Never mind.
Stored Data
The plugin group data are stored in data/PermissionEffects/GroupData.json. You must use the command "/eps reset" to reset this fileThe plugin player data are stored in data/PermissionEffects/PlayerData.json. You must use the command "/eps reset" to reset this file
The plugin UI data are stored in data/PermissionEffects/PlayerGUIData.json. Erasing this file will reset the user's UItoggle and page information.