diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Tools/pCampBot/Bot.cs | 37 | ||||
-rw-r--r-- | OpenSim/Tools/pCampBot/BotManager.cs | 32 |
2 files changed, 40 insertions, 29 deletions
diff --git a/OpenSim/Tools/pCampBot/Bot.cs b/OpenSim/Tools/pCampBot/Bot.cs index 1b30766..7f941a4 100644 --- a/OpenSim/Tools/pCampBot/Bot.cs +++ b/OpenSim/Tools/pCampBot/Bot.cs | |||
@@ -222,7 +222,7 @@ namespace pCampBot | |||
222 | } | 222 | } |
223 | else | 223 | else |
224 | { | 224 | { |
225 | MainConsole.Instance.OutputFormat( | 225 | m_log.ErrorFormat( |
226 | "{0} {1} cannot login: {2}", FirstName, LastName, Client.Network.LoginMessage); | 226 | "{0} {1} cannot login: {2}", FirstName, LastName, Client.Network.LoginMessage); |
227 | 227 | ||
228 | if (OnDisconnected != null) | 228 | if (OnDisconnected != null) |
@@ -266,12 +266,12 @@ namespace pCampBot | |||
266 | } | 266 | } |
267 | else | 267 | else |
268 | { | 268 | { |
269 | MainConsole.Instance.Output(String.Format("Failed to decode {0} asset {1}", asset.AssetType, asset.AssetID)); | 269 | m_log.WarnFormat("Failed to decode {0} asset {1}", asset.AssetType, asset.AssetID); |
270 | } | 270 | } |
271 | } | 271 | } |
272 | catch (Exception e) | 272 | catch (Exception e) |
273 | { | 273 | { |
274 | MainConsole.Instance.Output(String.Format("Exception: {0}",e.ToString())); | 274 | m_log.ErrorFormat("Exception: {0}{1}", e.Message, e.StackTrace); |
275 | } | 275 | } |
276 | } | 276 | } |
277 | } | 277 | } |
@@ -305,7 +305,7 @@ namespace pCampBot | |||
305 | if (wear == "yes") | 305 | if (wear == "yes") |
306 | { | 306 | { |
307 | //TODO: Implement random outfit picking | 307 | //TODO: Implement random outfit picking |
308 | MainConsole.Instance.Output("Picks a random outfit. Not yet implemented."); | 308 | m_log.DebugFormat("Picks a random outfit. Not yet implemented."); |
309 | } | 309 | } |
310 | else if (wear != "save") | 310 | else if (wear != "save") |
311 | saveDir = "MyAppearance/" + wear; | 311 | saveDir = "MyAppearance/" + wear; |
@@ -334,7 +334,9 @@ namespace pCampBot | |||
334 | listwearables.Add(item); | 334 | listwearables.Add(item); |
335 | } | 335 | } |
336 | else | 336 | else |
337 | MainConsole.Instance.Output(String.Format("Failed to create item {0}",item.Name)); | 337 | { |
338 | m_log.WarnFormat("Failed to create item {0}", item.Name); | ||
339 | } | ||
338 | } | 340 | } |
339 | ); | 341 | ); |
340 | } | 342 | } |
@@ -356,7 +358,9 @@ namespace pCampBot | |||
356 | listwearables.Add(item); | 358 | listwearables.Add(item); |
357 | } | 359 | } |
358 | else | 360 | else |
359 | MainConsole.Instance.Output(String.Format("Failed to create item {0}",item.Name)); | 361 | { |
362 | m_log.WarnFormat("Failed to create item {0}", item.Name); | ||
363 | } | ||
360 | } | 364 | } |
361 | ); | 365 | ); |
362 | } | 366 | } |
@@ -364,10 +368,12 @@ namespace pCampBot | |||
364 | Thread.Sleep(1000); | 368 | Thread.Sleep(1000); |
365 | 369 | ||
366 | if (listwearables == null || listwearables.Count == 0) | 370 | if (listwearables == null || listwearables.Count == 0) |
367 | MainConsole.Instance.Output("Nothing to send on this folder!"); | 371 | { |
372 | m_log.DebugFormat("Nothing to send on this folder!"); | ||
373 | } | ||
368 | else | 374 | else |
369 | { | 375 | { |
370 | MainConsole.Instance.Output(String.Format("Sending {0} wearables...",listwearables.Count)); | 376 | m_log.DebugFormat("Sending {0} wearables...", listwearables.Count); |
371 | Client.Appearance.WearOutfit(listwearables, false); | 377 | Client.Appearance.WearOutfit(listwearables, false); |
372 | } | 378 | } |
373 | } | 379 | } |
@@ -447,17 +453,20 @@ namespace pCampBot | |||
447 | 453 | ||
448 | for (int i = 0; i < prim.Textures.FaceTextures.Length; i++) | 454 | for (int i = 0; i < prim.Textures.FaceTextures.Length; i++) |
449 | { | 455 | { |
450 | UUID textureID = prim.Textures.FaceTextures[i].TextureID; | 456 | Primitive.TextureEntryFace face = prim.Textures.FaceTextures[i]; |
451 | 457 | ||
452 | if (textureID != UUID.Zero) | 458 | if (face != null) |
453 | GetTexture(textureID); | 459 | { |
460 | UUID textureID = prim.Textures.FaceTextures[i].TextureID; | ||
461 | |||
462 | if (textureID != UUID.Zero) | ||
463 | GetTexture(textureID); | ||
464 | } | ||
454 | } | 465 | } |
455 | } | 466 | } |
456 | 467 | ||
457 | if (prim.Sculpt.SculptTexture != UUID.Zero) | 468 | if (prim.Sculpt != null && prim.Sculpt.SculptTexture != UUID.Zero) |
458 | { | ||
459 | GetTexture(prim.Sculpt.SculptTexture); | 469 | GetTexture(prim.Sculpt.SculptTexture); |
460 | } | ||
461 | } | 470 | } |
462 | } | 471 | } |
463 | 472 | ||
diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 704770a..f5dd5e0 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs | |||
@@ -51,7 +51,6 @@ namespace pCampBot | |||
51 | protected CommandConsole m_console; | 51 | protected CommandConsole m_console; |
52 | protected List<Bot> m_lBot; | 52 | protected List<Bot> m_lBot; |
53 | protected Random somthing = new Random(Environment.TickCount); | 53 | protected Random somthing = new Random(Environment.TickCount); |
54 | protected int numbots = 0; | ||
55 | public IConfig Config { get; private set; } | 54 | public IConfig Config { get; private set; } |
56 | 55 | ||
57 | /// <summary> | 56 | /// <summary> |
@@ -137,7 +136,7 @@ namespace pCampBot | |||
137 | if (behaviourSwitches.Contains("g")) | 136 | if (behaviourSwitches.Contains("g")) |
138 | behaviours.Add(new GrabbingBehaviour()); | 137 | behaviours.Add(new GrabbingBehaviour()); |
139 | 138 | ||
140 | startupBot(i, this, behaviours, firstName, lastName, password, loginUri); | 139 | StartBot(this, behaviours, firstName, lastName, password, loginUri); |
141 | } | 140 | } |
142 | } | 141 | } |
143 | 142 | ||
@@ -157,22 +156,21 @@ namespace pCampBot | |||
157 | // int newlen = len + botcount; | 156 | // int newlen = len + botcount; |
158 | // for (int i = len; i < newlen; i++) | 157 | // for (int i = len; i < newlen; i++) |
159 | // { | 158 | // { |
160 | // startupBot(i, Config); | 159 | // startupBot(Config); |
161 | // } | 160 | // } |
162 | // } | 161 | // } |
163 | 162 | ||
164 | /// <summary> | 163 | /// <summary> |
165 | /// This starts up the bot and stores the thread for the bot in the thread array | 164 | /// This starts up the bot and stores the thread for the bot in the thread array |
166 | /// </summary> | 165 | /// </summary> |
167 | /// <param name="pos">The position in the thread array to stick the bot's thread</param> | ||
168 | /// <param name="bm"></param> | 166 | /// <param name="bm"></param> |
169 | /// <param name="behaviours">Behaviours for this bot to perform.</param> | 167 | /// <param name="behaviours">Behaviours for this bot to perform.</param> |
170 | /// <param name="firstName">First name</param> | 168 | /// <param name="firstName">First name</param> |
171 | /// <param name="lastName">Last name</param> | 169 | /// <param name="lastName">Last name</param> |
172 | /// <param name="password">Password</param> | 170 | /// <param name="password">Password</param> |
173 | /// <param name="loginUri">Login URI</param> | 171 | /// <param name="loginUri">Login URI</param> |
174 | public void startupBot( | 172 | public void StartBot( |
175 | int pos, BotManager bm, List<IBehaviour> behaviours, | 173 | BotManager bm, List<IBehaviour> behaviours, |
176 | string firstName, string lastName, string password, string loginUri) | 174 | string firstName, string lastName, string password, string loginUri) |
177 | { | 175 | { |
178 | Bot pb = new Bot(bm, behaviours, firstName, lastName, password, loginUri); | 176 | Bot pb = new Bot(bm, behaviours, firstName, lastName, password, loginUri); |
@@ -200,16 +198,17 @@ namespace pCampBot | |||
200 | { | 198 | { |
201 | case EventType.CONNECTED: | 199 | case EventType.CONNECTED: |
202 | m_log.Info("[" + callbot.FirstName + " " + callbot.LastName + "]: Connected"); | 200 | m_log.Info("[" + callbot.FirstName + " " + callbot.LastName + "]: Connected"); |
203 | numbots++; | ||
204 | // m_log.InfoFormat("NUMBOTS {0}", numbots); | ||
205 | break; | 201 | break; |
206 | case EventType.DISCONNECTED: | 202 | case EventType.DISCONNECTED: |
207 | m_log.Info("[" + callbot.FirstName + " " + callbot.LastName + "]: Disconnected"); | 203 | m_log.Info("[" + callbot.FirstName + " " + callbot.LastName + "]: Disconnected"); |
208 | numbots--; | 204 | |
209 | // m_log.InfoFormat("NUMBOTS {0}", numbots); | 205 | lock (m_lBot) |
210 | if (numbots <= 0) | 206 | { |
211 | Environment.Exit(0); | 207 | if (m_lBot.TrueForAll(b => !b.IsConnected)) |
212 | break; | 208 | Environment.Exit(0); |
209 | |||
210 | break; | ||
211 | } | ||
213 | } | 212 | } |
214 | } | 213 | } |
215 | 214 | ||
@@ -234,8 +233,11 @@ namespace pCampBot | |||
234 | 233 | ||
235 | private void HandleShutdown(string module, string[] cmd) | 234 | private void HandleShutdown(string module, string[] cmd) |
236 | { | 235 | { |
237 | m_log.Warn("[BOTMANAGER]: Shutting down bots"); | 236 | Util.FireAndForget(o => |
238 | doBotShutdown(); | 237 | { |
238 | m_log.Warn("[BOTMANAGER]: Shutting down bots"); | ||
239 | doBotShutdown(); | ||
240 | }); | ||
239 | } | 241 | } |
240 | 242 | ||
241 | private void HandleShowStatus(string module, string[] cmd) | 243 | private void HandleShowStatus(string module, string[] cmd) |