mirror of
https://github.com/jie65535/JChatGPT.git
synced 2025-12-08 18:31:36 +08:00
Add favorability system
Update version to v1.9.0
This commit is contained in:
@@ -2,6 +2,7 @@ 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
|
||||
@@ -9,15 +10,15 @@ import net.mamoe.mirai.contact.Group
|
||||
import net.mamoe.mirai.contact.Member
|
||||
import net.mamoe.mirai.contact.User
|
||||
import top.jie65535.mirai.JChatGPT.reload
|
||||
import top.jie65535.mirai.JChatGPT.save
|
||||
|
||||
object PluginCommands : CompositeCommand(
|
||||
JChatGPT, "jgpt", description = "J OpenAI ChatGPT"
|
||||
) {
|
||||
|
||||
@SubCommand
|
||||
suspend fun CommandSender.setToken(token: String) {
|
||||
PluginConfig.openAiToken = token
|
||||
PluginConfig.save()
|
||||
suspend fun CommandSender.reload() {
|
||||
PluginConfig.reload()
|
||||
PluginData.reload()
|
||||
LargeLanguageModels.reload()
|
||||
sendMessage("OK")
|
||||
}
|
||||
@@ -35,24 +36,34 @@ object PluginCommands : CompositeCommand(
|
||||
@SubCommand
|
||||
suspend fun CommandSender.disable(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)
|
||||
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.reload() {
|
||||
PluginConfig.reload()
|
||||
PluginData.reload()
|
||||
LargeLanguageModels.reload()
|
||||
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")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user