PermissionTimer

 PermissionTimer 6.7.1

PermissionTimer
Tested Minecraft Versions:
  • 1.7
  • 1.8
  • 1.9
  • 1.10
  • 1.11
  • 1.12
  • 1.13
  • 1.14
  • 1.15
  • 1.16
This plugin allow server owners to issue time-based permission / rank to players. Time-based permissions/rank can be used as
  • voting rewards (any servers in general)
  • pvp rewards (PvP, Faction, KitPvP servers)
  • mining rewards (Prison Servers), etc.
The time-based permission/rank will automatically expire after the duration specified at the time of issuing the permission/rank. You can use any existing permission nodes /ranks with this plugin to make them time-based. You can also specify whether time is counted only while a player is online or even when they are offline.

Doesn't permission plugin like PermissionsEx have timer feature?
Yes, and if it's working for you, you would not need this plugin. However, if it's not working as you wanted or if your permission plugin does not have timer based permission/rank feature, this plugin is for you.

With this plugin, even if the server shuts down/restart/crash, timer information is still kept safe and when the server resumes the timer will resume counting down. Also, timer will be monitored for offline players too. And expired permissions/ranks are re-checked at the time of player login to make sure they are indeed expired.

Test Server:
  • Please contact me to get test server information.
Commands:
  • /ptimer help : displays a help menu
  • /ptimer reload : reloads the config.yml
  • /ptimer info [name] : Display your (or [name]'s) time-based permissions.
  • /ptimer give <name> <common-perm-name|rank> [perm
    :p
    ermission-node] [time:duration] [world:worldname] [online:{true|false}]: Gives <name> a permission <common-perm-name> or a rank <rank>. If [node] and [duration] are not specified, the <common-perm-name|rank> specified in the config.yml will be used. If a player already has a specified timed-permission, the specified time will be added to the existing time.
  • /ptimer remove <name> <common-perm-name | rank> : Removes the permission <common-perm-name> or the rank <rank> from <name>.
  • /ptimer giveaway <name> <common-perm-name | rank> : Stop the timer for this particular permission|rank and give it to the player.
Aliases:
  • permissiontimer, ptimer
Permissions:
  • permissiontimer.reload : allows you to use /ptimer reload
  • permissiontimer.info: allows you to use /ptimer info command
  • permissiontimer.admin: allows you to use /ptimer give and remove command
Configuration:
You can customise
  • common name of a permission node, for instance "fly" for "essentials.fly",
  • limit the number of times a player can use a permission,
  • duration/expiration of a permission,
  • messages for each permission given/removed.
in the
Spoiler: config.yml
config.yml
Code (Text):

# This is a template config file
HelpMessages:
banner:
msg: "=== &e[&aPermissionTimer Commands List (%version%)&e] &r==="
help:
msg: "/ptimer or /ptimer help : display this help menu."
reload:
msg: "/ptimer reload : Reload config.yml file."
permission: "permissiontimer.reload"
info:
msg: "/ptimer info [name] : Display your (or [name]'s) time-based permissions."
permission: "permissiontimer.info"
give:
msg: "/ptimer give <name> <perm|rank> [perm:perm_node] [time:duration] [world:worldname] [cost:$$$] [online:{true|false}] : Gives <name> a permisison <perm> or a rank <rank>."
permission: "permissiontimer.admin"
remove:
msg: "/ptimer remove <name> <perm> : Removes the permission <perm> from <name>."
permission: "permissiontimer.admin"
giveaway:
msg: "/ptimer giveaway <name> <perm|rank> : Gives <name> a permisison <perm> or a rank <rank>, that <name> currently has (this will cancel expiry without removing the permission/rank)."
permission: "permissiontimer.admin"

# define your parameter and its value like:
Messages:
error_msg : "&c [PermTimer] : Some error occured."
NoPermissionMsg : "&2[&aPermTimer&2]&r You do not have permission for this command."
NotEnoughArgsMsg : "&2[&aPermTimer&2]&r Not enough arguments supplied."
YouDontHaveMsg : "&2[&aPermTimer&2]&r You currently do not have any time-based permissions."
PlayerDoesNotHaveMsg : "&2[&aPermTimer&2]&r The player (&6%player%&r) currently does not have any time-based permissions."
YouHaveFollowingMsg : "&2[&aPermTimer&2]&r You currently have the following time-based permissions:"
PlayerHasFollowingMsg : "&2[&aPermTimer&2]&r The player (&6%player%&r) currently has the following time-based permissions:"
PermExpirationDateMsg : "&2[&aPermTimer&2]&r %type% %commonname% expires in %expires%."
YourPermExpiredMsg : "&2[&aPermTimer&2]&r %commonname% for %player% has expired."
IllegalDataFormatMsg : "&cIllegal Data Format."
UserLimitReachedMsg : "&2[&aPermTimer&2]&r You have reached the maximum number of time you can use this permission!"
GivenToMsg : "&2[&aPermTimer&2]&r The permission &6%commonname%&r has been added to the player (&6%player%&r), and it will expire in &d%expires%&r."
PermissionRemovedFromMsg : "&2[&aPermTimer&2]&r The permission (&6%commonname%&r) has been removed from the player (&6%player%&r)."
PermissionGivenToMsg : "&2[&aPermTimer&2]&r The permission (&6%commonname%&r) has been given to the player (&6%player%&r)."
#
#
# if the following is true, expired permission will also be listed
# with /ptimer info command
DisplayExpired: false
#
#
#
Permissions:
fly:
expire: 24h
limit: 5
permission: essentials.fly
given_msg: "&2[&aPTimer&2]&r You've been given a permission to use &6%commonname%&r, and it will expire in &d%expires%&r."
expire_msg: "&2[&aPTimer&2]&r Your permission &6%commonname%&r has just expired."
limit_msg: "&2[&aPTimer&2]&r You've exceeded the limit."
pre_cmd:
- "fly %player% on"
post_cmd:
- "fly %player% off"
test2:
expire: 12h
limit: 2
permission: what.ever.permission2
online: true. #if this option is true, timer will be counted only when a player is online.

Ranks:
Dev:
expire: 3m
limit: 1
given_msg: "&2[&aPTimer&2]&r You've been given a rank &6%commonname%&r in &\
6%world%&r, and it will expire in &d%expires%&r."
expire_msg: "&2[&aPTimer&2]&r Your rank &6%commonname%&r has just expired."
limit_msg: "&2[&aPTimer&2]&r You've exceeded the limit."
world: "prison"
Tester:
expire: 3h
limit: 1
given_msg: "&2[&aPTimer&2]&r You've been given a rank &6%commonname%&r in &\
6%world%&r, and it will expire in &d%expires%&r."
expire_msg: "&2[&aPTimer&2]&r Your rank &6%commonname%&r has just expired."
limit_msg: "&2[&aPTimer&2]&r You've exceeded the limit."
world: "testworld"
online: true



Installation:
Put PermissionTimer.jar in the plugins folder.

Dependency:
Vault (you need this to interface PermissionTimer and your permission plugin)

Example Usage:
  • Code (Text):
    /ptimer give TestUser fly perm:essentials.fly time:10m
    will give the user "TestUser" the Essential permission "essentials.fly" for 10 minutes.
  • Code (Text):
    /ptimer give TestUser VIP time:1d
    will give the user "TestUser" the "VIP" rank for 1 day.
For Developers:
You can access player's timer-based permissions/ranks informaiton through its public methods:
Code (Text):

import com.vk2gpz.permissiontimer.PermissionTimer;
...
public PermissionTimer getPermissionTimer() {
Plugin plugin = Bukkit.getServer().getPluginManager().getPlugin("PermissionTimer");
if ((plugin == null) || (!(plugin instance PermissionTimer)) {
return null;
}
return (PermissionTimer)plugin;
}
....
PermissionTimer ptimer = getPermissionTimer();
....
Map<String, Long> perm_rank_list = ptimer.getPermissions(player); //player can be OfflinePlayer
for (String perm_rank : perm_rank_list.keySet()) {
long expires = perm_rank_list.get(key);
// do your own process here.
}
...
License:

Spoiler: Software License
License for PermissionTimer

License Summary
* Commercial use allowed
* Cannot modify source-code nor binary-code for any purpose (cannot create derivative works)
* Attribution to software creator must be made as specified:
* Licensee must clearly state where you obtained this piece of software form
* Additional terms: Do not reverse engineer this software including decompiling of the distributed code.

Similar resources

PermissionTimer BlackSpigot.com
Great for making a EULA compliant server! Grant a permission/rank with time limit!
5.00 star(s) 2 ratings
Downloads
332
Updated
PermissionTimer K
Great for making a EULA compliant server! Grant a permission/rank with time limit!
5.00 star(s) 2 ratings
Downloads
439
Updated
PermissionTimer BSMC Admin
Great for making a EULA compliant server! Grant a permission/rank with time limit!
5.00 star(s) 2 ratings
Downloads
324
Updated
BlackSpigot General Chat
Rules Help Users
    RealNotSound @ RealNotSound: With what?
    Top