mirror of
https://github.com/tulir/gomuks.git
synced 2025-04-20 10:33:41 -05:00
Make reason optional
This commit is contained in:
parent
4829536774
commit
2ee66cb6bc
1 changed files with 26 additions and 12 deletions
|
@ -106,18 +106,27 @@ func (h *HiClient) SendMessage(
|
||||||
if strings.HasPrefix(text, "/ban ") {
|
if strings.HasPrefix(text, "/ban ") {
|
||||||
text = strings.TrimPrefix(text, "/ban ")
|
text = strings.TrimPrefix(text, "/ban ")
|
||||||
parts := strings.SplitN(text, " ", 1) // mxid, reason
|
parts := strings.SplitN(text, " ", 1) // mxid, reason
|
||||||
if len(parts) < 1 || len(parts[0]) == 0 {
|
// reason is optional
|
||||||
|
if len(parts) < 1 {
|
||||||
return nil, fmt.Errorf("invalid /ban command")
|
return nil, fmt.Errorf("invalid /ban command")
|
||||||
}
|
}
|
||||||
content := event.MemberEventContent{
|
mxid := parts[0]
|
||||||
|
var content event.MemberEventContent
|
||||||
|
if len(parts) == 2 {
|
||||||
|
content = event.MemberEventContent{
|
||||||
Membership: event.MembershipBan,
|
Membership: event.MembershipBan,
|
||||||
Reason: parts[1],
|
Reason: parts[1],
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
content = event.MemberEventContent{
|
||||||
|
Membership: event.MembershipBan,
|
||||||
|
}
|
||||||
|
}
|
||||||
_, err := h.SetState(
|
_, err := h.SetState(
|
||||||
ctx,
|
ctx,
|
||||||
roomID,
|
roomID,
|
||||||
event.Type{Type: "m.room.member", Class: event.StateEventType},
|
event.Type{Type: "m.room.member", Class: event.StateEventType},
|
||||||
parts[0],
|
mxid,
|
||||||
content,
|
content,
|
||||||
)
|
)
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -125,18 +134,23 @@ func (h *HiClient) SendMessage(
|
||||||
if strings.HasPrefix(text, "/kick ") {
|
if strings.HasPrefix(text, "/kick ") {
|
||||||
text = strings.TrimPrefix(text, "/kick ")
|
text = strings.TrimPrefix(text, "/kick ")
|
||||||
parts := strings.SplitN(text, " ", 2) // mxid, reason
|
parts := strings.SplitN(text, " ", 2) // mxid, reason
|
||||||
if len(parts) < 1 || len(parts[0]) == 0 {
|
mxid := parts[0]
|
||||||
return nil, fmt.Errorf("invalid /kick command")
|
var content event.MemberEventContent
|
||||||
}
|
if len(parts) == 2 {
|
||||||
content := event.MemberEventContent{
|
content = event.MemberEventContent{
|
||||||
Membership: event.MembershipLeave,
|
Membership: event.MembershipLeave,
|
||||||
Reason: parts[1],
|
Reason: parts[1],
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
content = event.MemberEventContent{
|
||||||
|
Membership: event.MembershipLeave,
|
||||||
|
}
|
||||||
|
}
|
||||||
_, err := h.SetState(
|
_, err := h.SetState(
|
||||||
ctx,
|
ctx,
|
||||||
roomID,
|
roomID,
|
||||||
event.Type{Type: "m.room.member", Class: event.StateEventType},
|
event.Type{Type: "m.room.member", Class: event.StateEventType},
|
||||||
parts[0],
|
mxid,
|
||||||
content,
|
content,
|
||||||
)
|
)
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
Loading…
Add table
Reference in a new issue