Package org.bukkit.conversations

# Class ConversationContext

java.lang.Object
org.bukkit.conversations.ConversationContext

public class ConversationContext extends Object
A ConversationContext provides continuity between nodes in the prompt graph by giving the developer access to the subject of the conversation and a generic map for storing values that are shared between all `Prompt` invocations.

## Constructor Summary

Constructors
Constructor
Description
`ConversationContext(@Nullable Plugin plugin, @NotNull Conversable forWhom, @NotNull Map<Object,Object> initialSessionData)`

## Method Summary

Modifier and Type
Method
Description
`@NotNull Map<Object,Object>`
`getAllSessionData()`
Gets the underlying sessionData map.
`@NotNull Conversable`
`getForWhom()`
Gets the subject of the conversation.
`@Nullable Plugin`
`getPlugin()`
Gets the plugin that owns this conversation.
`@Nullable Object`
`getSessionData(@NotNull Object key)`
Gets session data shared between all `Prompt` invocations.
`void`
`setSessionData(@NotNull Object key, @Nullable Object value)`
Sets session data shared between all `Prompt` invocations.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### ConversationContext

public ConversationContext(@Nullable @Nullable Plugin plugin, @NotNull @NotNull Conversable forWhom, @NotNull @NotNull Map<Object,Object> initialSessionData)

Parameters:
  `plugin` - The owning plugin.
  `forWhom` - The subject of the conversation.
  `initialSessionData` - Any initial values to put in the sessionData map.

## Method Details

### getPlugin

@Nullable public @Nullable Plugin getPlugin()
Gets the plugin that owns this conversation.

Returns:
  The owning plugin.

### getForWhom

@NotNull public @NotNull Conversable getForWhom()
Gets the subject of the conversation.

Returns:
  The subject of the conversation.

### getAllSessionData

@NotNull public @NotNull Map<Object,Object> getAllSessionData()
Gets the underlying sessionData map. May be directly modified to manipulate session data.

Returns:
  The full sessionData map.

### getSessionData

@Nullable public @Nullable Object getSessionData(@NotNull @NotNull Object key)
Gets session data shared between all `Prompt` invocations. Use this as a way to pass data through each Prompt as the conversation develops.

Parameters:
  `key` - The session data key.
Returns:
  The requested session data.

### setSessionData

public void setSessionData(@NotNull @NotNull Object key, @Nullable @Nullable Object value)
Sets session data shared between all `Prompt` invocations. Use this as a way to pass data through each prompt as the conversation develops.

Parameters:
  `key` - The session data key.
  `value` - The session data value.