revert r2162 as it completely clobbered all the work on

the ChatModule by MW and myself.  Couldn't find Adam online
after that rev went in.
afrisby
Sean Dague 2007-10-22 15:37:54 +00:00
parent c4707a284f
commit 6acaabefc3
18 changed files with 500 additions and 573 deletions

View File

@ -72,7 +72,7 @@ namespace OpenSim.Framework.Communications.Cache
/// </summary> /// </summary>
public AssetCache(IAssetServer assetServer) public AssetCache(IAssetServer assetServer)
{ {
OpenSim.Framework.Console.MainLog.Instance.Verbose("ASSETSTORAGE","Creating Asset cache"); System.Console.WriteLine("Creating Asset cache");
_assetServer = assetServer; _assetServer = assetServer;
_assetServer.SetReceiver(this); _assetServer.SetReceiver(this);
Assets = new Dictionary<LLUUID, AssetInfo>(); Assets = new Dictionary<LLUUID, AssetInfo>();
@ -89,7 +89,7 @@ namespace OpenSim.Framework.Communications.Cache
public AssetCache(string assetServerDLLName, string assetServerURL, string assetServerKey) public AssetCache(string assetServerDLLName, string assetServerURL, string assetServerKey)
{ {
OpenSim.Framework.Console.MainLog.Instance.Verbose("ASSETSTORAGE", "Creating Asset cache"); System.Console.WriteLine("Creating Asset cache");
_assetServer = this.LoadAssetDll(assetServerDLLName); _assetServer = this.LoadAssetDll(assetServerDLLName);

View File

@ -51,7 +51,7 @@ namespace OpenSim.Framework.Communications.Cache
yapfile = File.Exists(Path.Combine(Util.dataDir(), "regionassets.yap")); yapfile = File.Exists(Path.Combine(Util.dataDir(), "regionassets.yap"));
db = Db4oFactory.OpenFile(Path.Combine(Util.dataDir(), "regionassets.yap")); db = Db4oFactory.OpenFile(Path.Combine(Util.dataDir(), "regionassets.yap"));
MainLog.Instance.Verbose("ASSETS","Db4 Asset database creation"); MainLog.Instance.Verbose("Db4 Asset database creation");
if (!yapfile) if (!yapfile)
{ {
@ -75,7 +75,7 @@ namespace OpenSim.Framework.Communications.Cache
if (db != null) if (db != null)
{ {
MainLog.Instance.Verbose("ASSETSERVER","Closing local asset server database"); MainLog.Instance.Verbose("Closing local asset server database");
db.Close(); db.Close();
} }
} }

View File

@ -36,8 +36,8 @@ namespace OpenSim.Framework.Communications.Cache
public AssetServerBase() public AssetServerBase()
{ {
OpenSim.Framework.Console.MainLog.Instance.Verbose("ASSETSERVER","Starting Db4o asset storage system"); System.Console.WriteLine("Starting Db4o asset storage system");
this._assetRequests = new BlockingQueue<ARequest>(); this._assetRequests = new BlockingQueue<ARequest>();
this._localAssetServerThread = new Thread( RunRequests ); this._localAssetServerThread = new Thread( RunRequests );

View File

@ -68,7 +68,7 @@ namespace OpenSim.Framework.Communications.Cache
m_assetProviderPlugin = plug; m_assetProviderPlugin = plug;
m_assetProviderPlugin.Initialise(); m_assetProviderPlugin.Initialise();
MainLog.Instance.Verbose("AssetStorage","Added " + m_assetProviderPlugin.Name + " " + m_assetProviderPlugin.Version); MainLog.Instance.Verbose("AssetStorage: Added " + m_assetProviderPlugin.Name + " " + m_assetProviderPlugin.Version);
} }
typeInterface = null; typeInterface = null;
@ -92,7 +92,7 @@ namespace OpenSim.Framework.Communications.Cache
{ {
ARequest req = this._assetRequests.Dequeue(); ARequest req = this._assetRequests.Dequeue();
MainLog.Instance.Verbose("AssetStorage","Requesting asset: " + req.AssetID); MainLog.Instance.Verbose("Requesting asset: " + req.AssetID);
AssetBase asset = null; AssetBase asset = null;
lock (syncLock) lock (syncLock)

View File

@ -70,7 +70,7 @@ namespace OpenSim.Framework.Communications
(IInventoryData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); (IInventoryData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
plug.Initialise(); plug.Initialise();
this.m_plugins.Add(plug.getName(), plug); this.m_plugins.Add(plug.getName(), plug);
MainLog.Instance.Verbose("INVENTORY","Added IInventoryData Interface"); MainLog.Instance.Verbose("Inventorystorage: Added IInventoryData Interface");
} }
} }
} }

View File

@ -66,7 +66,7 @@ namespace OpenSim.Framework.UserManagement
public XmlRpcResponse XmlRpcLoginMethod(XmlRpcRequest request) public XmlRpcResponse XmlRpcLoginMethod(XmlRpcRequest request)
{ {
MainLog.Instance.Verbose("LOGIN","Attempting login now..."); MainLog.Instance.Verbose("Attempting login now...");
XmlRpcResponse response = new XmlRpcResponse(); XmlRpcResponse response = new XmlRpcResponse();
Hashtable requestData = (Hashtable)request.Params[0]; Hashtable requestData = (Hashtable)request.Params[0];

View File

@ -170,11 +170,8 @@ namespace OpenSim.Framework.Console
/// <param name="args">WriteLine-style message arguments</param> /// <param name="args">WriteLine-style message arguments</param>
public void Verbose(string format, params object[] args) public void Verbose(string format, params object[] args)
{ {
if (!m_silent) WriteNewLine(ConsoleColor.Gray, format, args);
{ return;
WriteNewLine(ConsoleColor.Gray, format, args);
return;
}
} }
/// <summary> /// <summary>
@ -185,12 +182,9 @@ namespace OpenSim.Framework.Console
/// <param name="args">WriteLine-style message arguments</param> /// <param name="args">WriteLine-style message arguments</param>
public void Verbose(string sender, string format, params object[] args) public void Verbose(string sender, string format, params object[] args)
{ {
if (!m_silent) WritePrefixLine(DeriveColor(sender), sender);
{ WriteNewLine(ConsoleColor.Gray, format, args);
WritePrefixLine(DeriveColor(sender), sender); return;
WriteNewLine(ConsoleColor.Gray, format, args);
return;
}
} }
/// <summary> /// <summary>
@ -240,20 +234,22 @@ namespace OpenSim.Framework.Console
Log.Write(now); Log.Write(now);
Log.WriteLine(format, args); Log.WriteLine(format, args);
Log.Flush(); Log.Flush();
if (!m_silent)
System.Console.Write(now);
try
{ {
if (color != ConsoleColor.White) System.Console.Write(now);
System.Console.ForegroundColor = color; try
{
if (color != ConsoleColor.White)
System.Console.ForegroundColor = color;
System.Console.WriteLine(format, args); System.Console.WriteLine(format, args);
System.Console.ResetColor(); System.Console.ResetColor();
} }
catch (ArgumentNullException) catch (ArgumentNullException)
{ {
// Some older systems dont support coloured text. // Some older systems dont support coloured text.
System.Console.WriteLine(format, args); System.Console.WriteLine(format, args);
}
} }
return; return;
} }
@ -269,16 +265,19 @@ namespace OpenSim.Framework.Console
System.Console.Write("["); System.Console.Write("[");
try if (!m_silent)
{ {
System.Console.ForegroundColor = color; try
System.Console.Write(sender); {
System.Console.ResetColor(); System.Console.ForegroundColor = color;
} System.Console.Write(sender);
catch (ArgumentNullException) System.Console.ResetColor();
{ }
// Some older systems dont support coloured text. catch (ArgumentNullException)
System.Console.WriteLine(sender); {
// Some older systems dont support coloured text.
System.Console.WriteLine(sender);
}
} }
System.Console.Write("] \t"); System.Console.Write("] \t");

View File

@ -557,12 +557,8 @@ namespace OpenSim.Framework.Types
private ConfigurationMember configMember; private ConfigurationMember configMember;
public EstateSettings() public EstateSettings()
{ {
// Temporary hack to prevent multiple loadings. configMember = new ConfigurationMember(Path.Combine(Util.configDir(),"estate_settings.xml"), "ESTATE SETTINGS", this.loadConfigurationOptions, this.handleIncomingConfiguration);
if (configMember == null) configMember.performConfigurationRetrieve();
{
configMember = new ConfigurationMember(Path.Combine(Util.configDir(), "estate_settings.xml"), "ESTATE SETTINGS", this.loadConfigurationOptions, this.handleIncomingConfiguration);
configMember.performConfigurationRetrieve();
}
} }
public void loadConfigurationOptions() public void loadConfigurationOptions()

View File

@ -224,7 +224,7 @@ namespace OpenSim.Framework.Servers
{ {
try try
{ {
MainLog.Instance.Verbose("HTTPD", "Spawned main thread OK"); MainLog.Instance.Status("HTTPD", "Spawned main thread OK");
m_httpListener = new HttpListener(); m_httpListener = new HttpListener();
m_httpListener.Prefixes.Add("http://+:" + m_port + "/"); m_httpListener.Prefixes.Add("http://+:" + m_port + "/");

View File

@ -262,10 +262,8 @@ namespace OpenSim
} }
else else
{ {
MainLog.Instance.Verbose("STARTUP","No startup command script specified. Moving on..."); MainLog.Instance.Verbose("No startup command script specified. Moving on...");
} }
MainLog.Instance.Status("STARTUP","Startup complete, serving " + m_udpServers.Count.ToString() + " region(s)");
} }
private static void CreateDefaultRegionInfoXml(string fileName) private static void CreateDefaultRegionInfoXml(string fileName)
@ -363,11 +361,11 @@ namespace OpenSim
RunCommandScript(m_shutdownCommandsFile); RunCommandScript(m_shutdownCommandsFile);
} }
m_log.Verbose("SHUTDOWN", "Closing all threads"); m_log.Verbose("Closing all threads");
m_log.Verbose("SHUTDOWN", "Killing listener thread"); m_log.Verbose("Killing listener thread");
m_log.Verbose("SHUTDOWN", "Killing clients"); m_log.Verbose("Killing clients");
// IMPLEMENT THIS // IMPLEMENT THIS
m_log.Verbose("SHUTDOWN", "Closing console and terminating"); m_log.Verbose("Closing console and terminating");
m_sceneManager.Close(); m_sceneManager.Close();
@ -382,7 +380,7 @@ namespace OpenSim
/// <param name="fileName"></param> /// <param name="fileName"></param>
private void RunCommandScript(string fileName) private void RunCommandScript(string fileName)
{ {
MainLog.Instance.Verbose("COMMANDFILE", "Running " + fileName); MainLog.Instance.Verbose("Running command script (" + fileName + ")");
if (File.Exists(fileName)) if (File.Exists(fileName))
{ {
StreamReader readFile = File.OpenText(fileName); StreamReader readFile = File.OpenText(fileName);
@ -391,14 +389,14 @@ namespace OpenSim
{ {
if (currentCommand != "") if (currentCommand != "")
{ {
MainLog.Instance.Verbose("COMMANDFILE", "Running '" + currentCommand + "'"); MainLog.Instance.Verbose("Running '" + currentCommand + "'");
MainLog.Instance.MainLogRunCommand(currentCommand); MainLog.Instance.MainLogRunCommand(currentCommand);
} }
} }
} }
else else
{ {
MainLog.Instance.Error("COMMANDFILE","Command script missing. Can not run commands"); MainLog.Instance.Error("Command script missing. Can not run commands");
} }
} }

View File

@ -47,8 +47,8 @@ namespace OpenSim.Region.Environment.Interfaces
List<SceneObjectGroup> LoadObjects(LLUUID regionUUID); List<SceneObjectGroup> LoadObjects(LLUUID regionUUID);
void StoreTerrain(double[,] terrain, LLUUID regionID); void StoreTerrain(double[,] terrain);
double[,] LoadTerrain(LLUUID regionID); double[,] LoadTerrain();
void StoreParcel(Land Parcel); void StoreParcel(Land Parcel);
void RemoveLandObject(uint ID); void RemoveLandObject(uint ID);

View File

@ -1,214 +1,214 @@
/* /*
* Copyright (c) Contributors, http://opensimulator.org/ * Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders. * See CONTRIBUTORS.TXT for a full list of copyright holders.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright * * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer. * notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright * * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the * notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution. * documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSim Project nor the * * Neither the name of the OpenSim Project nor the
* names of its contributors may be used to endorse or promote products * names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission. * derived from this software without specific prior written permission.
* *
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* *
*/ */
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Reflection; using System.Reflection;
using OpenSim.Framework.Console; using OpenSim.Framework.Console;
using OpenSim.Region.Environment.Interfaces; using OpenSim.Region.Environment.Interfaces;
using OpenSim.Region.Environment.Modules; using OpenSim.Region.Environment.Modules;
using OpenSim.Region.Environment.Scenes; using OpenSim.Region.Environment.Scenes;
using Nini.Config; using Nini.Config;
namespace OpenSim.Region.Environment namespace OpenSim.Region.Environment
{ {
public class ModuleLoader public class ModuleLoader
{ {
public Dictionary<string, Assembly> LoadedAssemblys = new Dictionary<string, Assembly>(); public Dictionary<string, Assembly> LoadedAssemblys = new Dictionary<string, Assembly>();
public List<IRegionModule> LoadedModules = new List<IRegionModule>(); public List<IRegionModule> LoadedModules = new List<IRegionModule>();
public Dictionary<string, IRegionModule> LoadedSharedModules = new Dictionary<string, IRegionModule>(); public Dictionary<string, IRegionModule> LoadedSharedModules = new Dictionary<string, IRegionModule>();
private readonly LogBase m_log; private readonly LogBase m_log;
private IConfigSource m_config; private IConfigSource m_config;
public ModuleLoader(LogBase log, IConfigSource config) public ModuleLoader(LogBase log, IConfigSource config)
{ {
m_log = log; m_log = log;
m_config = config; m_config = config;
} }
public void PickupModules(Scene scene, string moduleDir) public void PickupModules(Scene scene, string moduleDir)
{ {
DirectoryInfo dir = new DirectoryInfo(moduleDir); DirectoryInfo dir = new DirectoryInfo(moduleDir);
foreach (FileInfo fileInfo in dir.GetFiles("*.dll")) foreach (FileInfo fileInfo in dir.GetFiles("*.dll"))
{ {
LoadRegionModules(fileInfo.FullName, scene); LoadRegionModules(fileInfo.FullName, scene);
} }
} }
public void LoadDefaultSharedModules() public void LoadDefaultSharedModules()
{ {
DynamicTextureModule dynamicModule = new DynamicTextureModule(); DynamicTextureModule dynamicModule = new DynamicTextureModule();
LoadedSharedModules.Add(dynamicModule.Name, dynamicModule); LoadedSharedModules.Add(dynamicModule.Name, dynamicModule);
ChatModule chat = new ChatModule(); ChatModule chat = new ChatModule();
LoadedSharedModules.Add(chat.Name, chat); LoadedSharedModules.Add(chat.Name, chat);
InstantMessageModule imMod = new InstantMessageModule(); InstantMessageModule imMod = new InstantMessageModule();
LoadedSharedModules.Add(imMod.Name, imMod); LoadedSharedModules.Add(imMod.Name, imMod);
LoadImageURLModule loadMod = new LoadImageURLModule(); LoadImageURLModule loadMod = new LoadImageURLModule();
LoadedSharedModules.Add(loadMod.Name, loadMod); LoadedSharedModules.Add(loadMod.Name, loadMod);
} }
public void InitialiseSharedModules(Scene scene) public void InitialiseSharedModules(Scene scene)
{ {
foreach (IRegionModule module in LoadedSharedModules.Values) foreach (IRegionModule module in LoadedSharedModules.Values)
{ {
module.Initialise(scene, m_config); module.Initialise(scene, m_config);
scene.AddModule(module.Name, module); //should be doing this? scene.AddModule(module.Name, module); //should be doing this?
} }
} }
public void InitializeModule(IRegionModule module, Scene scene) public void InitializeModule(IRegionModule module, Scene scene)
{ {
module.Initialise(scene, m_config); module.Initialise(scene, m_config);
scene.AddModule(module.Name, module); scene.AddModule(module.Name, module);
LoadedModules.Add(module); LoadedModules.Add(module);
} }
/// <summary> /// <summary>
/// Loads/initialises a Module instance that can be used by mutliple Regions /// Loads/initialises a Module instance that can be used by mutliple Regions
/// </summary> /// </summary>
/// <param name="dllName"></param> /// <param name="dllName"></param>
/// <param name="moduleName"></param> /// <param name="moduleName"></param>
/// <param name="scene"></param> /// <param name="scene"></param>
public void LoadSharedModule(string dllName, string moduleName) public void LoadSharedModule(string dllName, string moduleName)
{ {
IRegionModule module = LoadModule(dllName, moduleName); IRegionModule module = LoadModule(dllName, moduleName);
if (module != null) if (module != null)
{ {
LoadedSharedModules.Add(module.Name, module); LoadedSharedModules.Add(module.Name, module);
} }
} }
public void LoadRegionModules(string dllName, Scene scene) public void LoadRegionModules(string dllName, Scene scene)
{ {
IRegionModule[] modules = LoadModules(dllName); IRegionModule[] modules = LoadModules(dllName);
if (modules.Length > 0) if (modules.Length > 0)
{ {
m_log.Verbose("MODULES", "Found Module Library [{0}]", dllName ); m_log.Verbose("MODULES", "Found Module Library [{0}]", dllName );
foreach (IRegionModule module in modules) foreach (IRegionModule module in modules)
{ {
if (!module.IsSharedModule) if (!module.IsSharedModule)
{ {
m_log.Verbose("MODULES", " [{0}]: Initializing.", module.Name); m_log.Verbose("MODULES", " [{0}]: Initializing.", module.Name);
InitializeModule(module, scene); InitializeModule(module, scene);
} }
} }
} }
} }
public void LoadRegionModule(string dllName, string moduleName, Scene scene) public void LoadRegionModule(string dllName, string moduleName, Scene scene)
{ {
IRegionModule module = LoadModule(dllName, moduleName); IRegionModule module = LoadModule(dllName, moduleName);
if (module != null) if (module != null)
{ {
InitializeModule(module, scene); InitializeModule(module, scene);
} }
} }
/// <summary> /// <summary>
/// Loads a external Module (if not already loaded) and creates a new instance of it. /// Loads a external Module (if not already loaded) and creates a new instance of it.
/// </summary> /// </summary>
/// <param name="dllName"></param> /// <param name="dllName"></param>
/// <param name="moduleName"></param> /// <param name="moduleName"></param>
/// <param name="scene"></param> /// <param name="scene"></param>
public IRegionModule LoadModule(string dllName, string moduleName) public IRegionModule LoadModule(string dllName, string moduleName)
{ {
IRegionModule[] modules = LoadModules(dllName); IRegionModule[] modules = LoadModules(dllName);
foreach (IRegionModule module in modules) foreach (IRegionModule module in modules)
{ {
if ((module != null) && (module.Name == moduleName)) if ((module != null) && (module.Name == moduleName))
{ {
return module; return module;
} }
} }
return null; return null;
} }
public IRegionModule[] LoadModules(string dllName) public IRegionModule[] LoadModules(string dllName)
{ {
List<IRegionModule> modules = new List<IRegionModule>(); List<IRegionModule> modules = new List<IRegionModule>();
Assembly pluginAssembly; Assembly pluginAssembly;
if (!LoadedAssemblys.TryGetValue(dllName, out pluginAssembly )) if (!LoadedAssemblys.TryGetValue(dllName, out pluginAssembly ))
{ {
try try
{ {
pluginAssembly = Assembly.LoadFrom(dllName); pluginAssembly = Assembly.LoadFrom(dllName);
LoadedAssemblys.Add(dllName, pluginAssembly); LoadedAssemblys.Add(dllName, pluginAssembly);
} }
catch( BadImageFormatException e ) catch( BadImageFormatException e )
{ {
m_log.Verbose( "MODULES", "The file [{0}] is not a module assembly.", e.FileName ); m_log.Warn( "MODULES", "The file [{0}] is not a module assembly.", e.FileName );
} }
} }
if (pluginAssembly != null) if (pluginAssembly != null)
{ {
foreach (Type pluginType in pluginAssembly.GetTypes()) foreach (Type pluginType in pluginAssembly.GetTypes())
{ {
if (pluginType.IsPublic) if (pluginType.IsPublic)
{ {
if (!pluginType.IsAbstract) if (!pluginType.IsAbstract)
{ {
if( pluginType.GetInterface("IRegionModule") != null ) if( pluginType.GetInterface("IRegionModule") != null )
{ {
modules.Add((IRegionModule) Activator.CreateInstance(pluginType)); modules.Add((IRegionModule) Activator.CreateInstance(pluginType));
} }
} }
} }
} }
} }
return modules.ToArray(); return modules.ToArray();
} }
public void PostInitialise() public void PostInitialise()
{ {
foreach (IRegionModule module in LoadedSharedModules.Values) foreach (IRegionModule module in LoadedSharedModules.Values)
{ {
module.PostInitialise(); module.PostInitialise();
} }
foreach (IRegionModule module in LoadedModules) foreach (IRegionModule module in LoadedModules)
{ {
module.PostInitialise(); module.PostInitialise();
} }
} }
public void ClearCache() public void ClearCache()
{ {
LoadedAssemblys.Clear(); LoadedAssemblys.Clear();
} }
} }
} }

View File

@ -45,55 +45,26 @@ namespace OpenSim.Region.Environment.Modules
private List<Scene> m_scenes = new List<Scene>(); private List<Scene> m_scenes = new List<Scene>();
private LogBase m_log; private LogBase m_log;
private string m_server = null;
private int m_port = 6668;
private string m_user = "USER OpenSimBot 8 * :I'm a OpenSim to irc bot";
private string m_nick = null;
private string m_channel = null;
private int m_whisperdistance = 10; private int m_whisperdistance = 10;
private int m_saydistance = 30; private int m_saydistance = 30;
private int m_shoutdistance = 100; private int m_shoutdistance = 100;
private NetworkStream m_stream; private IRCChatModule m_irc = null;
private TcpClient m_irc;
private StreamWriter m_ircWriter;
private StreamReader m_ircReader;
private Thread pingSender;
private Thread listener;
private bool m_enable_irc = false;
private bool connected = false;
public ChatModule() public ChatModule()
{ {
m_nick = "OSimBot" + Util.RandomClass.Next(1, 99);
m_irc = null;
m_ircWriter = null;
m_ircReader = null;
m_log = OpenSim.Framework.Console.MainLog.Instance; m_log = OpenSim.Framework.Console.MainLog.Instance;
} }
public void Initialise(Scene scene, Nini.Config.IConfigSource config) public void Initialise(Scene scene, Nini.Config.IConfigSource config)
{ {
// wrap this in a try block so that defaults will work if
// the config file doesn't specify otherwise.
try { try {
m_server = config.Configs["IRC"].GetString("server"); m_whisperdistance = config.Configs["Chat"].GetInt("whisper_distance", m_whisperdistance);
m_nick = config.Configs["IRC"].GetString("nick"); m_saydistance = config.Configs["Chat"].GetInt("say_distance", m_saydistance);
m_channel = config.Configs["IRC"].GetString("channel"); m_shoutdistance = config.Configs["Chat"].GetInt("shout_distance", m_shoutdistance);
m_port = config.Configs["IRC"].GetInt("port", m_port); } catch (Exception e) {}
m_user = config.Configs["IRC"].GetString("username", m_user);
if (m_server != null && m_nick != null && m_channel != null) {
m_enable_irc = true;
}
} catch (Exception e) {
OpenSim.Framework.Console.MainLog.Instance.Verbose("No IRC config information, skipping IRC bridge configuration");
}
m_whisperdistance = config.Configs["Chat"].GetInt("whisper_distance");
m_saydistance = config.Configs["Chat"].GetInt("say_distance");
m_shoutdistance = config.Configs["Chat"].GetInt("shout_distance");
if (!m_scenes.Contains(scene)) if (!m_scenes.Contains(scene))
{ {
@ -101,43 +72,21 @@ namespace OpenSim.Region.Environment.Modules
scene.EventManager.OnNewClient += NewClient; scene.EventManager.OnNewClient += NewClient;
scene.RegisterModuleInterface<ISimChat>(this); scene.RegisterModuleInterface<ISimChat>(this);
} }
// setup IRC Relay
m_irc = new IRCChatModule(config);
} }
public void PostInitialise() public void PostInitialise()
{ {
if( m_enable_irc ) {
try if (m_irc.Enabled) {
{ m_irc.Connect(m_scenes);
m_irc = new TcpClient(m_server, m_port);
m_stream = m_irc.GetStream();
m_ircReader = new StreamReader(m_stream);
m_ircWriter = new StreamWriter(m_stream);
pingSender = new Thread(new ThreadStart(this.PingRun));
pingSender.Start();
listener = new Thread(new ThreadStart(this.ListenerRun));
listener.Start();
m_ircWriter.WriteLine(m_user);
m_ircWriter.Flush();
m_ircWriter.WriteLine("NICK " + m_nick);
m_ircWriter.Flush();
m_ircWriter.WriteLine("JOIN " + m_channel);
m_ircWriter.Flush();
connected = true;
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
} }
} }
public void Close() public void Close()
{ {
m_ircWriter.Close();
m_ircReader.Close();
m_irc.Close(); m_irc.Close();
} }
@ -156,43 +105,6 @@ namespace OpenSim.Region.Environment.Modules
client.OnChatFromViewer += SimChat; client.OnChatFromViewer += SimChat;
} }
public void PingRun()
{
while (true)
{
m_ircWriter.WriteLine("PING :" + m_server);
m_ircWriter.Flush();
Thread.Sleep(15000);
}
}
public void ListenerRun()
{
string inputLine;
LLVector3 pos = new LLVector3(128, 128, 20);
while (true)
{
while ((inputLine = m_ircReader.ReadLine()) != null)
{
Console.WriteLine(inputLine);
if (inputLine.Contains(m_channel))
{
string mess = inputLine.Substring(inputLine.IndexOf(m_channel));
foreach (Scene m_scene in m_scenes)
{
m_scene.Broadcast(delegate(IClientAPI client)
{
client.SendChatMessage(
Helpers.StringToField(mess), 255, pos, "IRC:",
LLUUID.Zero);
});
}
}
}
Thread.Sleep(50);
}
}
public void SimChat(Object sender, ChatFromViewerArgs e) public void SimChat(Object sender, ChatFromViewerArgs e)
{ {
ScenePresence avatar = null; ScenePresence avatar = null;
@ -246,80 +158,215 @@ namespace OpenSim.Region.Environment.Modules
m_log.Verbose("CHAT", fromName + " (" + e.Channel + " @ " + scene.RegionInfo.RegionName + ") " + typeName + ": " + e.Message); m_log.Verbose("CHAT", fromName + " (" + e.Channel + " @ " + scene.RegionInfo.RegionName + ") " + typeName + ": " + e.Message);
if (connected) if (m_irc.Connected)
{ {
try m_irc.PrivMsg(fromName, scene.RegionInfo.RegionName, e.Message);
{ }
m_ircWriter.WriteLine("PRIVMSG " + m_channel + " :" + "<" + fromName + " in " + scene.RegionInfo.RegionName + ">: " +
e.Message); if (e.Channel == 0)
m_ircWriter.Flush(); {
} foreach (Scene m_scene in m_scenes)
catch (IOException) {
{ m_scene.ForEachScenePresence(delegate(ScenePresence presence)
m_log.Error("IRC","Disconnected from IRC server."); {
listener.Abort(); int dis = -100000;
pingSender.Abort();
connected = false;
}
}
if (e.Channel == 0) LLVector3 avatarRegionPos = presence.AbsolutePosition + new LLVector3(scene.RegionInfo.RegionLocX * 256, scene.RegionInfo.RegionLocY * 256, 0);
{ dis = Math.Abs((int)avatarRegionPos.GetDistanceTo(fromRegionPos));
foreach (Scene m_scene in m_scenes)
{
m_scene.ForEachScenePresence(delegate(ScenePresence presence)
{
int dis = -100000;
LLVector3 avatarRegionPos = presence.AbsolutePosition + new LLVector3(scene.RegionInfo.RegionLocX * 256, scene.RegionInfo.RegionLocY * 256, 0); switch (e.Type)
dis = Math.Abs((int)avatarRegionPos.GetDistanceTo(fromRegionPos)); {
case ChatTypeEnum.Whisper:
switch (e.Type) if (dis < m_whisperdistance)
{ {
case ChatTypeEnum.Whisper: //should change so the message is sent through the avatar rather than direct to the ClientView
if (dis < m_whisperdistance) presence.ControllingClient.SendChatMessage(message,
{ type,
//should change so the message is sent through the avatar rather than direct to the ClientView fromPos,
presence.ControllingClient.SendChatMessage(message, fromName,
type, fromAgentID);
fromPos, }
fromName, break;
fromAgentID); case ChatTypeEnum.Say:
} if (dis < m_saydistance)
break; {
default: //Console.WriteLine("sending chat");
case ChatTypeEnum.Say: presence.ControllingClient.SendChatMessage(message,
if (dis < m_saydistance) type,
{ fromPos,
//Console.WriteLine("sending chat"); fromName,
presence.ControllingClient.SendChatMessage(message, fromAgentID);
type, }
fromPos, break;
fromName, case ChatTypeEnum.Shout:
fromAgentID); if (dis < m_shoutdistance)
} {
break; presence.ControllingClient.SendChatMessage(message,
case ChatTypeEnum.Shout: type,
if (dis < m_shoutdistance) fromPos,
{ fromName,
presence.ControllingClient.SendChatMessage(message, fromAgentID);
type, }
fromPos, break;
fromName,
fromAgentID); case ChatTypeEnum.Broadcast:
} presence.ControllingClient.SendChatMessage(message, type,
break; fromPos,
fromName,
case ChatTypeEnum.Broadcast: fromAgentID);
presence.ControllingClient.SendChatMessage(message, type, break;
fromPos, default:
fromName, break;
fromAgentID); }
break; });
}
});
} }
} }
} }
} }
class IRCChatModule {
private string m_server = null;
private int m_port = 6668;
private string m_user = "USER OpenSimBot 8 * :I'm a OpenSim to irc bot";
private string m_nick = null;
private string m_channel = null;
private NetworkStream m_stream;
private TcpClient m_tcp;
private StreamWriter m_writer;
private StreamReader m_reader;
private Thread pingSender;
private Thread listener;
private bool m_enabled = false;
private bool m_connected = false;
private List<Scene> m_scenes = null;
private LogBase m_log;
public IRCChatModule(Nini.Config.IConfigSource config) {
m_nick = "OSimBot" + Util.RandomClass.Next(1, 99);
m_tcp = null;
m_writer = null;
m_reader = null;
try {
m_server = config.Configs["IRC"].GetString("server");
m_nick = config.Configs["IRC"].GetString("nick");
m_channel = config.Configs["IRC"].GetString("channel");
m_port = config.Configs["IRC"].GetInt("port", m_port);
m_user = config.Configs["IRC"].GetString("username", m_user);
if (m_server != null && m_nick != null && m_channel != null) {
m_enabled = true;
}
} catch (Exception e) {
Console.WriteLine("No IRC config information, skipping IRC bridge configuration");
}
m_log = OpenSim.Framework.Console.MainLog.Instance;
}
public bool Connect(List<Scene> scenes) {
try {
m_scenes = scenes;
m_tcp = new TcpClient(m_server, m_port);
m_log.Verbose("IRC", "Connecting...");
m_stream = m_tcp.GetStream();
m_log.Verbose("IRC", "Connected to " + m_server);
m_reader = new StreamReader(m_stream);
m_writer = new StreamWriter(m_stream);
pingSender = new Thread(new ThreadStart(this.PingRun));
pingSender.Start();
listener = new Thread(new ThreadStart(this.ListenerRun));
listener.Start();
m_writer.WriteLine(m_user);
m_writer.Flush();
m_writer.WriteLine("NICK " + m_nick);
m_writer.Flush();
m_writer.WriteLine("JOIN " + m_channel);
m_writer.Flush();
m_log.Verbose("IRC", "Connection fully established");
m_connected = true;
} catch (Exception e) {
Console.WriteLine(e.ToString());
}
return m_connected;
}
public bool Enabled
{
get { return m_enabled; }
}
public bool Connected
{
get { return m_connected; }
}
public void PrivMsg(string from, string region, string msg) {
try {
m_writer.WriteLine("PRIVMSG {0} :<{1} in {2}>: {3}", m_channel, from, region, msg);
m_writer.Flush();
} catch (IOException) {
m_log.Error("IRC","Disconnected from IRC server.");
listener.Abort();
pingSender.Abort();
m_connected = false;
}
}
public void PingRun()
{
while (true)
{
m_writer.WriteLine("PING :" + m_server);
m_writer.Flush();
Thread.Sleep(15000);
}
}
public void ListenerRun()
{
string inputLine;
LLVector3 pos = new LLVector3(128, 128, 20);
while (true)
{
while ((inputLine = m_reader.ReadLine()) != null)
{
Console.WriteLine(inputLine);
if (inputLine.Contains(m_channel))
{
string mess = inputLine.Substring(inputLine.IndexOf(m_channel));
foreach (Scene m_scene in m_scenes)
{
m_scene.ForEachScenePresence(delegate(ScenePresence avatar)
{
if (!avatar.IsChildAgent)
{
avatar.ControllingClient.SendChatMessage(
Helpers.StringToField(mess), 255, pos, "IRC:",
LLUUID.Zero);
}
});
}
}
}
Thread.Sleep(50);
}
}
public void Close() {
listener.Abort();
pingSender.Abort();
m_writer.Close();
m_reader.Close();
m_tcp.Close();
}
}
} }

View File

@ -370,7 +370,7 @@ namespace OpenSim.Region.Environment.Scenes
phyScene.SetTerrain(Terrain.GetHeights1D()); phyScene.SetTerrain(Terrain.GetHeights1D());
} }
storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD(),RegionInfo.RegionID); storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD());
float[] terData = Terrain.GetHeights1D(); float[] terData = Terrain.GetHeights1D();
@ -466,7 +466,7 @@ namespace OpenSim.Region.Environment.Scenes
{ {
try try
{ {
double[,] map = storageManager.DataStore.LoadTerrain(RegionInfo.RegionID); double[,] map = storageManager.DataStore.LoadTerrain();
if (map == null) if (map == null)
{ {
if (string.IsNullOrEmpty(m_regInfo.estateSettings.terrainFile)) if (string.IsNullOrEmpty(m_regInfo.estateSettings.terrainFile))
@ -474,7 +474,7 @@ namespace OpenSim.Region.Environment.Scenes
MainLog.Instance.Verbose("TERRAIN", "No default terrain. Generating a new terrain."); MainLog.Instance.Verbose("TERRAIN", "No default terrain. Generating a new terrain.");
Terrain.HillsGenerator(); Terrain.HillsGenerator();
storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD(),RegionInfo.RegionID); storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD());
} }
else else
{ {
@ -488,7 +488,7 @@ namespace OpenSim.Region.Environment.Scenes
MainLog.Instance.Verbose("TERRAIN", "No terrain found in database or default. Generating a new terrain."); MainLog.Instance.Verbose("TERRAIN", "No terrain found in database or default. Generating a new terrain.");
Terrain.HillsGenerator(); Terrain.HillsGenerator();
} }
storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD(), RegionInfo.RegionID); storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD());
} }
} }
else else

View File

@ -69,8 +69,8 @@ namespace OpenSim.Region.ExtensionsScriptModule
} }
public void Initialise(Scene scene, IConfigSource config) public void Initialise(Scene scene, IConfigSource config)
{ {
OpenSim.Framework.Console.MainLog.Instance.Verbose("SCRIPTMODULE", "Initialising Extensions Scripting Module"); System.Console.WriteLine("Initialising Extensions Scripting Module");
m_scene = scene; m_scene = scene;
m_scene.RegisterModuleInterface<IExtensionScriptModule>(this); m_scene.RegisterModuleInterface<IExtensionScriptModule>(this);

View File

@ -93,7 +93,7 @@ namespace OpenSim.Region.Physics.Manager
IPhysicsPlugin plug = (IPhysicsPlugin)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); IPhysicsPlugin plug = (IPhysicsPlugin)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
plug.Init(); plug.Init();
this._plugins.Add(plug.GetName(),plug); this._plugins.Add(plug.GetName(),plug);
OpenSim.Framework.Console.MainLog.Instance.Verbose("PHYSICS","Added physics engine: " + plug.GetName()); Console.WriteLine("added physics engine: " + plug.GetName());
} }

View File

@ -43,12 +43,10 @@ namespace OpenSim.DataStore.MonoSqlite
{ {
private const string primSelect = "select * from prims"; private const string primSelect = "select * from prims";
private const string shapeSelect = "select * from primshapes"; private const string shapeSelect = "select * from primshapes";
private const string terrainSelect = "select * from terrain";
private DataSet ds; private DataSet ds;
private SqliteDataAdapter primDa; private SqliteDataAdapter primDa;
private SqliteDataAdapter shapeDa; private SqliteDataAdapter shapeDa;
private SqliteDataAdapter terrainDa;
/*********************************************************************** /***********************************************************************
* *
@ -72,8 +70,6 @@ namespace OpenSim.DataStore.MonoSqlite
shapeDa = new SqliteDataAdapter(shapeSelectCmd); shapeDa = new SqliteDataAdapter(shapeSelectCmd);
// SqliteCommandBuilder shapeCb = new SqliteCommandBuilder(shapeDa); // SqliteCommandBuilder shapeCb = new SqliteCommandBuilder(shapeDa);
SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, conn);
terrainDa = new SqliteDataAdapter(terrainSelectCmd);
// We fill the data set, now we've got copies in memory for the information // We fill the data set, now we've got copies in memory for the information
// TODO: see if the linkage actually holds. // TODO: see if the linkage actually holds.
@ -87,10 +83,6 @@ namespace OpenSim.DataStore.MonoSqlite
ds.Tables.Add(createShapeTable()); ds.Tables.Add(createShapeTable());
setupShapeCommands(shapeDa, conn); setupShapeCommands(shapeDa, conn);
ds.Tables.Add(createTerrainTable());
setupTerrainCommands(terrainDa, conn);
terrainDa.Fill(ds.Tables["terrain"]);
// WORKAROUND: This is a work around for sqlite on // WORKAROUND: This is a work around for sqlite on
// windows, which gets really unhappy with blob columns // windows, which gets really unhappy with blob columns
@ -218,57 +210,14 @@ namespace OpenSim.DataStore.MonoSqlite
} }
public void StoreTerrain(double[,] ter, LLUUID regionID) public void StoreTerrain(double[,] ter)
{ {
int revision = OpenSim.Framework.Utilities.Util.UnixTimeSinceEpoch();
MainLog.Instance.Verbose("DATASTORE", "Storing terrain revision r" + revision.ToString());
DataTable terrain = ds.Tables["terrain"];
DataRow newrow = terrain.NewRow();
fillTerrainRow(newrow, regionID, revision, ter);
terrain.Rows.Add(newrow);
Commit();
} }
public double[,] LoadTerrain(LLUUID regionID) public double[,] LoadTerrain()
{ {
double[,] terret = new double[256, 256]; return null;
terret.Initialize();
DataTable terrain = ds.Tables["terrain"];
DataRow[] rows = terrain.Select("RegionUUID = '" + regionID.ToString() + "'","Revision DESC");
int rev = 0;
if (rows.Length > 0)
{
DataRow row = rows[0];
byte[] heightmap = (byte[])row["Heightfield"];
for (int x = 0; x < 256; x++)
{
for (int y = 0; y < 256; y++)
{
terret[x, y] = BitConverter.ToDouble(heightmap, ((x * 256) + y) * 8);
}
}
rev = (int)row["Revision"];
}
else
{
MainLog.Instance.Verbose("DATASTORE", "No terrain found for region");
return null;
}
MainLog.Instance.Verbose("DATASTORE", "Loaded terrain revision r" + rev.ToString());
return terret;
} }
public void RemoveLandObject(uint id) public void RemoveLandObject(uint id)
@ -291,7 +240,6 @@ namespace OpenSim.DataStore.MonoSqlite
lock (ds) { lock (ds) {
primDa.Update(ds, "prims"); primDa.Update(ds, "prims");
shapeDa.Update(ds, "primshapes"); shapeDa.Update(ds, "primshapes");
terrainDa.Update(ds, "terrain");
ds.AcceptChanges(); ds.AcceptChanges();
} }
} }
@ -315,22 +263,6 @@ namespace OpenSim.DataStore.MonoSqlite
dt.Columns.Add(col); dt.Columns.Add(col);
} }
private DataTable createTerrainTable()
{
DataTable terrain = new DataTable("terrain");
createCol(terrain, "RegionUUID", typeof(System.String));
createCol(terrain, "Revision", typeof(System.Int32));
createCol(terrain, "Heightfield", typeof(System.Byte[]));
/* // Attempting to work out requirements to get SQLite to actually *save* the data.
createCol(terrain, "PrIndex", typeof(System.String));
terrain.PrimaryKey = new DataColumn[] { terrain.Columns["PrIndex"] };
*/
return terrain;
}
private DataTable createPrimTable() private DataTable createPrimTable()
{ {
DataTable prims = new DataTable("prims"); DataTable prims = new DataTable("prims");
@ -499,22 +431,6 @@ namespace OpenSim.DataStore.MonoSqlite
return prim; return prim;
} }
private void fillTerrainRow(DataRow row, LLUUID regionUUID, int rev, double[,] val)
{
row["RegionUUID"] = regionUUID;
row["Revision"] = rev;
System.IO.MemoryStream str = new System.IO.MemoryStream(65536 * sizeof(double));
System.IO.BinaryWriter bw = new System.IO.BinaryWriter(str);
// TODO: COMPATIBILITY - Add byte-order conversions
for (int x = 0; x < 256; x++)
for (int y = 0; y < 256; y++)
bw.Write(val[x, y]);
row["Heightfield"] = str.ToArray();
}
private void fillPrimRow(DataRow row, SceneObjectPart prim, LLUUID sceneGroupID, LLUUID regionUUID) private void fillPrimRow(DataRow row, SceneObjectPart prim, LLUUID sceneGroupID, LLUUID regionUUID)
{ {
row["UUID"] = prim.UUID; row["UUID"] = prim.UUID;
@ -776,7 +692,7 @@ namespace OpenSim.DataStore.MonoSqlite
subsql += ",\n"; subsql += ",\n";
} }
subsql += col.ColumnName + " " + sqliteType(col.DataType); subsql += col.ColumnName + " " + sqliteType(col.DataType);
if (dt.PrimaryKey.Length > 0 && col == dt.PrimaryKey[0]) if (col == dt.PrimaryKey[0])
{ {
subsql += " primary key"; subsql += " primary key";
} }
@ -830,12 +746,6 @@ namespace OpenSim.DataStore.MonoSqlite
da.DeleteCommand = delete; da.DeleteCommand = delete;
} }
private void setupTerrainCommands(SqliteDataAdapter da, SqliteConnection conn)
{
da.InsertCommand = createInsertCommand("terrain", ds.Tables["terrain"]);
da.InsertCommand.Connection = conn;
}
private void setupShapeCommands(SqliteDataAdapter da, SqliteConnection conn) private void setupShapeCommands(SqliteDataAdapter da, SqliteConnection conn)
{ {
da.InsertCommand = createInsertCommand("primshapes", ds.Tables["primshapes"]); da.InsertCommand = createInsertCommand("primshapes", ds.Tables["primshapes"]);
@ -854,15 +764,12 @@ namespace OpenSim.DataStore.MonoSqlite
{ {
string createPrims = defineTable(createPrimTable()); string createPrims = defineTable(createPrimTable());
string createShapes = defineTable(createShapeTable()); string createShapes = defineTable(createShapeTable());
string createTerrain = defineTable(createTerrainTable());
SqliteCommand pcmd = new SqliteCommand(createPrims, conn); SqliteCommand pcmd = new SqliteCommand(createPrims, conn);
SqliteCommand scmd = new SqliteCommand(createShapes, conn); SqliteCommand scmd = new SqliteCommand(createShapes, conn);
SqliteCommand tcmd = new SqliteCommand(createTerrain, conn);
conn.Open(); conn.Open();
pcmd.ExecuteNonQuery(); pcmd.ExecuteNonQuery();
scmd.ExecuteNonQuery(); scmd.ExecuteNonQuery();
tcmd.ExecuteNonQuery();
conn.Close(); conn.Close();
} }
@ -872,15 +779,12 @@ namespace OpenSim.DataStore.MonoSqlite
SqliteDataAdapter pDa = new SqliteDataAdapter(primSelectCmd); SqliteDataAdapter pDa = new SqliteDataAdapter(primSelectCmd);
SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, conn); SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, conn);
SqliteDataAdapter sDa = new SqliteDataAdapter(shapeSelectCmd); SqliteDataAdapter sDa = new SqliteDataAdapter(shapeSelectCmd);
SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, conn);
SqliteDataAdapter tDa = new SqliteDataAdapter(terrainSelectCmd);
DataSet tmpDS = new DataSet(); DataSet tmpDS = new DataSet();
try try
{ {
pDa.Fill(tmpDS, "prims"); pDa.Fill(tmpDS, "prims");
sDa.Fill(tmpDS, "primshapes"); sDa.Fill(tmpDS, "primshapes");
tDa.Fill(tmpDS, "terrain");
} }
catch (Mono.Data.SqliteClient.SqliteSyntaxException) catch (Mono.Data.SqliteClient.SqliteSyntaxException)
{ {
@ -890,7 +794,6 @@ namespace OpenSim.DataStore.MonoSqlite
pDa.Fill(tmpDS, "prims"); pDa.Fill(tmpDS, "prims");
sDa.Fill(tmpDS, "primshapes"); sDa.Fill(tmpDS, "primshapes");
tDa.Fill(tmpDS, "terrain");
foreach (DataColumn col in createPrimTable().Columns) foreach (DataColumn col in createPrimTable().Columns)
{ {
@ -908,14 +811,6 @@ namespace OpenSim.DataStore.MonoSqlite
return false; return false;
} }
} }
foreach (DataColumn col in createTerrainTable().Columns)
{
if (!tmpDS.Tables["terrain"].Columns.Contains(col.ColumnName))
{
MainLog.Instance.Verbose("DATASTORE", "Missing require column:" + col.ColumnName);
return false;
}
}
return true; return true;
} }
@ -939,14 +834,6 @@ namespace OpenSim.DataStore.MonoSqlite
{ {
return DbType.Double; return DbType.Double;
} }
else if (type == typeof(System.Byte))
{
return DbType.Byte;
}
else if (type == typeof(System.Double))
{
return DbType.Double;
}
else if (type == typeof(System.Byte[])) else if (type == typeof(System.Byte[]))
{ {
return DbType.Binary; return DbType.Binary;

View File

@ -61,12 +61,12 @@ namespace OpenSim.DataStore.NullStorage
return new List<SceneObjectGroup>(); return new List<SceneObjectGroup>();
} }
public void StoreTerrain(double[,] ter, LLUUID regionID) public void StoreTerrain(double[,] ter)
{ {
} }
public double[,] LoadTerrain(LLUUID regionID) public double[,] LoadTerrain()
{ {
return null; return null;
} }