普特莫斯维基 (Purtmars Wikipedia 📖)

“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 编写,使用其他语言无法进行二次开发。

repositories {
    maven { url = 'http://repo.ptms.ink/repository/maven-releases/' }
}

dependencies {
    implementation 'ink.ptms:Chemdah:SNAPSHOT 04 26 1'
}

ink.ptms.chemdah.api

ChemdahAPI

/**
 * 获取玩家的已缓存的任务数据
 * 如玩家数据不存在则会直接抛出 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  getModule(kClass: KClass)

/**
 * 获取所有的全局变量
 * 该方法没有任何缓存逻辑,直接从数据库中读取
 */
fun getVariables(): List

/**
 * 获取指定的全局变量
 * 该方法没有任何缓存逻辑,直接从数据库中读取
 */
fun getVariable(key: String): String?

/**
 * 设置指定的全局变量
 * 该方法没有任何缓存逻辑,直接写入数据库
 *
 * @param append 是否为追加模式(即自动类型推断)
 */
fun setVariable(key: String, value: String?, append: Boolean = false)

/**
 * 重载所有,顺序如下
 * 1. 重载中心配置文件
 * 2. 重载对话配置文件
 * 3. 重载对话
 * 4. 重载对话展示模式
 * 5. 重载任务
 * 6. 重载插件功能模块
 */
fun reloadAll()