From 9c7060c8eb9bb832603268daad17fffc6eb85432 Mon Sep 17 00:00:00 2001
From: Innokenty <innokenty@singularitynet.io>
Date: Wed, 2 Aug 2023 10:24:11 +0300
Subject: [PATCH] fixes

---
 examples/5_lumberjack3D.py     | 37 ++++++++++++++++++----------------
 tests/vereya/test_placement.py |  2 +-
 2 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/examples/5_lumberjack3D.py b/examples/5_lumberjack3D.py
index 6a87d95..dccff6d 100755
--- a/examples/5_lumberjack3D.py
+++ b/examples/5_lumberjack3D.py
@@ -628,23 +628,26 @@ def loop(self, target = None):
             # '/say @p get stone_pickaxe'
             # '/say @p stop'
             # '/say @p terminate'
-            chat = self.rob.getCachedObserve('getChat')[0]
-            if chat is not None and chat[0] is not None:
-                print("Receive chat: ", chat[0])
-                words = chat[0].split(' ')
-                if words[-2] == 'get':
-                    target = {'type': words[-1]}
-                else:
-                    if words[-1] == 'stop':
-                        target = None
-                        self.skill = None
-                        self.rob.sendCommand('move 0')
-                        self.rob.sendCommand('jump 0')
-                        self.rob.sendCommand('attack 0')
-                    elif words[-1] == 'terminate':
-                        break
-                self.rob.cached['getChat'] = (None, self.rob.cached['getChat'][1])
-
+            commands = self.rob.getCachedObserve('getChat')
+            for command in reversed(commands):
+                chat = command[0]
+                if chat is not None:
+                    print("Receive chat: ", chat[0])
+                    words = chat[0].split(' ')
+                    if words[-2] == 'get':
+                        target = {'type': words[-1]}
+                    else:
+                        if words[-1] == 'stop':
+                            target = None
+                            self.skill = None
+                            self.rob.sendCommand('move 0')
+                            self.rob.sendCommand('jump 0')
+                            self.rob.sendCommand('attack 0')
+                        elif words[-1] == 'terminate':
+                            target = 'terminate'
+                    break
+            if target == 'terminate':
+                continue
             if self.skill is not None:
                 if self.ccycle():
                     continue
diff --git a/tests/vereya/test_placement.py b/tests/vereya/test_placement.py
index 3092a28..2ae3ab5 100644
--- a/tests/vereya/test_placement.py
+++ b/tests/vereya/test_placement.py
@@ -11,7 +11,7 @@ class TestPlacement(BaseTest):
     def setUpClass(cls, *args, **kwargs):
         start = (-125.0, 73)
         mc, obs = init_mission(None, start_x=start[0], start_y=start[1], seed=4,
-                               forceReset='false', forceReuse='true')
+                               forceReset='true')
         cls.mc = mc
         cls.rob = obs
         mc.safeStart()