“Chemdah 开发者文档:开始”的版本间的差异
来自Purtmars Wikipedia —— 普特莫斯维基
(→开始) |
|||
第9行: | 第9行: | ||
implementation 'ink.ptms:Chemdah:SNAPSHOT 04 26 1' | implementation 'ink.ptms:Chemdah:SNAPSHOT 04 26 1' | ||
} | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | = ink.ptms.chemdah.api = | ||
+ | |||
+ | == ChemdahAPI == | ||
+ | |||
+ | <syntaxhighlight lang="kotlin" line="line"> | ||
+ | /** | ||
+ | * 获取玩家的已缓存的任务数据 | ||
+ | * 如玩家数据不存在则会直接抛出 NullPointerException 异常 | ||
+ | * | ||
+ | * 玩家的任务数据在 PlayerJoinEvent 事件下异步加载,并在数据加载完成后唤起 PlayerEvents.Selected 事件 | ||
+ | */ | ||
+ | val Player.chemdahProfile: PlayerProfile | ||
+ | @Throws(NullPointerException::class) | ||
+ | get() | ||
+ | |||
+ | /** | ||
+ | * 玩家数据已经加载完成 | ||
+ | */ | ||
+ | val Player.isChemdahProfileLoaded: Boolean | ||
+ | get() | ||
+ | |||
+ | /** | ||
+ | * 玩家数据是否尚未加载 | ||
+ | */ | ||
+ | val Player.nonChemdahProfileLoaded: Boolean | ||
+ | get() | ||
+ | |||
+ | /** | ||
+ | * 获取玩家正在进行的会话 | ||
+ | */ | ||
+ | val Player.conversationSession: Session? | ||
+ | get() | ||
+ | |||
+ | /** | ||
+ | * 触发玩家的 Trigger 类型任务 | ||
+ | */ | ||
+ | fun Player.callTrigger(value: String) | ||
+ | |||
+ | /** | ||
+ | * 获取对话资源 | ||
+ | */ | ||
+ | fun getConversation(id: String) | ||
+ | |||
+ | /** | ||
+ | * 获取对话模式 | ||
+ | */ | ||
+ | fun getConversationTheme(id: String) | ||
+ | |||
+ | /** | ||
+ | * 获取任务模板 | ||
+ | */ | ||
+ | fun getQuestTemplate(id: String) | ||
+ | |||
+ | /** | ||
+ | * 获取任务元数据 | ||
+ | */ | ||
+ | fun getQuestMeta(id: String) | ||
+ | |||
+ | /** | ||
+ | * 获取任务扩展(组件) | ||
+ | */ | ||
+ | fun getQuestAddon(id: String) | ||
+ | |||
+ | /** | ||
+ | * 获取任务目标 | ||
+ | */ | ||
+ | fun getQuestObjective(id: String) | ||
+ | |||
+ | /** | ||
+ | * 获取插件功能模块 | ||
+ | * 如模块不存在则会直接抛出 NullPointerException 异常 | ||
+ | */ | ||
+ | @Throws(NullPointerException::class) | ||
+ | fun <T : Module> getModule(kClass: KClass<T>) | ||
+ | |||
+ | /** | ||
+ | * 获取所有的全局变量 | ||
+ | * 该方法没有任何缓存逻辑,直接从数据库中读取 | ||
+ | */ | ||
+ | fun getVariables(): List<String> | ||
+ | |||
+ | /** | ||
+ | * 获取指定的全局变量 | ||
+ | * 该方法没有任何缓存逻辑,直接从数据库中读取 | ||
+ | */ | ||
+ | fun getVariable(key: String): String? | ||
+ | |||
+ | /** | ||
+ | * 设置指定的全局变量 | ||
+ | * 该方法没有任何缓存逻辑,直接写入数据库 | ||
+ | * | ||
+ | * @param append 是否为追加模式(即自动类型推断) | ||
+ | */ | ||
+ | fun setVariable(key: String, value: String?, append: Boolean = false) | ||
+ | |||
+ | /** | ||
+ | * 重载所有,顺序如下 | ||
+ | * 1. 重载中心配置文件 | ||
+ | * 2. 重载对话配置文件 | ||
+ | * 3. 重载对话 | ||
+ | * 4. 重载对话展示模式 | ||
+ | * 5. 重载任务 | ||
+ | * 6. 重载插件功能模块 | ||
+ | */ | ||
+ | fun reloadAll() | ||
</syntaxhighlight> | </syntaxhighlight> |
2021年4月27日 (二) 17:39的版本
开始
在你的项目中引入 Chemdah 依赖文件,但需要注意的是 Chemdah 完全由 Kotlin 编写,使用其他语言无法进行二次开发。
1 repositories {
2 maven { url = 'http://repo.ptms.ink/repository/maven-releases/' }
3 }
4
5 dependencies {
6 implementation 'ink.ptms:Chemdah:SNAPSHOT 04 26 1'
7 }
ink.ptms.chemdah.api
ChemdahAPI
1 /**
2 * 获取玩家的已缓存的任务数据
3 * 如玩家数据不存在则会直接抛出 NullPointerException 异常
4 *
5 * 玩家的任务数据在 PlayerJoinEvent 事件下异步加载,并在数据加载完成后唤起 PlayerEvents.Selected 事件
6 */
7 val Player.chemdahProfile: PlayerProfile
8 @Throws(NullPointerException::class)
9 get()
10
11 /**
12 * 玩家数据已经加载完成
13 */
14 val Player.isChemdahProfileLoaded: Boolean
15 get()
16
17 /**
18 * 玩家数据是否尚未加载
19 */
20 val Player.nonChemdahProfileLoaded: Boolean
21 get()
22
23 /**
24 * 获取玩家正在进行的会话
25 */
26 val Player.conversationSession: Session?
27 get()
28
29 /**
30 * 触发玩家的 Trigger 类型任务
31 */
32 fun Player.callTrigger(value: String)
33
34 /**
35 * 获取对话资源
36 */
37 fun getConversation(id: String)
38
39 /**
40 * 获取对话模式
41 */
42 fun getConversationTheme(id: String)
43
44 /**
45 * 获取任务模板
46 */
47 fun getQuestTemplate(id: String)
48
49 /**
50 * 获取任务元数据
51 */
52 fun getQuestMeta(id: String)
53
54 /**
55 * 获取任务扩展(组件)
56 */
57 fun getQuestAddon(id: String)
58
59 /**
60 * 获取任务目标
61 */
62 fun getQuestObjective(id: String)
63
64 /**
65 * 获取插件功能模块
66 * 如模块不存在则会直接抛出 NullPointerException 异常
67 */
68 @Throws(NullPointerException::class)
69 fun <T : Module> getModule(kClass: KClass<T>)
70
71 /**
72 * 获取所有的全局变量
73 * 该方法没有任何缓存逻辑,直接从数据库中读取
74 */
75 fun getVariables(): List<String>
76
77 /**
78 * 获取指定的全局变量
79 * 该方法没有任何缓存逻辑,直接从数据库中读取
80 */
81 fun getVariable(key: String): String?
82
83 /**
84 * 设置指定的全局变量
85 * 该方法没有任何缓存逻辑,直接写入数据库
86 *
87 * @param append 是否为追加模式(即自动类型推断)
88 */
89 fun setVariable(key: String, value: String?, append: Boolean = false)
90
91 /**
92 * 重载所有,顺序如下
93 * 1. 重载中心配置文件
94 * 2. 重载对话配置文件
95 * 3. 重载对话
96 * 4. 重载对话展示模式
97 * 5. 重载任务
98 * 6. 重载插件功能模块
99 */
100 fun reloadAll()