* Added a way for the Region master user to kick individual users from their sim with a custom message. Their client says, "You've been logged off of secondlife, <Your custom message here> and logs them off.

* Added a way for the Region master user to kick *ALL* users from *ALL* their regions in the estate with a custom message.
This commit is contained in:
Teravus Ovares
2007-11-24 03:28:42 +00:00
parent 2f4f83e343
commit 944b118c62
7 changed files with 101 additions and 21 deletions

View File

@@ -66,6 +66,7 @@ namespace OpenSim.Region.ClientStack
public event MoveObject OnGrabUpdate;
public event AddNewPrim OnAddPrim;
public event RequestGodlikePowers OnRequestGodlikePowers;
public event GodKickUser OnGodKickUser;
public event ObjectExtraParams OnUpdateExtraParams;
public event UpdateShape OnUpdatePrimShape;
public event ObjectSelect OnObjectSelect;

View File

@@ -1075,11 +1075,18 @@ namespace OpenSim.Region.ClientStack
break;
case PacketType.GodKickUser:
//GodKickUserPacket gkupack = (GodKickUserPacket) Pack;
//gkupack.UserInfo.GodID;
//gkupack.UserInfo.AgentID;
//gkupack.UserInfo.KickFlags;
//gkupack.UserInfo.Reason;
OpenSim.Framework.Console.MainLog.Instance.Verbose("CLIENT", "unhandled packet " + Pack.ToString());
GodKickUserPacket gkupack = (GodKickUserPacket) Pack;
if (gkupack.UserInfo.GodSessionID == SessionId && this.AgentId == gkupack.UserInfo.GodID)
{
OnGodKickUser(gkupack.UserInfo.GodID, gkupack.UserInfo.GodSessionID, gkupack.UserInfo.AgentID, (uint) 0, gkupack.UserInfo.Reason);
}
else
{
SendAgentAlertMessage("Kick request denied", false);
}
//KickUserPacket kupack = new KickUserPacket();
//KickUserPacket.UserInfoBlock kupackib = kupack.UserInfo;

View File

@@ -308,7 +308,20 @@ namespace OpenSim.Region.ClientStack
ClientThread.Abort();
}
public void Kick(string message)
{
KickUserPacket kupack = new KickUserPacket();
kupack.UserInfo.AgentID = AgentId;
kupack.UserInfo.SessionID = SessionId;
kupack.TargetBlock.TargetIP = (uint)0;
kupack.TargetBlock.TargetPort = (ushort)0;
kupack.UserInfo.Reason = Helpers.StringToField(message);
OutPacket(kupack, ThrottleOutPacketType.Task);
}
public void Stop()
{
clientPingTimer.Stop();