about summary refs log tree commit diff
path: root/pkg/bot/cmds.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/bot/cmds.go')
-rw-r--r--pkg/bot/cmds.go32
1 files changed, 18 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
 }