RankQuestsX - Extremely Configurable! icon

RankQuestsX - Extremely Configurable! -----

A plugin that adds timed quests for players to complete before giving them one time use items.




Fixed: Errors in version 1.21 and above.
Added: Support for SaberFactions
Added: Support for latest version of WorldGuard
Removed: Support for FactionsUUID
Removed: Support for older versions of WorldGuard

Support for versions 1.20.6 and below will cease from this point onwards. Blame spigot dev team for it, it was not my choice to drop support since I do love supporting more versions where possible as long as it only takes 1 jar file.
----------, Sep 7, 2024

Fixed: %player% placeholder not being replaced for voucher commands.
----------, Dec 18, 2022

Added: Permission check for commands.
----------, May 10, 2022

Hey, it's been a while but I've managed to find time this holidays to recode this plugin from scratch using what I've learnt from university. Every single bug has been tested and fixed, and I will be clearing the responses for bug submissions. Of course I may have missed some so if you do still encounter them feel free to resubmit them!

Major reworks of the configuration files have also been made so make sure to BACKUP YOUR OLD FILES AND RELOAD THE PLUGIN so that you get new config files generated for you. The new files are also available for copying on the main plugin page if you need them. :)

What's changed about the plugin, then? Well, it should be bug free now, and will also not support WorldGuard for any version below 1.13 now. FactionsUUID and WorldGuard will also be the only region checking plugins supported by the plugin for now. Any version that is below 1.9 will also NOT WORK AT ALL with no plans to add support for those versions, so please DO NOT REPORT BUGS FOR THESE VERSIONS. Why, you ask? Well, so that the plugin will almost certainly work with all future versions of Spigot without any more work from me. Sounds good doesn't it :)

Maybe one day if I'm feeling REALLY good about myself I'll attempt to do a version of the plugin for legacy users, but don't bet on it.
----------, May 10, 2022

Fixed: Error when using quests on versions older than 1.9. (Reported by @OnlyTheBest)
----------, May 24, 2020

Changed: Made some values private instead of public to make editing them less confusing for developers. (and more controlled)
----------, Apr 27, 2020

I've basically recoded the whole plugin with 2 new objects, the RankQuest and Rank objects. Developers looking to hook into the plugin should find it way easier to do things now. If you have any issues please report them on the google forms.

Added: Support for FactionsX by prosavage.
Fixed: Miscellaneous errors and bugs here and there.
Fixed: Reload command not working as intended.
Fixed: Messy, unnecessary and old code.
Fixed: WorldGuard 7 and up version of the plugin still telling you that it's a legacy plugin.
Changed: WarzoneName field is now not required. The plugin will automatically check if the territory is the warzone.
----------, Apr 21, 2020

Fixed: Messages not reloading properly when reload command is used.
Changed: Reload command now regenerates config files for you if they do not exist.
----------, Feb 28, 2020

Fixed: %time% placeholder not working properly.
----------, Jan 12, 2020

Fixed: Plugin not being able to start. Please read previous update for important info regarding the actual update.
----------, Jan 10, 2020

Added: Ability to have different lores, names and pretty much everything for each quest. (Suggested by @ArcaneVoid) You can still use your old configs, just let the plugin regenerate new ones for you first as there are some very minor changes.
Changed: /rankquest list command now gives you a list of both the name of the quest that you use in commands, as well as the quest's display name that's used for the %rank% placeholder :)
Fixed: Minor bugs with region checking and other dependencies.
----------, Jan 9, 2020

Fixed: Using worldguard regions in the WGv7 version of the plugin throwing errors. Please use the file from the previous update if you're running WGv6.
----------, Jan 6, 2020

Fixed: Starting a quest does not send the messages in some cases.
----------, Jan 6, 2020

Added: Support for latest version of FactionsUUID.
Added: New command /rankquest list. Gives you a list of the displaynames of all the rankquests. (Suggested by @ArcaneVoid) If you find the name of the quest that you use in a command is more useful, do tell me and I'll change that in the next update :)
Added: New permission node "rankquest.admin". Gives access to all commands.
----------, Jan 5, 2020

Added: Actual working worldguard support for Minecraft versions 1.14 and above. Please use the correct jar file according to your worldguard version (WorldGuard 6 or 7).
Added: Support for versions 1.14 and 1.15
Fixed: Errors being thrown when trying to load plugin.
----------, Jan 2, 2020

Fixed: Errors thrown when player tries to start a quest with the quest item in the off hand.
Fixed: Player unable to start quest when quest item is in the off hand.
----------, Nov 11, 2018

Fixed: All known and unknown dupe glitches. (Thread: https://www.spigotmc.org/threads/players-able-to-move-items.212597/)
Fixed: Logger system not working.
Added: Forced disabling of flight when doing rank quests.
Added: Support for 1.12.2 through 1.13.2.

No config changes, pop this plugin into your plugins folder and you're ready to go! Woot!
----------, Nov 11, 2018

Fixed: Plugin error/not working when it tries to return the rankquest to the player on rejoin/when it tries to remove the rankquest from player on rejoin. (Reported by @geo4574 - dude wtf this man is a bug finding machine give me a break XD)
----------, Aug 17, 2017

Fixed: %time% placeholder not working for items handled when player disconnects (Reported by @geo4574)
----------, Aug 16, 2017

Fixed: Disconnect handling errors, not working, messing up your configs, etc. Sorry guys! (I love stupid beginner's mistakes it took me a while night to FIX BEGINNER'S MISTAKES KMS)
----------, Aug 15, 2017

Fixed: I didn't capitalize the first letter of "Logger" in my code, breaking the saving mechanism for quest loggers. I'm such a genius. (reported by @geo4574)
----------, Aug 15, 2017

THIS UPDATE HAS CONFIG.YML CHANGES

Removed: Old disconnect system to reset item automatically when logging out, as that doesn't work.
Added: New way to handle CombatLoggers. If they combat log, they will have their items removed if DropOnDC is set to true, and a clean quest will drop where they disconnected, if DropOnDC is set to false, they will be refunded a clean quest in the item slow when they relog.

You can either make this change yourself, or let the plugin regenerate the config for you by deleting the config
Config.yml addition:
1. Add this under Lore under Quest Item Options
Code (Text):
  #Whether to drop the item on disconnect.
  DropOnDC: "true"
----------, Aug 14, 2017

Added: Support for LegacyFactions. ( https://www.spigotmc.org/resources/legacyfactions.40122/) (Requested by @dan330)
Removed: Useless code.
----------, Aug 14, 2017

Read previous update for the updates!
----------, Aug 9, 2017

Added: Support for 1.11.2 through 1.12.1
Removed: Redundant NMS code that does nothing
----------, Aug 9, 2017

Added: %time% placeholder can be used in quest item name to display the maximum time of the quest before it starts!
Added: Turning off both warzone and worldguard checking allows quest to be used anywhere!

Config.yml:
Change line 5 to this:
Code (Text):
#- %time% for time left on the quest item -- usable in CdName and quest item name.
----------, Jan 8, 2017

Fixed: Vouchers breaking if the %player% placeholder is used in its lore. Now vouchers can be made player specific again. (Only the player whose name is in the lore can use it.)

No config changes yay :)
----------, Jan 8, 2017

Fixed: Vouchers not checking through the whole lore of the voucher. Potentially game breaking (as I found on my own damn server)

No need to change anything, just reload :)
----------, Jan 5, 2017

Removed: Old option for enabling combattagplus support (The support doesn't work so I removed the code. Might try again later, but for now, if you have the lines below in your config, remove them.)

Config.yml:
Code (Text):
  ###################
  # General Options #
  ###################
  #Whether to combat tag the player. (Requires CombatTagPlus)
  TagPlayer: 'false'
----------, Jan 1, 2017

Fixed: Error when player clicks in inventories while doing quest. (Reported by @AJ844FB)

No changes to anything, just pop in and reload :)
----------, Dec 29, 2016

Compiled to the wrong jar, sorry!
----------, Nov 25, 2016

Changed: Listening to PlayerDeathEvent instead of EntityDeathEvent. This should optimise this plugin a little. Nothing needs to be done to the configs.
----------, Nov 25, 2016

Removed: Ctplus support, couldn't get the tagging to work. I'll contact the author, but not sure if I can fix this.

You can either leave the CombatTag option in your config, or remove it, it doesn't really matter.
----------, Nov 21, 2016

Added: Option to tag players when they start the quest. Do report any bugs!

Add this to the Config.yml right under RankQuestOptions:
Code (Text):
  ###################
  # General Options #
  ###################
  #Whether to combat tag the player. (Requires CombatTagPlus)
  TagPlayer: 'false
----------, Nov 21, 2016

Added: Support for version 1.11.
----------, Nov 18, 2016

Added: Players can click with the quest item in their off hand for versions 1.9 and above.
Added: 2 command aliases (/rq and /quest) You can now use those instead of having to type out /rankquest.
----------, Nov 17, 2016

Fixed: Factions check not working if only factions checking is turned on. Apparently my code got corrupted a little between versions, and 1 method got changed to another. Sorry about that!
----------, Nov 2, 2016

Added: When plugin is reloaded or server resets, any ongoing quests reset. (Reported/suggested by @Sallinx)
----------, Oct 29, 2016

Fixed: Error from not using a null check. My bad. (Reported by @Sallinx)
----------, Oct 29, 2016

Added: Prefix before QuestComplete and QuestAllComplete Message.
----------, Oct 29, 2016

Fixed: Region and Warzone checking. (Found by @Sallinx)
Added: /rankquest redeem when you do /rankquest to see the commands usage.
This update fixes region and warzone checking. Now regions and warzone are given equal priority. If a player is either in a whitelisted region or warzone, the quest will work. If blacklist is turned on, the quest will work when the player is either in a whitelisted region or warzone, and when he is NOT in a blacklisted region. If pvp flag is enabled, it will be required for the quest to start as well.
----------, Oct 29, 2016

Left a line of debug code in, and did not update version number. Sorry! For a fancier config.yml, check out the previous update!
----------, Oct 28, 2016

This update just makes the config file a little fancier, a little more organised. I moved some things around, that's about all. It's your choice whether to update, as no code has been changed. (Requested by @Sallinx)

Config:
Code (Text):
#Config Version 2 by Yukun
#Placeholders:
#- %player% for player's display name -- usable in quest item lores and names, and messages for beginning and completing the quest.
#- %rank% for rank name with colour codes -- usable in quest item lores and names, and messages for beginning and completing the quest.
#- %time% for time left on the quest item -- usable in CdName.
RankQuestOptions:
  ###########################
  # Region checking options #
  ###########################
  CheckWarzone: 'true'
  CheckWorldGuard: 'true'
  CheckBlacklist: 'true'
  WarzoneName: 'Warzone'
  PvPFlag: 'false'
  Regions:
    - 'pvp'
    - 'warzone'
  RegionBlacklist:
    - 'safezone'
    - 'spawn'

  ######################
  # Quest item options #
  ######################
  #Item type of quest. Please use bukkit item names for this.
  QuestItemType: 'MAGMA_CREAM'
  #Name of item to start quest.
  Name: '%rank% &bQuest &7(Right Click)'
  #Lore to be added to the quest item that is given to the player. (usable placeholders: %rank%, %player%)
  Lore:
    - '&7Survive in the &cWarzone &7long enough'
    - '&7to complete this Rank Quest and'
    - '&7receive a %rank% &bRank.'
    - ''
    - '&f&lUSE: &r&7To begin this rank quest,'
    - '&f&lright-click &r&7this item inside the &cWarzone&7.'
    - '&7You must survive until the quest timer'
    - '&7runs out to receive your %rank% &bRank.'
    - ''
    - '&c&lWARNING: &r&7If you leave the &cWarzone&7'
    - '&7at any time, the quest timer resets.'

  ##########################
  # Countdown item options #
  ##########################
  #Name of item while doing quest. (usable placeholders: %time%, %rank%, %player%)
  CdName: '%rank% &bQuest <%time%s>'
  #Lore for item while it is counting down. (usable placeholders: %rank%, %player%)
  CdLore:
    - '&b&lRank Quest Started!'
    - '&7Survive in the &cWarzone&7 long enough'
    - '&7to complete this Rank Quest and'
    - '&7receive a %rank% &bRank Voucher!'
    - ''
    - '&7You must survive until the quest timer'
    - '&7runs out to receive your %rank% &bRank.'
    - ''
    - '&c&lWARNING: &r&7If you leave the &cWarzone&7'
    - '&7at any time, the quest timer resets.'
  ############################
  # Rank and voucher options #
  ############################
  #List your ranks under this.
  Ranks:
    VIP:
      #Used for %rank% placeholder.
      RankName: '&fVIP'
      #Time of the quest in seconds.
      Time: '30'
      #Settings for rank voucher.
      Voucher:
        #item name for rank voucher (usable placeholders: %rank%)
        Name: '&b&lRANK &e"&l%rank%&r&e" &7(Right Click)'
        #Number of vouchers given to the player when quest is completed.
        Amount: '1'
        #The item you want to use as the Voucher. Please use bukkit item names for this.
        VoucherItemType: 'PAPER'
        #Commands to run when voucher is clicked. Make sure this is a console compatible command!
        Commands:
          - 'manuadd %player% VIP'
        Lore: #Lore to be added to the voucher item (usable placeholders: %rank%, %player%)
          - '&7Use this item to'
          - '&7get the &fVIP Rank'
          - '&7on the &cFactions &7server!'
          - '&7Given to: %player%'
----------, Oct 28, 2016

Remember, if you still haven't updated your configs, refer to version 1.0.19 for the full info on how you can update from pre 1.0.18 versions.
Fixed: Spawning in Vouchers with the command.
----------, Oct 27, 2016

Last update broke rank quests and vouchers, this update fixes that. There was also a placeholder typo in Messages.yml under BeginAllMessage, %player% was typed as %player. Do remember to read the previous update to know what to do for 1.0.19 and above!

Fixed: Rank Quests not working (Reported by @CoreyplaysYT)
Fixed: Vouchers not working (Found by me and @CoreyplaysYT)
Fixed: Spelling error for %player% placeholder in messages.
Fixed: Duplicate listener for PlayerQuitEvent causing errors. (Reported by @CoreyplaysYT and @croderdai)
----------, Oct 25, 2016

Note: This is a major update, you don't need to regenerate your configs, but you are highly advised to! Do read the whole update before doing anything! :) Also do remember to reload the plugin to regenerate the Redeem.yml file, which I use for saving stuff!

Fixed: /rankquest give command throwing out errors or falsely detecting a full inventory (reported by @Dragonleet)
Added: If a player's inventory is full, the rank quests get saved to a file for claiming later. (Suggested by @Dragonleet)
Added: /rankquest redeem command for redeem unclaimed rank quests. (Suggested by @Dragonleet)
Changed: Configuration formatting and some messages. Look below for details. (With help from @Kicjow)

Config.yml:
Removed the list of ranks under RankQuestOptions:Ranks:
Moved the actual rank quest options at RankQuestOptions:VIP: to RankQuestOptions:Ranks:VIP:
Remember when you move the actual rank quest options under Ranks to indent them 2 more spaces in! (Some people don't see this line apparently :p)
New Config.yml is listed here and on the plugin page for reference:
Code (Text):
#Config Version 1 by Yukun
#Placeholders:
#- %player% for player's display name -- usable in quest item lores and names, and messages for beginning and completing the quest.
#- %rank% for rank name with colour codes -- usable in quest item lores and names, and messages for beginning and completing the quest.
#- %time% for time left on the quest item -- usable in CdName.
RankQuestOptions:
  #Whether you want the plugin to check if the player is in Warzone
  CheckWarzone: 'true'
  #Whether you want the plugin to check if the player is in Worldguard regions. If both factions and worldguard are enabled, WORLDGUARD GETS CHECKED FIRST.
  CheckWorldGuard: 'true'
  #Whether you want the plugin to check for blacklisted regions.
  CheckBlacklist: 'true'
  #Name of Warzone
  WarzoneName: 'Warzone'
  #Whether you want the plugin to check for the PvP flag in worldguard. Default false.
  PvPFlag: 'false'
  #Name of regions you want the quest item to work in (Not case specific)
  Regions:
    - 'pvp'
    - 'warzone'
  #Name of regions you want the quest item to NOT work in (Not case specific)
  RegionBlacklist:
    - 'safezone'
    - 'spawn'
  #Name of item to start quest.
  Name: '%rank% &bQuest &7(Right Click)'
  #Please use bukkit item names for this.
  QuestItemType: 'MAGMA_CREAM'
  #Name of item while doing quest. (usable placeholders: %time%, %rank%, %player%)
  CdName: '%rank% &bQuest <%time%s>'
  CdLore: #Lore for item while it is counting down. (usable placeholders: %rank%, %player%)
    - '&b&lRank Quest Started!'
    - '&7Survive in the &cWarzone&7 long enough'
    - '&7to complete this Rank Quest and'
    - '&7receive a %rank% &bRank Voucher!'
    - ''
    - '&7You must survive until the quest timer'
    - '&7runs out to receive your %rank% &bRank.'
    - ''
    - '&c&lWARNING: &r&7If you leave the &cWarzone&7'
    - '&7at any time, the quest timer resets.'
  Lore: #Lore to be added to the quest item that is given to the player. (usable placeholders: %rank%, %player%)
    - '&7Survive in the &cWarzone &7long enough'
    - '&7to complete this Rank Quest and'
    - '&7receive a %rank% &bRank.'
    - ''
    - '&f&lUSE: &r&7To begin this rank quest,'
    - '&f&lright-click &r&7this item inside the &cWarzone&7.'
    - '&7You must survive until the quest timer'
    - '&7runs out to receive your %rank% &bRank.'
    - ''
    - '&c&lWARNING: &r&7If you leave the &cWarzone&7'
    - '&7at any time, the quest timer resets.'
  Ranks:
    VIP: #Name of rank listed under Ranks
      #name of rank with colour codes (used for %rank% placeholder)
      RankName: '&fVIP'
      #Time of the quest in seconds.
      Time: '30'
      Voucher: #Settings for rank voucher
        #item name for rank voucher (usable placeholders: %rank%)
        Name: '&b&lRANK &e"&l%rank%&r&e" &7(Right Click)'
        #Number of vouchers given to the player when quest is completed.
        Amount: '1'
        #The item you want to use as the Voucher. Please use bukkit item names for this.
        VoucherItemType: 'PAPER'
        #Commands to run when voucher is clicked. Make sure this is a console compatible command!
        Commands:
          - 'manuadd %player% VIP'
        Lore: #Lore to be added to the voucher item (usable placeholders: %rank%, %player%)
          - '&7Use this item to'
          - '&7get the &fVIP Rank'
          - '&7on the &cFactions &7server!'
          - '&7Given to: %player%'

Messages.yml:
1. Removed InventoryFull message.
2. Added:
Code (Text):
  #Message sent if inventory is full when giving a Voucher.
  VoucherInventoryFull: '&cYour inventory is full!'
  #Message sent if inventory is full when giving a RankQuest.
  QuestInventoryFull: '&cYour inventory is full! Please empty out a slot, then use /rankquest redeem!'
New Messages.yml is listed here and on the plugin page for reference:
Code (Text):
#Config Version 1 by Yukun
#Placeholders:
#- %player% for player's display name
#- %rank% for rank name with colour codes
#- %amount% for amount of items received.
Messages:
  #prefix before all messages
  Prefix: '&bRank&eQuests&f >> &7'
  #Message sent when player receives a quest item. (usable placeholders: %rank%, %player%, %amount%)
  QuestReceive: '&7You have received %amount% %rank% &bQuest Item(s)&7.'
  #Message sent when player receives a voucher. (usable placeholders: %rank%, %player%, %amount%)
  VoucherReceive: '&7You have received %amount% %rank% &bVoucher(s)&7.'
  #Message sent if player tries to start more than 1 rankquest.
  OnlyStart1: '&cYou may only do 1 &bRank Quest&c at a time.'
  #Message sent if player has more than 1 rankquest in hand.
  Only1RankQuest: '&cPlease unstack your &bRank Quest Item&c!'
  #Message sent when voucher is used. (usable placeholders: %rank%)
  VoucherUse: 'You have used a %rank% &bVoucher&7!'
  #Message sent if inventory is full when giving a Voucher.
  VoucherInventoryFull: '&cYour inventory is full!'
  #Message sent if inventory is full when giving a RankQuest.
  QuestInventoryFull: '&cYour inventory is full! Please empty out a slot, then use /rankquest redeem!'
  #Message sent if player is not in warzone when starting quest.
  NotInWarzone: '&cYou need to be in Warzone to use this item!'
  #Message sent if player tries to move quest item in his inventory while doing the quest.
  NoMovingQuest: '&cYou may not move the quest item around in your inventory while the quest is ongoing!'
  #Message sent if player tries to drop the quest item while doing the quest.
  DropItemMessage: '&cYou may not drop the quest item while the quest is ongoing!'
  #Message sent to the player that starts the quest.(usable placeholders: %rank%, %player%)
  BeginMessage:
    - ''
    - '&b&l*** &l%rank% &b&lQUEST STARTED ***'
    - '&7You have started a %rank% &bQuest&7! Survive until the'
    - '&7timer on your &bRank Quest Item &7reaches &c<0s> &7to claim your'
    - '%rank% &bVoucher&7!'
    - ''
  #Message sent to the player when quest is completed. (usable placeholders: %rank%, %player%)
  QuestComplete: '&aYou have completed a %rank% quest! Congratulations!'
  #Message broadcast to all other players when quest starts. (usable placeholders: %rank%, %player%)
  BeginAllMessage:
    - ''
    - '&b&l*** &l%rank% &b&lQUEST STARTED BY %player%***'
    - '&7%player has started a %rank% &bQuest&7! Find him/her in the'
    - '&c&lWARZONE&r&7 before the &bRank Quest Item &7reaches &c<0s> to have a'
    - '&7shot at getting his %rank% &bQuest Item&7!'
    - ''
  #Message broadcast to all other players when quest is completed. (usable placeholders: %rank%, %player%)
  QuestAllComplete: '&a%player% has completed a %rank% &bRank Quest&a! Congratulations!'

Redeem.yml:
Just reload the plugin and you should have this generated. Do not touch it unless I teach you how to, or you know how to edit it without breaking the plugin. Thanks!
----------, Oct 25, 2016

NOTE: YOU DO NOT NEED TO RESTART YOUR SERVER OR DO A /KICKALL FOR THIS UPDATE AND FUTURE UPDATES ANYMORE, I'VE ADDED A LISTENER TO LOG ALL PLAYERS ON SERVER START, AS WELL AS WHEN THEY SUBSEQUENTLY LOG IN.

Fixed: Commands bugging out sometimes. (Found by @Dragonleet)
Fixed: If 2 players start a quest with different ranks, the second player gets overridden by the first (Found by my staff @Hax4Lyfe)
Removed: Dropping of items on the ground when your inventory is full. Now items are simply not given if you do not have the space.
Added: If a player logs out during the quest, the item is reset.

Changes to Messages.yml:
InventoryFull message changed to '&cYour inventory is full! Please empty out a slot!'
----------, Oct 22, 2016

Sorry for the long wait again guys! I promise this update will be worth it :) Once again, a big thanks to @Kicjow for all the help!
NOTE: THIS UPDATE REQUIRES A RESTART OF YOUR SERVER, AND FUTURE UPDATES WILL TOO, DUE TO THE WAY I PREVENT A PLAYER FROM STARTING MULTIPLE QUESTS AT ONCE. RELOADING THE PLUGIN REQUIRES A COMPLETE RESTART, OR A /KICKALL, AS I NEED TO ADD ALL PLAYERS TO A LIST WHEN THEY JOIN.
Added: Doing multiple quests at once!
Fixed: Quests freezing when more than 1 player starts a quest.
Fixed: Dropping quests returning an error.

Lines have been added to Messages.yml. You can either let the plugin regenerate it for you, do the changes below yourself, or copy the new Messages.yml from the plugin overview.

Add this line under VoucherReceive:
Code (Text):
  #Message send if player tries to start more than 1 rankquest.
  OnlyStart1: '&cYou may only do 1 &bRank Quest&c at a time.'
Add this line under NotInWarzone:
Code (Text):
  #Message sent if player tries to move quest item in his inventory while doing the quest.
  NoMovingQuest: '&cYou may not move the quest item around in your inventory while the quest is ongoing!'
That's all from me, enjoy the plugin!
----------, Oct 2, 2016

Sorry for the long wait, I've been really busy. I tested blacklist and whitelist this time, they both work now :)
Fixed: Blacklist and region Whitelist not working.
----------, Aug 17, 2016

Fixed: When players die, the quest actually drops now.
Added: Players cannot drop the quest item when they are doing a quest.

Lines have been added to Messages.yml. You can either let the plugin regenerate it for you, do the changes below yourself, or copy the new Messages.yml from the plugin overview.

Add these lines under NotInWarzone:
Code (Text):
  #Message sent if player tries to drop the quest item while doing the quest.
  DropItemMessage: '&cYou may not drop the quest item while the quest is ongoing!'
----------, Jul 31, 2016

Added: Region blacklisting

You can now blacklist regions in the config! If a player is in both a wanted and a blacklisted region, the quest will not activate. After this update, I will be focusing on the bug fixes. THIS UPDATE ADDS LINES TO THE CONFIG.YML. READ BELOW FOR DETAILS. YOU CAN ALSO LET THE PLUGIN AUTO REGENERATE THE CONFIG FOR YOU.

Config.yml additions:
1. add this under CheckWorldGuard
Code (Text):
#Whether you want the plugin to check for blacklisted regions.
  CheckBlacklist: 'true'
2. add this under Regions
Code (Text):
#Name of regions you want the quest item to NOT work in (Not case specific)
  RegionBlacklist:
    - 'safezone'
    - 'spawn'
New Config.yml:
Code (Text):
#Config Version 1 by Yukun
#Placeholders:
#- %player% for player's display name -- usable in quest item lores and names, and messages for beginning and completing the quest.
#- %rank% for rank name with colour codes -- usable in quest item lores and names, and messages for beginning and completing the quest.
#- %time% for time left on the quest item -- usable in CdName.
RankQuestOptions:
  #Whether you want the plugin to check if the player is in Warzone
  CheckWarzone: 'true'
  #Whether you want the plugin to check if the player is in Worldguard regions. If both factions and worldguard are enabled, WORLDGUARD GETS CHECKED FIRST.
  CheckWorldGuard: 'true'
  #Whether you want the plugin to check for blacklisted regions.
  CheckBlacklist: 'true'
  #Name of Warzone
  WarzoneName: 'Warzone'
  #Whether you want the plugin to check for the PvP flag in worldguard. Default false.
  PvPFlag: 'false'
  #Name of regions you want the quest item to work in (Not case specific)
  Regions:
    - 'pvp'
    - 'warzone'
  #Name of regions you want the quest item to NOT work in (Not case specific)
  RegionBlacklist:
    - 'safezone'
    - 'spawn'
  #Name of item to start quest.
  Name: '%rank% &bQuest &7(Right Click)'
  #Please use bukkit item names for this.
  QuestItemType: 'MAGMA_CREAM'
  #Name of item while doing quest. (usable placeholders: %time%, %rank%, %player%)
  CdName: '%rank% &bQuest <%time%s>'
  CdLore: #Lore for item while it is counting down. (usable placeholders: %rank%, %player%)
    - '&b&lRank Quest Started!'
    - '&7Survive in the &cWarzone&7 long enough'
    - '&7to complete this Rank Quest and'
    - '&7receive a %rank% &bRank Voucher!'
    - ''
    - '&7You must survive until the quest timer'
    - '&7runs out to receive your %rank% &bRank.'
    - ''
    - '&c&lWARNING: &r&7If you leave the &cWarzone&7'
    - '&7at any time, the quest timer resets.'
  Lore: #Lore to be added to the quest item that is given to the player. (usable placeholders: %rank%, %player%)
    - '&7Survive in the &cWarzone &7long enough'
    - '&7to complete this Rank Quest and'
    - '&7receive a %rank% &bRank.'
    - ''
    - '&f&lUSE: &r&7To begin this rank quest,'
    - '&f&lright-click &r&7this item inside the &cWarzone&7.'
    - '&7You must survive until the quest timer'
    - '&7runs out to receive your %rank% &bRank.'
    - ''
    - '&c&lWARNING: &r&7If you leave the &cWarzone&7'
    - '&7at any time, the quest timer resets.'
  Ranks: #List your ranks here, then add the rank below. You can also add a dummy rank just to add a voucher into the list. :D That means u can basically use this like a vouchers plugin.
    - 'VIP'
  VIP: #Name of rank listed under Ranks
    #name of rank with colour codes (used for %rank% placeholder)
    RankName: '&fVIP'
    #Time of the quest in seconds.
    Time: '30'
    Voucher: #Settings for rank voucher
      #item name for rank voucher (usable placeholders: %rank%)
      Name: '&b&lRANK &e"&l%rank%&r&e" &7(Right Click)'
      #Number of vouchers given to the player when quest is completed.
      Amount: '1'
      #The item you want to use as the Voucher. Please use bukkit item names for this.
      VoucherItemType: 'PAPER'
      #Commands to run when voucher is clicked. Make sure this is a console compatible command!
      Commands:
        - 'manuadd %player% VIP'
      Lore: #Lore to be added to the voucher item (usable placeholders: %rank%, %player%)
        - '&7Use this item to'
        - '&7get the &fVIP Rank'
        - '&7on the &cFactions &7server!'
        - '&7Given to: %player%'
----------, Jul 31, 2016

Multiple command support broke plugin, this update fixes it.
Fixed: Multiple commands breaking plugin
----------, Jul 30, 2016

Added: Support for multiple commands on a single voucher.

Config changes:
- Under voucher>command, command is changed to commands.
- You now have to list out your commands. If you want to add commands just add it to the list.
- You can also let the plugin regenerate your plugin for you by deleting the config.yml.

New Config.yml:
Code (Text):
#Config Version 1 by Yukun
#Placeholders:
#- %player% for player's display name -- usable in quest item lores and names, and messages for beginning and completing the quest.
#- %rank% for rank name with colour codes -- usable in quest item lores and names, and messages for beginning and completing the quest.
#- %time% for time left on the quest item -- usable in CdName.
RankQuestOptions:
  #Name of Warzone
  WarzoneName: 'Warzone'
  #Whether you want the plugin to check for the PvP flag in worldguard. Default false.
  PvPFlag: 'false'
  #Name of regions you want the quest item to work in (Not case specific)
  Regions:
    - 'pvp'
    - 'warzone'
  #Name of item to start quest.
  Name: '%rank% &bQuest &7(Right Click)'
  #Please use bukkit item names for this.
  QuestItemType: 'MAGMA_CREAM'
  #Name of item while doing quest. (usable placeholders: %time%, %rank%, %player%)
  CdName: '%rank% &bQuest <%time%s>'
  CdLore: #Lore for item while it is counting down. (usable placeholders: %rank%, %player%)
    - '&b&lRank Quest Started!'
    - '&7Survive in the &cWarzone&7 long enough'
    - '&7to complete this Rank Quest and'
    - '&7receive a %rank% &bRank Voucher!'
    - ''
    - '&7You must survive until the quest timer'
    - '&7runs out to receive your %rank% &bRank.'
    - ''
    - '&c&lWARNING: &r&7If you leave the &cWarzone&7'
    - '&7at any time, the quest timer resets.'
  Lore: #Lore to be added to the quest item that is given to the player. (usable placeholders: %rank%, %player%)
    - '&7Survive in the &cWarzone &7long enough'
    - '&7to complete this Rank Quest and'
    - '&7receive a %rank% &bRank.'
    - ''
    - '&f&lUSE: &r&7To begin this rank quest,'
    - '&f&lright-click &r&7this item inside the &cWarzone&7.'
    - '&7You must survive until the quest timer'
    - '&7runs out to receive your %rank% &bRank.'
    - ''
    - '&c&lWARNING: &r&7If you leave the &cWarzone&7'
    - '&7at any time, the quest timer resets.'
  Ranks: #List your ranks here, then add the rank below. You can also add a dummy rank just to add a voucher into the list. :D That means u can basically use this like a vouchers plugin.
    - 'VIP'
  VIP: #Name of rank listed under Ranks
    #name of rank with colour codes (used for %rank% placeholder)
    RankName: '&fVIP'
    #Time of the quest in seconds.
    Time: '30'
    Voucher: #Settings for rank voucher
      #item name for rank voucher (usable placeholders: %rank%)
      Name: '&b&lRANK &e"&l%rank%&r&e" &7(Right Click)'
      #Number of vouchers given to the player when quest is completed.
      Amount: '1'
      #The item you want to use as the Voucher. Please use bukkit item names for this.
      VoucherItemType: 'PAPER'
      #Commands to run when voucher is clicked. Make sure this is a console compatible command!
      Commands:
        - 'manuadd %player% VIP'
      Lore: #Lore to be added to the voucher item (usable placeholders: %rank%, %player%)
        - '&7Use this item to'
        - '&7get the &fVIP Rank'
        - '&7on the &cFactions &7server!'
        - '&7Given to: %player%'
----------, Jul 28, 2016

Fixed: If you start multiple quests, they just complete at the same time, even if you start them separately.
Fixed: Vouchers being all used at the same time if they are unstacked.
Remember that 1.0.12 added lines to the config. Do check that.
----------, Jul 25, 2016

I left in 1 line of debug code. I'm sorry ;-;
----------, Jul 25, 2016

Fixed: Command returning error when you spawn in items.
Read previous update to see what you need to add to config.
----------, Jul 25, 2016

This update re-adds support for the PvP flag in worldguard. You can enable or disable PvP flag checking in the config. Do tell me in PM or discussions tab if this doesn't work :D
Added: Support for PvP flag in WorldGuard.

Add this under WarzoneName
Code (Text):
  #Whether you want the plugin to check for the PvP flag in worldguard. Default false.
  PvPFlag: 'false'
----------, Jul 25, 2016

The commands were still broken, this should fix it. Sorry about all the trouble. And if you were wondering where it was broken, it was the voucher giving part. Thanks to @toxthecat for reporting the bug again.
----------, Jul 16, 2016

Quick fix to fix null error. Do check the previous update as the config was changed in the previous update. Reported by @toxthecat
----------, Jul 16, 2016

Quests time is now quest specific! Move these lines:

Code (Text):
#Time of the quest in seconds.
Time: '30'
to here:
Code (Text):
#name of rank with colour codes (used for %rank% placeholder)
    RankName: '&fVIP'
    #Time of the quest in seconds.
    Time: '30'
Or you could delete your config and let the plugin regenerate it :D
----------, Jul 16, 2016

Fixed: Not being able to add more ranks. (Reported by @Aleks_Klain and @TheFlappyCraft)
Fixed: Debug code still triggering. (Reported by @Aleks_Klain)
----------, Jul 13, 2016

Fixed: Command not working.
Added: /rankquest reload command.
Changed: /givequest is now /rankquest give
Broken: Messages when you receive an item.

New Config.yml:
Code (Text):
#Config Version 1 by Yukun
#Placeholders:
#- %player% for player's display name -- usable in quest item lores and names, and messages for beginning and completing the quest.
#- %rank% for rank name with colour codes -- usable in quest item lores and names, and messages for beginning and completing the quest.
#- %time% for time left on the quest item -- usable in CdName.
RankQuestOptions:
  #Name of Warzone
  WarzoneName: 'Warzone'
  #Name of regions you want the quest item to work in (Not case specific)
  Regions:
    - 'pvp'
    - 'warzone'
  #Name of item to start quest.
  Name: '%rank% &bQuest &7(Right Click)'
  #Please use bukkit item names for this.
  QuestItemType: 'MAGMA_CREAM'
  #Time of the quest in seconds.
  Time: '30'
  #Name of item while doing quest. (usable placeholders: %time%, %rank%, %player%)
  CdName: '%rank% &bQuest <%time%s>'
  CdLore: #Lore for item while it is counting down. (usable placeholders: %rank%, %player%)
    - '&b&lRank Quest Started!'
    - '&7Survive in the &cWarzone&7 long enough'
    - '&7to complete this Rank Quest and'
    - '&7receive a %rank% &bRank Voucher!'
    - ''
    - '&7You must survive until the quest timer'
    - '&7runs out to receive your %rank% &bRank.'
    - ''
    - '&c&lWARNING: &r&7If you leave the &cWarzone&7'
    - '&7at any time, the quest timer resets.'
  Lore: #Lore to be added to the quest item that is given to the player. (usable placeholders: %rank%, %player%)
    - '&7Survive in the &cWarzone &7long enough'
    - '&7to complete this Rank Quest and'
    - '&7receive a %rank% &bRank.'
    - ''
    - '&f&lUSE: &r&7To begin this rank quest,'
    - '&f&lright-click &r&7this item inside the &cWarzone&7.'
    - '&7You must survive until the quest timer'
    - '&7runs out to receive your %rank% &bRank.'
    - ''
    - '&c&lWARNING: &r&7If you leave the &cWarzone&7'
    - '&7at any time, the quest timer resets.'
  Ranks: #List your ranks here, then add the rank below. You can also add a dummy rank just to add a voucher into the list. :D That means u can basically use this like a vouchers plugin.
    - 'VIP'
  VIP: #Name of rank listed under Ranks
    #name of rank with colour codes (used for %rank% placeholder)
    RankName: '&fVIP'
    Voucher: #Settings for rank voucher
      #item name for rank voucher (usable placeholders: %rank%)
      Name: '&b&lRANK &e"&l%rank%&r&e" &7(Right Click)'
      #Number of vouchers given to the player when quest is completed.
      Amount: '1'
      #The item you want to use as the Voucher. Please use bukkit item names for this.
      VoucherItemType: 'PAPER'
      #Command to run when voucher is clicked. Make sure this is a console compatible command!
      Command: 'manuadd %player% VIP'
      Lore: #Lore to be added to the voucher item (usable placeholders: %rank%, %player%)
        - '&7Use this item to'
        - '&7get the &fVIP Rank'
        - '&7on the &cFactions &7server!'
        - '&7Given to: %player%'

New Messages.yml:
Code (Text):
#Config Version 1 by Yukun
#Placeholders:
#- %player% for player's display name
#- %rank% for rank name with colour codes
#- %amount% for amount of items received.
Messages:
  #prefix before all messages
  Prefix: '&bRank&eQuest&f >> &7'
  #Message sent when player receives a quest item.
  QuestReceive: '&7You have received %amount% %rank% &bQuest Item(s)&7.'
  #Message sent when player receives a voucher.
  VoucherReceive: '&7You have received %amount% %rank% &bVoucher(s)&7.'
  #Message sent if player has more than 1 rankquest in hand.
  Only1RankQuest: '&cPlease unstack your &bRank Quest Item&c!'
  #Message sent when voucher is used. (usable placeholders: %rank%)
  VoucherUse: 'You have used a %rank% &bVoucher&7!'
  #Message sent if inventory is full.
  InventoryFull: '&cYour inventory is full! The item has been dropped on the ground!'
  #Message sent if player is not in warzone when starting quest.
  NotInWarzone: '&cYou need to be in Warzone to use this item!'
  #Message sent to the player that starts the quest.(usable placeholders: %rank%, %player%)
  BeginMessage:
    - ''
    - '&b&l*** &l%rank% &b&lQUEST STARTED ***'
    - '&7You have started a %rank% &bQuest&7! Survive until the'
    - '&7timer on your &bRank Quest Item &7reaches &c<0s> &7to claim your'
    - '%rank% &bVoucher&7!'
    - ''
  #Message sent to the player when quest is completed. (usable placeholders: %rank%, %player%)
  QuestComplete: '&aYou have completed a %rank% quest! Congratulations!'
  #Message broadcast to all other players when quest starts. (usable placeholders: %rank%, %player%)
  BeginAllMessage:
    - ''
    - '&b&l*** &l%rank% &b&lQUEST STARTED BY %player%***'
    - '&7%player has started a %rank% &bQuest&7! Find him/her in the'
    - '&c&lWARZONE&r&7 before the &bRank Quest Item &7reaches &c<0s> to have a'
    - '&7shot at getting his %rank% &bQuest Item&7!'
    - ''
  #Message broadcast to all other players when quest is completed. (usable placeholders: %rank%, %player%)
  QuestAllComplete: '&a%player% has completed a %rank% &bRank Quest&a! Congratulations!'
----------, Jul 12, 2016

Added: When a player with the rankquest is killed, the itemdrop is changed to the quest item.
Added: Choosing WorldGuard region name instead of using PvP flag.

These lines need to be added to your config.yml under WarzoneName:
Code (Text):
  #Name of regions you want the quest item to work in (Not case specific)
  Regions:
    - 'pvp'
    - 'warzone'

New config.yml for those that want it:
Code (Text):
#Config Version 1 by Yukun
#Placeholders:
#- %player% for player's display name -- usable in quest item lores and names, and messages for beginning and completing the quest.
#- %rank% for rank name with colour codes -- usable in quest item lores and names, and messages for beginning and completing the quest.
#- %time% for time left on the quest item -- usable in CdName.
RankQuestOptions:
  #Name of Warzone
  WarzoneName: 'Warzone'
  #Name of regions you want the quest item to work in (Not case specific)
  Regions:
    - 'pvp'
    - 'warzone'
  #Name of item to start quest.
  Name: '%rank% &bQuest &7(Right Click)'
  #Please use bukkit item names for this.
  QuestItemType: 'MAGMA_CREAM'
  #Time of the quest in seconds.
  Time: '30'
  #Name of item while doing quest. (usable placeholders: %time%, %rank%, %player%)
  CdName: '%rank% &bQuest <%time%s>'
  CdLore: #Lore for item while it is counting down. (usable placeholders: %rank%, %player%)
    - '&b&lRank Quest Started!'
    - '&7Survive in the &cWarzone&7 long enough'
    - '&7to complete this Rank Quest and'
    - '&7receive a %rank% &bRank Voucher!'
    - ''
    - '&7You must survive until the quest timer'
    - '&7runs out to receive your %rank% &bRank.'
    - ''
    - '&c&lWARNING: &r&7If you leave the &cWarzone&7'
    - '&7at any time, the quest timer resets.'
  Lore: #Lore to be added to the quest item that is given to the player. (usable placeholders: %rank%, %player%)
    - '&7Survive in the &cWarzone &7long enough'
    - '&7to complete this Rank Quest and'
    - '&7receive a %rank% &bRank.'
    - ''
    - '&f&lUSE: &r&7To begin this rank quest,'
    - '&f&lright-click &r&7this item inside the &cWarzone&7.'
    - '&7You must survive until the quest timer'
    - '&7runs out to receive your %rank% &bRank.'
    - ''
    - '&c&lWARNING: &r&7If you leave the &cWarzone&7'
    - '&7at any time, the quest timer resets.'
  Ranks: #List your ranks here, then add the rank below. You can also add a dummy rank just to add a voucher into the list. :D That means u can basically use this like a vouchers plugin.
    - 'VIP'
  VIP: #Name of rank listed under Ranks
    #name of rank with colour codes (used for %rank% placeholder)
    RankName: '&fVIP'
    Voucher: #Settings for rank voucher
      #item name for rank voucher (usable placeholders: %rank%)
      Name: '&b&lRANK &e"&l%rank%&r&e" &7(Right Click)'
      #Number of vouchers given to the player when quest is completed.
      Amount: '1'
      #The item you want to use as the Voucher. Please use bukkit item names for this.
      VoucherItemType: 'PAPER'
      #Command to run when voucher is clicked. Make sure this is a console compatible command!
      Command: 'manuadd %player% VIP'
      Lore: #Lore to be added to the voucher item (usable placeholders: %rank%, %player%)
        - '&7Use this item to'
        - '&7get the &fVIP Rank'
        - '&7on the &cFactions &7server!'
        - '&7Given to: %player%'
----------, Jul 10, 2016

This update adds compatibility for versions 1.9 and above!
----------, Jul 10, 2016

Resource Information
Author:
----------
Total Downloads: 10,622
First Release: Jul 9, 2016
Last Update: Sep 7, 2024
Category: ---------------
All-Time Rating:
63 ratings
Find more info at goo.gl...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings