This commit is contained in:
cdle
2021-10-06 14:52:21 +08:00
parent ad376ffb68
commit d2c69e2b89
6 changed files with 46 additions and 1 deletions
+5 -1
View File
@@ -79,6 +79,7 @@ func AddCommand(prefix string, cmds []Function) {
}
func handleMessage(sender Sender) {
defer sender.Finish()
for _, function := range functions {
for _, rule := range function.Rules {
var matched bool
@@ -109,10 +110,13 @@ func handleMessage(sender Sender) {
if rt != nil {
sender.Reply(rt)
}
sender.Finish()
if sender.IsContinue() {
goto goon
}
return
}
}
goon:
}
}
+10
View File
@@ -26,6 +26,8 @@ type Sender interface {
Delete() error
Disappear(lifetime ...time.Duration)
Finish()
Continue()
IsContinue() bool
}
type Edit int
@@ -157,3 +159,11 @@ func (sender *Faker) Finish() {
func (sender *Faker) GetUserName() string {
return ""
}
func (sender *Faker) Continue() {
}
func (sender *Faker) IsContinue() bool {
return true
}
+4
View File
@@ -158,7 +158,11 @@ func init123() {
v, _ := otto.ToValue(s.GetUserName())
return v
}
Continue := func() {
s.Continue()
}
vm := otto.New()
vm.Set("Continue", Continue)
vm.Set("GetUserName", GetUserName)
vm.Set("set", set)
vm.Set("param", param)
+9
View File
@@ -17,6 +17,7 @@ type Sender struct {
matches [][]string
Duration *time.Duration
deleted bool
goon bool
}
func (sender *Sender) GetContent() string {
@@ -303,3 +304,11 @@ func (sender *Sender) GetUserName() string {
}
return ""
}
func (sender *Sender) Continue() {
sender.goon = true
}
func (sender *Sender) IsContinue() bool {
return sender.goon
}
+9
View File
@@ -17,6 +17,7 @@ type Sender struct {
Duration *time.Duration
deleted bool
reply *tb.Message
goon bool
}
var tg = core.NewBucket("tg")
@@ -264,3 +265,11 @@ func (sender *Sender) GetUserName() string {
}
return name
}
func (sender *Sender) Continue() {
sender.goon = true
}
func (sender *Sender) IsContinue() bool {
return sender.goon
}
+9
View File
@@ -110,6 +110,7 @@ type Sender struct {
Responses []interface{}
Wait chan []interface{}
uid int
goon bool
}
func (sender *Sender) GetContent() string {
@@ -208,3 +209,11 @@ func (sender *Sender) Finish() {
func (sender *Sender) GetUserName() string {
return ""
}
func (sender *Sender) Continue() {
sender.goon = true
}
func (sender *Sender) IsContinue() bool {
return sender.goon
}