diff --git a/extensions/armatak/main.go b/extensions/armatak/main.go index f951c2a..7754c33 100644 --- a/extensions/armatak/main.go +++ b/extensions/armatak/main.go @@ -1,12 +1,8 @@ package main import ( - "bytes" - "encoding/json" "fmt" - "net/http" "path" - "strings" "github.com/indig0fox/a3go/a3interface" "github.com/indig0fox/a3go/assemblyfinder" @@ -30,71 +26,117 @@ func init() { a3interface.SetVersion("0.0.0") a3interface.RegisterErrorChan(a3ErrorChannel) - a3interface.NewRegistration("ping"). - SetDefaultResponse("[Received PING Command, starting background process]"). - SetRunInBackground(true). - SetFunction(PingCommand). - SetArgsFunction(PingCommandArgs). + // ManageAPI/getHelp + a3interface.NewRegistration("ManageAPI/getHelp"). + SetDefaultResponse("[Requested Get Help Command, starting background process]"). + SetRunInBackground(false). + SetFunction(armatak_controller_ManageAPI_getHelp). + SetArgsFunction(armatak_controller_args_ManageAPI_getHelp). Register() -} - -func PingCommand( - ctx a3interface.ArmaExtensionContext, - data string, -) (string, error) { - dataSlice := strings.Split(data, "|") - dataSliceWithoutPrefix := dataSlice[1:] - for i, v := range dataSliceWithoutPrefix { - dataSliceWithoutPrefix[i] = a3interface.RemoveEscapeQuotes(v) - } - - s := fmt.Sprintf(ctx.SteamID + ` called the ping command to use the dll inside ` + ctx.ServerName + modulePathDir) - - postRequest(s) - return s, nil -} - -func PingCommandArgs( - ctx a3interface.ArmaExtensionContext, - command string, - args []string, -) (string, error) { - for i, v := range args { - args[i] = a3interface.RemoveEscapeQuotes(v) - } - - postRequest(strings.Join(args, " || ")) - - return fmt.Sprintf(`["Called by %s", %q, %q]`, - ctx.SteamID, - command, - args, - ), nil -} - -func postRequest(content string) { - webhookURL := "http://localhost:3000/ping" - - payload := Payload{ - Content: content, - } - - jsonData, err := json.Marshal(payload) - if err != nil { - fmt.Println("Error marshalling payload:", err) - return - } - - req, err := http.Post(webhookURL, "application/json", bytes.NewReader(jsonData)) - if err != nil { - fmt.Println("Error creating request:", err) - return - } - - defer req.Body.Close() - - if req.StatusCode != http.StatusOK { - fmt.Println("Error sending request:", req.Status) - return - } + // ManageGeoObject/postGeoObject + a3interface.NewRegistration("ManageGeoObject/postGeoObject"). + SetDefaultResponse("[Requested postGeoObject Command, starting background process]"). + SetRunInBackground(false). + SetFunction(armatak_controller_ManageGeoObject_postGeoObject). + SetArgsFunction(armatak_controller_args_ManageGeoObject_postGeoObject). + Register() + // ManageGeoObject/putGeoObject + a3interface.NewRegistration("ManageGeoObject/putGeoObject"). + SetDefaultResponse("[Requested putGeoObject Command, starting background process]"). + SetRunInBackground(false). + SetFunction(armatak_controller_ManageGeoObject_putGeoObject). + SetArgsFunction(armatak_controller_args_ManageGeoObject_putGeoObject). + Register() + // ManageGeoObject/getGeoObject + a3interface.NewRegistration("ManageGeoObject/getGeoObject"). + SetDefaultResponse("[Requested getGeoObject Command, starting background process]"). + SetRunInBackground(false). + SetFunction(armatak_controller_ManageGeoObject_getGeoObject). + SetArgsFunction(armatak_controller_args_ManageGeoObject_getGeoObject). + Register() + // ManageGeoObject/getGeoObjectByZone + a3interface.NewRegistration("ManageGeoObject/getGeoObjectByZone"). + SetDefaultResponse("[Requested getGeoObjectByZone Command, starting background process]"). + SetRunInBackground(false). + SetFunction(armatak_controller_ManageGeoObject_getGeoObjectByZone). + SetArgsFunction(armatak_controller_args_ManageGeoObject_getGeoObjectByZone). + Register() + // ManageEmergency/postEmergency + a3interface.NewRegistration("ManageEmergency/postEmergency"). + SetDefaultResponse("[Requested postEmergency Command, starting background process]"). + SetRunInBackground(false). + SetFunction(armatak_controller_ManageEmergency_postEmergency). + SetArgsFunction(armatak_controller_args_ManageEmergency_postEmergency). + Register() + // ManageEmergency/getEmergency + a3interface.NewRegistration("ManageEmergency/getEmergency"). + SetDefaultResponse("[Requested getEmergency Command, starting background process]"). + SetRunInBackground(false). + SetFunction(armatak_controller_ManageEmergency_getEmergency). + SetArgsFunction(armatak_controller_args_ManageEmergency_getEmergency). + Register() + // ManageEmergency/deleteEmergency + a3interface.NewRegistration("ManageEmergency/deleteEmergency"). + SetDefaultResponse("[Requested deleteEmergency Command, starting background process]"). + SetRunInBackground(false). + SetFunction(armatak_controller_ManageEmergency_deleteEmergency). + SetArgsFunction(armatak_controller_args_ManageEmergency_deleteEmergency). + Register() + // ManageChat/postChatToAll + a3interface.NewRegistration("ManageChat/postChatToAll"). + SetDefaultResponse("[Requested postChatToAll Command, starting background process]"). + SetRunInBackground(false). + SetFunction(armatak_controller_ManageChat_postChatToAll). + SetArgsFunction(armatak_controller_args_ManageChat_postChatToAll). + Register() + // ManageRoute/postRoute + a3interface.NewRegistration("ManageRoute/postRoute"). + SetDefaultResponse("[Requested postRoute Command, starting background process]"). + SetRunInBackground(false). + SetFunction(armatak_controller_ManageRoute_postRoute). + SetArgsFunction(armatak_controller_args_ManageRoute_postRoute). + Register() + // ManagePresence/postPresence + a3interface.NewRegistration("ManagePresence/postPresence"). + SetDefaultResponse("[Requested postPresence Command, starting background process]"). + SetRunInBackground(false). + SetFunction(armatak_controller_ManagePresence_postPresence). + SetArgsFunction(armatak_controller_args_ManagePresence_postPresence). + Register() + // ManagePresence/putPresence + a3interface.NewRegistration("ManagePresence/putPresence"). + SetDefaultResponse("[Requested putPresence Command, starting background process]"). + SetRunInBackground(false). + SetFunction(armatak_controller_ManagePresence_putPresence). + SetArgsFunction(armatak_controller_args_ManagePresence_putPresence). + Register() + // ManageVideoStream/postVideoStream + a3interface.NewRegistration("ManageVideoStream/postVideoStream"). + SetDefaultResponse("[Requested postVideoStream Command, starting background process]"). + SetRunInBackground(false). + SetFunction(armatak_controller_ManageVideoStream_postVideoStream). + SetArgsFunction(armatak_controller_args_ManageVideoStream_postVideoStream). + Register() + // Sensor/postDrone + a3interface.NewRegistration("Sensor/postDrone"). + SetDefaultResponse("[Requested postDrone Command, starting background process]"). + SetRunInBackground(false). + SetFunction(armatak_controller_Sensor_postDrone). + SetArgsFunction(armatak_controller_args_Sensor_postDrone). + Register() + // Sensor/postSPI + a3interface.NewRegistration("Sensor/postSPI"). + SetDefaultResponse("[Requested postSPI Command, starting background process]"). + SetRunInBackground(false). + SetFunction(armatak_controller_Sensor_postSPI). + SetArgsFunction(armatak_controller_args_Sensor_postSPI). + Register() + // ManageKML/postKML + a3interface.NewRegistration("ManageKML/postKML"). + SetDefaultResponse("[Requested postKML Command, starting background process]"). + SetRunInBackground(false). + SetFunction(armatak_controller_ManageKML_postKML). + SetArgsFunction(armatak_controller_args_ManageKML_postKML). + Register() + }