using System; using System.Data; using System.Text; using System.Collections; using System.Threading; using Ion.Storage; using Holo.Virtual.Users; namespace Holo.Managers { public static class rankManager { private static Hashtable userRanks; public static void Init(bool Update) { userRanks = new Hashtable(); for (byte b = 1; b <= 7; b++) userRanks.Add(b, new userRank(b)); if (Update) Thread.CurrentThread.Abort(); } public static string fuseRights(virtualUser EndUser) { string[] fuseRights = ((userRank)userRanks[EndUser._Rank]).fuseRights; StringBuilder strBuilder = new StringBuilder(); for (int i = 0; i < fuseRights.Length; i++) strBuilder.Append(fuseRights[i] + Convert.ToChar(2)); foreach (string fuseright in EndUser._fuserights) strBuilder.Append(fuseright + Convert.ToChar(2)); return strBuilder.ToString(); } public static bool containsRight(virtualUser EndUser, string fuseRight, int data) { userRank objRank = ((userRank)userRanks[EndUser._Rank]); for (int i = 0; i < objRank.fuseRights.Length; i++) if (objRank.fuseRights[i] == fuseRight) return true; return EndUser._fuserights.Contains(fuseRight); } public static bool containsRankRight(byte rankID, string fuseRight) { userRank objRank = ((userRank)userRanks[rankID]); for (int i = 0; i < objRank.fuseRights.Length; i++) if (objRank.fuseRights[i] == fuseRight) return true; return false; } private struct userRank { internal string[] fuseRights; internal userRank(byte rankID) { DataColumn dCol; using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient()) { dCol = dbClient.getColumn("SELECT fuseright FROM system_fuserights WHERE minrank <= " + rankID); } fuseRights = dataHandling.dColToArray(dCol); } } private struct userOwnRank { internal string[] fuseRights; internal userOwnRank(int UserID) { DataColumn dCol; using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient()) { dCol = dbClient.getColumn("SELECT fuseright FROM users_fuserights WHERE userid = '" + UserID + "'"); } fuseRights = dataHandling.dColToArray(dCol); } } public struct gameRank { internal int minPoints; internal int maxPoints; internal string Title; internal gameRank(string Title, int minPoints, int maxPoints) { this.Title = Title; this.minPoints = minPoints; this.maxPoints = maxPoints; } } } }