Formatting cleanup.
parent
e34f537a1a
commit
5752c1f5c2
|
@ -72,7 +72,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Regions
|
|||
{
|
||||
get
|
||||
{
|
||||
switch(idx.ToLower())
|
||||
switch (idx.ToLower())
|
||||
{
|
||||
case "name":
|
||||
return region_name;
|
||||
|
|
|
@ -194,7 +194,7 @@ namespace OpenSim.ApplicationPlugins.Rest
|
|||
|
||||
try
|
||||
{
|
||||
if ((_config = openSim.ConfigSource.Configs["RestPlugins"]) == null)
|
||||
if ((_config = openSim.ConfigSource.Configs["RestPlugins"]) == null)
|
||||
{
|
||||
m_log.WarnFormat("{0} Rest Plugins not configured", MsgID);
|
||||
return;
|
||||
|
@ -296,7 +296,7 @@ namespace OpenSim.ApplicationPlugins.Rest
|
|||
public bool RemoveAgentHandler(string agentName, IHttpAgentHandler handler)
|
||||
{
|
||||
if (!IsEnabled) return false;
|
||||
if(_agents[agentName] == handler)
|
||||
if (_agents[agentName] == handler)
|
||||
{
|
||||
_agents.Remove(agentName);
|
||||
return _httpd.RemoveAgentHandler(agentName, handler);
|
||||
|
|
|
@ -249,11 +249,11 @@ namespace OpenSim.Framework.Communications.Cache
|
|||
//m_log.DebugFormat("[ASSET CACHE]: Requesting {0} {1}", isTexture ? "texture" : "asset", assetId);
|
||||
|
||||
|
||||
// Xantor 20080526:
|
||||
// Xantor 20080526:
|
||||
// if a request is made for an asset which is not in the cache yet, but has already been requested by
|
||||
// something else, queue up the callbacks on that requestor instead of swamping the assetserver
|
||||
// something else, queue up the callbacks on that requestor instead of swamping the assetserver
|
||||
// with multiple requests for the same asset.
|
||||
|
||||
|
||||
AssetBase asset;
|
||||
|
||||
if (TryGetCachedAsset(assetId, out asset))
|
||||
|
@ -265,8 +265,8 @@ namespace OpenSim.Framework.Communications.Cache
|
|||
#if DEBUG
|
||||
// m_log.DebugFormat("[ASSET CACHE]: Adding request for {0} {1}", isTexture ? "texture" : "asset", assetId);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
NewAssetRequest req = new NewAssetRequest(assetId, callback);
|
||||
AssetRequestsList requestList;
|
||||
|
||||
|
@ -499,7 +499,7 @@ namespace OpenSim.Framework.Communications.Cache
|
|||
{
|
||||
Assets[assetID] = null;
|
||||
}
|
||||
|
||||
|
||||
// Notify requesters for this asset
|
||||
AssetRequestsList reqList = null;
|
||||
lock (RequestLists)
|
||||
|
@ -590,20 +590,20 @@ namespace OpenSim.Framework.Communications.Cache
|
|||
RequestedAssets.Add(requestID, request);
|
||||
m_assetServer.RequestAsset(requestID, false);
|
||||
}
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// It has an entry in our cache
|
||||
AssetInfo asset = Assets[requestID];
|
||||
|
||||
|
||||
// FIXME: We never tell the client about assets which do not exist when requested by this transfer mechanism, which can't be right.
|
||||
if (null == asset)
|
||||
{
|
||||
//m_log.DebugFormat("[ASSET CACHE]: Asset transfer request for asset which is {0} already known to be missing. Dropping", requestID);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// The asset is knosn to exist and is in our cache, so add it to the AssetRequests list
|
||||
AssetRequest req = new AssetRequest();
|
||||
req.RequestUser = userInfo;
|
||||
|
|
|
@ -485,10 +485,10 @@ namespace OpenSim.Framework.Communications.Cache
|
|||
{
|
||||
if (HasInventory)
|
||||
{
|
||||
if(item.Folder == LLUUID.Zero)
|
||||
if (item.Folder == LLUUID.Zero)
|
||||
{
|
||||
InventoryFolderImpl f=FindFolderForType(item.AssetType);
|
||||
if(f != null)
|
||||
if (f != null)
|
||||
item.Folder=f.ID;
|
||||
else
|
||||
item.Folder=RootFolder.ID;
|
||||
|
@ -617,14 +617,14 @@ namespace OpenSim.Framework.Communications.Cache
|
|||
|
||||
private InventoryFolderImpl FindFolderForType(int type)
|
||||
{
|
||||
if(RootFolder == null)
|
||||
if (RootFolder == null)
|
||||
return null;
|
||||
|
||||
lock(RootFolder.SubFolders)
|
||||
lock (RootFolder.SubFolders)
|
||||
{
|
||||
foreach (InventoryFolderImpl f in RootFolder.SubFolders.Values)
|
||||
{
|
||||
if(f.Type == type)
|
||||
if (f.Type == type)
|
||||
return f;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -310,19 +310,20 @@ namespace OpenSim.Framework.Servers
|
|||
agentHandler = null;
|
||||
try
|
||||
{
|
||||
foreach(IHttpAgentHandler handler in m_agentHandlers.Values)
|
||||
foreach (IHttpAgentHandler handler in m_agentHandlers.Values)
|
||||
{
|
||||
if(handler.Match(request, response))
|
||||
if (handler.Match(request, response))
|
||||
{
|
||||
agentHandler = handler;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(KeyNotFoundException) {}
|
||||
catch(KeyNotFoundException)
|
||||
{
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -478,7 +479,6 @@ namespace OpenSim.Framework.Servers
|
|||
|
||||
private bool HandleAgentRequest(IHttpAgentHandler handler, OSHttpRequest request, OSHttpResponse response)
|
||||
{
|
||||
|
||||
// In the case of REST, then handler is responsible for ALL aspects of
|
||||
// the request/response handling. Nothing is done here, not even encoding.
|
||||
|
||||
|
@ -500,11 +500,12 @@ namespace OpenSim.Framework.Servers
|
|||
response.StatusCode = (int)OSHttpStatusCode.ServerErrorInternalError;
|
||||
response.OutputStream.Close();
|
||||
}
|
||||
catch(Exception){}
|
||||
catch(Exception)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
public void HandleHTTPRequest(OSHttpRequest request, OSHttpResponse response)
|
||||
|
@ -759,13 +760,16 @@ namespace OpenSim.Framework.Servers
|
|||
{
|
||||
try
|
||||
{
|
||||
if(handler == m_agentHandlers[agent])
|
||||
if (handler == m_agentHandlers[agent])
|
||||
{
|
||||
m_agentHandlers.Remove(agent);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch(KeyNotFoundException) {}
|
||||
catch(KeyNotFoundException)
|
||||
{
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -272,28 +272,28 @@ namespace OpenSim.Grid.ScriptEngine.DotNetEngine.Compiler
|
|||
public void llWhisper(int channelID, string text)
|
||||
{
|
||||
World.SimChat(Helpers.StringToField(text),
|
||||
ChatTypeEnum.Whisper, channelID, m_host.AbsolutePosition,
|
||||
ChatTypeEnum.Whisper, channelID, m_host.AbsolutePosition,
|
||||
m_host.Name, m_host.UUID, false);
|
||||
}
|
||||
|
||||
public void llSay(int channelID, string text)
|
||||
{
|
||||
World.SimChat(Helpers.StringToField(text),
|
||||
ChatTypeEnum.Say, channelID, m_host.AbsolutePosition,
|
||||
ChatTypeEnum.Say, channelID, m_host.AbsolutePosition,
|
||||
m_host.Name, m_host.UUID, false);
|
||||
}
|
||||
|
||||
public void llShout(int channelID, string text)
|
||||
{
|
||||
World.SimChat(Helpers.StringToField(text),
|
||||
ChatTypeEnum.Shout, channelID, m_host.AbsolutePosition,
|
||||
ChatTypeEnum.Shout, channelID, m_host.AbsolutePosition,
|
||||
m_host.Name, m_host.UUID, false);
|
||||
}
|
||||
|
||||
public void llOwnerSay(string msg)
|
||||
{
|
||||
World.SimChatBroadcast(Helpers.StringToField(text),
|
||||
ChatTypeEnum.Owner, 0, m_host.AbsolutePosition,
|
||||
ChatTypeEnum.Owner, 0, m_host.AbsolutePosition,
|
||||
m_host.Name, m_host.UUID, false);
|
||||
}
|
||||
|
||||
|
|
|
@ -122,24 +122,24 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat
|
|||
|
||||
IClientAPI client = presence.ControllingClient;
|
||||
|
||||
if ((c.Type == ChatTypeEnum.Owner) &&
|
||||
(null != c.SenderObject) &&
|
||||
if ((c.Type == ChatTypeEnum.Owner) &&
|
||||
(null != c.SenderObject) &&
|
||||
(((SceneObjectPart)c.SenderObject).OwnerID != client.AgentId))
|
||||
return;
|
||||
|
||||
|
||||
if (null == c.SenderObject)
|
||||
client.SendChatMessage(c.Message, (byte)c.Type,
|
||||
pos, c.From, LLUUID.Zero,
|
||||
client.SendChatMessage(c.Message, (byte)c.Type,
|
||||
pos, c.From, LLUUID.Zero,
|
||||
(byte)ChatSourceType.Agent,
|
||||
(byte)ChatAudibleLevel.Fully);
|
||||
else
|
||||
client.SendChatMessage(c.Message, (byte)c.Type,
|
||||
pos, c.From, LLUUID.Zero,
|
||||
client.SendChatMessage(c.Message, (byte)c.Type,
|
||||
pos, c.From, LLUUID.Zero,
|
||||
(byte)ChatSourceType.Object,
|
||||
(byte)ChatAudibleLevel.Fully);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public void SimChat(Object sender, ChatFromViewerArgs e)
|
||||
{
|
||||
// early return if not on public or debug channel
|
||||
|
@ -187,13 +187,13 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat
|
|||
if (e.Channel == DEBUG_CHANNEL)
|
||||
{
|
||||
TrySendChatMessage(presence, fromPos, regionPos,
|
||||
fromID, fromName, e.Type,
|
||||
fromID, fromName, e.Type,
|
||||
message, ChatSourceType.Object);
|
||||
}
|
||||
else
|
||||
{
|
||||
TrySendChatMessage(presence, fromPos, regionPos,
|
||||
fromID, fromName, e.Type,
|
||||
fromID, fromName, e.Type,
|
||||
message, ChatSourceType.Agent);
|
||||
}
|
||||
});
|
||||
|
@ -224,16 +224,16 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat
|
|||
LLVector3 fromRegionPos = fromPos + regionPos;
|
||||
LLVector3 toRegionPos = presence.AbsolutePosition + regionPos;
|
||||
int dis = Math.Abs((int) Util.GetDistanceTo(toRegionPos, fromRegionPos));
|
||||
|
||||
|
||||
if (type == ChatTypeEnum.Whisper && dis > m_whisperdistance ||
|
||||
type == ChatTypeEnum.Say && dis > m_saydistance ||
|
||||
type == ChatTypeEnum.Shout && dis > m_shoutdistance)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// TODO: should change so the message is sent through the avatar rather than direct to the ClientView
|
||||
presence.ControllingClient.SendChatMessage(message, (byte) type, fromPos, fromName,
|
||||
presence.ControllingClient.SendChatMessage(message, (byte) type, fromPos, fromName,
|
||||
fromAgentID,(byte)src,(byte)ChatAudibleLevel.Fully);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat
|
|||
{
|
||||
public class IRCBridgeModule : IRegionModule
|
||||
{
|
||||
private static readonly ILog m_log =
|
||||
private static readonly ILog m_log =
|
||||
LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
private const int DEBUG_CHANNEL = 2147483647;
|
||||
|
@ -68,7 +68,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat
|
|||
{
|
||||
try
|
||||
{
|
||||
if ((m_config = config.Configs["IRC"]) == null)
|
||||
if ((m_config = config.Configs["IRC"]) == null)
|
||||
{
|
||||
m_log.InfoFormat("[IRC] module not configured");
|
||||
return;
|
||||
|
@ -85,7 +85,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat
|
|||
m_log.Info("[IRC] module not configured");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
lock (m_syncInit)
|
||||
{
|
||||
|
||||
|
@ -118,7 +118,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat
|
|||
m_irc_connector.Name = "IRCConnectorThread";
|
||||
m_irc_connector.IsBackground = true;
|
||||
}
|
||||
m_log.InfoFormat("[IRC] initialized for {0}, nick: {1} ", scene.RegionInfo.RegionName,
|
||||
m_log.InfoFormat("[IRC] initialized for {0}, nick: {1} ", scene.RegionInfo.RegionName,
|
||||
m_defaultzone);
|
||||
}
|
||||
}
|
||||
|
@ -221,9 +221,9 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat
|
|||
|
||||
if (e.Message.StartsWith("/me ") && (null != avatar))
|
||||
e.Message = String.Format("{0} {1}", fromName, e.Message.Substring(4));
|
||||
|
||||
|
||||
// this is to keep objects from talking to IRC
|
||||
if (m_irc.Connected && (avatar != null))
|
||||
if (m_irc.Connected && (avatar != null))
|
||||
m_irc.PrivMsg(fromName, scene.RegionInfo.RegionName, e.Message);
|
||||
}
|
||||
|
||||
|
@ -244,7 +244,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat
|
|||
if ((m_irc.Enabled) && (m_irc.Connected))
|
||||
{
|
||||
m_log.DebugFormat("[IRC] {0} logging on", clientName);
|
||||
m_irc.PrivMsg(m_irc.Nick, "Sim",
|
||||
m_irc.PrivMsg(m_irc.Nick, "Sim",
|
||||
String.Format("notices {0} logging on", clientName));
|
||||
}
|
||||
m_last_new_user = clientName;
|
||||
|
@ -310,7 +310,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat
|
|||
m_log.InfoFormat("[IRC]: {0} logging out", clientName);
|
||||
}
|
||||
|
||||
if (m_last_new_user == clientName)
|
||||
if (m_last_new_user == clientName)
|
||||
m_last_new_user = null;
|
||||
}
|
||||
}
|
||||
|
@ -489,7 +489,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat
|
|||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
m_log.ErrorFormat("[IRC] cannot connect to {0}:{1}: {2}",
|
||||
m_log.ErrorFormat("[IRC] cannot connect to {0}:{1}: {2}",
|
||||
m_server, m_port, e.Message);
|
||||
}
|
||||
return m_connected;
|
||||
|
@ -617,16 +617,16 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat
|
|||
|
||||
// is message "\001ACTION foo
|
||||
// bar\001"? -> "/me foo bar"
|
||||
if ((1 == c.Message[0]) && c.Message.Substring(1).StartsWith("ACTION"))
|
||||
if ((1 == c.Message[0]) && c.Message.Substring(1).StartsWith("ACTION"))
|
||||
c.Message = String.Format("/me {0}", c.Message.Substring(8, c.Message.Length - 9));
|
||||
|
||||
|
||||
foreach (Scene scene in m_scenes)
|
||||
{
|
||||
c.Scene = scene;
|
||||
scene.EventManager.TriggerOnChatBroadcast(this, c);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Thread.Sleep(150);
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -569,7 +569,7 @@ namespace OpenSim.Region.Environment.Modules.Scripting.WorldComm
|
|||
{
|
||||
foreach (ListenerInfo l in list)
|
||||
{
|
||||
if(l.GetItemID() == itemID)
|
||||
if (l.GetItemID() == itemID)
|
||||
data.AddRange(l.GetSerializationData());
|
||||
}
|
||||
}
|
||||
|
@ -582,14 +582,14 @@ namespace OpenSim.Region.Environment.Modules.Scripting.WorldComm
|
|||
int idx = 0;
|
||||
Object[] item = new Object[6];
|
||||
|
||||
while(idx < data.Length)
|
||||
while (idx < data.Length)
|
||||
{
|
||||
Array.Copy(data, idx, item, 0, 6);
|
||||
|
||||
ListenerInfo info =
|
||||
ListenerInfo.FromData(localID, itemID, hostID, item);
|
||||
|
||||
if(!m_listeners.ContainsKey((int)item[2]))
|
||||
if (!m_listeners.ContainsKey((int)item[2]))
|
||||
m_listeners.Add((int)item[2], new List<ListenerInfo>());
|
||||
m_listeners[(int)item[2]].Add(info);
|
||||
|
||||
|
|
|
@ -160,9 +160,9 @@ namespace OpenSim.Region.Environment.Modules.Scripting.XMLRPC
|
|||
*
|
||||
* Generate a LLUUID channel key and add it and
|
||||
* the prim id to dictionary <channelUUID, primUUID>
|
||||
*
|
||||
*
|
||||
* A custom channel key can be proposed.
|
||||
* Otherwise, passing LLUUID.Zero will generate
|
||||
* Otherwise, passing LLUUID.Zero will generate
|
||||
* and return a random channel
|
||||
*
|
||||
* First check if there is a channel assigned for
|
||||
|
|
|
@ -37,37 +37,37 @@ using log4net;
|
|||
using Nini.Config;
|
||||
|
||||
namespace OpenSim.Region.Environment
|
||||
{
|
||||
{
|
||||
/// <summary>
|
||||
/// Method called when all the necessary assets for an archive request have been received.
|
||||
/// </summary>
|
||||
public delegate void AssetsRequestCallback(IDictionary<LLUUID, AssetBase> assets);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Handles an individual archive request
|
||||
/// </summary>
|
||||
public class ArchiveRequest
|
||||
{
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
|
||||
private Scene m_scene;
|
||||
private string m_savePath;
|
||||
|
||||
|
||||
private string m_serializedEntities;
|
||||
|
||||
|
||||
public ArchiveRequest(Scene scene, string savePath)
|
||||
{
|
||||
m_scene = scene;
|
||||
m_savePath = savePath;
|
||||
|
||||
|
||||
ArchiveRegion();
|
||||
}
|
||||
|
||||
|
||||
protected void ArchiveRegion()
|
||||
{
|
||||
m_log.Warn("[ARCHIVER]: Archive region not yet implemented");
|
||||
|
||||
Dictionary<LLUUID, int> textureUuids = new Dictionary<LLUUID, int>();
|
||||
Dictionary<LLUUID, int> textureUuids = new Dictionary<LLUUID, int>();
|
||||
|
||||
List<EntityBase> entities = m_scene.GetEntities();
|
||||
|
||||
|
@ -76,14 +76,14 @@ namespace OpenSim.Region.Environment
|
|||
if (entity is SceneObjectGroup)
|
||||
{
|
||||
SceneObjectGroup sceneObject = (SceneObjectGroup)entity;
|
||||
|
||||
|
||||
foreach (SceneObjectPart part in sceneObject.GetParts())
|
||||
{
|
||||
LLUUID texture = new LLUUID(part.Shape.TextureEntry, 0);
|
||||
textureUuids[texture] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_serializedEntities = SerializeObjects(entities);
|
||||
|
||||
|
@ -91,30 +91,30 @@ namespace OpenSim.Region.Environment
|
|||
{
|
||||
m_log.DebugFormat("[ARCHIVER]: Successfully got serialization for {0} entities", entities.Count);
|
||||
m_log.DebugFormat("[ARCHIVER]: Requiring save of {0} textures", textureUuids.Count);
|
||||
|
||||
|
||||
// Asynchronously request all the assets required to perform this archive operation
|
||||
new AssetsRequest(ReceivedAllAssets, m_scene.AssetCache, textureUuids.Keys);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected internal void ReceivedAllAssets(IDictionary<LLUUID, AssetBase> assets)
|
||||
{
|
||||
m_log.DebugFormat("[ARCHIVER]: Received all {0} textures required", assets.Count);
|
||||
|
||||
|
||||
// XXX: Shouldn't hijack the asset async callback thread like this - this is only temporary
|
||||
|
||||
|
||||
TarArchive archive = new TarArchive();
|
||||
|
||||
|
||||
archive.AddFile("prims.xml", m_serializedEntities);
|
||||
|
||||
|
||||
foreach (LLUUID uuid in assets.Keys)
|
||||
{
|
||||
archive.AddFile(uuid.ToString() + ".jp2", assets[uuid].Data);
|
||||
}
|
||||
|
||||
|
||||
archive.WriteTar(m_savePath);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Get an xml representation of the given scene objects.
|
||||
/// </summary>
|
||||
|
@ -152,38 +152,38 @@ namespace OpenSim.Region.Environment
|
|||
/// Callback used when all the assets requested have been received.
|
||||
/// </summary>
|
||||
protected AssetsRequestCallback m_assetsRequestCallback;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Assets retrieved in this request
|
||||
/// </summary>
|
||||
protected Dictionary<LLUUID, AssetBase> m_assets = new Dictionary<LLUUID, AssetBase>();
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Record the number of asset replies required so we know when we've finished
|
||||
/// </summary>
|
||||
private int m_repliesRequired;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Asset cache used to request the assets
|
||||
/// </summary>
|
||||
protected AssetCache m_assetCache;
|
||||
|
||||
protected internal AssetsRequest(AssetsRequestCallback assetsRequestCallback, AssetCache assetCache, ICollection<LLUUID> uuids)
|
||||
{
|
||||
m_assetsRequestCallback = assetsRequestCallback;
|
||||
protected AssetCache m_assetCache;
|
||||
|
||||
protected internal AssetsRequest(AssetsRequestCallback assetsRequestCallback, AssetCache assetCache, ICollection<LLUUID> uuids)
|
||||
{
|
||||
m_assetsRequestCallback = assetsRequestCallback;
|
||||
m_assetCache = assetCache;
|
||||
m_repliesRequired = uuids.Count;
|
||||
|
||||
|
||||
// We can stop here if there are no assets to fetch
|
||||
if (m_repliesRequired == 0)
|
||||
m_assetsRequestCallback(m_assets);
|
||||
|
||||
m_assetsRequestCallback(m_assets);
|
||||
|
||||
foreach (LLUUID uuid in uuids)
|
||||
{
|
||||
m_assetCache.GetAsset(uuid, AssetRequestCallback, true);
|
||||
m_assetCache.GetAsset(uuid, AssetRequestCallback, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Called back by the asset cache when it has the asset
|
||||
/// </summary>
|
||||
|
@ -192,7 +192,7 @@ namespace OpenSim.Region.Environment
|
|||
public void AssetRequestCallback(LLUUID assetID, AssetBase asset)
|
||||
{
|
||||
m_assets[assetID] = asset;
|
||||
|
||||
|
||||
if (m_assets.Count == m_repliesRequired)
|
||||
{
|
||||
m_assetsRequestCallback(m_assets);
|
||||
|
|
|
@ -34,16 +34,16 @@ using System.Reflection;
|
|||
using log4net;
|
||||
|
||||
namespace OpenSim.Region.Environment
|
||||
{
|
||||
{
|
||||
/// <summary>
|
||||
/// Temporary code to produce a tar archive in tar v7 format
|
||||
/// </summary>
|
||||
/// </summary>
|
||||
public class TarArchive
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
|
||||
protected Dictionary<string, byte[]> m_files = new Dictionary<string, byte[]>();
|
||||
|
||||
|
||||
protected static System.Text.ASCIIEncoding m_asciiEncoding = new System.Text.ASCIIEncoding();
|
||||
|
||||
/// <summary>
|
||||
|
@ -55,7 +55,7 @@ namespace OpenSim.Region.Environment
|
|||
{
|
||||
AddFile(filePath, m_asciiEncoding.GetBytes(data));
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Add a file to the tar archive
|
||||
/// </summary>
|
||||
|
@ -65,117 +65,117 @@ namespace OpenSim.Region.Environment
|
|||
{
|
||||
m_files[filePath] = data;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Write the raw tar archive data to a file
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public void WriteTar(string archivePath)
|
||||
{
|
||||
BinaryWriter bw = new BinaryWriter(new FileStream(archivePath, FileMode.Create));
|
||||
BinaryWriter bw = new BinaryWriter(new FileStream(archivePath, FileMode.Create));
|
||||
|
||||
foreach (string filePath in m_files.Keys)
|
||||
{
|
||||
byte[] header = new byte[512];
|
||||
byte[] data = m_files[filePath];
|
||||
|
||||
//string filePath = "test.txt";
|
||||
//byte[] data = m_asciiEncoding.GetBytes("hello\n");
|
||||
|
||||
|
||||
//string filePath = "test.txt";
|
||||
//byte[] data = m_asciiEncoding.GetBytes("hello\n");
|
||||
|
||||
// file path field (100)
|
||||
byte[] nameBytes = m_asciiEncoding.GetBytes(filePath);
|
||||
int nameSize = (nameBytes.Length >= 100) ? 100 : nameBytes.Length;
|
||||
Array.Copy(nameBytes, header, nameSize);
|
||||
|
||||
Array.Copy(nameBytes, header, nameSize);
|
||||
|
||||
// file mode (8)
|
||||
byte[] modeBytes = m_asciiEncoding.GetBytes("0000644");
|
||||
Array.Copy(modeBytes, 0, header, 100, 7);
|
||||
|
||||
|
||||
// owner user id (8)
|
||||
byte[] ownerIdBytes = m_asciiEncoding.GetBytes("0000764");
|
||||
Array.Copy(ownerIdBytes, 0, header, 108, 7);
|
||||
|
||||
|
||||
// group user id (8)
|
||||
byte[] groupIdBytes = m_asciiEncoding.GetBytes("0000764");
|
||||
Array.Copy(groupIdBytes, 0, header, 116, 7);
|
||||
|
||||
|
||||
// file size in bytes (12)
|
||||
int fileSize = data.Length;
|
||||
m_log.DebugFormat("[TAR ARCHIVE]: File size of {0} is {1}", filePath, fileSize);
|
||||
|
||||
byte[] fileSizeBytes = ConvertDecimalToPaddedOctalBytes(fileSize, 11);
|
||||
|
||||
|
||||
Array.Copy(fileSizeBytes, 0, header, 124, 11);
|
||||
|
||||
|
||||
// last modification time (12)
|
||||
byte[] lastModTimeBytes = m_asciiEncoding.GetBytes("11017037332");
|
||||
Array.Copy(lastModTimeBytes, 0, header, 136, 11);
|
||||
|
||||
Array.Copy(lastModTimeBytes, 0, header, 136, 11);
|
||||
|
||||
// link indicator (1)
|
||||
//header[156] = m_asciiEncoding.GetBytes("0")[0];
|
||||
header[156] = 0;
|
||||
|
||||
|
||||
Array.Copy(m_asciiEncoding.GetBytes("0000000"), 0, header, 329, 7);
|
||||
Array.Copy(m_asciiEncoding.GetBytes("0000000"), 0, header, 337, 7);
|
||||
|
||||
|
||||
// check sum for header block (8) [calculated last]
|
||||
Array.Copy(m_asciiEncoding.GetBytes(" "), 0, header, 148, 8);
|
||||
|
||||
|
||||
int checksum = 0;
|
||||
foreach (byte b in header)
|
||||
{
|
||||
checksum += b;
|
||||
}
|
||||
|
||||
|
||||
m_log.DebugFormat("[TAR ARCHIVE]: Decimal header checksum is {0}", checksum);
|
||||
|
||||
|
||||
byte[] checkSumBytes = ConvertDecimalToPaddedOctalBytes(checksum, 6);
|
||||
//byte[] checkSumBytes = m_asciiEncoding.GetBytes("007520");
|
||||
|
||||
|
||||
Array.Copy(checkSumBytes, 0, header, 148, 6);
|
||||
|
||||
|
||||
header[154] = 0;
|
||||
|
||||
// Write out header
|
||||
|
||||
// Write out header
|
||||
bw.Write(header);
|
||||
|
||||
|
||||
// Write out data
|
||||
bw.Write(data);
|
||||
|
||||
|
||||
int paddingRequired = 512 - (data.Length % 512);
|
||||
if (paddingRequired > 0)
|
||||
{
|
||||
m_log.DebugFormat("Padding data with {0} bytes", paddingRequired);
|
||||
|
||||
|
||||
byte[] padding = new byte[paddingRequired];
|
||||
bw.Write(padding);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Write two consecutive 0 blocks to end the archive
|
||||
byte[] finalZeroPadding = new byte[1024];
|
||||
bw.Write(finalZeroPadding);
|
||||
|
||||
|
||||
bw.Close();
|
||||
}
|
||||
|
||||
|
||||
public static byte[] ConvertDecimalToPaddedOctalBytes(int d, int padding)
|
||||
{
|
||||
string oString = "";
|
||||
|
||||
string oString = "";
|
||||
|
||||
while (d > 0)
|
||||
{
|
||||
oString = Convert.ToString((byte)'0' + d & 7) + oString;
|
||||
d >>= 3;
|
||||
}
|
||||
|
||||
|
||||
while (oString.Length < padding)
|
||||
{
|
||||
oString = "0" + oString;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
byte[] oBytes = m_asciiEncoding.GetBytes(oString);
|
||||
|
||||
|
||||
return oBytes;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -112,7 +112,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders
|
|||
double t = map[x, y];
|
||||
int index = 0;
|
||||
|
||||
// The lookup table is pre-sorted, so we either find an exact match or
|
||||
// The lookup table is pre-sorted, so we either find an exact match or
|
||||
// the next closest (smaller) match with a binary search
|
||||
index = Array.BinarySearch<HeightmapLookupValue>(LookupHeightTable, new HeightmapLookupValue(0, t));
|
||||
if (index < 0)
|
||||
|
|
|
@ -196,7 +196,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
|
||||
}
|
||||
sceneObject.UpdateParentIDs();
|
||||
|
||||
|
||||
AddSceneObject(sceneObject);
|
||||
}
|
||||
|
||||
|
@ -215,14 +215,14 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
// QuadTree.AddSceneObject(sceneObject);
|
||||
Entities.Add(sceneObject.UUID, sceneObject);
|
||||
m_numPrim++;
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Delete an object from the scene
|
||||
/// </summary>
|
||||
|
@ -236,11 +236,11 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
{
|
||||
Entities.Remove(uuid);
|
||||
m_numPrim--;
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -313,7 +313,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
{
|
||||
m_activeScripts += number;
|
||||
}
|
||||
|
||||
|
||||
protected internal void DetachObject(uint objectLocalID, IClientAPI remoteClient)
|
||||
{
|
||||
List<EntityBase> EntityList = GetEntities();
|
||||
|
@ -340,9 +340,9 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
SceneObjectPart part = m_parentScene.GetSceneObjectPart(primId);
|
||||
if (part != null)
|
||||
part.Undo();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected internal void HandleObjectGroupUpdate(
|
||||
IClientAPI remoteClient, LLUUID GroupID, uint objectLocalID, LLUUID Garbage)
|
||||
{
|
||||
|
@ -360,12 +360,11 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
group.SetGroup(GroupID, remoteClient);
|
||||
else
|
||||
remoteClient.SendAgentAlertMessage("You don't have permission to set the group", false);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Event Handling routine for Attach Object
|
||||
/// </summary>
|
||||
|
@ -379,7 +378,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
|
||||
AttachObject(remoteClient, objectLocalID, AttachmentPt, rot, LLVector3.Zero);
|
||||
}
|
||||
|
||||
|
||||
protected internal void RezSingleAttachment(
|
||||
IClientAPI remoteClient, LLUUID itemID, uint AttachmentPt,uint ItemFlags, uint NextOwnerMask)
|
||||
{
|
||||
|
@ -492,7 +491,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
newAvatar.IsChildAgent = child;
|
||||
|
||||
AddScenePresence(newAvatar);
|
||||
|
||||
|
||||
return newAvatar;
|
||||
}
|
||||
|
||||
|
@ -528,7 +527,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
ScenePresences[presence.UUID] = presence;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Remove a presence from the scene
|
||||
/// </summary>
|
||||
|
@ -545,9 +544,9 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
m_log.WarnFormat("[SCENE] Tried to remove non-existent scene presence with agent ID {0} from scene Entities list", agentID);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
lock (ScenePresences)
|
||||
{
|
||||
{
|
||||
if (ScenePresences.Remove(agentID))
|
||||
{
|
||||
//m_log.InfoFormat("[SCENE] Removed scene presence {0}", agentID);
|
||||
|
@ -556,7 +555,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
{
|
||||
m_log.WarnFormat("[SCENE] Tried to remove non-existent scene presence with agent ID {0} from scene ScenePresences list", agentID);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected internal void SwapRootChildAgent(bool direction_RC_CR_T_F)
|
||||
|
@ -622,7 +621,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
m_scriptLPS = 0;
|
||||
return returnval;
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region Get Methods
|
||||
|
@ -863,7 +862,6 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
{
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
grp.scriptScore = 0;
|
||||
}
|
||||
|
@ -964,7 +962,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected internal void UpdatePrimGroupScale(uint localID, LLVector3 scale, IClientAPI remoteClient)
|
||||
{
|
||||
SceneObjectGroup group = GetGroupByPrim(localID);
|
||||
|
|
|
@ -62,7 +62,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
public void AddUploadedInventoryItem(LLUUID agentID, InventoryItemBase item)
|
||||
{
|
||||
IMoneyModule money=RequestModuleInterface<IMoneyModule>();
|
||||
if(money != null)
|
||||
if (money != null)
|
||||
{
|
||||
money.ApplyUploadCharge(agentID);
|
||||
}
|
||||
|
@ -930,7 +930,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
if (part != null)
|
||||
{
|
||||
TaskInventoryItem currentItem=part.GetInventoryItem(itemID);
|
||||
if(currentItem == null)
|
||||
if (currentItem == null)
|
||||
{
|
||||
LLUUID copyID = LLUUID.Random();
|
||||
if (itemID != LLUUID.Zero)
|
||||
|
@ -972,9 +972,9 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
}
|
||||
else // Updating existing item with new perms etc
|
||||
{
|
||||
TaskInventoryItem prevItem=part.GetInventoryItem(itemID);
|
||||
itemInfo.AssetID = prevItem.AssetID;
|
||||
if(part.UpdateInventoryItem(itemInfo))
|
||||
TaskInventoryItem prevItem=part.GetInventoryItem(itemID);
|
||||
itemInfo.AssetID = prevItem.AssetID;
|
||||
if (part.UpdateInventoryItem(itemInfo))
|
||||
part.GetProperties(remoteClient);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,9 +63,9 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
|
||||
if (broadcast)
|
||||
EventManager.TriggerOnChatBroadcast(this, args);
|
||||
else
|
||||
else
|
||||
EventManager.TriggerOnChatFromWorld(this, args);
|
||||
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
|
@ -293,7 +293,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
LLUUID itemID)
|
||||
{
|
||||
SceneObjectPart part=GetSceneObjectPart(objectID);
|
||||
if(part == null)
|
||||
if (part == null)
|
||||
return;
|
||||
EventManager.TriggerScriptReset(part.LocalId, itemID);
|
||||
}
|
||||
|
|
|
@ -199,9 +199,9 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
/// <summary>
|
||||
/// The dictionary of all entities in this scene. The contents of this dictionary may be changed at any time.
|
||||
/// If you wish to add or remove entities, please use the appropriate method for that entity rather than
|
||||
/// editing this dictionary directly.
|
||||
///
|
||||
/// If you want a list of entities where the list itself is guaranteed not to change, please use
|
||||
/// editing this dictionary directly.
|
||||
///
|
||||
/// If you want a list of entities where the list itself is guaranteed not to change, please use
|
||||
/// GetEntities()
|
||||
/// </summary>
|
||||
public Dictionary<LLUUID, EntityBase> Entities
|
||||
|
@ -565,19 +565,19 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
m_scripts_enabled = !ScriptEngine;
|
||||
m_log.Info("[TOTEDD]: Here is the method to trigger disabling of the scripting engine");
|
||||
}
|
||||
|
||||
|
||||
if (m_physics_enabled != !PhysicsEngine)
|
||||
{
|
||||
m_physics_enabled = !PhysicsEngine;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public int GetInaccurateNeighborCount()
|
||||
{
|
||||
lock (m_neighbours)
|
||||
return m_neighbours.Count;
|
||||
}
|
||||
|
||||
|
||||
// This is the method that shuts down the scene.
|
||||
public override void Close()
|
||||
{
|
||||
|
|
|
@ -2100,26 +2100,26 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
/// <param name="pos"></param>
|
||||
public void UpdateOffSet(LLVector3 pos)
|
||||
{
|
||||
if ((pos.X != OffsetPosition.X) ||
|
||||
(pos.Y != OffsetPosition.Y) ||
|
||||
(pos.Z != OffsetPosition.Z))
|
||||
{
|
||||
LLVector3 newPos = new LLVector3(pos.X, pos.Y, pos.Z);
|
||||
OffsetPosition = newPos;
|
||||
ScheduleTerseUpdate();
|
||||
}
|
||||
if ((pos.X != OffsetPosition.X) ||
|
||||
(pos.Y != OffsetPosition.Y) ||
|
||||
(pos.Z != OffsetPosition.Z))
|
||||
{
|
||||
LLVector3 newPos = new LLVector3(pos.X, pos.Y, pos.Z);
|
||||
OffsetPosition = newPos;
|
||||
ScheduleTerseUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
public void UpdateGroupPosition(LLVector3 pos)
|
||||
{
|
||||
if ((pos.X != GroupPosition.X) ||
|
||||
(pos.Y != GroupPosition.Y) ||
|
||||
(pos.Z != GroupPosition.Z))
|
||||
{
|
||||
LLVector3 newPos = new LLVector3(pos.X, pos.Y, pos.Z);
|
||||
GroupPosition = newPos;
|
||||
ScheduleTerseUpdate();
|
||||
}
|
||||
if ((pos.X != GroupPosition.X) ||
|
||||
(pos.Y != GroupPosition.Y) ||
|
||||
(pos.Z != GroupPosition.Z))
|
||||
{
|
||||
LLVector3 newPos = new LLVector3(pos.X, pos.Y, pos.Z);
|
||||
GroupPosition = newPos;
|
||||
ScheduleTerseUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -2128,15 +2128,15 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
|
||||
public void UpdateRotation(LLQuaternion rot)
|
||||
{
|
||||
if ((rot.X != RotationOffset.X) ||
|
||||
(rot.Y != RotationOffset.Y) ||
|
||||
(rot.Z != RotationOffset.Z) ||
|
||||
(rot.W != RotationOffset.W))
|
||||
{
|
||||
//StoreUndoState();
|
||||
RotationOffset = new LLQuaternion(rot.X, rot.Y, rot.Z, rot.W);
|
||||
ScheduleTerseUpdate();
|
||||
}
|
||||
if ((rot.X != RotationOffset.X) ||
|
||||
(rot.Y != RotationOffset.Y) ||
|
||||
(rot.Z != RotationOffset.Z) ||
|
||||
(rot.W != RotationOffset.W))
|
||||
{
|
||||
//StoreUndoState();
|
||||
RotationOffset = new LLQuaternion(rot.X, rot.Y, rot.Z, rot.W);
|
||||
ScheduleTerseUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
|
|
@ -1407,9 +1407,9 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
if (remoteAvatar == null)
|
||||
return;
|
||||
IClientAPI cl=remoteAvatar.ControllingClient;
|
||||
if(cl == null)
|
||||
if (cl == null)
|
||||
return;
|
||||
if(m_appearance.Texture == null)
|
||||
if (m_appearance.Texture == null)
|
||||
return;
|
||||
|
||||
remoteAvatar.m_controllingClient.SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_uuid,
|
||||
|
|
|
@ -157,7 +157,7 @@ namespace OpenSim.Region.Modules.AvatarFactory
|
|||
{
|
||||
IClientAPI clientView = (IClientAPI)sender;
|
||||
ScenePresence avatar = m_scene.GetScenePresence(clientView.AgentId);
|
||||
if(avatar == null) {
|
||||
if (avatar == null) {
|
||||
m_log.Info("Avatar is child agent, ignoring AvatarIsWearing event");
|
||||
return;
|
||||
}
|
||||
|
@ -165,7 +165,7 @@ namespace OpenSim.Region.Modules.AvatarFactory
|
|||
CachedUserInfo profile = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(clientView.AgentId);
|
||||
|
||||
AvatarAppearance avatAppearance = null;
|
||||
if(!TryGetAvatarAppearance(clientView.AgentId, out avatAppearance)) {
|
||||
if (!TryGetAvatarAppearance(clientView.AgentId, out avatAppearance)) {
|
||||
m_log.Info("We didn't seem to find the appearance, falling back to ScenePresense");
|
||||
avatAppearance = avatar.Appearance;
|
||||
}
|
||||
|
|
|
@ -5480,7 +5480,7 @@ namespace OpenSim.Region.ScriptEngine.Common
|
|||
{
|
||||
m_host.AddScriptLPS(1);
|
||||
World.SimChatBroadcast(Helpers.StringToField(msg),
|
||||
ChatTypeEnum.Owner, 0, m_host.AbsolutePosition,
|
||||
ChatTypeEnum.Owner, 0, m_host.AbsolutePosition,
|
||||
m_host.Name, m_host.UUID, false);
|
||||
|
||||
IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>();
|
||||
|
|
|
@ -304,7 +304,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase
|
|||
{
|
||||
int colon=t.IndexOf(":");
|
||||
|
||||
if(-1 != colon)
|
||||
if (-1 != colon)
|
||||
{
|
||||
line = " at line " + Convert.ToInt32(t.Substring(colon + 1)).ToString();
|
||||
break;
|
||||
|
|
|
@ -78,7 +78,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
// Xantor 20080525: I need assetID here to see if we already compiled this one previously
|
||||
LLUUID assetID = LLUUID.Zero;
|
||||
TaskInventoryItem taskInventoryItem = new TaskInventoryItem();
|
||||
if(m_host.TaskInventory.TryGetValue(itemID,out taskInventoryItem))
|
||||
if (m_host.TaskInventory.TryGetValue(itemID,out taskInventoryItem))
|
||||
assetID = taskInventoryItem.AssetID;
|
||||
|
||||
|
||||
|
@ -140,7 +140,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
string text = "Error compiling script:\r\n" + e.Message.ToString();
|
||||
if (text.Length > 1500)
|
||||
text = text.Substring(0, 1500);
|
||||
World.SimChat(Helpers.StringToField(text), ChatTypeEnum.DebugChannel, 2147483647,
|
||||
World.SimChat(Helpers.StringToField(text), ChatTypeEnum.DebugChannel, 2147483647,
|
||||
m_host.AbsolutePosition, m_host.Name, m_host.UUID, false);
|
||||
}
|
||||
catch (Exception e2) // LEGIT: User Scripting
|
||||
|
|
Loading…
Reference in New Issue