comparison orpg/pluginhandler.py @ 0:4385a7d0efd1 grumpy-goblin

Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
author sirebral
date Tue, 14 Jul 2009 16:41:58 -0500
parents
children 97265586402b
comparison
equal deleted inserted replaced
-1:000000000000 0:4385a7d0efd1
1 from orpg.orpg_wx import *
2 from orpg.orpgCore import open_rpg
3
4 class PluginHandler:
5 # Initialization subroutine.
6 #
7 # !self : instance of self
8 # !chat : instance of the chat window to write to
9 def __init__(self, plugindb, parent):
10 self.session = open_rpg.get_component("session")
11 self.chat = open_rpg.get_component("chat")
12 self.settings = open_rpg.get_component("settings")
13 self.gametree = open_rpg.get_component("tree")
14 self.startplugs = open_rpg.get_component("startplugs")
15 self.xml = open_rpg.get_component("xml")
16 self.validate = open_rpg.get_component("validate")
17 self.topframe = open_rpg.get_component("frame")
18 self.plugindb = plugindb
19 self.parent = parent
20 self.shortcmdlist = self.chat.chat_cmds.shortcmdlist
21 self.cmdlist = self.chat.chat_cmds.cmdlist
22
23 def plugin_enabled(self):
24 pass
25
26 def plugin_disabled(self):
27 pass
28
29 def menu_start(self):
30 rootMenu = open_rpg.get_component("pluginmenu")
31 try:
32 self.plugin_menu()
33 rootMenu.AppendMenu(wx.ID_ANY, self.name, self.menu)
34 except:
35 self.menu = wx.Menu()
36 empty = wx.MenuItem(self.menu, wx.ID_ANY, 'Empty')
37 self.menu.AppendItem(empty)
38 rootMenu.AppendMenu(wx.ID_ANY, self.name, self.menu)
39
40 def menu_cleanup(self):
41 self.settings.save()
42 rootMenu = open_rpg.get_component("pluginmenu")
43 menus = rootMenu.MenuItems
44 for mi in menus:
45 if mi.GetText() == self.name:
46 rootMenu.RemoveItem(mi)
47 del self.menu
48
49 def plugin_addcommand(self, cmd, function, helptext, show_msg=True):
50 self.chat.chat_cmds.addcommand(cmd, function, helptext)
51 if(show_msg):
52 msg = '<br /><b>New Command added</b><br />'
53 msg += '<b><font color="#000000">%s</font></b> %s' % (cmd, helptext)
54 self.chat.InfoPost(msg)
55
56 def plugin_commandalias(self, shortcmd, longcmd, show_msg=True):
57 self.chat.chat_cmds.addshortcmd(shortcmd, longcmd)
58 if(show_msg):
59 msg = '<br /><b>New Command Alias added:</b><br />'
60 msg += '<b><font color="#0000CC">%s</font></b> is short for <font color="#000000">%s</font>' % (shortcmd, longcmd)
61 self.chat.InfoPost(msg)
62
63 def plugin_removecmd(self, cmd):
64 self.chat.chat_cmds.removecmd(cmd)
65 msg = '<br /><b>Command Removed:</b> %s' % (cmd)
66 self.chat.InfoPost(msg)
67
68 def plugin_add_nodehandler(self, nodehandler, nodeclass):
69 self.gametree.add_nodehandler(nodehandler, nodeclass)
70
71 def plugin_remove_nodehandler(self, nodehandler):
72 self.gametree.remove_nodehandler(nodehandler)
73
74 def plugin_add_msg_handler(self, tag, function):
75 self.session.add_msg_handler(tag, function)
76
77 def plugin_delete_msg_handler(self, tag):
78 self.session.remove_msg_handler(tag)
79
80 def plugin_add_setting(self, setting, value, options, help):
81 self.settings.add_tab('Plugins', self.name, 'grid')
82 self.settings.add_setting(self.name, setting, value, options, help)
83
84 def plugin_send_msg(self, to, plugin_msg):
85 xml_dom = self.xml.parseXml(plugin_msg)
86 xml_dom = xml_dom._get_documentElement()
87 xml_dom.setAttribute('from', str(self.session.id))
88 xml_dom.setAttribute('to', str(to))
89 xml_dom.setAttribute('group_id', str(self.session.group_id))
90 tag_name = xml_dom._get_tagName()
91 if not tag_name in self.session.core_msg_handlers:
92 xml_msg = '<plugin to="' + str(to)
93 xml_msg += '" from="' + str(self.session.id)
94 xml_msg += '" group_id="' + str(self.session.group_id)
95 xml_msg += '" />' + xml_dom.toxml()
96 self.session.outbox.put(xml_msg)
97 else:
98 #Spoofing attempt
99 pass
100 xml_dom.unlink()
101
102 def message(self, text):
103 return text
104
105 def pre_parse(self, text):
106 return text
107
108 def send_msg(self, text, send):
109 return text, send
110
111 def plugin_incoming_msg(self, text, type, name, player):
112 return text, type, name
113
114 def post_msg(self, text, myself):
115 return text
116
117 def refresh_counter(self):
118 pass
119
120 def close_module(self):
121 #This is called when OpenRPG shuts down
122 pass