SpigotMC Plugin PermissionTimer 6.4.2

You must be signed in and/or upgrade to VIP to download this resource
Tested Minecraft Versions:
1.7, 1.8, 1.9, 1.10, 1.11, 1.12
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.
  • /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
    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.
  • permissiontimer, ptimer
  • permissiontimer.reload : allows you to use /ptimer reload
  • allows you to use /ptimer info command
  • permissiontimer.admin: allows you to use /ptimer give and remove command
You can customise
  • common name of a permission node, for instance "fly" for "",
  • limit the number of times a player can use a permission,
  • duration/expiration of a permission,
  • messages for each permission given/removed.
in the
# This is a template config file
msg: "=== &e[&aPermissionTimer Commands List (%version%)&e] &r==="
msg: "/ptimer or /ptimer help : display this help menu."
msg: "/ptimer reload : Reload config.yml file."
permission: "permissiontimer.reload"
msg: "/ptimer info [name] : Display your (or [name]'s) time-based permissions."
permission: ""
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"
msg: "/ptimer remove <name> <perm> : Removes the permission <perm> from <name>."
permission: "permissiontimer.admin"
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:
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
expire: 24h
limit: 5
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"
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.

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"
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

Put PermissionTimer.jar in the plugins folder.

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

Example Usage:
  • Code:
    /ptimer give TestUser fly time:10m
    will give the user "TestUser" the Essential permission "" for 10 minutes.
  • Code:
    /ptimer give TestUser VIP 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:
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.
First release
Last update
0.00 star(s) 0 ratings

Share this resource

Latest updates

  1. updated the default config.yml

    updated the default config.yml
  2. built against the latest VKLib.

    built against the latest VKLib.