Newer
Older
GoModules / PluginSystem / plugins / example / example_addition.go
root on 25 Jun 2022 899 bytes simple plugin system added
package example

import (
    "fmt"
    "strconv"
    "encoding/json"

    "PLuginExample/plugins"
)

type ExampleInts struct {
    IntA    int      `json:"intA"`
    IntB    int      `json:"intB"`
}

func add(firstNo int, secondNo int)string {
    result := strconv.Itoa( firstNo + secondNo )
    return result
}

func init() {

    var commands plugins.Command
    commands.Name = "!add"
    commands.Callback = func(args ...interface{})(string) {
        
        var ints ExampleInts

        jsonToUse := []byte(args[0].(string))
        err := json.Unmarshal(jsonToUse, &ints)
        if err != nil {
            fmt.Println(err.Error()) 
        }

        result := add(ints.IntA, ints.IntB)
        return result
    }

    var p plugins.PluginInfo
    p.Name = "Example Addition"
    p.About = "Example plugin to add two numbers together"
    p.Commands = commands
    p.AddPluginInfo()
}