public static void BBRequestHeader(Mobile from, BaseBulletinBoard board, PacketReader pvSrc) { BulletinMessage msg = World.FindItem(pvSrc.ReadInt32()) as BulletinMessage; if (msg == null || !board.MessageOK(msg)) { return; } from.Send(new BBMessageHeader(board, msg)); }
public static void BBPostMessage(Mobile from, BaseBulletinBoard board, PacketReader pvSrc) { BulletinMessage thread = World.FindItem(pvSrc.ReadInt32()) as BulletinMessage; if (thread != null && !board.MessageOK(thread)) { thread = null; } int breakout = 0; while (thread != null && thread.Thread != null && breakout++ < 10) { thread = thread.Thread; } DateTime lastPostTime = board.GetLastPostTime(from, (thread == null)); if (lastPostTime + (thread == null ? ThreadCreateTime : ThreadReplyTime) > DateTime.Now) { if (thread == null) { from.SendAsciiMessage("You must wait {0} before creating a new thread.", FormatTS(ThreadCreateTime)); } else { from.SendAsciiMessage("You must wait {0} before replying to another thread.", FormatTS(ThreadReplyTime)); } return; } string subject = pvSrc.ReadUTF8StringSafe(pvSrc.ReadByte()); if (subject.Length == 0) { return; } string[] lines = new string[pvSrc.ReadByte()]; if (lines.Length == 0) { return; } for (int i = 0; i < lines.Length; ++i) { lines[i] = pvSrc.ReadUTF8StringSafe(pvSrc.ReadByte()); } board.PostMessage(from, thread, subject, lines); }
public static void BBRemoveMessage(Mobile from, BaseBulletinBoard board, PacketReader pvSrc) { BulletinMessage msg = World.FindItem(pvSrc.ReadInt32()) as BulletinMessage; if (msg == null || !board.MessageOK(msg)) { return; } if (from.AccessLevel < AccessLevel.GameMaster && msg.Poster != from) { return; } msg.Delete(); }
public static void BBPostMessage( Mobile from, BaseBulletinBoard board, PacketReader pvSrc ) { BulletinMessage thread = World.FindItem( pvSrc.ReadInt32() ) as BulletinMessage; if ( thread != null && !board.MessageOK( thread ) ) thread = null; int breakout = 0; while ( thread != null && thread.Thread != null && breakout++ < 10 ) thread = thread.Thread; DateTime lastPostTime = board.GetLastPostTime( from, ( thread == null ) ); if ( lastPostTime+(thread == null ? ThreadCreateTime : ThreadReplyTime) > DateTime.Now ) { if ( thread == null ) from.SendAsciiMessage( "You must wait {0} before creating a new thread.", FormatTS( ThreadCreateTime ) ); else from.SendAsciiMessage( "You must wait {0} before replying to another thread.", FormatTS( ThreadReplyTime ) ); return; } string subject = pvSrc.ReadUTF8StringSafe( pvSrc.ReadByte() ); if ( subject.Length == 0 ) return; string[] lines = new string[pvSrc.ReadByte()]; if ( lines.Length == 0 ) return; for ( int i = 0; i < lines.Length; ++i ) lines[i] = pvSrc.ReadUTF8StringSafe( pvSrc.ReadByte() ); board.PostMessage( from, thread, subject, lines ); }
public static void BBRequestHeader( Mobile from, BaseBulletinBoard board, PacketReader pvSrc ) { BulletinMessage msg = World.FindItem( pvSrc.ReadInt32() ) as BulletinMessage; if ( msg == null || !board.MessageOK( msg ) ) return; from.Send( new BBMessageHeader( board, msg ) ); }
public static void BBRemoveMessage( Mobile from, BaseBulletinBoard board, PacketReader pvSrc ) { BulletinMessage msg = World.FindItem( pvSrc.ReadInt32() ) as BulletinMessage; if ( msg == null || !board.MessageOK( msg ) ) return; if ( from.AccessLevel < AccessLevel.GameMaster && msg.Poster != from ) return; msg.Delete(); }