Add /kick and /ban text commands

This commit is contained in:
nexy7574 2025-01-12 15:46:41 +00:00
parent d4fc883736
commit 4829536774

View file

@ -103,6 +103,44 @@ func (h *HiClient) SendMessage(
_, err := h.SetState(ctx, roomID, event.Type{Type: parts[1], Class: event.StateEventType}, parts[2], content) _, err := h.SetState(ctx, roomID, event.Type{Type: parts[1], Class: event.StateEventType}, parts[2], content)
return nil, err return nil, err
} }
if strings.HasPrefix(text, "/ban ") {
text = strings.TrimPrefix(text, "/ban ")
parts := strings.SplitN(text, " ", 1) // mxid, reason
if len(parts) < 1 || len(parts[0]) == 0 {
return nil, fmt.Errorf("invalid /ban command")
}
content := event.MemberEventContent{
Membership: event.MembershipBan,
Reason: parts[1],
}
_, err := h.SetState(
ctx,
roomID,
event.Type{Type: "m.room.member", Class: event.StateEventType},
parts[0],
content,
)
return nil, err
}
if strings.HasPrefix(text, "/kick ") {
text = strings.TrimPrefix(text, "/kick ")
parts := strings.SplitN(text, " ", 2) // mxid, reason
if len(parts) < 1 || len(parts[0]) == 0 {
return nil, fmt.Errorf("invalid /kick command")
}
content := event.MemberEventContent{
Membership: event.MembershipLeave,
Reason: parts[1],
}
_, err := h.SetState(
ctx,
roomID,
event.Type{Type: "m.room.member", Class: event.StateEventType},
parts[0],
content,
)
return nil, err
}
var content event.MessageEventContent var content event.MessageEventContent
msgType := event.MsgText msgType := event.MsgText
origText := text origText := text