|
|
@@ -11,6 +11,7 @@ import bot_luo_core.cli.checkers.GroupCmdWorkingChecker
|
|
|
import bot_luo_core.cli.handlers.CmdIdArgHandler
|
|
|
import bot_luo_core.cli.handlers.GroupArgHandler
|
|
|
import bot_luo_core.data.Group
|
|
|
+import bot_luo_core.data.User
|
|
|
import bot_luo_core.data.withLockedAccessing
|
|
|
import bot_luo_core.util.TableBuilder
|
|
|
|
|
|
@@ -24,8 +25,8 @@ class SwitchCmd(context: CmdContext) : Cmd(context) {
|
|
|
|
|
|
/* ======================== show ======================== */
|
|
|
|
|
|
- @Method(name = "", alias = ["show"], pmsLevel = CmdPermissionLevel.OP, order = 0, ignoreCheckers = [GroupCmdWorkingChecker::class],
|
|
|
- title = "查看", usage = "获取命令是否开启")
|
|
|
+ @Method(name = "", alias = ["group","g"], pmsLevel = CmdPermissionLevel.OP, order = 0, ignoreCheckers = [GroupCmdWorkingChecker::class],
|
|
|
+ title = "查看群组", usage = "获取命令是否在群组开启")
|
|
|
fun show(
|
|
|
@Argument(name = "命令", handler = CmdIdArgHandler::class, multiValued = true)
|
|
|
ids: ArrayList<String>,
|
|
|
@@ -34,7 +35,7 @@ class SwitchCmd(context: CmdContext) : Cmd(context) {
|
|
|
): CmdReceipt {
|
|
|
val group = groupIn?: context.group
|
|
|
val table = TableBuilder(4)
|
|
|
- table.th("电闸 —— 群组(${group.id})").br()
|
|
|
+ table.th("群组电闸 —— ${group.name}(${group.id})").br()
|
|
|
for (id in ids) {
|
|
|
table.tr(id).td(":").td(if (group.getCmdWorking(id)) "ON" else "OFF")
|
|
|
}
|
|
|
@@ -42,7 +43,26 @@ class SwitchCmd(context: CmdContext) : Cmd(context) {
|
|
|
return SUCCESS
|
|
|
}
|
|
|
|
|
|
- @Method(name = "", alias = ["show"], pmsLevel = CmdPermissionLevel.OP, order = 0, ignoreCheckers = [GroupCmdWorkingChecker::class])
|
|
|
+ @Method(name = "user", alias = ["u"], pmsLevel = CmdPermissionLevel.OP, order = 0, ignoreCheckers = [GroupCmdWorkingChecker::class],
|
|
|
+ title = "查看用户", usage = "获取命令是否对用户开启")
|
|
|
+ fun show(
|
|
|
+ @Argument(name = "命令", handler = CmdIdArgHandler::class, multiValued = true)
|
|
|
+ ids: ArrayList<String>,
|
|
|
+ @Argument(name = "用户", handler = GroupArgHandler::class, required = false)
|
|
|
+ userIn: User?
|
|
|
+ ): CmdReceipt {
|
|
|
+ val user = userIn?: context.user
|
|
|
+ val table = TableBuilder(4)
|
|
|
+ table.th("用户电闸 —— ${user.name}(${user.id})").br()
|
|
|
+ for (id in ids) {
|
|
|
+ table.tr(id).td(":").td(if (user.getCmdWorking(id)) "ON" else "OFF")
|
|
|
+ }
|
|
|
+ context.println(table.toString())
|
|
|
+ return SUCCESS
|
|
|
+ }
|
|
|
+
|
|
|
+ @Method(name = "", alias = ["group","g"], pmsLevel = CmdPermissionLevel.OP, order = 1, ignoreCheckers = [GroupCmdWorkingChecker::class],
|
|
|
+ title = "查看群组", usage = "获取命令是否在群组开启")
|
|
|
fun show(
|
|
|
@Argument(name = "群组", handler = GroupArgHandler::class)
|
|
|
groupIn: Group,
|
|
|
@@ -50,9 +70,19 @@ class SwitchCmd(context: CmdContext) : Cmd(context) {
|
|
|
ids: ArrayList<String>
|
|
|
) = show(ids, groupIn)
|
|
|
|
|
|
+ @Method(name = "user", alias = ["u"], pmsLevel = CmdPermissionLevel.OP, order = 1, ignoreCheckers = [GroupCmdWorkingChecker::class],
|
|
|
+ title = "查看用户", usage = "获取命令是否对用户开启")
|
|
|
+ fun show(
|
|
|
+ @Argument(name = "用户", handler = GroupArgHandler::class)
|
|
|
+ userIn: User,
|
|
|
+ @Argument(name = "命令", handler = CmdIdArgHandler::class, multiValued = true)
|
|
|
+ ids: ArrayList<String>
|
|
|
+ ) = show(ids, userIn)
|
|
|
+
|
|
|
/* ======================== on ======================== */
|
|
|
|
|
|
- @Method(name = "on", pmsLevel = CmdPermissionLevel.OP, order = 0, ignoreCheckers = [GroupCmdWorkingChecker::class])
|
|
|
+ @Method(name = "group-on", alias = ["gon","on"], pmsLevel = CmdPermissionLevel.OP, order = 0, ignoreCheckers = [GroupCmdWorkingChecker::class],
|
|
|
+ title = "群组开启")
|
|
|
suspend fun on(
|
|
|
@Argument(name = "命令", handler = CmdIdArgHandler::class, multiValued = true)
|
|
|
ids: ArrayList<String>,
|
|
|
@@ -61,7 +91,7 @@ class SwitchCmd(context: CmdContext) : Cmd(context) {
|
|
|
): CmdReceipt {
|
|
|
val group = groupIn?: context.group
|
|
|
val table = TableBuilder(4)
|
|
|
- table.th("电闸开启 —— 群组(${group.id})").br()
|
|
|
+ table.th("群组电闸开启 —— ${group.name}(${group.id})").br()
|
|
|
withLockedAccessing(group) {
|
|
|
for (id in ids) {
|
|
|
table.tr(id).td(":").td(if (group.getCmdWorking(id)) "ON" else "OFF").td("->").td("ON")
|
|
|
@@ -72,7 +102,29 @@ class SwitchCmd(context: CmdContext) : Cmd(context) {
|
|
|
return SUCCESS
|
|
|
}
|
|
|
|
|
|
- @Method(name = "on", pmsLevel = CmdPermissionLevel.OP, order = 0, ignoreCheckers = [GroupCmdWorkingChecker::class])
|
|
|
+ @Method(name = "user-on", alias = ["uon"], pmsLevel = CmdPermissionLevel.OP, order = 0, ignoreCheckers = [GroupCmdWorkingChecker::class],
|
|
|
+ title = "用户开启")
|
|
|
+ suspend fun on(
|
|
|
+ @Argument(name = "命令", handler = CmdIdArgHandler::class, multiValued = true)
|
|
|
+ ids: ArrayList<String>,
|
|
|
+ @Argument(name = "用户", handler = GroupArgHandler::class, required = false)
|
|
|
+ userIn: User?
|
|
|
+ ): CmdReceipt {
|
|
|
+ val user = userIn?: context.user
|
|
|
+ val table = TableBuilder(4)
|
|
|
+ table.th("用户电闸开启 —— ${user.name}(${user.id})").br()
|
|
|
+ withLockedAccessing(user) {
|
|
|
+ for (id in ids) {
|
|
|
+ table.tr(id).td(":").td(if (user.getCmdWorking(id)) "ON" else "OFF").td("->").td("ON")
|
|
|
+ user.setCmdWorking(id, true)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ context.println(table.toString())
|
|
|
+ return SUCCESS
|
|
|
+ }
|
|
|
+
|
|
|
+ @Method(name = "group-on", alias = ["gon","on"], pmsLevel = CmdPermissionLevel.OP, order = 1, ignoreCheckers = [GroupCmdWorkingChecker::class],
|
|
|
+ title = "群组开启")
|
|
|
suspend fun on(
|
|
|
@Argument(name = "群组", handler = GroupArgHandler::class)
|
|
|
groupIn: Group,
|
|
|
@@ -80,9 +132,19 @@ class SwitchCmd(context: CmdContext) : Cmd(context) {
|
|
|
ids: ArrayList<String>
|
|
|
) = on (ids, groupIn)
|
|
|
|
|
|
+ @Method(name = "user-on", alias = ["uon"], pmsLevel = CmdPermissionLevel.OP, order = 1, ignoreCheckers = [GroupCmdWorkingChecker::class],
|
|
|
+ title = "用户开启")
|
|
|
+ suspend fun on(
|
|
|
+ @Argument(name = "用户", handler = GroupArgHandler::class)
|
|
|
+ userIn: User,
|
|
|
+ @Argument(name = "命令", handler = CmdIdArgHandler::class, multiValued = true)
|
|
|
+ ids: ArrayList<String>
|
|
|
+ ) = on (ids, userIn)
|
|
|
+
|
|
|
/* ======================== off ======================== */
|
|
|
|
|
|
- @Method(name = "off", pmsLevel = CmdPermissionLevel.OP, order = 0, ignoreCheckers = [GroupCmdWorkingChecker::class])
|
|
|
+ @Method(name = "group-off", alias = ["goff","off"], pmsLevel = CmdPermissionLevel.OP, order = 0, ignoreCheckers = [GroupCmdWorkingChecker::class],
|
|
|
+ title = "群组关闭")
|
|
|
suspend fun off(
|
|
|
@Argument(name = "命令", handler = CmdIdArgHandler::class, multiValued = true)
|
|
|
ids: ArrayList<String>,
|
|
|
@@ -91,7 +153,7 @@ class SwitchCmd(context: CmdContext) : Cmd(context) {
|
|
|
): CmdReceipt {
|
|
|
val group = groupIn?: context.group
|
|
|
val table = TableBuilder(4)
|
|
|
- table.th("电闸关闭 —— 群组(${group.id})").br()
|
|
|
+ table.th("群组电闸关闭 —— ${group.name}(${group.id})").br()
|
|
|
withLockedAccessing(group) {
|
|
|
for (id in ids) {
|
|
|
table.tr(id).td(":").td(if (group.getCmdWorking(id)) "ON" else "OFF").td("->").td("OFF")
|
|
|
@@ -102,11 +164,42 @@ class SwitchCmd(context: CmdContext) : Cmd(context) {
|
|
|
return SUCCESS
|
|
|
}
|
|
|
|
|
|
- @Method(name = "off", pmsLevel = CmdPermissionLevel.OP, order = 0, ignoreCheckers = [GroupCmdWorkingChecker::class])
|
|
|
+ @Method(name = "user-off", alias = ["uoff"], pmsLevel = CmdPermissionLevel.OP, order = 0, ignoreCheckers = [GroupCmdWorkingChecker::class],
|
|
|
+ title = "用户关闭")
|
|
|
+ suspend fun off(
|
|
|
+ @Argument(name = "命令", handler = CmdIdArgHandler::class, multiValued = true)
|
|
|
+ ids: ArrayList<String>,
|
|
|
+ @Argument(name = "用户", handler = GroupArgHandler::class, required = false)
|
|
|
+ userIn: User?
|
|
|
+ ): CmdReceipt {
|
|
|
+ val user = userIn?: context.user
|
|
|
+ val table = TableBuilder(4)
|
|
|
+ table.th("用户电闸关闭 —— ${user.name}(${user.id})").br()
|
|
|
+ withLockedAccessing(user) {
|
|
|
+ for (id in ids) {
|
|
|
+ table.tr(id).td(":").td(if (user.getCmdWorking(id)) "ON" else "OFF").td("->").td("OFF")
|
|
|
+ user.setCmdWorking(id, false)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ context.println(table.toString())
|
|
|
+ return SUCCESS
|
|
|
+ }
|
|
|
+
|
|
|
+ @Method(name = "group-off", alias = ["goff","off"], pmsLevel = CmdPermissionLevel.OP, order = 1, ignoreCheckers = [GroupCmdWorkingChecker::class],
|
|
|
+ title = "群组关闭")
|
|
|
suspend fun off(
|
|
|
@Argument(name = "群组", handler = GroupArgHandler::class)
|
|
|
groupIn: Group,
|
|
|
@Argument(name = "命令", handler = CmdIdArgHandler::class, multiValued = true)
|
|
|
ids: ArrayList<String>
|
|
|
) = off (ids, groupIn)
|
|
|
+
|
|
|
+ @Method(name = "user-off", alias = ["uoff"], pmsLevel = CmdPermissionLevel.OP, order = 1, ignoreCheckers = [GroupCmdWorkingChecker::class],
|
|
|
+ title = "用户关闭")
|
|
|
+ suspend fun off(
|
|
|
+ @Argument(name = "用户", handler = GroupArgHandler::class)
|
|
|
+ userIn: User,
|
|
|
+ @Argument(name = "命令", handler = CmdIdArgHandler::class, multiValued = true)
|
|
|
+ ids: ArrayList<String>
|
|
|
+ ) = off (ids, userIn)
|
|
|
}
|