Advertisement
Guest User

Untitled

a guest
May 27th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.50 KB | None | 0 0
  1. import es
  2. import sys
  3.  
  4. class AddonManagerHook(es.AddonManager):
  5.     def __init__(self):
  6.         if hasattr(es.AddonManager, '__init__'):
  7.             es.AddonManager.__init__(self)
  8.            
  9.     def triggerEvent(self, eventname):
  10.         es.dbgmsg(0, "Event fired")
  11.         if not self.EventListeners.has_key(eventname):
  12.             return
  13.         for listener in self.EventListeners[eventname]:
  14.             if not listener.__dict__.has_key('disable') or not listener.disabled:
  15.                 try:
  16.                     self.EventListeners[eventname][listener](es.event_var)
  17.                 except:
  18.                     sys.excepthook(*sys.exc_info())
  19.                
  20. """ Save the instance of the current addons """
  21. oldAddonsManager = es.addons
  22.  
  23. """ Create a new instance of our hook """
  24. addonsHook = AddonManagerHook()
  25.  
  26. """ Ensure our hook contains the same listeners as the old event manager """
  27. addonsHook.AddonList = oldAddonsManager.AddonList
  28. addonsHook.EventListeners = oldAddonsManager.EventListeners
  29. addonsHook.Blocks = oldAddonsManager.Blocks
  30. addonsHook.TickListeners = oldAddonsManager.TickListeners
  31. addonsHook.SayListeners = oldAddonsManager.SayListeners
  32. addonsHook.ClientCommandFilters = oldAddonsManager.ClientCommandFilters
  33. # This next foreach loop throws an error
  34. #for v in addonsHook.getAddonList():
  35. #   es.dbgmsg(0, v)
  36.  
  37. """ Ah the beautiful hook assignment :D  """
  38. es.addons = addonsHook
  39.  
  40. def unload():
  41.     """ On unload, reassign the addon manager back to it's predecessor """
  42.     es.addons = oldAddonsManager
  43.    
  44. def round_start(event_var):
  45.     es.dbgmsg(0, "Round started")
  46.     #addonsHook.triggerEvent("round_start")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement