comparison orpg/player_list.py @ 13:211ac836b6a0 grumpy-goblin

{090731-00} Fixes problem with Name & Settings window, cleans code.
author sirebral
date Fri, 31 Jul 2009 15:22:11 -0500
parents d5e81dac98ff
children 265b987cce4f
comparison
equal deleted inserted replaced
12:d492f137cd3c 13:211ac836b6a0
76 # [END] Snowdog Password/Room Name altering code 12/02 76 # [END] Snowdog Password/Room Name altering code 12/02
77 #--------------------------------------------------------- 77 #---------------------------------------------------------
78 78
79 class player_list(wx.ListCtrl): 79 class player_list(wx.ListCtrl):
80 def __init__( self, parent): 80 def __init__( self, parent):
81 ## wx.ListCtrl.__init__( self, parent, -1, wx.DefaultPosition, wx.DefaultSize, wx.LC_REPORT|wx.SUNKEN_BORDER|wx.EXPAND ) 81 ##wx.ListCtrl.__init__( self, parent, -1, wx.DefaultPosition, wx.DefaultSize, wx.LC_REPORT|wx.SUNKEN_BORDER|wx.EXPAND )
82 wx.ListCtrl.__init__( self, parent, -1, wx.DefaultPosition, wx.DefaultSize, wx.LC_REPORT|wx.SUNKEN_BORDER|wx.EXPAND|wx.LC_HRULES ) 82 wx.ListCtrl.__init__( self, parent, -1, wx.DefaultPosition, wx.DefaultSize,
83 wx.LC_REPORT|wx.SUNKEN_BORDER|wx.EXPAND|wx.LC_HRULES )
83 self.session = open_rpg.get_component("session") 84 self.session = open_rpg.get_component("session")
84 self.settings = open_rpg.get_component('settings') 85 self.settings = open_rpg.get_component('settings')
85 self.chat = open_rpg.get_component('chat') 86 self.chat = open_rpg.get_component('chat')
86 self.password_manager = open_rpg.get_component("password_manager") 87 self.password_manager = open_rpg.get_component("password_manager")
87 # Create in image list -- for whatever reason...guess it will be nice when we can tell which is a bot 88 # Create in image list -- for whatever reason...guess it will be nice when we can tell which is a bot
196 self.session = open_rpg.get_component("session") 197 self.session = open_rpg.get_component("session")
197 self.password_manager = open_rpg.get_component("password_manager") 198 self.password_manager = open_rpg.get_component("password_manager")
198 self.chat = open_rpg.get_component("chat") 199 self.chat = open_rpg.get_component("chat")
199 boot_pwd = self.password_manager.GetPassword("admin",int(self.session.group_id)) 200 boot_pwd = self.password_manager.GetPassword("admin",int(self.session.group_id))
200 if boot_pwd != None: 201 if boot_pwd != None:
201 alter_pwd_dialog = wx.TextEntryDialog(self,"Enter new room password: (blank for no password)","Alter Room Password") 202 alter_pwd_dialog = wx.TextEntryDialog(self,
203 "Enter new room password: (blank for no password)","Alter Room Password")
202 if alter_pwd_dialog.ShowModal() == wx.ID_OK: 204 if alter_pwd_dialog.ShowModal() == wx.ID_OK:
203 new_pass = alter_pwd_dialog.GetValue() 205 new_pass = alter_pwd_dialog.GetValue()
204 self.chat.InfoPost( "Requesting password change on server..." ) 206 self.chat.InfoPost( "Requesting password change on server..." )
205 self.session.set_room_pass(new_pass, boot_pwd) 207 self.session.set_room_pass(new_pass, boot_pwd)
206 208
253 def clean_sub_menus(self): 255 def clean_sub_menus(self):
254 for mid in WG_MENU_LIST: 256 for mid in WG_MENU_LIST:
255 try: 257 try:
256 self.wgMenu.Remove(WG_MENU_LIST[mid]["menuid"]) 258 self.wgMenu.Remove(WG_MENU_LIST[mid]["menuid"])
257 WG_MENU_LIST[mid]["menu"].Destroy() 259 WG_MENU_LIST[mid]["menu"].Destroy()
258 except: 260 except: self.wgMenu.UpdateUI()
259 self.wgMenu.UpdateUI() 261 if self.wgMenu.GetMenuItemCount() == 2: WG_MENU_LIST.clear()
260 if self.wgMenu.GetMenuItemCount() == 2:
261 WG_MENU_LIST.clear()
262 return 262 return
263 263
264 def on_menu_whispergroup( self, evt ): 264 def on_menu_whispergroup( self, evt ):
265 self.session = open_rpg.get_component("session") 265 self.session = open_rpg.get_component("session")
266 self.settings = open_rpg.get_component('settings') 266 self.settings = open_rpg.get_component('settings')
273 create_new_group_dialog = wx.TextEntryDialog(self,"Enter Group Name","Create New Whisper Group") 273 create_new_group_dialog = wx.TextEntryDialog(self,"Enter Group Name","Create New Whisper Group")
274 if create_new_group_dialog.ShowModal() == wx.ID_OK: 274 if create_new_group_dialog.ShowModal() == wx.ID_OK:
275 group_name = create_new_group_dialog.GetValue() 275 group_name = create_new_group_dialog.GetValue()
276 WG_LIST[group_name] = {} 276 WG_LIST[group_name] = {}
277 return 277 return
278 elif id == PLAYER_WG_CLEAR_ALL: 278 elif id == PLAYER_WG_CLEAR_ALL: WG_LIST.clear(); return
279 WG_LIST.clear()
280 return
281 #Check Sub Menus 279 #Check Sub Menus
282 for mid in WG_MENU_LIST: 280 for mid in WG_MENU_LIST:
283 if id == WG_MENU_LIST[mid]["add"]: 281 if id == WG_MENU_LIST[mid]["add"]: WG_LIST[mid][int(item.GetText())] = int(item.GetText()); return
284 WG_LIST[mid][int(item.GetText())] = int(item.GetText()) 282 elif id == WG_MENU_LIST[mid]["remove"]: del WG_LIST[mid][int(item.GetText())]; return
285 return 283 elif id == WG_MENU_LIST[mid]["clear"]: WG_LIST[mid].clear(); return
286 elif id == WG_MENU_LIST[mid]["remove"]: 284 elif id == WG_MENU_LIST[mid]["whisper"]: self.chat.set_chat_text("/gw " + mid + "="); return
287 del WG_LIST[mid][int(item.GetText())]
288 return
289 elif id == WG_MENU_LIST[mid]["clear"]:
290 WG_LIST[mid].clear()
291 return
292 elif id == WG_MENU_LIST[mid]["whisper"]:
293 self.chat.set_chat_text("/gw " + mid + "=")
294 return
295 return 285 return
296 286
297 #--------------------------------------------------------- 287 #---------------------------------------------------------
298 # [END] Digitalxero Multi Whisper Group 1/1/05 288 # [END] Digitalxero Multi Whisper Group 1/1/05
299 #--------------------------------------------------------- 289 #---------------------------------------------------------
366 self.password_manager = open_rpg.get_component("password_manager") 356 self.password_manager = open_rpg.get_component("password_manager")
367 357
368 if id == PLAYER_BOOT: 358 if id == PLAYER_BOOT:
369 id = str(self.GetItemData(self.selected_item)) 359 id = str(self.GetItemData(self.selected_item))
370 boot_pwd = self.password_manager.GetPassword("admin",int(self.session.group_id)) 360 boot_pwd = self.password_manager.GetPassword("admin",int(self.session.group_id))
371 if boot_pwd != None: 361 if boot_pwd != None: self.session.boot_player(id,boot_pwd)
372 self.session.boot_player(id,boot_pwd)
373 elif id == PLAYER_WHISPER: 362 elif id == PLAYER_WHISPER:
374 id = self.GetItemText(self.selected_item) 363 id = self.GetItemText(self.selected_item)
375 self.chat = open_rpg.get_component("chat") 364 self.chat = open_rpg.get_component("chat")
376 self.chat.set_chat_text("/w " + id + "=") 365 self.chat.set_chat_text("/w " + id + "=")
377 elif id == PLAYER_IGNORE: 366 elif id == PLAYER_IGNORE:
378 id = str(self.GetItemData(self.selected_item)) 367 id = str(self.GetItemData(self.selected_item))
379 self.chat = open_rpg.get_component("chat") 368 self.chat = open_rpg.get_component("chat")
380 (result,id,name) = self.session.toggle_ignore(id) 369 (result,id,name) = self.session.toggle_ignore(id)
381 if result == 0: 370 if result == 0: self.chat.Post(self.chat.colorize(self.chat.syscolor,
382 self.chat.Post(self.chat.colorize(self.chat.syscolor, "Player " + name + " with ID:" + id +" no longer ignored")) 371 "Player " + name + " with ID:" + id +" no longer ignored"))
383 else: 372 else: self.chat.Post(self.chat.colorize(self.chat.syscolor,
384 self.chat.Post(self.chat.colorize(self.chat.syscolor, "Player " + name + " with ID:" + id +" now being ignored")) 373 "Player " + name + " with ID:" + id +" now being ignored"))
385 elif id == PLAYER_SHOW_VERSION: 374 elif id == PLAYER_SHOW_VERSION:
386 id = str(self.GetItemData(self.selected_item)) 375 id = str(self.GetItemData(self.selected_item))
387 version_string = self.session.players[id][6] 376 version_string = self.session.players[id][6]
388 if version_string: 377 if version_string: wx.MessageBox("Running client version " + version_string,"Version")
389 wx.MessageBox("Running client version " + version_string,"Version") 378 else: wx.MessageBox("No client version available for this player","Version")
390 else:
391 wx.MessageBox("No client version available for this player","Version")
392 379
393 def on_menu(self, evt): 380 def on_menu(self, evt):
394 pos = wx.Point(evt.GetX(),evt.GetY()) 381 pos = wx.Point(evt.GetX(),evt.GetY())
395 (item, flag) = self.HitTest(pos) 382 (item, flag) = self.HitTest(pos)
396 if item > -1: 383 if item > -1:
397 self.selected_item = item 384 self.selected_item = item
398 # This if-else block makes the menu item to boot players active or inactive, as appropriate 385 # This if-else block makes the menu item to boot players active or inactive, as appropriate
399 # This block is enabled for 1.7.8. Ver. 1.7.9 will boast Admin features. 386 # This block is enabled for 1.7.8. Ver. 1.7.9 will boast Admin features.
400 #if open_rpg.get_component("session").group_id == "0": 387 #if open_rpg.get_component("session").group_id == "0":
401 # self.menu.Enable(PLAYER_BOOT,0) 388 # self.menu.Enable(PLAYER_BOOT,0)
402 # self.menu.SetLabel(PLAYER_BOOT,"Can't boot from Lobby") 389 # self.menu.SetLabel(PLAYER_BOOT,"Can't boot from Lobby")
403 #else: 390 #else:
404 self.menu.Enable(PLAYER_BOOT,1) 391 self.menu.Enable(PLAYER_BOOT,1)
406 #--------------------------------------------------------- 393 #---------------------------------------------------------
407 # [START] Digitalxero Multi Whisper Group 1/1/05 394 # [START] Digitalxero Multi Whisper Group 1/1/05
408 #--------------------------------------------------------- 395 #---------------------------------------------------------
409 self.menu.Enable(PLAYER_WG_MENU, True) 396 self.menu.Enable(PLAYER_WG_MENU, True)
410 item = self.GetItem( self.selected_item ) 397 item = self.GetItem( self.selected_item )
411 if len(WG_MENU_LIST) > len(WG_LIST): 398 if len(WG_MENU_LIST) > len(WG_LIST): self.clean_sub_menus()
412 self.clean_sub_menus() 399 if len(WG_LIST) == 0: self.wgMenu.Enable(PLAYER_WG_CLEAR_ALL, False)
413 if len(WG_LIST) == 0: 400 else: self.wgMenu.Enable(PLAYER_WG_CLEAR_ALL, True)
414 self.wgMenu.Enable(PLAYER_WG_CLEAR_ALL, False)
415 else:
416 self.wgMenu.Enable(PLAYER_WG_CLEAR_ALL, True)
417 for gid in WG_LIST: 401 for gid in WG_LIST:
418 if not WG_MENU_LIST.has_key(gid): 402 if not WG_MENU_LIST.has_key(gid):
419 WG_MENU_LIST[gid] = {} 403 WG_MENU_LIST[gid] = {}
420 WG_MENU_LIST[gid]["menuid"] = wx.NewId() 404 WG_MENU_LIST[gid]["menuid"] = wx.NewId()
421 WG_MENU_LIST[gid]["whisper"] = wx.NewId() 405 WG_MENU_LIST[gid]["whisper"] = wx.NewId()
472 456
473 #--------------------------------------------------------- 457 #---------------------------------------------------------
474 # [START] Digitalxero Multi Whisper Group 1/1/05 458 # [START] Digitalxero Multi Whisper Group 1/1/05
475 #--------------------------------------------------------- 459 #---------------------------------------------------------
476 for gid in WG_LIST: 460 for gid in WG_LIST:
477 if WG_LIST[gid].has_key(int(player[2])): 461 if WG_LIST[gid].has_key(int(player[2])): del WG_LIST[gid][int(player[2])]
478 del WG_LIST[gid][int(player[2])]
479 #--------------------------------------------------------- 462 #---------------------------------------------------------
480 # [END] Digitalxero Multi Whisper Group 1/1/05 463 # [END] Digitalxero Multi Whisper Group 1/1/05
481 #--------------------------------------------------------- 464 #---------------------------------------------------------
482 465
483 # play sound 466 # play sound
489 ic = self.GetItemCount() 472 ic = self.GetItemCount()
490 self.whisperCount = 0 473 self.whisperCount = 0
491 index = 0 474 index = 0
492 while index < ic: 475 while index < ic:
493 item = self.GetItem( index ) 476 item = self.GetItem( index )
494 if item.GetImage(): 477 if item.GetImage(): self.whisperCount += 1
495 self.whisperCount += 1
496 index += 1 478 index += 1
497 self.colorize_player_list() 479 self.colorize_player_list()
498 self.Refresh() 480 self.Refresh()
499 481
500 # This method updates the player info 482 # This method updates the player info
514 496
515 def colorize_player_list(self): 497 def colorize_player_list(self):
516 session = open_rpg.get_component("session") 498 session = open_rpg.get_component("session")
517 settings = open_rpg.get_component('settings') 499 settings = open_rpg.get_component('settings')
518 mode = settings.get_setting("ColorizeRoles") 500 mode = settings.get_setting("ColorizeRoles")
519 if mode.lower() == "0": 501 if mode.lower() == "0": return
520 return
521 players = session.players 502 players = session.players
522 for m in players.keys(): 503 for m in players.keys():
523 item_list_location = self.FindItemData(-1,int(m)) 504 item_list_location = self.FindItemData(-1,int(m))
524 if item_list_location == -1: continue 505 if item_list_location == -1: continue
525 player_info = session.get_player_by_player_id(m) 506 player_info = session.get_player_by_player_id(m)
526 item = self.GetItem(item_list_location) 507 item = self.GetItem(item_list_location)
527 role = player_info[7] 508 role = player_info[7]
528 color = wx.GREEN 509 color = wx.GREEN
529 if self.session.group_id != "0": 510 if self.session.group_id != "0": item.SetTextColour(settings.get_setting(role + "RoleColor"))
530 item.SetTextColour(settings.get_setting(role + "RoleColor"))
531 self.SetItem(item) 511 self.SetItem(item)
532 512
533 def reset(self): 513 def reset(self):
534 self.whisperCount = 0 514 self.whisperCount = 0
535 #--------------------------------------------------------- 515 #---------------------------------------------------------
540 # [END] Digitalxero Multi Whisper Group 1/1/05 520 # [END] Digitalxero Multi Whisper Group 1/1/05
541 #--------------------------------------------------------- 521 #---------------------------------------------------------
542 self.DeleteAllItems() 522 self.DeleteAllItems()
543 523
544 def strip_html(self,player): 524 def strip_html(self,player):
545 ret_string = "" 525 ret_string = ""; x = 0; in_tag = 0
546 x = 0
547 in_tag = 0
548 for x in range(len(player[0])) : 526 for x in range(len(player[0])) :
549 if player[0][x] == "<" or player[0][x] == ">" or in_tag == 1 : 527 if player[0][x] == "<" or player[0][x] == ">" or in_tag == 1 :
550 if player[0][x] == "<" : 528 if player[0][x] == "<": in_tag = 1
551 in_tag = 1 529 elif player[0][x] == ">": in_tag = 0
552 elif player[0][x] == ">" : 530 else: pass
553 in_tag = 0 531 else: ret_string = ret_string + player[0][x]
554 else :
555 pass
556 else :
557 ret_string = ret_string + player[0][x]
558 return ret_string 532 return ret_string
559 533
560 def size_cols(self): 534 def size_cols(self):
561 ## # moved skip here to see if it breaks 535 ##moved skip here to see if it breaks
562 ## w,h = self.GetClientSizeTuple() 536 ## w,h = self.GetClientSizeTuple()
563 ## w /= 8 537 ## w /= 8
564 ## self.SetColumnWidth( 0, w*2 ) 538 ## self.SetColumnWidth( 0, w*2 )
565 ## self.SetColumnWidth( 1, w*2 ) 539 ## self.SetColumnWidth( 1, w*2 )
566 ## self.SetColumnWidth( 2, w*3 ) 540 ## self.SetColumnWidth( 2, w*3 )
567 pass 541 pass