* Implements UserServer logoff in a few situations

* User tries to log-in but is already logged in.  Userserver will send message to simulator user was in to log the user out there.
* From the UserServer, admin types 'logoff-user firstname lastname message'.
* Some regions may not get the message because they're not updated yet.
This commit is contained in:
Teravus Ovares
2008-05-31 12:18:29 +00:00
parent f2f183b307
commit febe78d062
21 changed files with 344 additions and 17 deletions

View File

@@ -58,6 +58,7 @@ namespace OpenSim.Region.Environment.Scenes
public event RegionUp OnRegionUp;
public event ChildAgentUpdate OnChildAgentUpdate;
public event RemoveKnownRegionsFromAvatarList OnRemoveKnownRegionFromAvatar;
public event LogOffUser OnLogOffUser;
private AgentCrossing handlerAvatarCrossingIntoRegion = null; // OnAvatarCrossingIntoRegion;
private ExpectUserDelegate handlerExpectUser = null; // OnExpectUser;
@@ -67,6 +68,7 @@ namespace OpenSim.Region.Environment.Scenes
private RegionUp handlerRegionUp = null; // OnRegionUp;
private ChildAgentUpdate handlerChildAgentUpdate = null; // OnChildAgentUpdate;
private RemoveKnownRegionsFromAvatarList handlerRemoveKnownRegionFromAvatar = null; // OnRemoveKnownRegionFromAvatar;
private LogOffUser handlerLogOffUser = null;
public KillObjectDelegate KillObject;
public string _debugRegionName = String.Empty;
@@ -105,6 +107,7 @@ namespace OpenSim.Region.Environment.Scenes
regionCommsHost.OnCloseAgentConnection += CloseConnection;
regionCommsHost.OnRegionUp += newRegionUp;
regionCommsHost.OnChildAgentUpdate += ChildAgentUpdate;
regionCommsHost.OnLogOffUser += GridLogOffUser;
}
else
{
@@ -121,6 +124,7 @@ namespace OpenSim.Region.Environment.Scenes
{
if (regionCommsHost != null)
{
regionCommsHost.OnLogOffUser -= GridLogOffUser;
regionCommsHost.OnChildAgentUpdate -= ChildAgentUpdate;
regionCommsHost.OnRegionUp -= newRegionUp;
regionCommsHost.OnExpectUser -= NewUserConnection;
@@ -150,6 +154,15 @@ namespace OpenSim.Region.Environment.Scenes
}
}
protected void GridLogOffUser(ulong regionHandle, LLUUID AgentID, LLUUID RegionSecret, string message)
{
handlerLogOffUser = OnLogOffUser;
if (handlerLogOffUser != null)
{
handlerLogOffUser(regionHandle, AgentID, RegionSecret, message);
}
}
protected bool newRegionUp(RegionInfo region)
{
handlerRegionUp = OnRegionUp;