Bukkit had a decent API called "Conversations" where a Conversable would be able to converse with a plugin and vice versa.
The core of the Conversation was being able to use a Conversation to maintain a quasi transient ConversationContext that basically was a Map<String, Object> to contain information pertinent to the conversation in the context between the player and the plugin.
The API had quite a bit to use, and there are some plugins that have been able to use them more robustly for interactive chat-based menus, and to be honest, I'd like to see some form of this API in SpongeAPI.
Ideally, as the getConversationData(Object) is rather abstract, I'd prefer to see some use of DataQuery as keys. Of course, all of this is up for debate and discussion.
Bukkit had a decent API called "Conversations" where a
Conversablewould be able to converse with a plugin and vice versa.The core of the
Conversationwas being able to use aConversationto maintain a quasi transientConversationContextthat basically was aMap<String, Object>to contain information pertinent to the conversation in the context between the player and the plugin.The API had quite a bit to use, and there are some plugins that have been able to use them more robustly for interactive chat-based menus, and to be honest, I'd like to see some form of this API in SpongeAPI.
Ideally, as the
getConversationData(Object)is rather abstract, I'd prefer to see some use ofDataQueryas keys. Of course, all of this is up for debate and discussion.