All pastes #784023 Raw Edit

Mine

public python v1 · immutable
·published 2007-11-19 14:19 UTC
rendered paste body
from Modules.Handlers import BaseHandler, onEventfrom Modules import Eventsimport random, reclass RPG(BaseHandler):	dice = re.compile('[0-9]*d[0-9]+')	letter = re.compile('[a-zA-Z]')	@onEvent(Events.MessageEvent)	def handleMessage(self, proto, event):		if event.dest[0] != '#':			event.dest = event.src				cmd = event.msg.split(' ')		if cmd[0] == '^roll':			event = Events.MessageEvent(None, event.dest, [])			for expr in ' '.join(cmd[1:]).split(','):				for dice in self.dice.findall(expr):					num, sides = dice.split('d', 1)					if num == '':						num = 1					num, sides = int(num), int(sides)					total = 0					for i in range(num):						total += random.randrange(1, sides+1)					expr = expr.replace(dice, str(total))				try:					if self.letter.search(expr):						raise Exception					event.msg.append(str(eval(expr)))				except:					event.msg.append('error')			event.msg = ', '.join(event.msg)			proto.sendEvent(event)		elif cmd[0] == '^dice':			event = Events.MessageEvent(None, event.dest, [])			for dice in ' '.join(cmd[1:]).split(','):				num, sides = dice.split('d', 1)				num, sides = int(num), int(sides)				total = []				for i in range(num):					total.append(str(random.randrange(1, sides+1)))				event.msg.append(' '.join(total))			event.msg = ', '.join(event.msg)			proto.sendEvent(event)		def reload(self):		try:			import Modules			mod = reload(Modules.Handlers.RPG_)						newself = mod.RPG()			return newself		except:			import traceback			traceback.print_exc()			return self