Replace your public MyGuild LoadGuild(int GuildId, bool isReloading) with the following
Code:
public MyGuild LoadGuild(int GuildId, bool isReloading) {
using (IQueryAdapter adapter = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
{
adapter.setQuery("SELECT * FROM groups WHERE Id = '" + GuildId + "' LIMIT 1");
DataRow row = adapter.getRow();
if (row == null)
{
return null;
}
List<int> guildstates = new List<int>();
foreach (string str in row["GuildStates"].ToString().Split(new char[] { ';' }))
{
try
{
if (!String.IsNullOrEmpty(str))
{
guildstates.Add(int.Parse(str));
}
}
catch
{
Console.WriteLine("Failed to add guild states for guild ID: " + GuildId);
}
}
List<int> petitions = new List<int>();
foreach (string str2 in row["Petitions"].ToString().Split(new char[] { ';' }))
{
try
{
int pet = int.Parse(str2);
if (!String.IsNullOrEmpty(str2))
{
petitions.Add(pet);
}
}
catch
{
Console.WriteLine("Failed to add guild petitions for guild ID: " + GuildId);
}
}
Dictionary<int, int> guildranks = new Dictionary<int, int>();
Dictionary<int, string> members = new Dictionary<int, string>();
adapter.setQuery("SELECT * FROM user_groups WHERE GroupId = '" + GuildId + "'");
DataTable table = adapter.getTable();
foreach (DataRow row2 in table.Rows)
{
members.Add((int)row2["UserId"],(string)row2["GroupDate"]);
guildranks.Add((int)row2["UserId"], (int)row2["Rank"]);
}
MyGuild g = new MyGuild(GuildId, ButterflyEnvironment.FilterInjectionChars(row["Name"].ToString()), (int)row["OwnerId"], row["OwnerName"].ToString(), ButterflyEnvironment.FilterInjectionChars(row["Description"].ToString()), (int)row["RoomId"], row["Image"].ToString(), (int)row["CustomColor1"], (int)row["CustomColor2"], (int)row["GuildBase"], (int)row["GuildBaseColor"], guildstates, row["HtmlColor1"].ToString(), row["HtmlColor2"].ToString(), row["DateCreated"].ToString(), members, petitions, (int)row["Typee"], (int)row["RightsType"], guildranks);
this.QueueAddGuild(g);
return g;
}
}
Keep in mind that the guild is very bad coded. I just managed to make it stable. Still, it's querys uses lots of memory and CPU. Thus, they might get a little out of control for a high number of users in a group.