Adds dialog methods for MRM. Thanks ziah.soprefactor
parent
074937e0e5
commit
b2197e3b94
|
@ -189,9 +189,25 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="msg">The message to send to the user</param>
|
/// <param name="msg">The message to send to the user</param>
|
||||||
void Say(string msg);
|
void Say(string msg);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Causes the object to speak to on a specific channel,
|
||||||
|
/// equivilent to LSL/OSSL llSay
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="msg">The message to send to the user</param>
|
||||||
|
/// <param name="channel">The channel on which to send the message</param>
|
||||||
void Say(string msg,int channel);
|
void Say(string msg,int channel);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Opens a Dialog Panel in the Users Viewer,
|
||||||
|
/// equivilent to LSL/OSSL llDialog
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="avatar">The UUID of the Avatar to which the Dialog should be send</param>
|
||||||
|
/// <param name="message">The Message to display at the top of the Dialog</param>
|
||||||
|
/// <param name="buttons">The Strings that act as label/value of the Bottons in the Dialog</param>
|
||||||
|
/// <param name="chat_channel">The channel on which to send the response</param>
|
||||||
|
void Dialog(UUID avatar, string message, string[] buttons, int chat_channel);
|
||||||
|
|
||||||
//// <value>
|
//// <value>
|
||||||
/// Grants access to the objects inventory
|
/// Grants access to the objects inventory
|
||||||
/// </value>
|
/// </value>
|
||||||
|
|
|
@ -31,6 +31,7 @@ using System.Security;
|
||||||
using OpenMetaverse;
|
using OpenMetaverse;
|
||||||
using OpenMetaverse.Packets;
|
using OpenMetaverse.Packets;
|
||||||
using OpenSim.Framework;
|
using OpenSim.Framework;
|
||||||
|
using OpenSim.Region.Framework.Interfaces;
|
||||||
using OpenSim.Region.Framework.Scenes;
|
using OpenSim.Region.Framework.Scenes;
|
||||||
using OpenSim.Region.OptionalModules.Scripting.Minimodule.Object;
|
using OpenSim.Region.OptionalModules.Scripting.Minimodule.Object;
|
||||||
using OpenSim.Region.Physics.Manager;
|
using OpenSim.Region.Physics.Manager;
|
||||||
|
@ -402,7 +403,48 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
||||||
SceneObjectPart sop = GetSOP();
|
SceneObjectPart sop = GetSOP();
|
||||||
m_rootScene.SimChat(Utils.StringToBytes(msg), ChatTypeEnum.Say,channel, sop.AbsolutePosition, sop.Name, sop.UUID, false);
|
m_rootScene.SimChat(Utils.StringToBytes(msg), ChatTypeEnum.Say,channel, sop.AbsolutePosition, sop.Name, sop.UUID, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Dialog(UUID avatar, string message, string[] buttons, int chat_channel)
|
||||||
|
{
|
||||||
|
if (!CanEdit())
|
||||||
|
return;
|
||||||
|
|
||||||
|
IDialogModule dm = m_rootScene.RequestModuleInterface<IDialogModule>();
|
||||||
|
|
||||||
|
if (dm == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (buttons.Length < 1)
|
||||||
|
{
|
||||||
|
Say("ERROR: No less than 1 button can be shown",2147483647);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (buttons.Length > 12)
|
||||||
|
{
|
||||||
|
Say("ERROR: No more than 12 buttons can be shown",2147483647);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach(string button in buttons)
|
||||||
|
{
|
||||||
|
if (button == String.Empty)
|
||||||
|
{
|
||||||
|
Say("ERROR: button label cannot be blank",2147483647);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (button.Length > 24)
|
||||||
|
{
|
||||||
|
Say("ERROR: button label cannot be longer than 24 characters",2147483647);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dm.SendDialogToUser(
|
||||||
|
avatar, GetSOP().Name, GetSOP().UUID, GetSOP().OwnerID,
|
||||||
|
message, new UUID("00000000-0000-2222-3333-100000001000"), chat_channel, buttons);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue