This commit is contained in:
cdle
2021-09-18 16:11:31 +08:00
parent 996e3535f2
commit cfe5e163fc
3 changed files with 27 additions and 7 deletions
+1 -1
View File
@@ -84,7 +84,7 @@ func initSys() {
if err := CompileCode(); err != nil {
return err
}
s.Reply(name() + "编译程序完毕。")
s.Reply(name()+"编译程序完毕。", time.Duration(0))
sillyGirl.Set("rebootInfo", fmt.Sprintf("%v %v %v", s.GetImType(), s.GetChatID(), s.GetUserID()))
Daemon()
return nil
+14 -3
View File
@@ -151,6 +151,10 @@ func (sender *Sender) IsMedia() bool {
func (sender *Sender) Reply(msgs ...interface{}) error {
msg := msgs[0]
if len(msgs) > 1 {
du := msgs[1].(time.Duration)
sender.Duration = &du
}
switch sender.Message.(type) {
case *message.PrivateMessage:
m := sender.Message.(*message.PrivateMessage)
@@ -203,12 +207,19 @@ func (sender *Sender) Reply(msgs ...interface{}) error {
id = bot.SendGroupMessage(m.GroupCode, &message.SendingMessage{Elements: []message.IMessageElement{&message.AtElement{Target: m.Sender.Uin}, &message.TextElement{Content: content}}})
}
if id > 0 && sender.Duration != nil {
go func() {
time.Sleep(*sender.Duration)
if *sender.Duration != 0 {
go func() {
time.Sleep(*sender.Duration)
sender.Delete()
MSG := bot.GetMessage(id)
bot.Client.RecallGroupMessage(m.GroupCode, MSG["message-id"].(int32), MSG["internal-id"].(int32))
}()
} else {
sender.Delete()
MSG := bot.GetMessage(id)
bot.Client.RecallGroupMessage(m.GroupCode, MSG["message-id"].(int32), MSG["internal-id"].(int32))
}()
}
}
}
return nil
+12 -3
View File
@@ -135,6 +135,10 @@ func (sender *Sender) IsMedia() bool {
func (sender *Sender) Reply(msgs ...interface{}) error {
msg := msgs[0]
if len(msgs) > 1 {
du := msgs[1].(time.Duration)
sender.Duration = &du
}
var rt *tb.Message
var r tb.Recipient
var options = []interface{}{}
@@ -161,11 +165,16 @@ func (sender *Sender) Reply(msgs ...interface{}) error {
sender.Reply(err)
}
if rt != nil && sender.Duration != nil {
go func() {
time.Sleep(*sender.Duration)
if *sender.Duration != 0 {
go func() {
time.Sleep(*sender.Duration)
sender.Delete()
b.Delete(rt)
}()
} else {
sender.Delete()
b.Delete(rt)
}()
}
}
return err
}