
BetonQuest
Create unique Quests and Storylines! 🏆 Top 10 best rated Spigot Plugin of all time 🏆 Interactive Conversations with Choices. Quest Logs, Menus, Items, Notifications, Holograms, Translations. Integrates with 36 of your favorite Plugins!
Changed
- previous maven artifact repository nexus
https://nexus.betonquest.org/repository/betonquest/replaced with reposilite available athttps://repo.betonquest.org/betonquest/ - Bukkit API events are now called sync/async depending on the tread context they are called in
- actions, objectives, and conditions do not replace underscores anymore. quoting syntax needs to be used now
brewobjective now checks brewed items in a more accurate waysimplequest items now resolve placeholders one time on reload to supportconstantplaceholdersowner:%player%was changed toowner:to allow constant pre-parsing
npc_conversationsshow the combat message only if there is a bound conversationJournalandQuest Itemare checked with PersistentDataContainer instead of lorehologram'stop:line to customizable format- LoadDataEvent is now called before and after the data is loaded with a new enum
LoadDataEvent.Statethat indicates the state - configuration structure and naming
- reworked the entire config.yml file
- renamed
max_npc_distancetomax_conversation_distance - renamed
acceptNPCLeftClicktonpcs.accept_left_click - renamed
npcInteractionLimittonpcs.interaction_limit message.ymlfile was deleted, and instead the lang folder now contains all translationsmenuConfig.ymlfile was deleted, translations are in the lang folder, and the config is part of config.ymlitem.backpack.cancel_buttonanditem.backpack.compass_buttondo not have aDEFAULTvalue anymore, instead you need to specify an item
- terminology and naming
- renamed
VariablestoPlaceholdersin the entire project - renamed
EventstoActionsin the entire project - renamed
globalproperty for objectives toauto-once - cross-packages now use
>instead of.to solve conflicts in placeholders - in objectives -
eventandconditionare nowactionsandconditions - in actions -
conditionis nowconditions - in menus -
conditionis nowconditions - in conversations - options
condition,event,pointerandextendare nowconditions,actions,pointersandextends
- renamed
- commands
itemcommand now requires the specification of serializervariablecommand allows setting and getting data now for offline playersobjectivescan now be removed from the database via command even when it does not exist
- conversations and conversation IOs
- conversations now always print their start and stop conversation message
menuconversation IO settings are now defined theconfig.ymlfile in theconversation.io.menusectionmenuconversation IO based on packetevents renamed topacketeventsmenuconversation IO displaying and scroll behavior reworkmenuconversation IO no longer ignores canceled bukkit events to process as inputpacketchat interceptor was renamed topacketevents- custom items in the chest conversation IO are now defined in the
propertiessection as an option %quester%placeholder is used instead of%npc%for the quester's name in conversations;%npcplaceholder is now used for the new npc systemchestconversation IO now actually ends when there is to npc option left or the player closes the inventory
- integrations
ProtocolLibwas replaced withPacketEventsMMOCoreintegration updated to1.13.1-SNAPSHOT
- menus and menu items
- menu item's name and lore are no longer italic by default, name can be overridden while keeping original lore
bound_itemnow finds the first menu allowed to open instead aborting after the first check
- npcs
citizensnpcs to use the npc identifiers of BetonQuest instead of those from Citizenscitizensnpcs hiding now uses the inbuilt player filter traitnpcsin thenpc_hologramsandnpcs,conditionsandlocationsin theeffectlibsection now use comma-separated lists
- element behavior
- the actions in quest cancelers to be now executed before the teleport
itemsnow have a type like other elementsmathplaceholder now gives a better exception message and does not return 0 insteadcancelaction now respects by default canceler conditionsfishobjective use block selector instead of a quest itemactions,objectives,conditionsand co. are now case-insensitiveinteractobjective now acceptinganyas an option for the entity type argumentpickrandomaction now use tilde instead of percentagemooncyclecondition is nowmoonphaseand uses a list of the phases instead of numbersmmobkillobjective now uses the killer (if present) to resolve names and distances
Added
package.versionfor quest packages and quest templatesconstantscan be addressed with the new constant placeholderbypasskeyword tocancelaction to ignore conditions in quest cancelersevalaction and condition to resolve a string and interpret it again as action/conditionsyncplaceholder offering identical evaluation asevalbut forcing the execution on the main threadmainhandselection order totakeactionabortflag andfailactions to (chest) take actiondebug dumpcommand to only dump the history to the log fileunitas optional argument to thefolderaction to define the time unit for ticks, seconds, and minutes - defaults to seconds- support for
itemModelfor the totem NotifyIO (MC 1.21.4+) - optional ingame message for plugin updates (previously removed in 2.1.0)
FastStatsto provide better statistics for BetonQuest- all of Minecraft's default font widths are now used to calculate the width of a string for line wrapping
- support for text parsing formatter allowing for minimessage, minedown, and other formats for texts
- support for placeholders in all actions, objectives, conditions, and more
- list arguments allow for placeholders to be used in each element or all elements
- menu features
- menu items are now in the
menu_itemssection, allowing references from multiple menus titleallows defining different messagesbinditem for specific clickscheckflag tomenuaction to respect the menu's open conditionsmenuaction now supports theupdateaction to update the currently opened menu
- menu items are now in the
- item types and item system improvements
mmoitem,nexo,craftEngine,itemsAdder,mythic,brew,magicitem typessimpleitem typeitem-nameargument (MC 1.20.6+)item-model&no-item-modelarguments (MC 1.21.4+)custom-model-datasupport for data lists (MC 1.21.4+)
quest-itemargument for Mythic(-Mobs) and MMOItems item types
- integrations and features to existing integrations
FancyNpcs,ZNPCsPlusandMythicMobsas new options for npcsFancyHologramsas compatible hologram plugincitizensnpcs are now used only from default registrymcastaction to cast a Mythic(Mobs) skill with skill parameters for a playermmostataction to modify the player's stats using the MythicLib (MmoLib) integrationbrewaction/conditionmodeparameter to select by name or idmodetommobkillto allow checking for faction instead of name
- new conversation features
- notification categories
conversation_startandconversation_end menuconversation IO settings to configure the scroll down and up buttons- native
menuio implementation which sets the player's speed to zero instead mounting it on an arrow (MC 1.21.4+) invincibleconfig option to disable conversation invincibilityconversation.block_item_transferoption with per-conversation override to prevent item moving while in a conversation- new notification category
conversation_nothing_to_start - config option
conversation.interceptor.display_historyto allow the interceptor to send the chat history after a conversation - config option
conversation.interceptor.delayto configure a delay between the end of a conversation and the moment the interceptor is ended
- notification categories
- new objectives
timerto track ingame timepointto track point changes
Removed
- spigot support entirely, now paper is required
- undocumented prefix feature in conversation
citizens_npcs_by_nameconfig option, which is now part of the id- start and stop sound in the configuration for conversations were removed in favor of the notification system that now also has the two new build in categories
conversation_startandconversation_end menu reloadcommand which did not workvariablessectionMMOItemsconditions, actions, and themmoitemcraftobjective in favor of the built-in onesjournal.chars_per_pagewas deleted from the config.yml- undocumented way of addressing packages in some placeholders
journal.show_separatoroption deleteddisplay_missedconfig option, as thenoneinterceptor should be used instead- legacy multiply with
*for points - dependency
PaperLibsince its discontinued - aliases
/q,/jand/bto improve compatibility with other plugins by actively reducing conflicts on command names Breweryitem condition and actions, in favor of the built-in ones
Fixed
- plugin did not reload menu config correctly
- potions generated have not been extended/upgraded since 2.2.1
- biome condition on Minecraft 1.21.4 could not parse the biome from the instruction anymore
randomnumberplaceholder now correctly returns lower boundstageobjectiveindexproperty not working and now also starts at 0- betonquest command without arguments did not work anymore
Fabledhook not working properlyquest cancelerdid not resolve global placeholdersquest cancelerusedlocinstead oflocationkey for teleportationjournallanguage only changed after rejoin when changing player languagejournalentry renaming or deleting via command now affects all specified pointers and not only onerideobjective did only count vehicles, not all entities- scrolling the mouse in the menu conversation IO did not work
MMOCoreattribute loading with MMOCore 1.13- missing messages
animals_to_tameandtimes_to_jumpin language files by adding them menuitem parsing with newlines caused missing lines in some casesmenus throwing exception on reload when bound commands are usedmmoitemcraftobjective NoSuchMethodError with MMOItems 6.10+menuconversation IO exception in one edge caseinteractobjective's documentations used hookLocation instead of loc for the locationrandomnumberplaceholder using locale/eventually comma instead of dots breaking further using like mathinteractobjective now blocks the interaction with an item frame properly if cancel is setbrewerynull pointer exception when a brew has no recipenpcrangeobjective did count player without it valid foroutsideactionglobal objectiveerror on join when it was added with the command or the tag got removedtellrawconversation IO showed pop-up for unknown commandsimpleitemflagscrashed plugin when invalid- disabling the plugin no longer causes hardly expected zip errors
mspawnmobexception when spawning the mob is canceled/forbidden- conversations could cause deadlocks when too many conditions are checked
itemdurabilityplaceholder parsed differently than intended in docs- database connection is now more stable and reconnect probably works better now
QuestItems andJournals could be put into bundles (MC 1.21.4+)- hologram integration with the lowest priority was selected instead of with the highest
- broken conversation states no longer trap players
fireworkcolors de-/serializing insimpleitem when there is no colornujobs_paymentobjective wrongly using target amount for everythingMMOCoreactions and conditions now no longer wrongly accept offline players- offline player data access in multiple elements supporting offline context
- code in
npcmoveaction effecting the end of a navigation to may return to a previous location in some cases
- previous maven artifact repository nexus
Merge pull request #4038 from Juyas/changelogCleanup
Update ChangeLog before Release
Merge pull request #4039 from TheosRee/dev-3/273
Escape quotes in simple item serializing
Merge pull request #4032 from TheosRee/dev-3/271
Check in ChestPutObjective if there is a Chest/InventoryHolder only if the location matches
Merge pull request #4036 from Juyas/update/faststas
Update
faststats-bukkit.versionto 0.25.2Am I worthy of calling myself a co-author?
Juyas has officially become a BetonQuest author by adding his name to the plugin.yml file himself. Now, everyone who looks at the authors list will know who to ask for help.
Merge pull request #4034 from Juyas/fix/chatFormat
Fix chat format getting stripped
Merge pull request #4033 from TheosRee/dev-3/272
Move item resolving into ItemLine setLine
Merge pull request #3983 from TheosRee/dev-3/266
Add player as context for mythic item and add mcast metadata
Merge pull request #4030 from Juyas/fix/concurrentMetrics
Avoid concurrent modification exceptions
Merge pull request #4029 from Juyas/fix/offlinePlayerData
Fix offline player data access
Merge pull request #4028 from Juyas/fix/npe
Fix NPE in faulty objective ata
Merge pull request #4027 from Juyas/fix/mmocore
Fix MMOCore accepting too much offline players
Denizen script with definitions (#4022)
Add option to define values passed to Denizen as tag definitions for script execution
Merge pull request #4018 from TheosRee/dev-3/268 - bypassed on tasklist stuck
Use multi target Npcs from Identifier
Merge pull request #4024 from Juyas/improveFastStats
Do not track errors on unofficial builds
Merge pull request #4023 from TheosRee/dev-3/270
fix cancelling PlayerConversationStartEvent not interrupting
Merge pull request #4019 from Juyas/api/definable-arguments
Add option to parse a map of named arguments

