/// <summary> /// Sends data to the <see cref="INetworkSender"/>. This method is thread-safe. /// </summary> /// <param name="sender">The <see cref="INetworkSender"/> to use to send the data.</param> /// <param name="message">GameMessage to send to the User.</param> /// <param name="messageType">The <see cref="ServerMessageType"/> to use for sending the <paramref name="message"/>.</param> /// <param name="parameters">Message parameters.</param> public static void Send(this INetworkSender sender, GameMessage message, ServerMessageType messageType, params object[] parameters) { using (var pw = ServerPacket.SendMessage(message, parameters)) { sender.Send(pw, messageType); } }
/// <summary> /// Sends data to all users in the world. This method is thread-safe. /// </summary> /// <param name="message">GameMessage to send.</param> /// <param name="messageType">The <see cref="ServerMessageType"/> to use for sending the <paramref name="message"/>.</param> /// <param name="parameters">Message parameters.</param> public void Send(GameMessage message, ServerMessageType messageType, params object[] parameters) { using (var pw = ServerPacket.SendMessage(message, parameters)) { foreach (var map in Maps) { map.Send(pw, messageType); } foreach (var map in InstancedMaps) { map.Send(pw, messageType); } } }
/// <summary> /// Sends data to all users in the map. This method is thread-safe. /// </summary> /// <param name="message">GameMessage to send.</param> /// <param name="messageType">The <see cref="ServerMessageType"/> to use for sending the <paramref name="message"/>.</param> /// <param name="parameters">Message parameters.</param> public void Send(GameMessage message, ServerMessageType messageType, params object[] parameters) { if (_users.Count == 0) { return; } using (var pw = ServerPacket.SendMessage(message, parameters)) { foreach (var user in Users) { user.Send(pw, messageType); } } }
public void GroupInvite(string userName) { if (!RequireInGroup()) { return; } var target = World.FindUser(userName); if (target == null) { User.Send(GameMessage.GroupInviteFailedInvalidUser, ServerMessageType.GUI, userName); return; } if (target == User) { User.Send(GameMessage.GroupInviteFailedCannotInviteSelf, ServerMessageType.GUI); return; } if (!(((IGroupable)User).Group.TryInvite(target))) { // Invite failed if (((IGroupable)target).Group != null) { User.Send(GameMessage.GroupInviteFailedAlreadyInGroup, ServerMessageType.GUI, target.Name); } else { User.Send(GameMessage.GroupInviteFailedUnknownReason, ServerMessageType.GUI, target.Name); } } else { // Invite successful using (var pw = ServerPacket.SendMessage(GameMessage.GroupInvite, User.Name, target.Name)) { foreach (var u in ((IGroupable)User).Group.Members.OfType <User>()) { u.Send(pw, ServerMessageType.GUI); } } } }