[Paper] PlayerQuests icon

[Paper] PlayerQuests -----

Survival-friendly questing by the players for the players!




###### (join the discord to give feedback!)

- Beta release (v0.10.1 - Meta Info Fixes)

# What's changed
### - **Moved to Paper! + Minecraft 1.21.6**
* add outline for EntityNPC type

* add SelectEntity gui function

* add serialising EntityNPC

* fix checking EntityNPCs in BlockListener

* add spawning EntityNPC

* add dynamic particleFX above NPC

adjusts to entity height

* add removing entityNPCs and fix untoggling not removing NPCs

* fix getNPC null error when no NPCs

* update to v0.10

* update dependencies

* add place button for EntityNPC

decouple from npctypes screen

* add current location description to NPC relocate button

* fix being able to use existing entity NPC for new

* fix EntityNPCs not being client side

fixes https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/issues/150

* add no overwrite option to loadQuests

* add default quest title incase invalid or empty

* fix never updating existing quest

* add serialisable entity data

* overhaul NPC tracking

* fix NPC blocks not persisting on NoneAction

needs to run on the the main thread

* fix unable to untoggle BlockNPC quests

* fix copy-rename-maven-plugin code checking false positive

* add .settings dir to .gitignore

* improve plugin introduction

* remove undefined entities

* add rabbit entity support + some EntitySerialiser safety

* add sheep entity support

* add safety to serialising entity attributes from the string

* fix opening quest editor causing background quest title prompt

* remove unused import

* add additional filtering entityNPC interactions

now filters on attributes (the serialisable data object)

* add citizens2 to database v0.10 migration

* add methods for citizens2 support check/set

* add blocking quests with EntityNPCs if missing Citizens2 dependency

* add soft depend on Citizens2

* add citizen2 to pom

* add citizens2 integration

* remove unused imports

* add LookClose trait to NPCs

* add labels support for actions and stages

fixes https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/issues/154

* Update quest diary to use action labels

* add sorting for stages in 'next action editor'

fixes https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/issues/155

* update QuestAction and RequestItemListener to immediately check RequestItem

fixes https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/issues/157

* fix despawn task stopping when a citizens2 NPC not found

seems to fix https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/issues/156

* increased the amount of QuestAction slots

in the future, should probably do pagination

* update README tables

* fix innacurate 'not enough stock' on quest inventory

fixes https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/issues/159

* add framework for complex items

* simplify potion details

* overhaul ItemSerialisable framework

* fix clarity of TakeItemAction consent prompt

* add ALLOWED_GENERIC_MATERIALS list to ItemData

fixes https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/issues/162

* remove unused 'predefined variants'

* add ItemSerialisable property purification

partly fixes https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/issues/163 -- you can see how in the screenshot in https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/issues/163 there is a case of POTION[material :pOTION]. This should be impossible, this commit corrects this data on the fly. It will now read more like POTION[type:WATER]. YAY!

* fix ItemData.AIR being used as a valid item

* add a bunch of allowed generic ItemData materials

* fix limitation on generic GUI items and RequestItem completion check

* fix generic player inventory item match checking

* add helper method for if player inventory hasRequiredItems

* fix ugly ItemSerialisable names/displays

* fix underscores breaking ItemSerialisable text formatting

* update dependencies; support mc1.21.6

fixes https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/issues/164

* add support for generic item properties + replace SPIGOT w/ PAPER

fixes https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/issues/161 but replacing spigot creates https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/issues/165 and many deprecations that need to be replaced

* update GUI and ChatUtils to 1.21.6

* update ChatPrompt to Paper

* add unintrusive drawFrame failure

* fix SelectEntity exiting

* fix ChatPrompt feedback

* fix shared quest labels

* fix quest inventory submit button

* remove deprecated GUI title refresh

* fix questdiary showing WHITE wool for tracked quests

something is wrong with new ItemSerialisable(Material.name())

* migrate Dynamicquestdiary to paper

* remove KeyHandler

* add Material.NAME_TAG to allowed generic ItemData

* migrate NPC name ChatPrompt to paper

* migrate SelectMaterial to Paper

* migrate TakeItemAction to Paper

* remove unused @Key annotation import

* remove unused imports

* migrate ItemData to Paper

* fix Adventure.Component text decoration/styling leaking

* fix quest title in GUI not updating after renaming quest

* add sending message on quest editor save

fixes https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/issues/166

* fix string-based ItemSerialisable constructor

by resolving the ItemStack outside ItemData to avoid loss of properties data. Fixes https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/issues/167

* remove leftover ChatColor usages

* fix incorrect use of Component chaining

* fix POTION deserialisation and all items inventory presentation

* add annoying console message when quests not allowed

probably will be removed or moved if a verbose/debugging mode is added

* fix citizen being hard dependency

* fix quest editing jank before first manual save

..by just saving to registry/fs on creation

* add alternative method of refreshing UI with paper limitations

re-opening the current screen as an UpdateScreen. The UpdateScreen method is patched to not double up in history preserving the 'go back' functionality.

* fix unecessary newline after '[playerquests]'
----------, Jun 27, 2025

###### (join the discord to give feedback!)

- Beta release (v0.10 - Entity NPC types)

# What's changed
* add SelectEntity gui function

* add flexible particleFX height above NPC

* add current location description to NPC relocate button

* add default quest title incase invalid or empty

* add serialisable entity data

* overhaul NPC tracking

* fix NPC blocks not persisting on NoneAction

* fix unable to untoggle BlockNPC quests

* fix copy-rename-maven-plugin code checking false positive

* remove undefined entities

* add rabbit entity support + some EntitySerialiser safety

* add sheep entity support

* add safety to serialising entity attributes from the string

* fix opening quest editor causing background quest title prompt

* add blocking quests with EntityNPCs if missing Citizens2 dependency

* add citizens2 integration

* add labels support for actions and stages

* add sorting for stages in 'next action editor'

* update QuestAction and RequestItemListener to immediately check RequestItem

* increased the amount of QuestAction slots
----------, May 25, 2025

###### (join the discord to give feedback!)

- Beta release (v0.9.2 - Downgrade JDK23 -> JDK21)

If you've experienced "Classpath" issues when trying to start your server with this plugin, this should solve it. Make sure you're on Java 21 at least.

# What's Changed
* v0.9.2 - downgrade JDK23 -> JDK21
----------, May 5, 2025

###### (join the discord to give feedback!)

- Beta release (v0.9.1 - 'None' Action Patch)

# What's changed
* fix being able to complete 'None' actions
* add 'None' action exclusion from clashing actions check/prompt
* remove checking completion of 'None' action
* add ignore to serialising all action validity checks
----------, Apr 23, 2025

###### (join the discord to give feedback!)

- Beta release (v0.9 - More Action Types)

# What's changed
* update to v0.9

* add ActionTweaks and fix 'None' action not looping ( https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/pull/126)

* add ActionTweaks enum

* Add request item action ( https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/pull/129)

* add early RequestItem infrastructure

* fix not null err for onUpdate

* add ItemsOption

* convert ItemsOption to serialisable form

* set RequestItemAction location as null

* add checking RequestItem success

* fix new release notif including snapshots

* Add Request Item action ( https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/pull/132)

* add early RequestItem infrastructure

* fix not null err for onUpdate

* add ItemsOption

* convert ItemsOption to serialisable form

* set RequestItemAction location as null

* add checking RequestItem success

* Add Reward Item action ( https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/pull/133)

* update to v0.9

* add ActionTweaks and fix 'None' action not looping ( https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/pull/126)

* add ActionTweaks enum

* Add request item action ( https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/pull/129)

* add early RequestItem infrastructure

* fix not null err for onUpdate

* add ItemsOption

* convert ItemsOption to serialisable form

* set RequestItemAction location as null

* add checking RequestItem success

* fix new release notif including snapshots

* remove leftover todo

* add RewardItemAction

* add action stop when quest inventory out of stock

* fix predictive inventory and out of stock UI

* fix unhelpful missing stock message

* fix tidying up before screen refresh

* Add Take Item action ( https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/pull/131)

* update to v0.9

* add ActionTweaks and fix 'None' action not looping ( https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/pull/126)

* add ActionTweaks enum

* Add request item action ( https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/pull/129)

* add early RequestItem infrastructure

* fix not null err for onUpdate

* add ItemsOption

* convert ItemsOption to serialisable form

* set RequestItemAction location as null

* add checking RequestItem success

* fix new release notif including snapshots

* remove leftover todo

* add RewardItemAction

* add action stop when quest inventory out of stock

* fix predictive inventory and out of stock UI

* fix unhelpful missing stock message

* fix tidying up before screen refresh

* add TakeItemAction and TakeItemListener

* docs: update actions capabilities ( https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/pull/134)

* fix quest actions starting when already in progress and layering

* add action failure support

* add auto retry on TakeItem action failure

* overhaul quest inventory management functions

* fix refunding NPC that doesn't exist yet (item duplication bug)

* add quest action consent

* fix location breaking quest diary display

* add holistic replace when quest renamed

* add ordered actions to 'action selector' & 'next action editor'

* add option to use any stages action in the 'Action Completion' condition

* docs: add quest inventory to tutorial

* encode quest inventory restocking video as looping

* make npc optional for 'None' action
----------, Apr 21, 2025

###### (join the discord to give feedback!)

- Beta release (v0.8.1 - Initialisation Patch)

# What's changed
* Fix jar package export
----------, Mar 16, 2025

###### (join the discord to give feedback!)

- Beta release (v0.8 - Refactoring Actions)

# What's changed
* v0.7 - Item Fetching Quests by @sammypanda in https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/pull/100
* Gut previous actions implementation by @sammypanda in https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/pull/110
* Refactor quest actions by @sammypanda in https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/pull/113
* Update docs for actions by @sammypanda in https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/pull/124


**Full Changelog**: https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/compare/v0.7...v0.8
----------, Mar 15, 2025

Hai people!

I know this plugin doesn't have a lot of attention, but I want to make this just in case any people are curious what's happening or why a new version hasn't been posted for four weeks.

In the last version (v0.7) you are able manage where your action is in your quest with a 'sequence' that has: 'previous', 'current' and 'next' options.
upload_2024-10-26_9-22-12.png

Already that is sort of confusing to what it means. It also only allowed one action for each option. This made it basically impossible to do multiple endings or really anything fancy. All while being very complicated to understand.

This is going ba-bye, which thankfully since this plugin is small i don't think anyone will miss it. Also it looks like the change to quest templates shouldn't impact anyone, since bStats says only the test server is currently running PlayerQuests.

TL;DR / So what is replacing it?
I've chosen to redesign the ordering of actions with just simplicity in mind.

In the coming version (probably released next month) you will:
- Pick from a list of actions which ones come next.
- Have the ability to set conditions for when those actions can start / finish (such as: the time of day, or a set of required actions to have finished first).
upload_2024-10-26_9-27-17.png

Happy Halloween :)
----------, Oct 26, 2024

(join the discord to give feedback!)

- Beta release (v0.7 - Item Fetching Quests)

Changelog

- Add gather item action (#99)
- Add bare implementation of GatherItem + quest action dev docs
- Add quest auto-save on item list exit
- Add take item action (#102)
- add 'Quest Inventory' w/ restocking (#104)
- Fix overuse of mutable lists
- Fix current quest not starting (#108)
----------, Sep 27, 2024

(join the discord to give feedback!)

- Beta release (v0.6 - UX Enhancements)

Changelog

- Add simplified keywords: 'c' for confirm, and 'e'/'x' for exit (#93)
- Add lock for stages editor when no NPCs in the quest (#94)
- Add progressively saving a quest while editing (#95)
- Fix accuracy of quest upload/submit messages in console
- Fix unsynchronised access to activeFX lists
- Fix unsynchronised access to activeBlockNPCs lists
- Add console start and close fs watch service notifs
- Change NPC penalise/refund only on save
- Add quest save/reload on a quest NPC save
- Fix over-abstracted quest Save GUI function
- Fix unsynchronised actionNPC list
- Fix progressive saving regressions/bugs (#96)
- Add going back to original screen after changing any connection (prev, curr or next)
- Fix watcher trying to delete quest when it does not exist
- Add 'Remove connection' to sequence editor
- Add missing javadoc documentation
- Fix toggling w/o persistent toggle state
- Fix clutter in QuestRegistry
- Change quests to self-submit to registry
- Fix quest overwriting in registry
- Fix initialising quest progress sourced from db
- Fix untoggled quest FX showing on start/reload
- Fix NPCs spawning on top of other NPCs
- Fix submitting toggle to database when toggle fails
- Fix NPC block staying in world when NPC removed
- Improve readability of NPC collision message
----------, Aug 29, 2024

(join the discord to give feedback!)

- Beta release (v0.5.4 - Full inventory block NPC refund hotfix)

Changelog

- add dropping refunded block NPC when inventory full
- remove unused SelectLocation Material import
- remove old database cache TODOs
----------, Aug 21, 2024

(join the discord to give feedback!)

- Beta release (v0.5.3: Interactive functions hotfix)

Changelog

- add more exit conditions to interactive functions
----------, Aug 20, 2024

(join the discord to give feedback!)

- Beta release (v0.5.2: Release alert hotfix)

Changelog

- fix release alert always showing
----------, Aug 18, 2024

(join the discord to give feedback!)

- Beta release (v0.5.1: Quest caching instead of real-time database, and other QOL fixes)

Changelog

- fix quest viewer thread blocking and/or communicate searching the filesystem for the quest
- add background quest loading with FS watcher
- fix when a quest is already toggled on reload, on remove, it doesn't remove from the diary
- fix when deleting a quest FX isn't updated
- fix quest diary entries duplicate when a quest is untoggled and retoggled
- fix listening for all player messages in ChatPrompt
- fix listening for all player block placing in SelectLocation
- fix cancelling chat when chat is a denied select method in SelectBlock
- fix concurrency issues with database
- remove quest progress tracking debug console logs
- fix un-started quests never added to new player quest diaries (regression)
- fix GUI clicks running for other players
- add closing GUI on server reload
- fix stage adding increment
- add StagePath for quest pointers
- add latest release alert
- add quest resources refunding
- cap quest actions to 12
- cap quest stages to 42
- fix order of stage list in quest stages menu
----------, Aug 15, 2024

(join the discord to give feedback!)

- Beta release (v0.5: Metrics)

Changelog

- Update environment and maven dependencies
- fixed showing quest editor if quest title is empty string
- fixed invalid quest title still opening editor
- Update dependencies
- fixed 'action editor' option slots loop
- Add metrics with bStats
- Update docs to match with plugin pages
----------, Jul 20, 2024

(join the discord to give feedback!)

- Beta release

Changelog
- updated 'How To Get Functionality' explainers/quest action plan
- added early quest expressions/templates
- removed duplicated 'How It All Works' section
- added re-arrange buttons for actions/stages
- added ARRANGE GUI mode
- disabled menu items put out of GUI (in ARRANGE mode)
- fixed taking items from GUI
fixed methods incl: throwing out of inventory, using the dragging mechanism to bypass click block (and finally) holding the block and cancelling the inventory forcing it to default to the Player inventory instead of being destroyed. These issues were fixed respectively, except the last which has a safety net sort of method, where if the GUI is closed finally, it will loop through slots and remove any items tagged with GUI="true"
- re-toggling the re-arrange button
back into the click gui mode, from arrange gui mode
- removed re-arrange buttons for stages/actions
- added 'Change Sequence' button to quest stage editor
- added a test/proof connectioneditor
- added unimplemented connectioneditor buttons
- added empty 'select connection' menu
- added 'Back' button to 'select connection' menu
- added placeholder stages for 'select connection'
- implement stages recursion in 'select connection'
- add label for 'select connection' stage buttons
- add action sub-menu outline to 'select connection'
- added back button to action sub-menu
- add actions recursion in 'select connection' sub-menu
- added setting connection data from 'connection editor'
- removed ConnectionsData debug message
- fix null getType in actiontypes/actioneditor
- added changing entry point for Quest
- fixed action in 'quest editor'
- improved 'quest stage' new action button
- fixed null diaryConnections on NPC interact
- NPC Types: Block -> (renamed to) BlockNPC
This is a breaking change sadly, but it was hell bent on not interpreting the type data under a different simple name
- added connectioneditor to actioneditor
- indicate shared/global quests in myquests
- added heading to theirquests menus
- load up questbuilder npcs with setID()
- fixed UX: some back buttons being labelled 'Exit'
- fixed unable to 'exit' in select npc block mode
- beans-tester-bonus NPCs on the same y axis
- subpar fix: changing NPC locations
- clone quest from JSON rather than former QuestBuilder class
- removed unused quest expressions
- set recovered quests to default to not shown (untoggled)
- dividers for 'queststages' to dynamically cover first two columns
- broken: added 'add stage' button
no support for multi-stage in quest diaries
- support for multi-stage in quest diaries
- add description field for GUI buttons
- Delete button on stage editor
Includes confirmation, with checks to see if possible or if stage is depended on. Shows a gray button w/ 'Cannot Delete'. Also has a description of why, which should maybe be split on every nth whitespace.
- add a stage_0 if it doesn't already exist
- QuestBuilder.getStages() as LinkedList
- malformed quest handling improvements
still might error out to console when the error comes from parsing the JSON in Quest.fromTemplateString()
- add 'unreadable quests' indicator w/ added GUISlot.setCount
- fixed regression with cloning quests
- fixed assigning NPC block, possible race condition
usually stacks would interrupt the Listener unregistering slash cause the current re-opened GUI to dispose itself too early leading to a dead/broken GUI.
- replaced main GUI: static -> dynamic
- spring cleaning + update compiler to Java 22
- set instance on click for myquests list
- theoretical fix: GUI breaking with multiple players
- add instantiating builders map
- do not handle onClick at all for GUI if not isGUIInventory
- fix NPC interactions breaking with multiple players
multiple players interacting; or more specifically multiple diary entries with the same quest. The issue was multiple records were being obtained when trying to get the players progress in the quest from the quest diaries (this was because it was just searching by quest name, not by quest name and diary ID)
- remove static GUI (GUI template) infrastructure
removes all the JSON GUI template parsing mess
- fixed NPC 'speak' action: dialogue only showing after set
- extended NPC dialogue action, dialogue preview length
- fix empty dialogue breaking NPC speaking
- added quest action requirements + 'Speak' NPC requirement
- added NPC LocationData to validity check
- theoretical fix: add player to clearChat calls
fixes #50
- fix clearChat failing when used before function 'setUp'
- added support for more data in BlockNPC.value (half-implemented)
addresses, and basically fixes #46. But sophisticated data like custom player heads doesn't work due to a data bottleneck in NPC block selection/placement
- small fixes to quest template loading
- added catch-and-repair for missing data in myquests GUI
- fixed quest toggling removing quest from db
- added better message sending
- fixed queststage GUI behaviour when working with actions
- theoretical fix: jank when going to previous GUI from npctypes
- change some user-facing messages: ERROR -> WARN
- fixed untoggled quests adding to the QuestClient
- added PlayerQuests tutorial
- removed PLUGIN-CUTE.md template
- add the unsupported item actions to docs
- clarify 'Speak' action is not to the world
----------, Jul 18, 2024

(join the discord to give feedback!)
  • Beta release
Changelog
Patch: First DB/Plugin Init
  • Fixes issues with database not initialising due to missing plugin folder.
  • Fixes players not being inserted correctly to db on first time.
----------, Apr 20, 2024

(join the discord to give feedback!)

- Beta release

Changelog
Feature: Persistent data
- Tracking quest players
- Restarting/reloading
- Quest sequences (like a looping multi-npc chat)
- Continuous quest progress!

Feature: Entry point stages and actions
- Changing which action is first in a quest stage

Feature: New 'Speak' NPC action type
- GUI 'Available Action Types' selection list
- Actions: None, Speak
- Defaults to None
- Adding actions to quest stages

Feature: Quest NPCs object, list and editor
- Creating and saving NPCs to a Quest
- Ability to set NPC Type to be a 'Block'
- Sparkly NPC (Blocks) to show you can interact with them!
- Quest blocks with 'Speak' action for dialogue

[showcase of sparkly npc blocks] [​IMG]

[showcase of quest sequences]
https://github.com/sammypanda/MCJE-...38725335/ff93d014-3b5f-4e80-8418-b6cd4cffaf01
----------, Apr 19, 2024

It was fixed over on Modrinth with help from @BasToTheMax https://github.com/sammypanda/MCJE-PlayerQuests-Plugin/issues/8. But over here the link was still dead. Not anymore! Join if you'd like (^^)

https://discord.gg/EvWVSn9URf
----------, Apr 16, 2024

Alpha release

Changelog:
Feature: Accessing the plugin with an in-game GUI
  • 'Create Quest' button
  • 'Exit' button
upload_2024-1-15_1-53-17.png

Patch: Duplicated slots

  • GUI slots were created at the prev slot and moved. This would lead to duplicates as the prev slot became the same as the new
----------, Jan 14, 2024

Not in a state to be used. Only for testing!

Changelog
- Slot Positions added to GUI shells

As of be78b64 the slots.slot key (which describes the position in the GUI) is working <3
Right now the item is falling back to the default, which is grey stained glass pane (as to symbolise empty) and the default label or custom GUI label support has not been added.
Screenshot from 2023-12-30 01-34-33.png

- Basic GUI shells implemented
Yesterday, as of 2ec08b5 the basics of GUIs is working. All that seems to be left on this for v0.2 is for the rest of the GUI components to be implemented!
----------, Dec 29, 2023

Resource Information
Author:
----------
Total Downloads: 859
First Release: Dec 28, 2023
Last Update: Jun 27, 2025
Category: ---------------
All-Time Rating:
3 ratings
Find more info at discord.gg...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings