Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation API #432

Open
gabizou opened this issue Feb 5, 2015 · 12 comments
Open

Conversation API #432

gabizou opened this issue Feb 5, 2015 · 12 comments

Comments

@gabizou
Copy link
Member

gabizou commented Feb 5, 2015

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.

@gabizou gabizou added this to the 1.2-Release milestone Feb 5, 2015
@ryantheleach
Copy link
Contributor

Did bukkit suppress chat and join messages while the conversation was displayed?

If so, should they be queued and released to the player when the conversation releases, or just discarded?

@gabizou
Copy link
Member Author

gabizou commented Feb 5, 2015

Did bukkit suppress chat and join messages while the conversation was displayed?

It depended on the Conversation itself. The ConversationFactory sets up the conversation whether the chat is passed through to the rest of the server, or whether the chat is "caught" by the conversation only. As for the other bit of chat from the server, I could imagine a "bouncer" like playback created when necessary.

@Sannholm
Copy link

Sannholm commented Feb 9, 2015

Can't people implement this quite easily on their own?

@ryantheleach
Copy link
Contributor

Yes, but theres some advantage to having consistent look and feel between plugin UI.

@Zidane Zidane removed this from the 1.2-Release milestone Mar 5, 2015
@gabizou gabizou modified the milestone: 2.0-Release Mar 5, 2015
@Zidane Zidane added this to the 2.1-Release milestone Mar 5, 2015
@gabizou gabizou added priority: low Low priority and removed status: input wanted labels Apr 7, 2015
@gabizou gabizou modified the milestones: Revision 3.0, Revision 2.1 May 17, 2015
@ryantheleach
Copy link
Contributor

Could this be achieved by setting the players MessageSink and redirecting their messages to a plugin?

The only thing that seems strange is the requirement of a CommandSource to be the recipient of a message... Or would creating a plugin defined CommandSource be appropriate for this use..?

@gabizou
Copy link
Member Author

gabizou commented Oct 19, 2015

@ryantheleach It is achievable that way, but bucket had a nicer system where players didn't receive any chat while in the "conversation". @zml2008 would this be feasible with Text API and Messaging API?

@gabizou
Copy link
Member Author

gabizou commented Nov 16, 2015

@zml2008 is this still within the realm of possibility for 3.0?

@meyerzinn
Copy link

Would this be better as a service, much like the Pagination service?

@Favorlock
Copy link

I am certainly interested in seeing a conversation API come to fruition. The Enjin Minecraft Plugin utilizes Bukkit's Conversation API, so we definitely see potential for this feature in Sponge.

@gabizou
Copy link
Member Author

gabizou commented Mar 16, 2016

@20zinnm It'd likely not be a service, as there's a lot involved with MessageChannels and such that require the client not to be alerted, but again, as most people have said, this is already feasible to implement directly in a plugin by itself. Perhaps @windy1 or @kashike can give light to seeing this possibly added in the future?

@kashike
Copy link
Contributor

kashike commented Mar 16, 2016

I'll look into this.

@Zidane Zidane removed this from the Revision 5.0 milestone Jun 6, 2016
@parlough parlough assigned parlough and unassigned stephan-gh and kashike Nov 22, 2017
@parlough parlough added this to the Revision 8.0 milestone Nov 22, 2017
@JBYoshi
Copy link
Member

JBYoshi commented Nov 22, 2017

For reference: #1532

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

10 participants