Skip to content

Commit

Permalink
feat :
Browse files Browse the repository at this point in the history
配置项: pre 为 空时则不发送前置消息

传话目标 为 -1 时 则转发全部好友
传话目标 为 -2 时 则转发全部群聊
传话目标 为 -3 时 则转发全部好友/群聊
  • Loading branch information
Kloping committed Jun 4, 2023
1 parent 7e741bc commit 9d3c478
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 17 deletions.
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,11 @@
赋予该用户123456权限

/perm permit u123456 io.github.gdpl2112.transmitMsg.TransmitMessage:op

<hr>

配置项: pre 为 空时则不发送前置消息

传话目标 为 -1 时 则转发全部好友
传话目标 为 -2 时 则转发全部群聊
传话目标 为 -3 时 则转发全部好友/群聊
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ plugins {
}

group = "io.github.kloping"
version = "1.0"
version = "1.1"

repositories {
maven("https://maven.aliyun.com/repository/public")
Expand Down
67 changes: 51 additions & 16 deletions src/main/kotlin/M1ListenerHost.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package io.github.gdpl2112.transmitMsg
import net.mamoe.mirai.Bot
import net.mamoe.mirai.console.permission.AbstractPermitteeId
import net.mamoe.mirai.console.permission.PermissionService.Companion.hasPermission
import net.mamoe.mirai.contact.Contact
import net.mamoe.mirai.event.EventHandler
import net.mamoe.mirai.event.SimpleListenerHost
import net.mamoe.mirai.event.events.FriendMessageEvent
Expand Down Expand Up @@ -51,22 +52,6 @@ object M1ListenerHost : SimpleListenerHost() {
}
}

private suspend fun send(st: SyncTransmit, bot: Bot) {
var f = bot.getFriend(st.target)
if (f != null) {
f.sendMessage(TransmitMessage.config.pre.replace("$1", st.qid.toString()))
st.data?.let { f.sendMessage(it) }
} else {
for (group in bot.groups) {
var m = group.get(st.target);
if (m != null) {
m.sendMessage(TransmitMessage.config.pre.replace("$1", st.qid.toString()))
st.data?.let { m.sendMessage(it) }
}
}
}
}

@EventHandler
suspend fun onFriendMessageEvent(event: FriendMessageEvent) {
if (!AbstractPermitteeId.ExactFriend(event.sender.id).hasPermission(TransmitMessage.p0)) {
Expand Down Expand Up @@ -109,4 +94,54 @@ object M1ListenerHost : SimpleListenerHost() {
}
return text.trim()
}

private suspend fun send(st: SyncTransmit, bot: Bot) {
when (st.target) {
-1L -> {
sendAllFriends(bot, st)
}

-2L -> {
sendAllGroups(bot, st)
}

-3L -> {
sendAllFriends(bot, st)
sendAllGroups(bot, st)
}
}
var f = bot.getFriend(st.target)
if (f != null) {
sendNow(f, st)
} else {
for (group in bot.groups) {
var m = group.get(st.target);
if (m != null) {
sendNow(m, st)
}
}
}
}

private suspend fun sendAllGroups(bot: Bot, st: SyncTransmit) {
for (group in bot.groups) {
sendNow(group, st)
}
}

private suspend fun sendAllFriends(bot: Bot, st: SyncTransmit) {
for (f in bot.friends) {
sendNow(f, st)
}
}

private suspend fun sendNow(contact: Contact, st: SyncTransmit) {
if (!TransmitMessage.config.pre.trim().isEmpty()) contact.sendMessage(
TransmitMessage.config.pre.replace(
"$1",
st.qid.toString()
)
)
st.data?.let { contact.sendMessage(it) }
}
}

0 comments on commit 9d3c478

Please sign in to comment.