From fdfcc88540587ead99d016ebf9e0e69c5e78ddb6 Mon Sep 17 00:00:00 2001
From: Marc Di Luzio <marc.diluzio@gmail.com>
Date: Fri, 24 Jul 2020 22:50:35 +0100
Subject: [PATCH] Move the account registration into the world

---
 cmd/rove-server/internal/server.go | 12 ------------
 pkg/rove/world.go                  |  2 +-
 2 files changed, 1 insertion(+), 13 deletions(-)

diff --git a/cmd/rove-server/internal/server.go b/cmd/rove-server/internal/server.go
index 42392f3..7debe0a 100644
--- a/cmd/rove-server/internal/server.go
+++ b/cmd/rove-server/internal/server.go
@@ -210,17 +210,5 @@ func (s *Server) SpawnRoverForAccount(account string) (string, error) {
 		return "", err
 	}
 
-	err = s.world.Accountant.AssignData(account, "rover", inst)
-	if err != nil {
-		log.Printf("Failed to assign rover to account, %s", err)
-
-		// Try and clear up the rover
-		if err := s.world.DestroyRover(inst); err != nil {
-			log.Printf("Failed to destroy rover after failed rover assign: %s", err)
-		}
-
-		return "", err
-	}
-
 	return inst, nil
 }
diff --git a/pkg/rove/world.go b/pkg/rove/world.go
index 922ab70..09d271a 100644
--- a/pkg/rove/world.go
+++ b/pkg/rove/world.go
@@ -97,7 +97,7 @@ func (w *World) SpawnRover(account string) (string, error) {
 	// Append the rover to the list
 	w.Rovers[rover.Name] = rover
 
-	return rover.Name, nil
+	return rover.Name, w.Accountant.AssignData(account, "rover", rover.Name)
 }
 
 // GetRover gets a specific rover by name