""" /*************************************************************************** * Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, * * Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe. * * * * Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael * * Chastain, Michael Quan, and Mitchell Tse. * * * * In order to use any part of this Merc Diku Mud, you must comply with * * both the original Diku license in 'license.doc' as well the Merc * * license in 'license.txt'. In particular, you may not remove either of * * these copyright notices. * * * * Much time and thought has gone into this software and you are * * benefitting. We hope that you share your changes too. What goes * * around, comes around. * ***************************************************************************/ /*************************************************************************** * ROM 2.4 is copyright 1993-1998 Russ Taylor * * ROM has been brought to you by the ROM consortium * * Russ Taylor (rtaylor@hypercube.org) * * Gabrielle Taylor (gtaylor@hypercube.org) * * Brian Moore (zump@rom.org) * * By using this code, you have agreed to follow the terms of the * * ROM license, in the file Rom24/doc/rom.license * ***************************************************************************/ /************ * Ported to Python by Davion of MudBytes.net * Using Miniboa https://code.google.com/p/miniboa/ * Now using Python 3 version https://code.google.com/p/miniboa-py3/ ************/ """ from merc import * import interp # does aliasing and other fun stuff */ def substitute_alias(d, argument): ch = CH(d) # check for prefix */ if ch.prefix and not "prefix".startswith(argument): if len(ch.prefix) + len(argument) > MAX_INPUT_LENGTH: ch.send("Line to long, prefix not processed.\r\n") else: prefix = "%s %s" % (ch.prefix,argument) if IS_NPC(ch) or not ch.pcdata.alias \ or "alias".startswith(argument) or "unalias".startswith(argument) \ or "prefix".startswith(argument): interp.interpret(ch,argument) return remains, sub = read_word(argument) if sub not in ch.pcdata.alias: interp.interpret(ch, argument) return buf = "%s %s" % ( ch.pcdata.alias[sub], remains ) interp.interpret(ch,buf) def do_alia(self,argument): self.send("I'm sorry, alias must be entered in full.\n\r") return def do_alias(self, argument): ch = self if not ch.desc: rch = ch else: rch = ch.desc.original if ch.desc.original else ch if IS_NPC(rch): return argument, arg = read_word(argument) if not arg: if not rch.pcdata.alias: ch.send("You have no aliases defined.\n\r") return ch.send("Your current aliases are:\n\r") for alias,sub in rch.pcdata.alias.iteritems(): ch.send(" %s: %s\n\r" % (alias, sub) ) return if "unalias" == arg or "alias" == arg: ch.send("Sorry, that word is reserved.\n\r") return if not argument: if arg not in rch.pcdata.alias: ch.send("That alias is not defined.\n\r") return ch.send("%s aliases to '%s'.\n\r" % (arg, rch.pcdata.alias[arg]) ) return if argument.startswith("delete") or argument.startswith("prefix"): ch.send("That shall not be done!\n\r") return if arg in rch.pcdata.alias: rch.pcdata.alias[arg] = argument ch.send("%s is now realiased to '%s'.\n\r" % (arg,argument) ) return elif len(rch.pcdata.alias) > MAX_ALIAS: ch.send("Sorry, you have reached the alias limit.\r\n") return rch.pcdata.alias[arg] = argument ch.send("%s is now aliased to '%s'.\n\r" % (arg,argument) ) return def do_unalias(ch, argument): ch = self if not ch.desc: rch = ch else: rch = ch.desc.original if ch.desc.original else ch if IS_NPC(rch): return argument, arg = read_word(argument) if not arg: ch.send("Unalias what?\n\r") return if arg not in ch.pcdata.alias: ch.send("No alias of that name to remove.\n\r") return del ch.pcdata.alias[arg] ch.send("Alias removed.\n") return