diff --git a/modules/gps/gps.go b/modules/gps/gps.go index eb191043..4cda1ff8 100644 --- a/modules/gps/gps.go +++ b/modules/gps/gps.go @@ -3,6 +3,7 @@ package gps import ( "fmt" "io" + "strconv" "time" "github.com/bettercap/bettercap/v2/session" @@ -65,6 +66,24 @@ func NewGPS(s *session.Session) *GPS { return mod.Show() })) + mod.AddHandler(session.NewModuleHandler("gps.set LAT LON", `(?i)^gps\.set\s+([0-9\.]+)\s+([0-9\.]+)$`, + "Manually set GPS location.", + func(args []string) error { + + if lat, err := strconv.ParseFloat(args[0], 64); err != nil { + return err + } else if lon, err := strconv.ParseFloat(args[1], 64); err != nil { + return err + } else { + mod.Session.GPS.Updated = time.Now() + mod.Session.GPS.Latitude = lat + mod.Session.GPS.Longitude = lon + mod.Session.Events.Add("gps.new", mod.Session.GPS) + } + + return nil + })) + return mod }