iWarp - warps with upkeep (addon to EssentialsX) icon

iWarp - warps with upkeep (addon to EssentialsX) -----

Player warps expire unless expressly renewed



Plugin made as the direct result of a request here.

[​IMG]
  • Depends on:
  • Warps tied to EssentialsX warps
    • Regular /warp command works just fine
    • Unable to overwrite warps made through Essentials
    • Able to remove warp with Essentials' /delwarp
  • 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>
    • 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
    • Warp limiter
      • Allows per permission limits for the amount of warps allowed for each player
      • See config section for more info
[​IMG]
  • /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)

[​IMG]
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.
Resource Information
Author:
----------
Total Downloads: 2,118
First Release: Jun 9, 2019
Last Update: Jul 11, 2023
Category: ---------------
All-Time Rating:
3 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings