public override void OnResponse(Mobile from, string text) { int page = m_Page; BaseBulletinBoard board = m_Board; if (!from.InRange(board.GetWorldLocation(), 2) || !from.InLOS(board)) { from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that. return; } text = text.Trim(); if (text.Length > 255) { text = text.Substring(0, 255); } if (text.Length > 0) { board.Title = text; } from.SendGump(new BulletinBoardGump(from, board, page)); }
public override void OnResponse(Mobile from, string text) { int page = m_Page; BaseBulletinBoard board = m_Board; if (!from.InRange(board.GetWorldLocation(), 2) || !from.InLOS(board)) { from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that. return; } text = text.Trim(); if (text.Length > 255) { text = text.Substring(0, 255); } if (text.Length > 0) { BulletinBoardMessage message = new BulletinBoardMessage(DateTime.Now, from, text); if (m_Greeting) { board.Greeting = message; } else { board.Messages.Add(message); if (board.Messages.Count > 50) { board.Messages.RemoveAt(0); if (page > 0) { --page; } } } } from.SendGump(new BulletinBoardGump(from, board, page)); }
public override void OnResponse(NetState sender, RelayInfo info) { int page = m_Page; Mobile from = m_From; BaseBulletinBoard board = m_Board; if (!from.InRange(board.GetWorldLocation(), 2) || !from.InLOS(board)) { from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that. return; } switch (info.ButtonID) { case 1: // Post message { if (m_Board.BannedPlayers != null && m_Board.BannedPlayers.Contains(from)) { from.SendGump(new BulletinBoardGump(from, board, page)); from.SendAsciiMessage("You are banned from posting on this board"); } else { from.Prompt = new BaseBulletinBoard.PostPrompt(page, board, false); from.SendLocalizedMessage(1062397); // Please enter your message: } break; } case 2: // Set title { if (from.AccessLevel >= AccessLevel.GameMaster) { from.Prompt = new BaseBulletinBoard.SetTitlePrompt(page, board); from.SendLocalizedMessage(1062402); // Enter new title: } break; } case 3: // Post greeting { if (from.AccessLevel >= AccessLevel.GameMaster) { from.Prompt = new BaseBulletinBoard.PostPrompt(page, board, true); from.SendLocalizedMessage(1062404); // Enter new greeting (this will always be the first post): } break; } case 4: // Scroll up { if (page == 0) { page = board.Messages.Count; } else { page -= 1; } from.SendGump(new BulletinBoardGump(from, board, page)); break; } case 5: // Scroll down { page += 1; page %= board.Messages.Count + 1; from.SendGump(new BulletinBoardGump(from, board, page)); break; } case 6: // Banish poster { if (from.AccessLevel >= AccessLevel.GameMaster) { if (page >= 1 && page <= board.Messages.Count) { BulletinBoardMessage message = board.Messages[page - 1]; Mobile poster = message.Poster; if (poster == null) { from.SendGump(new BulletinBoardGump(from, board, page)); return; } if (poster.AccessLevel > AccessLevel.Player && from.AccessLevel <= poster.AccessLevel) { from.SendLocalizedMessage(501354); // Uh oh...a bigger boot may be required. } else if (poster is PlayerVendor) { from.SendLocalizedMessage(501351); // You cannot eject a vendor. } else if (m_Board.BannedPlayers != null && m_Board.BannedPlayers.Contains(poster)) { from.SendLocalizedMessage(501356); // This person is already banned! } else if (poster is BaseCreature && ((BaseCreature)poster).NoHouseRestrictions) { from.SendLocalizedMessage(1062040); // You cannot ban that. } else { if (m_Board.BannedPlayers == null) { m_Board.BannedPlayers = new ArrayList(); } m_Board.BannedPlayers.Add(poster); from.SendAsciiMessage("That person can no longer post messages on this board"); } } from.SendGump(new BulletinBoardGump(from, board, page)); } break; } case 7: // Delete message { if (from.AccessLevel >= AccessLevel.GameMaster) { if (page >= 1 && page <= board.Messages.Count) { board.Messages.RemoveAt(page - 1); } from.SendGump(new BulletinBoardGump(from, board, 0)); } break; } case 8: // Post props { if (from.AccessLevel >= AccessLevel.GameMaster) { BulletinBoardMessage message = board.Greeting; if (page >= 1 && page <= board.Messages.Count) { message = board.Messages[page - 1]; } from.SendGump(new BulletinBoardGump(from, board, page)); from.SendGump(new PropertiesGump(from, message)); } break; } } }