public override void Execute(Session session, CommandContext context) { if (string.IsNullOrEmpty(context.ArgumentString)) { session.WriteLine("Pull what?"); return; } var arg1 = context.Arguments[0]; var room = RoomHelper.GetRoom(session.Player.Location); var item = ItemHelper.FindFloorItem(room, arg1.ToLower()); if (item == null) { session.WriteLine("You can't find that."); return; } if (!item.CanPull) { session.WriteLine("You can't pull that."); return; } session.WriteLine("You pull {0}", item.Name); switch (item.TemplateKey) { // this means new code every time a new pull object is created case "a dark lever": session.WriteLine("A bell echoes through eternity..."); foreach (var admin in Server.Current.Database.GetAll <Player>().Where(p => p.IsAdmin)) { admin.Send(string.Format("`R{0} needs authorization...", session.Player.Forename), session.Player); } break; } }
public override void Execute(Session session, CommandContext context) { if (context.Arguments.Count == 0) { PerformLookAtRoom(session); return; } // todo: look at a directional exit var room = Server.Current.Database.Get <Room>(session.Player.Location); if (room == null) { session.WriteLine("Couldn't find anything to look at"); return; } var player = room.LookUpPlayer(session.Player, context.ArgumentString); if (player != null) { if (realCommandName == "look") { PerformLookAtPlayer(session, room, player); } else { PerformExaminePlayer(session, room, player); } return; } var npc = room.LookUpNpc(context.ArgumentString); if (npc != null) { if (realCommandName == "look") { PerformLookAtNpc(session, room, npc); } else { PerformExamineNpc(session, room, npc); } return; } // find item to look at var item = ItemHelper.FindInventoryItem(session.Player, context.ArgumentString); if (item == null) { item = ItemHelper.FindFloorItem(room, context.ArgumentString); } if (item != null) { item.LookAt(session); return; } session.WriteLine("You couldn't find anything like that."); }