aboutsummaryrefslogtreecommitdiff
path: root/pkg/bot
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2022-08-17 00:07:35 +0000
committerMel <einebeere@gmail.com>2022-08-17 00:07:35 +0000
commitbe6cd2217b6bb1bb411d46ebd9d003dfd928af96 (patch)
tree94e5807aae0fb65d2768adce594e245052ecf578 /pkg/bot
parentd84c0f36afcde4e5af2907d70931de75957d5277 (diff)
downloadjinx-be6cd2217b6bb1bb411d46ebd9d003dfd928af96.tar.zst
jinx-be6cd2217b6bb1bb411d46ebd9d003dfd928af96.zip
Add different "say" outputs to VM
Diffstat (limited to 'pkg/bot')
-rw-r--r--pkg/bot/cmds.go32
-rw-r--r--pkg/bot/output.go19
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)
+}