Beispiel #1
0
 public bool CanSend(MessageIn messageIn)
 {
     return(!Paused &&
            Participants.ContainsKey(messageIn.Sender.Owner) &&
            messageIn.Sender.CanSend() &&
            messageIn.Text.Length > 0);
 }
Beispiel #2
0
        public bool TrySend(IPlayer player, string text, out MessageOut messageOut)
        {
            messageOut = default;
            if (!Participants.TryGetValue(player, out var participant))
            {
                return(false);
            }

            var messageIn = new MessageIn(participant, text);

            return(TrySend(messageIn, out messageOut));
        }
Beispiel #3
0
        public bool TrySend(MessageIn messageIn, out MessageOut messageOut)
        {
            messageOut = default;
            if (!CanSend(messageIn))
            {
                return(false);
            }

            var listeners = new HashSet <IPlayer>();

            foreach (var participant in Participants.Values)
            {
                if (participant.CanReceive())
                {
                    listeners.Add(participant.Owner);
                }
            }

            messageOut = new MessageOut(messageIn, listeners);

            return(messageOut != default);
        }
Beispiel #4
0
 public MessageOut(MessageIn message, HashSet <IPlayer> listeners = null) : this(message.Sender, message.Text,
                                                                                 listeners)
 {
 }