Skip to content

Commit

Permalink
feat: allow group operators to subscribe and unsubscribe (#1)
Browse files Browse the repository at this point in the history
Co-authored-by: Samarium <[email protected]>
  • Loading branch information
jie65535 and Samarium150 authored Apr 20, 2022
1 parent fab7055 commit 2b572b5
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 19 deletions.
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ plugins {
}

group = "io.github.samarium150"
version = "1.4.0"
version = "1.5.0"

repositories {
maven("https://maven.aliyun.com/repository/public")
Expand Down
2 changes: 1 addition & 1 deletion src/main/kotlin/MiraiConsoleLoafersCalendar.kt
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ object MiraiConsoleLoafersCalendar : KotlinPlugin(
JvmPluginDescription(
id = "io.github.samarium150.mirai.plugin.mirai-console-loafers-calendar",
name = "Loafers' Calender",
version = "1.4.0",
version = "1.5.0",
) {
author("Samarium")
}
Expand Down
20 changes: 11 additions & 9 deletions src/main/kotlin/command/Subscribe.kt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import net.mamoe.mirai.console.command.MemberCommandSenderOnMessage
import net.mamoe.mirai.console.command.SimpleCommand
import net.mamoe.mirai.console.command.descriptor.ExperimentalCommandDescriptors
import net.mamoe.mirai.console.util.ConsoleExperimentalApi
import net.mamoe.mirai.contact.MemberPermission
import net.mamoe.mirai.contact.isOperator
import net.mamoe.mirai.message.data.MessageSource.Key.quote

@Suppress("unused")
Expand All @@ -40,20 +40,22 @@ object Subscribe : SimpleCommand(

@Handler
suspend fun FriendCommandSenderOnMessage.handle() {
val quote = fromEvent.source.quote()
if (PluginData.subscribedFriends.add(fromEvent.sender.id))
sendMessage(fromEvent.source.quote() + "已订阅日历更新推送")
sendMessage(quote + "已订阅日历更新推送")
else
sendMessage(fromEvent.source.quote() + "已经订阅过了")
sendMessage(quote + "已经订阅过了")
}

@Handler
suspend fun MemberCommandSenderOnMessage.handle() {
val sender = fromEvent.sender
if (sender.permission == MemberPermission.OWNER && PluginData.subscribedGroups.add(fromEvent.subject.id))
sendMessage(fromEvent.source.quote() + "已订阅日历更新推送")
else if (sender.permission != MemberPermission.OWNER)
sendMessage(fromEvent.source.quote() + "只有群主才能订阅日历更新推送")
else
sendMessage(fromEvent.source.quote() + "已经订阅过了")
val quote = fromEvent.source.quote()
val isOperator = sender.isOperator()
if (isOperator && PluginData.subscribedGroups.add(fromEvent.subject.id))
sendMessage(quote + "已订阅日历更新推送")
else if (isOperator)
sendMessage(quote + "已经订阅过了")
else sendMessage(quote + "只有群主或管理员才能订阅日历更新推送")
}
}
19 changes: 11 additions & 8 deletions src/main/kotlin/command/Unsubscribe.kt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import net.mamoe.mirai.console.command.MemberCommandSenderOnMessage
import net.mamoe.mirai.console.command.SimpleCommand
import net.mamoe.mirai.console.command.descriptor.ExperimentalCommandDescriptors
import net.mamoe.mirai.console.util.ConsoleExperimentalApi
import net.mamoe.mirai.contact.MemberPermission
import net.mamoe.mirai.contact.isOperator
import net.mamoe.mirai.message.data.MessageSource.Key.quote

@Suppress("unused")
Expand All @@ -40,20 +40,23 @@ object Unsubscribe : SimpleCommand(

@Handler
suspend fun FriendCommandSenderOnMessage.handle() {
val quote = fromEvent.source.quote()
if (PluginData.subscribedFriends.remove(fromEvent.sender.id))
sendMessage(fromEvent.source.quote() + "取消订阅成功")
sendMessage(quote + "取消订阅成功")
else
sendMessage(fromEvent.source.quote() + "你没有订阅过日历更新推送")
sendMessage(quote + "你没有订阅过日历更新推送")
}

@Handler
suspend fun MemberCommandSenderOnMessage.handle() {
val sender = fromEvent.sender
if (sender.permission == MemberPermission.OWNER && PluginData.subscribedGroups.remove(fromEvent.subject.id))
sendMessage(fromEvent.source.quote() + "取消订阅成功")
else if (sender.permission != MemberPermission.OWNER)
sendMessage(fromEvent.source.quote() + "只有群主才能取消订阅")
val quote = fromEvent.source.quote()
val isOperator = sender.isOperator()
if (isOperator && PluginData.subscribedGroups.remove(fromEvent.subject.id))
sendMessage(quote + "取消订阅成功")
else if (isOperator)
sendMessage(quote + "只有群主和管理员才能取消订阅")
else
sendMessage(fromEvent.source.quote() + "本群没有订阅过日历更新推送")
sendMessage(quote + "本群没有订阅过日历更新推送")
}
}

0 comments on commit 2b572b5

Please sign in to comment.