“Chemdah 开发者文档:自定义对话主题”的版本间的差异
来自Purtmars Wikipedia —— 普特莫斯维基
(建立内容为“{{:Chemdah 开发者文档目录}} = 对话主题 = 注册自定义对话主题需要分别实现 Theme 与 ThemeSettings 类,在本章文档中我们会从零…”的新页面) |
|||
第1行: | 第1行: | ||
{{:Chemdah 开发者文档目录}} | {{:Chemdah 开发者文档目录}} | ||
= 对话主题 = | = 对话主题 = | ||
− | 注册自定义对话主题需要分别实现 Theme 与 ThemeSettings 类,在本章文档中我们会从零开始注册一个简单的聊天框对话主题。 | + | 注册自定义对话主题需要分别实现 Theme 与 ThemeSettings 类,在本章文档中我们会从零开始注册一个简单的聊天框对话主题。<br> |
+ | |||
+ | '''ink.ptms.chemdah.core.conversation.theme.Theme''' | ||
+ | <syntaxhighlight lang="kotlin" line="line"> | ||
+ | /** | ||
+ | * 注册到 ChemdahAPI 中 | ||
+ | */ | ||
+ | fun register(name) | ||
+ | |||
+ | /** | ||
+ | * 当配置文件被重载 | ||
+ | */ | ||
+ | open fun reloadConfig() | ||
+ | |||
+ | /** | ||
+ | * 是否支持告别 | ||
+ | * 即结束对话时使用 talk 语句创建没有回复的对话信息 | ||
+ | * 在原版 chat 对话模式中支持告别,而 chest 不支持(会被转换为 Holographic 信息) | ||
+ | */ | ||
+ | open fun allowFarewell() | ||
+ | |||
+ | /** | ||
+ | * 重置会话时(即 begin 之前) | ||
+ | * 在原版 chat 对话模式中用于归位玩家所选择的回复序号,而 chest 中没有使用 | ||
+ | */ | ||
+ | open fun reset(session: Session): CompletableFuture<Void> | ||
+ | |||
+ | /** | ||
+ | * 会话开始之前,在原版 chat 对话模式中用于播放音效特效等 | ||
+ | * 使用时必须返回 super.begin(session) | ||
+ | */ | ||
+ | open fun begin(session: Session): CompletableFuture<Void> | ||
+ | |||
+ | /** | ||
+ | * 会话结束时,目前未被使用 | ||
+ | */ | ||
+ | open fun end(session: Session): CompletableFuture<Void> | ||
+ | |||
+ | /** | ||
+ | * 会话渲染时 | ||
+ | * @param canReply 是否可以回复 | ||
+ | */ | ||
+ | abstract fun npcTalk(session: Session, message: List<String>, canReply: Boolean = true): CompletableFuture<Void> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | = 实现 = | ||
+ | |||
<syntaxhighlight lang="kotlin" line="line"> | <syntaxhighlight lang="kotlin" line="line"> | ||
class ThemeDemo : Theme<ThemeDemoSettings>() { | class ThemeDemo : Theme<ThemeDemoSettings>() { |
2021年5月5日 (三) 23:34的版本
目录
- Chemdah
- 开始
- 基本
- 事件
- ink.ptms.chemdah.api.event.collect.ConversationEvents
- ink.ptms.chemdah.api.event.collect.ObjectiveEvents
- ink.ptms.chemdah.api.event.collect.PlayerEvents
- ink.ptms.chemdah.api.event.collect.QuestEvents
- ink.ptms.chemdah.api.event.collect.TemplateEvents
- ink.ptms.chemdah.api.event.InferEntityHookEvent
- ink.ptms.chemdah.api.event.InferItemHookEvent
- ink.ptms.chemdah.api.event.PartyHookEvent
- 对话相关
- 数据相关
- 任务相关
对话主题
注册自定义对话主题需要分别实现 Theme 与 ThemeSettings 类,在本章文档中我们会从零开始注册一个简单的聊天框对话主题。
ink.ptms.chemdah.core.conversation.theme.Theme
1 /**
2 * 注册到 ChemdahAPI 中
3 */
4 fun register(name)
5
6 /**
7 * 当配置文件被重载
8 */
9 open fun reloadConfig()
10
11 /**
12 * 是否支持告别
13 * 即结束对话时使用 talk 语句创建没有回复的对话信息
14 * 在原版 chat 对话模式中支持告别,而 chest 不支持(会被转换为 Holographic 信息)
15 */
16 open fun allowFarewell()
17
18 /**
19 * 重置会话时(即 begin 之前)
20 * 在原版 chat 对话模式中用于归位玩家所选择的回复序号,而 chest 中没有使用
21 */
22 open fun reset(session: Session): CompletableFuture<Void>
23
24 /**
25 * 会话开始之前,在原版 chat 对话模式中用于播放音效特效等
26 * 使用时必须返回 super.begin(session)
27 */
28 open fun begin(session: Session): CompletableFuture<Void>
29
30 /**
31 * 会话结束时,目前未被使用
32 */
33 open fun end(session: Session): CompletableFuture<Void>
34
35 /**
36 * 会话渲染时
37 * @param canReply 是否可以回复
38 */
39 abstract fun npcTalk(session: Session, message: List<String>, canReply: Boolean = true): CompletableFuture<Void>
实现
1 class ThemeDemo : Theme<ThemeDemoSettings>() {
2
3 override fun npcTalk(session: Session, message: List<String>, canReply: Boolean): CompletableFuture<Void> {
4 TODO("Not yet implemented")
5 }
6 }
7
8 class ThemeDemoSettings(root: ConfigurationSection) : ThemeSettings(root) {
9
10 }