mirror of
https://github.com/opensim/opensim.git
synced 2026-08-07 09:45:47 +08:00
* 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:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user