Show message when using a warp that is about to expire
Number of days configurable
Configure whether only the owner or all players see the message
Warp limiter
Allows per permission limits for the amount of warps allowed for each player
See config section for more info
/iwarp create <warpname> <days> - Create a warp
If the player has the permission iwarp.command.create, a warp with <warpname> does not already exist, and the player has createcost + (renewcost * days) money, a warp will be created. Then, createcost + (renewcost * days) will be removed from their balance.
/iwarp renew <warpname> <days> - Renew a warp
If the user has the permission iwarp.command.renew, <days>*renewcost money, add <days> days to the warp’s expiration and take renewcost*days amount of money from the user. This command can be used by people who do not own that warp.
/iwarp move <warpname> - Move a warp to your current location
If the player has the permission iwarp.command.move, the player owns the warp, and the player has movecost money, then the warp will be moved to the current location of the player and movecost will be removed from their balance.
/iwarp rename <oldname> <newname> - Rename a warp
If the player has the permission iwarp.command.rename, owns the warp, a warp with <newname> does not already exist, and the player has renamecost money, then the warp will be renamed to <newname> and renamecost will be removed from their balance.
/iwarp transfer <warpname> <newowner> - Transfer ownership of a warp
If the player has the permission iwarp.command.transfer, owns the warp and the player has transfercost money, the warp will be transferred to the new owner. Then, transfercost will be removed from their balance.
/iwarp list <playername> - List all warps owned by a player
Permission: iwarp.command.list
/iwarp info <warpname> - Show information about a warp
Shows who owns a warp and when it will expire. Permission: iwarp.command.info
/iwarp help - Show a list of /iwarp commands
Permission: iwarp.command
/iwarp reload -Reload config.yml as well as iwarps.yml
Permission: iwarp.command.reload (defaults to OP)
/iwarp changeexpiration <warpname> <time> - Change the expiration time of a warp
Permission: iwarp.command.changeexpiration (defaults to OP)
Not tab-completable
/iwarp arename <oldname> <newname> - Change the name of a warp free of charge
Permission: iwarp.command.adminrename (defaults to OP)
AddOn commands:
save-expired-warp-locations addon (configurable in config)
/iwarpaddons prevlov <warpname> - Show list of previous locations of warp
Permission: iwarp.addons
Aliases: /iwa, /iwarpa
Code (Text):
Permission Children Descrpition
iwarp.command None Gives access to the main command
iwarp.command.create None Allow creating warps
iwarp.command.renew None Allow renewing warps
iwarp.command.move None Allow creating warps
iwarp.command.rename None Allow renaming warps
iwarp.command.adminrename None Allow renaming a warp free of charge
iwarp.command.transfer None Allow transferring warps
iwarp.command.list None Allow seeing the list of warps warps
iwarp.command.info None Allow seeing warp info (owner and expiry time)
iwarp.command.reload None Allow seeing reloading the plugin configs
iwarp.command.changeexpiration None Allow changing expiration of others warps
iwarp.addons None Allow using the addons command
iwarp.limits.default None Allow the default number of warps for this player (if addon enabled)
iwarp.limits.override None Allow any number of warps for this player (if addon enabled)
Code (YAML):
createcost: 100
renewcost: 10
movecost: 20
renamecost: 20
transfercost: 20
check-delay-ticks: 200
lookup-offline-players: true
include-essentials-warps-in-list: false
use-bstats: true
commands-on-warp-expire: [] # this specifies a regular expression (regex) for what's allowed in a warp name # you can read about regex, e.g in: https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html # chatgpt is also pretty good at coming up with regex if you already have a basic understanding. # If you do not know what you're doing, it's probably best to leave this value alone. warp-name-format: "^.{1,15}$" confirm:
create: false
move: false
renew: false
addons:
save-expired-warp-locations: false
warp-expiry-notifier:
enabled: true
only-owner: false
days-for-notification: 1
warp-limiter:
enabled: false
limits:
default: 1
VIP: 3
messages:
confirm-renew: '&7Type ''confirm'' to confirm the renewal for warp &6
{name
}&7 for
&8
{days
}&7 days. The cost is &8
{amount
}&7.'
warp-already-exists: '&cWarp already exists
: &6{name}' sender-must-be-player: '&cSender must be a player!'
not-enough-money: '&cYou do not have enough money
: &4{amount}' created-warp: '&7You''ve successfully created the warp &6
{name
}&7 for &8
{days
}&7
days days for &6
{amount
}&7.'
not-your-warp: '&cThis warp does not belong to you
: &7{name}' renewed-warp: '&7You''ve successfully renewed the warp &6
{name
}&7 for another &8
{days
}&7
days for $&8
{amount
}&7
(&6
{total
}&7 days left in total
)'
name-not-int: '&cWarp names cannot be integers!'
name-cannot-have-period: '&cThe name of the warp &6
{name
}&c cointains a period
(&7.&c
) which is not allowed'
issue-while-creating-warp: '&cThere was an unexpected issue while creating warp
: &4
{name
}'
inssufficient-permissions: '&cYou do not have permission to use this command!'
moved-warp: '&7You''ve successfully moved the warp &6
{name
}&7 to your current location
for &8
{amount
}'
issue-while-moving-warp: '&cThere was an unexpected issue while creating warp
: &4{name}' renamed-warp: '&7You''ve successfully renamed the warp &8
{old
}&7 to &6
{new
}&7 for
&8
{amount
}'
issue-with-renaming-warp: '&cThere was an unexpected issue while renaming warp &4
{old
}&c
to &c
{new
}'
player-not-found: '&cUnable to find online player
: &4{player}' transferred-warp: '&7Successfully transferred the warp &6
{name
}&7 to &8
{player
}&7
for &6
{amount
}'
issue-with-transferring-warp: '&cUnexpected issue while transferred the warp &6
{name
}&7
to &8
{player
}'
list-warps: '&6
{player
}&7 has the following warps
: &8{warps}' warp-not-found: '&cWarp not found
: &c{name}' warp-info: '&7The warp &6
{name
}&7 is owned by &8
{player
}&7 and will expire in &6
{time
}'
confirm-create: '&7Type ''confirm'' to confirm the location for warp &7
{name
}&7.
The cost is &8
{amount
}&7.'
confirm-move: '&7Type ''confirm'' to confirm the new location for warp &6
{name
}&7.
The cost is &8
{amount
}&7.'
reloaded: '&cSuccessfully loaded config and iwarps!'
no-previous-locations: '&7No previous locations for warp &6
{name
}'
previous-locations: '&7Previous locations for warp &6
{name
}&7
: &8{locs}' warp-expiring: '&7The warp &7
{warp
}&7 will expire in &8
{time
}&7!'
changed-warp-expire-date: '&7Changed the warp &6
{warp
}&7 to expire &8
{time
}&7 from
now.'
have-max-warps: '&7You have &6
{cur
}&7 out of &8
{max
}&7 allowed warps'
PS. I tested on 1.8.9, 1.13.2, 1.14.4, 1.15.2, 16.1, 1.20.1, but should work on versions in between.