diff options
| author | Mel <einebeere@gmail.com> | 2022-08-17 00:07:35 +0000 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2022-08-17 00:07:35 +0000 |
| commit | be6cd2217b6bb1bb411d46ebd9d003dfd928af96 (patch) | |
| tree | 94e5807aae0fb65d2768adce594e245052ecf578 /pkg/bot | |
| parent | d84c0f36afcde4e5af2907d70931de75957d5277 (diff) | |
| download | jinx-be6cd2217b6bb1bb411d46ebd9d003dfd928af96.tar.zst jinx-be6cd2217b6bb1bb411d46ebd9d003dfd928af96.zip | |
Add different "say" outputs to VM
Diffstat (limited to 'pkg/bot')
| -rw-r--r-- | pkg/bot/cmds.go | 32 | ||||
| -rw-r--r-- | pkg/bot/output.go | 19 |
2 files changed, 37 insertions, 14 deletions
diff --git a/pkg/bot/cmds.go b/pkg/bot/cmds.go index 32b1bfe..7d451a9 100644 --- a/pkg/bot/cmds.go +++ b/pkg/bot/cmds.go @@ -36,20 +36,23 @@ func vmCmd(b *Bot, content string, msg events.Message) error { return err } - vm := vm.New(modules.NewUnknownModule(&bc)) - - if err := vm.Run(); err != nil { - return err + output := &chatOutput{ + logger: b.logger, + client: b.client, + channel: msg.ChannelID, } - res, err := vm.GetResult() - if err != nil { + vm := vm.New(modules.NewUnknownModule(&bc), output) + + b.logger.Info().Msgf("executing vm bytecode from user %s...", msg.Author.Username) + + if err := vm.Run(); err != nil { return err } b.logger.Debug().Msg("executed code") - return b.client.SendMessage(msg.ChannelID, res) + return nil } func langCmd(b *Bot, content string, msg events.Message) error { @@ -81,20 +84,21 @@ func langCmd(b *Bot, content string, msg events.Message) error { b.client.SendMessage(msg.ChannelID, fmt.Sprintf("resulting decompiled bytecode:\n```\n%s\n```", decompRes)) - vm := vm.New(module) + output := &chatOutput{ + logger: b.logger, + client: b.client, + channel: msg.ChannelID, + } + vm := vm.New(module, output) + b.logger.Info().Msgf("executing code from user %s...", msg.Author.Username) b.client.SendMessage(msg.ChannelID, "executing code...") if err := vm.Run(); err != nil { return err } - res, err := vm.GetResult() - if err != nil { - return err - } - b.logger.Debug().Msg("executed code") - return b.client.SendMessage(msg.ChannelID, res) + return nil } diff --git a/pkg/bot/output.go b/pkg/bot/output.go new file mode 100644 index 0000000..d29a625 --- /dev/null +++ b/pkg/bot/output.go @@ -0,0 +1,19 @@ +package bot + +import ( + "jinx/pkg/discord" + "jinx/pkg/discord/entities" + + "github.com/rs/zerolog" +) + +type chatOutput struct { + logger *zerolog.Logger + client *discord.Discord + channel entities.Snowflake +} + +func (c *chatOutput) Write(p string) error { + c.logger.Info().Msgf("writing lang output: %s", p) + return c.client.SendMessage(c.channel, p) +} |
