diff --git a/src/main/kotlin/top/jie65535/jcf/MessageHandler.kt b/src/main/kotlin/top/jie65535/jcf/MessageHandler.kt new file mode 100644 index 0000000..02cbfee --- /dev/null +++ b/src/main/kotlin/top/jie65535/jcf/MessageHandler.kt @@ -0,0 +1,44 @@ +package top.jie65535.jcf + +import net.mamoe.mirai.message.data.Message +import top.jie65535.jcf.model.file.File +import top.jie65535.jcf.model.mod.Mod +import top.jie65535.jcf.util.PagedList + +object MessageHandler { + + /** + * 处理mod搜索结果 + */ + suspend fun handleModsSearchResult(pagedList: PagedList): Message { + val list = pagedList.current() // mod list + val hasNext = pagedList.hasNext // 是否有下一页 + val hasPrev = pagedList.hasPrev // 是否有上一页 + TODO("将搜索列表转为QQ消息") + } + + /** + * 处理展示单个mod + */ + fun handleShowMod(mod: Mod): Message { + TODO("将mod转为QQ消息") + } + + /** + * 处理模组文件列表 + */ + suspend fun handleModFileList(pagedList: PagedList): Message { + val list = pagedList.current() // mod list + val hasNext = pagedList.hasNext // 是否有下一页 + val hasPrev = pagedList.hasPrev // 是否有上一页 + TODO("将文件列表转为QQ消息") + } + + /** + * 处理模组文件更改日志 + * @param changelog 更改日志(HTML) + */ + fun handleModFileChangelog(changelog: String): Message { + TODO("将文件更改日志渲染为QQ消息") + } +} \ No newline at end of file diff --git a/src/main/kotlin/top/jie65535/jcf/util/PagedList.kt b/src/main/kotlin/top/jie65535/jcf/util/PagedList.kt index 6fc09a5..2d76015 100644 --- a/src/main/kotlin/top/jie65535/jcf/util/PagedList.kt +++ b/src/main/kotlin/top/jie65535/jcf/util/PagedList.kt @@ -10,8 +10,9 @@ class PagedList( ) { private val pages = mutableListOf>() private var pageIndex = 0 - private var hasNext = false - fun getHasNext() = hasNext + private var _hasNext = false + val hasNext get() = _hasNext + val hasPrev get() = pageIndex > 0 suspend fun prev(): Array { if (pageIndex > 0) { @@ -21,7 +22,7 @@ class PagedList( } suspend fun next(): Array { - if (hasNext) { + if (_hasNext) { pageIndex++ } return current() @@ -32,7 +33,7 @@ class PagedList( pages[pageIndex] } else { val data = getPageData(pageIndex) - hasNext = data.size == pageSize + _hasNext = data.size == pageSize pages.add(data) data }