diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/ClientView.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/ClientView.cs | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs index 7bdbb67..c2c514e 100644 --- a/OpenSim/Region/ClientStack/ClientView.cs +++ b/OpenSim/Region/ClientStack/ClientView.cs | |||
@@ -134,6 +134,14 @@ namespace OpenSim.Region.ClientStack | |||
134 | } | 134 | } |
135 | 135 | ||
136 | /// <summary> | 136 | /// <summary> |
137 | /// This is a utility method used by single states to not duplicate kicks and blue card of death messages. | ||
138 | /// </summary> | ||
139 | public bool ChildAgentStatus() | ||
140 | { | ||
141 | return m_scene.PresenceChildStatus(AgentId); | ||
142 | } | ||
143 | |||
144 | /// <summary> | ||
137 | /// First name of the agent/avatar represented by the client | 145 | /// First name of the agent/avatar represented by the client |
138 | /// </summary> | 146 | /// </summary> |
139 | public string FirstName | 147 | public string FirstName |
@@ -257,13 +265,16 @@ namespace OpenSim.Region.ClientStack | |||
257 | 265 | ||
258 | public void Kick(string message) | 266 | public void Kick(string message) |
259 | { | 267 | { |
260 | KickUserPacket kupack = (KickUserPacket) PacketPool.Instance.GetPacket(PacketType.KickUser); | 268 | if (!ChildAgentStatus()) |
261 | kupack.UserInfo.AgentID = AgentId; | 269 | { |
262 | kupack.UserInfo.SessionID = SessionId; | 270 | KickUserPacket kupack = (KickUserPacket)PacketPool.Instance.GetPacket(PacketType.KickUser); |
263 | kupack.TargetBlock.TargetIP = (uint) 0; | 271 | kupack.UserInfo.AgentID = AgentId; |
264 | kupack.TargetBlock.TargetPort = (ushort) 0; | 272 | kupack.UserInfo.SessionID = SessionId; |
265 | kupack.UserInfo.Reason = Helpers.StringToField(message); | 273 | kupack.TargetBlock.TargetIP = (uint)0; |
266 | OutPacket(kupack, ThrottleOutPacketType.Task); | 274 | kupack.TargetBlock.TargetPort = (ushort)0; |
275 | kupack.UserInfo.Reason = Helpers.StringToField(message); | ||
276 | OutPacket(kupack, ThrottleOutPacketType.Task); | ||
277 | } | ||
267 | } | 278 | } |
268 | 279 | ||
269 | public void Stop() | 280 | public void Stop() |
@@ -2786,7 +2797,7 @@ namespace OpenSim.Region.ClientStack | |||
2786 | { | 2797 | { |
2787 | ObjectAddPacket addPacket = (ObjectAddPacket) Pack; | 2798 | ObjectAddPacket addPacket = (ObjectAddPacket) Pack; |
2788 | PrimitiveBaseShape shape = GetShapeFromAddPacket(addPacket); | 2799 | PrimitiveBaseShape shape = GetShapeFromAddPacket(addPacket); |
2789 | MainLog.Instance.Verbose("REZData", addPacket.ToString()); | 2800 | // MainLog.Instance.Verbose("REZData", addPacket.ToString()); |
2790 | //BypassRaycast: 1 | 2801 | //BypassRaycast: 1 |
2791 | //RayStart: <69.79469, 158.2652, 98.40343> | 2802 | //RayStart: <69.79469, 158.2652, 98.40343> |
2792 | //RayEnd: <61.97724, 141.995, 92.58341> | 2803 | //RayEnd: <61.97724, 141.995, 92.58341> |
@@ -3585,6 +3596,14 @@ namespace OpenSim.Region.ClientStack | |||
3585 | return shape; | 3596 | return shape; |
3586 | } | 3597 | } |
3587 | 3598 | ||
3599 | public void SendBlueBoxMessage(LLUUID FromAvatarID, LLUUID fromSessionID, String FromAvatarName, String Message) | ||
3600 | { | ||
3601 | if (!ChildAgentStatus()) | ||
3602 | SendInstantMessage(FromAvatarID, fromSessionID, Message, AgentId, SessionId, FromAvatarName, (byte)1, (uint)Util.UnixTimeSinceEpoch()); | ||
3603 | |||
3604 | //SendInstantMessage(FromAvatarID, fromSessionID, Message, AgentId, SessionId, FromAvatarName, (byte)21,(uint) Util.UnixTimeSinceEpoch()); | ||
3605 | } | ||
3606 | |||
3588 | public void SendLogoutPacket() | 3607 | public void SendLogoutPacket() |
3589 | { | 3608 | { |
3590 | LogoutReplyPacket logReply = (LogoutReplyPacket) PacketPool.Instance.GetPacket(PacketType.LogoutReply); | 3609 | LogoutReplyPacket logReply = (LogoutReplyPacket) PacketPool.Instance.GetPacket(PacketType.LogoutReply); |