diff plugins/xxstatus.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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/xxstatus.py	Tue Jul 14 16:41:58 2009 -0500
@@ -0,0 +1,69 @@
+import os
+import orpg.pluginhandler
+from random import randint
+from time import time
+
+class Plugin(orpg.pluginhandler.PluginHandler):
+    # Initialization subroutine.
+    #
+    # !self : instance of self
+    # !chat : instance of the chat window to write to
+    def __init__(self, plugindb, parent):
+        orpg.pluginhandler.PluginHandler.__init__(self, plugindb, parent)
+
+        # The Following code should be edited to contain the proper information
+        self.name = 'Idle Time'
+        self.author = 'Woody, mDuo13'
+        self.help = "When you haven't sent a message to chat for a minute or more, this\n"
+        self.help += "plugin sets your status to end with '(* Mins)' where the * is however many\n"
+        self.help += "minutes you've been inactive. You can also set a custom message for the timed\n"
+        self.help += "idle by typing '/idle status *text*' where *text* is that message."
+
+        self.idle_timer_status = ''
+        self.start_time = ''
+        self.minutes = ''
+        self.last_update = ''
+
+    def plugin_enabled(self):
+        #This is where you set any variables that need to be initalized when your plugin starts
+        self.plugin_addcommand('/idle', self.on_idle, 'status - This sets your status to what ever you type')
+        self.reset_time()
+
+    def plugin_disabled(self):
+        #Here you need to remove any commands you added, and anything else you want to happen when you disable the plugin
+        #such as closing windows created by the plugin
+        self.plugin_removecmd('/idle')
+
+    def on_idle(self, cmdargs):
+        args = cmdargs.split(None,1)
+
+        if args[0] == 'status':
+            self.idle_timer_status = cmdargs[7:]
+        else:
+            self.chat.InfoPost("Invalid syntax for /idle command")
+
+    def reset_time(self):
+        self.start_time = time()
+        self.minutes = 0
+        self.last_update = 0
+
+    def pre_parse(self, text):
+        #This is called just before a message is parsed by openrpg
+        self.reset_time()
+        return text
+
+    def refresh_counter(self):
+        if self.idle_timer_status == '':
+            self.idle_timer_status = self.settings.get_setting("IdleStatusAlias")
+
+        current_time = time()
+        self.minutes = round((current_time - self.start_time)/60,1)
+
+        if self.minutes > 1:
+            plur = 's'
+        else:
+            plur = ''
+
+        if current_time - self.last_update >= 30:
+            self.session.set_text_status(self.idle_timer_status + ' (' + str(self.minutes) + ' min' + plur + ')')
+            self.last_update = time()