iWarp - warps with upkeep (addon to EssentialsX)
0.3.0Player warps expire unless expressly renewed
Plugin made as the direct result of a request here.

- Depends on:
- Warps tied to EssentialsX warps
- Regular
/warpcommand works just fine - Unable to overwrite warps made through Essentials
- Able to remove warp with Essentials'
/delwarp
- Regular
- Create player owned warp
- Move, rename owned warp
- Transfer warp to someone else
- Renew warp owned by any player
- Warps valid for a certain number of days
- Will expire after that time
- Configurable
- Create cost
- Price per day
- Move cost
- Rename cost
- Transfer cost
- Require confirmation on create and/or move
- Messages
- Addons
- Save locations of expired warps
- Saved in
oldwarps.yml - See with
/iwa prevloc <warpname>
- Saved in
- Notify players of expiring warp
- 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
- Show message when using a warp that is about to expire
- Warp limiter
- Allows per permission limits for the amount of warps allowed for each player
- See config section for more info
- Save locations of expired warps

- /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-locationsaddon (configurable in config)- /iwarpaddons prevlov <warpname> - Show list of previous locations of warp
- Permission: iwarp.addons
- Aliases: /iwa, /iwarpa
- /iwarpaddons prevlov <warpname> - Show list of previous locations of warp
Extra Permissions
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)
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.
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta