OpenRPG DEV II
        An OpenRPG character sheet repository

Forums/Faqs/Forms

OpenRPG DEV II menu
Home
Chat
Forums

OpenRPG FAQ
How do I play?

Current daily
   CVS Snapshot

Image node

My Character Sheets

The Idle Time Plugin

This plugin will display how long you have been idle in the player status window.

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, openrpg, plugindb, parent):
        orpg.pluginhandler.PluginHandler.__init__(self, openrpg, 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()


CategoryPlugins

Idle Time (last edited 2006-05-12 21:35:26 by DjGilcrease)

 

© 2001-2008,Thomas Baleno