package top.jie65535.mirai import net.mamoe.mirai.console.command.CommandSender import net.mamoe.mirai.console.command.CompositeCommand import net.mamoe.mirai.console.permission.PermissionService.Companion.cancel import net.mamoe.mirai.console.permission.PermissionService.Companion.permit import net.mamoe.mirai.console.permission.PermitteeId.Companion.permitteeId import net.mamoe.mirai.contact.Contact import net.mamoe.mirai.contact.Group import net.mamoe.mirai.contact.Member import net.mamoe.mirai.contact.User import top.jie65535.mirai.JChatGPT.reload object PluginCommands : CompositeCommand( JChatGPT, "jgpt", description = "J OpenAI ChatGPT" ) { @SubCommand suspend fun CommandSender.reload() { PluginConfig.reload() PluginData.reload() LargeLanguageModels.reload() sendMessage("OK") } @SubCommand suspend fun CommandSender.enable(contact: Contact) { when (contact) { is Member -> contact.permitteeId.permit(JChatGPT.chatPermission) is User -> contact.permitteeId.permit(JChatGPT.chatPermission) is Group -> contact.permitteeId.permit(JChatGPT.chatPermission) } sendMessage("OK") } @SubCommand suspend fun CommandSender.disable(contact: Contact) { when (contact) { is Member -> contact.permitteeId.cancel(JChatGPT.chatPermission, false) is User -> contact.permitteeId.cancel(JChatGPT.chatPermission, false) is Group -> contact.permitteeId.cancel(JChatGPT.chatPermission, false) } sendMessage("OK") } @SubCommand suspend fun CommandSender.clearMemory() { PluginData.contactMemory.clear() sendMessage("OK") } @SubCommand suspend fun CommandSender.setFavor(user: User, value: Int) { // 限制好感度值在-100到100之间 val clampedValue = value.coerceIn(-100, 100) // 获取当前的好感度信息 val currentInfo = PluginData.userFavorability[user.id] ?: FavorabilityInfo(user.id) // 创建新的好感度信息,保持原因和印象不变 val newInfo = currentInfo.copy(value = clampedValue) PluginData.userFavorability[user.id] = newInfo sendMessage("OK") } @SubCommand suspend fun CommandSender.clearFavor() { PluginData.userFavorability.clear() sendMessage("OK") } }