0 Ye Ol' Legacy Documentation
PikaMug edited this page 2023-03-30 22:00:08 -04:00

Updating from 2.0.0

If you are updating from Quests 2.0.0 ALPHA, you will need to adjust some files manually.

First, item data in quests.yml is now handled with Material names instead of Item IDs. Please regenerate your quest configuration file or manually update it using Material names from this link (ex. replace "id-264" with "name-diamond"). If you have items with displaynames, you will need to update them as well (ex. "name-Fancy Dirt" becomes "displayname-Fancy Dirt").

Second, if any of your player files located in the Quests/data/ folder are named after usernames (and not UUIDs), you'll want to run any version of Quests up to Quests 3.3.0 that has the built-in file name converter. Simply set convert-data-on-startup: true in your config.yml and run the server, or run /questadmin convert in-game. Alternatively, you can manually rename each file with each player's UUID (which can be determined here).

Finally, you may also wish to update Quests/lang/en.yml with the new phrases which will generate in en_new.yml (or just delete en.yml), and your player blacklist with UUIDs in config.yml. More recent builds of Quests remove the player blacklist entirely.

Updating to Quests 2.2.2

New language strings will now sometimes be added to a new file in the same folder as your language file when you update Quests. This file will be named similarly to your current file, but with "_new" appended at the end of the name (for example, "en_new.yml" or "fr_new.yml"). Simply copy the strings from this new file into your current one.

Pro-tip: For more information on editing your language file, view the guide.

Updating to Quests 2.3.4

All delays and durations will now only accept seconds as a unit of time. Quests that do not have delays/durations are unaffected. However, any that do will need to be manually updated to use seconds instead of milliseconds.

Updating to Quests 3.2.4

Updating requires that you regenerate your preferred language file in /lang/****/strings.yml after backing up your old one. Failing to do so will, at the very least, break the Quests Editor for that locale.

Updating to Quests 3.4.8

Permissions for the Event Editor were changed. You must update from the "Old" permissions to the "New" ones, as shown here.

Updating to Quests 3.8.0

The format in which items are saved in quests.yml has changed and is no longer as user-friendly to edit. Although Quests will continue to load any items in the old format, new quests made with version 3.8.0 will be saved using the new item format. The new format has several advantages such as allowing the use of colons (':') in item lore (old format used them as a data separator) and fully permitting the use of complex items such as the Shulker Box.

Click here to read about how the old item format worked

Warning: This information is intended for advanced users. Proceed with caution!

When you create and save a quest, Quests remembers this in one of two ways: as a List or as an ItemStack. Although it is not recommended to edit quests.yml manually, this information may be useful for rare situations such as fixing a broken file or updating from older versions of Quests.

If you are ever unsure about whether or not your edits are correct, or you receive errors on startup, try using an online YAML parser to check your quests file. One such parser can be found here.

List

Here is an example of Quests saving the data from a quest Stage in a list.

break-block-names:
  - stone
break-block-amounts:
  - 10
break-block-durability:
  - 1

The name can be nearly any Material name from this page, except for a select few. For example, prior to MC 1.13, WOOD_DOOR would not work as it refers to the item, not the block (use WOODEN_DOOR for this). Note that using a quests.yml made during MC 1.12 or earlier may require updating item names. For example, WOOD_DOOR was changed to OAK_DOOR for MC 1.13. You can see the full list of name changes here.

The amount simply refers to the number of blocks and the durability determines which variation of the block is affected (in this case, a data value of '1' indicates Granite rather than Stone, which would be '0'). Durability is unused on MC 1.13 and above.

Such lists are also used for mob and location data, among other things.

ItemStack

Here is an example of Quests saving the data from a quest Reward in an ItemStack.

items:
  - name-DIAMOND_SWORD:amount-1:enchantment-Sharpness 3:enchantment-Looting 2:displayname-Eviscerator:lore-It is said that this sword is:lore-so sharp that it can cut through:lore-obsidian.

While this may look daunting, it is easier to read when broken down. Each part is made of a key and a value, all of which are separated by colons (':'). Note that as of Quests 3.2.5, you may use colons in your item lore. However, you cannot use the value of the charSemi string in your language file, which is a semicolon (';') by default. If you wish to use semicolons in lore, you must change the charSemi value to something that you do not intend to ever use, or risk breaking your quests.yml file.

Back to the example: The first key/value pair describes the item name, designated by the leading "name-" key. The value is "DIAMOND_SWORD", which, as you might have guessed, informs Quests that this item is a Diamond Sword. Next we have the "amount-" of items involved in this ItemStack, followed by any enchantments placed on the it. The "displayname-" is the same as what you would get if you renamed an item with a Name Tag - just a custom name for the item. Finally, any lore associated with the item is saved with each "lore-" key representing a new line of lore.

You may also see a "data-" key on some items. This is also known as the damage or durability value and is used throughout Quests (and Minecraft) to determine the variation of an item. For example, a data value 1 on Coal will give Charcoal instead, because Charcoal is just Coal with a damage value of 1. It may also be used to state the amount of damage to a weapon or tool (hence the aka, damage value). Here's an example:

items:
  - name-DIRT:amount-3:data-2:displayname-Spectacular Dirt:lore-Top notch topsoil!

Additionally, the data.yml file present in previous versions was removed as it was found to be redundant. This file stored which NPCs were to display GUIs to players and was empty if no GUIs had been set. Updating does not require action and the file can be safely deleted. However, the /questadmin togglegui [npc id] command and associated quests.admin.togglegui permission node were removed as a result of this change.

Updating to Quests 3.9.0

The use-compass: true config setting was removed in favor of a new quests.compass permission node.

Updating to Quests 4.2.0

The ask-confirmation config setting was split into confirm-accept (same behavior) and confirm-abandon (ask confirmation on quit).

Updating to Quests 4.4.0

Deliver to NPC objectives used to save items as String instead of ItemStack. While recent versions up until 4.3.1 would convert these for you automatically at startup, Quests 4.4.0 no longer handles this.

Updating to Quests 4.8.0

Requirements which specify another quest (for blocking or prerequisite) were saved by name in much older versions of Quests. They must now be saved by ID, and while Quests would correct this for you when editing a quest on more recent versions, this must now be done manually.