From 9f6b3e2357e76b9b85b447da189b4bf4163edd3c Mon Sep 17 00:00:00 2001
From: Teravus Ovares
Date: Tue, 13 Nov 2007 22:48:19 +0000
Subject: * Added AvatarPicker in Standalone mode. Works for finding avatar
to ban, manually trying to add a friend (with the add button) or useful to
those who are curious which usernames have visited your standalone sim.
Important for future development :D. * Grid mode always returns 0 results
until the Grid Communications portion is done.
---
OpenSim/Framework/Data.MySQL/MySQLGridData.cs | 85 +++++++++++++++++++++++++++
OpenSim/Framework/Data.MySQL/MySQLUserData.cs | 81 ++++++++++++++++++++++++-
2 files changed, 165 insertions(+), 1 deletion(-)
(limited to 'OpenSim/Framework/Data.MySQL')
diff --git a/OpenSim/Framework/Data.MySQL/MySQLGridData.cs b/OpenSim/Framework/Data.MySQL/MySQLGridData.cs
index fdfc61c..930b3f4 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLGridData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLGridData.cs
@@ -169,6 +169,91 @@ namespace OpenSim.Framework.Data.MySQL
return null;
}
}
+ ///
+ /// // Returns a list of avatar and UUIDs that match the query
+ ///
+
+ public List GeneratePickerResults(LLUUID queryID, string query)
+ {
+ List returnlist = new List();
+ string[] querysplit;
+ querysplit = query.Split(' ');
+ if (querysplit.Length == 2)
+ {
+ try
+ {
+ lock (database)
+ {
+ Dictionary param = new Dictionary();
+ param["?first"] = querysplit[0];
+ param["?second"] = querysplit[1];
+
+ IDbCommand result =
+ database.Query("SELECT UUID,username,surname FROM users WHERE username = ?first AND lastname = ?second", param);
+ IDataReader reader = result.ExecuteReader();
+
+
+ while (reader.Read())
+ {
+ AvatarPickerAvatar user = new AvatarPickerAvatar();
+ user.AvatarID = new LLUUID((string)reader["UUID"]);
+ user.firstName = (string)reader["username"];
+ user.lastName = (string)reader["surname"];
+ returnlist.Add(user);
+
+ }
+ reader.Close();
+ result.Dispose();
+ }
+ }
+ catch (Exception e)
+ {
+ database.Reconnect();
+ MainLog.Instance.Error(e.ToString());
+ return returnlist;
+ }
+
+
+
+ }
+ else if (querysplit.Length == 1)
+ {
+
+ try
+ {
+ lock (database)
+ {
+ Dictionary param = new Dictionary();
+ param["?first"] = querysplit[0];
+ param["?second"] = querysplit[1];
+
+ IDbCommand result =
+ database.Query("SELECT UUID,username,surname FROM users WHERE username = ?first OR lastname = ?second", param);
+ IDataReader reader = result.ExecuteReader();
+
+
+ while (reader.Read())
+ {
+ AvatarPickerAvatar user = new AvatarPickerAvatar();
+ user.AvatarID = new LLUUID((string)reader["UUID"]);
+ user.firstName = (string)reader["username"];
+ user.lastName = (string)reader["surname"];
+ returnlist.Add(user);
+
+ }
+ reader.Close();
+ result.Dispose();
+ }
+ }
+ catch (Exception e)
+ {
+ database.Reconnect();
+ MainLog.Instance.Error(e.ToString());
+ return returnlist;
+ }
+ }
+ return returnlist;
+ }
///
/// Returns a sim profile from it's UUID
diff --git a/OpenSim/Framework/Data.MySQL/MySQLUserData.cs b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs
index 8846650..3ae1fba 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLUserData.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs
@@ -97,7 +97,6 @@ namespace OpenSim.Framework.Data.MySQL
reader.Close();
result.Dispose();
-
return row;
}
}
@@ -108,7 +107,87 @@ namespace OpenSim.Framework.Data.MySQL
return null;
}
}
+ public List GeneratePickerResults(LLUUID queryID, string query)
+ {
+ List returnlist = new List();
+ string[] querysplit;
+ querysplit = query.Split(' ');
+ if (querysplit.Length == 2)
+ {
+ try
+ {
+ lock (database)
+ {
+ Dictionary param = new Dictionary();
+ param["?first"] = querysplit[0];
+ param["?second"] = querysplit[1];
+
+ IDbCommand result =
+ database.Query("SELECT UUID,username,surname FROM users WHERE username = ?first AND lastname = ?second", param);
+ IDataReader reader = result.ExecuteReader();
+
+
+ while (reader.Read())
+ {
+ OpenSim.Framework.AvatarPickerAvatar user = new OpenSim.Framework.AvatarPickerAvatar();
+ user.AvatarID = new LLUUID((string)reader["UUID"]);
+ user.firstName = (string)reader["username"];
+ user.lastName = (string)reader["surname"];
+ returnlist.Add(user);
+
+ }
+ reader.Close();
+ result.Dispose();
+ }
+ }
+ catch (Exception e)
+ {
+ database.Reconnect();
+ MainLog.Instance.Error(e.ToString());
+ return returnlist;
+ }
+
+
+ }
+ else if (querysplit.Length == 1)
+ {
+
+ try
+ {
+ lock (database)
+ {
+ Dictionary param = new Dictionary();
+ param["?first"] = querysplit[0];
+ param["?second"] = querysplit[1];
+
+ IDbCommand result =
+ database.Query("SELECT UUID,username,surname FROM users WHERE username = ?first OR lastname = ?second", param);
+ IDataReader reader = result.ExecuteReader();
+
+
+ while (reader.Read())
+ {
+ OpenSim.Framework.AvatarPickerAvatar user = new OpenSim.Framework.AvatarPickerAvatar();
+ user.AvatarID = new LLUUID((string)reader["UUID"]);
+ user.firstName = (string)reader["username"];
+ user.lastName = (string)reader["surname"];
+ returnlist.Add(user);
+
+ }
+ reader.Close();
+ result.Dispose();
+ }
+ }
+ catch (Exception e)
+ {
+ database.Reconnect();
+ MainLog.Instance.Error(e.ToString());
+ return returnlist;
+ }
+ }
+ return returnlist;
+ }
///
/// Searches the database for a specified user profile by UUID
///
--
cgit v1.1