Add the ability to send messages to users ir regions via remote admin
parent
b7f1fc116e
commit
a49c524c9e
|
@ -123,6 +123,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
availableMethods["admin_region_query"] = XmlRpcRegionQueryMethod;
|
availableMethods["admin_region_query"] = XmlRpcRegionQueryMethod;
|
||||||
availableMethods["admin_shutdown"] = XmlRpcShutdownMethod;
|
availableMethods["admin_shutdown"] = XmlRpcShutdownMethod;
|
||||||
availableMethods["admin_broadcast"] = XmlRpcAlertMethod;
|
availableMethods["admin_broadcast"] = XmlRpcAlertMethod;
|
||||||
|
availableMethods["admin_dialog"] = XmlRpcDialogMethod;
|
||||||
availableMethods["admin_restart"] = XmlRpcRestartMethod;
|
availableMethods["admin_restart"] = XmlRpcRestartMethod;
|
||||||
availableMethods["admin_load_heightmap"] = XmlRpcLoadHeightmapMethod;
|
availableMethods["admin_load_heightmap"] = XmlRpcLoadHeightmapMethod;
|
||||||
// User management
|
// User management
|
||||||
|
@ -277,6 +278,53 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
m_log.Info("[RADMIN]: Alert request complete");
|
m_log.Info("[RADMIN]: Alert request complete");
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
public XmlRpcResponse XmlRpcDialogMethod(XmlRpcRequest request, IPEndPoint remoteClient)
|
||||||
|
{
|
||||||
|
XmlRpcResponse response = new XmlRpcResponse();
|
||||||
|
Hashtable responseData = new Hashtable();
|
||||||
|
|
||||||
|
m_log.Info("[RADMIN]: Dialog request started");
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Hashtable requestData = (Hashtable)request.Params[0];
|
||||||
|
|
||||||
|
checkStringParameters(request, new string[] { "password", "from", "message" });
|
||||||
|
|
||||||
|
if (m_requiredPassword != String.Empty &&
|
||||||
|
(!requestData.Contains("password") || (string)requestData["password"] != m_requiredPassword))
|
||||||
|
throw new Exception("wrong password");
|
||||||
|
|
||||||
|
string message = (string)requestData["message"];
|
||||||
|
string fromuuid = (string)requestData["from"];
|
||||||
|
m_log.InfoFormat("[RADMIN]: Broadcasting: {0}", message);
|
||||||
|
|
||||||
|
responseData["accepted"] = true;
|
||||||
|
responseData["success"] = true;
|
||||||
|
response.Value = responseData;
|
||||||
|
|
||||||
|
m_app.SceneManager.ForEachScene(
|
||||||
|
delegate(Scene scene)
|
||||||
|
{
|
||||||
|
IDialogModule dialogModule = scene.RequestModuleInterface<IDialogModule>();
|
||||||
|
if (dialogModule != null)
|
||||||
|
dialogModule.SendNotificationToUsersInRegion(UUID.Zero, fromuuid, message);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
m_log.ErrorFormat("[RADMIN]: Broadcasting: failed: {0}", e.Message);
|
||||||
|
m_log.DebugFormat("[RADMIN]: Broadcasting: failed: {0}", e.ToString());
|
||||||
|
|
||||||
|
responseData["accepted"] = false;
|
||||||
|
responseData["success"] = false;
|
||||||
|
responseData["error"] = e.Message;
|
||||||
|
response.Value = responseData;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_log.Info("[RADMIN]: Alert request complete");
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
public XmlRpcResponse XmlRpcLoadHeightmapMethod(XmlRpcRequest request, IPEndPoint remoteClient)
|
public XmlRpcResponse XmlRpcLoadHeightmapMethod(XmlRpcRequest request, IPEndPoint remoteClient)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue