コード例 #1
0
ファイル: bd.cs プロジェクト: obfuscators-2019/VirindiTank
 public void c()
 {
     if ((this.f == this.d) && (this.g == this.e))
     {
         this.h++;
         if (this.h > 80)
         {
             this.a[this.d] = true;
             this.a[this.e] = true;
             PluginCore.e(string.Format("Abandoned trying to stack/cram items {0}, {1} (Bugged item and/or pack)", this.d, this.e));
             return;
         }
     }
     else
     {
         this.f = this.d;
         this.g = this.e;
         this.h = 0;
     }
     if (this.c)
     {
         PluginCore.cq.ax.get_Actions().MoveItem(this.d, this.e);
     }
     else
     {
         PluginCore.cq.ax.get_Actions().MoveItem(this.d, this.e, 0, true);
     }
 }
コード例 #2
0
ファイル: aj.cs プロジェクト: obfuscators-2019/VirindiTank
    public aj.c b(cv A_0)
    {
        aj.a key = new aj.a(A_0);
        int  num = PluginCore.cq.l.c["MyMonsters"].c();

        for (int i = 0; i < num; i++)
        {
            string str = k.b(PluginCore.cq.l.c["MyMonsters"].a(i)[0]);
            if (str != "<DEFAULT>")
            {
                if (this.c.ContainsKey(key) && this.c[key].ContainsKey(i))
                {
                    if (this.c[key][i])
                    {
                        PluginCore.e(string.Format("Entry \"{0}\" match! (Result cached)", str));
                        return(this.c(str));
                    }
                    PluginCore.e(string.Format("Entry \"{0}\" does not match. (Result cached)", str));
                }
                else
                {
                    bool flag;
                    if (dk.a(key, str, A_0, out flag))
                    {
                        PluginCore.e(string.Format("Entry \"{0}\" match!", str));
                        return(this.c(str));
                    }
                    PluginCore.e(string.Format("Entry \"{0}\" does not match.", str));
                }
            }
        }
        PluginCore.e("No rules match selected monster, using default entry.");
        return(this.d());
    }
コード例 #3
0
 public void b(int A_0)
 {
     if (this.b.ContainsKey(A_0))
     {
         Dictionary <int, int> dictionary;
         int num2;
         (dictionary = this.b)[num2 = A_0] = dictionary[num2] + 1;
     }
     else
     {
         this.b[A_0] = 1;
     }
     if (this.b[A_0] > er.i("BlacklistMonsterAttemptCount"))
     {
         if (PluginCore.cq.n.f.ContainsKey(A_0))
         {
             string str = "???";
             cv     cv  = PluginCore.cq.p.d(A_0);
             if (cv != null)
             {
                 str = cv.g();
             }
             int num = er.i("BlacklistMonsterTimeoutSeconds");
             PluginCore.e("Blacklisting unhittable monster " + str + " (" + A_0.ToString() + ") for " + num.ToString() + " seconds.");
             PluginCore.cq.n.f[A_0].a(TimeSpan.FromSeconds((double)num));
         }
         this.b.Remove(A_0);
     }
 }
コード例 #4
0
 public void k()
 {
     PluginCore.cq.ay.w();
     if (string.IsNullOrEmpty(this.n))
     {
         this.k.b();
     }
     else
     {
         if (!File.Exists(Path.Combine(PluginCore.ci, this.n)))
         {
             this.k.b();
             this.k.a(this.n);
         }
         if (this.k.b(this.n))
         {
             PluginCore.e("Loaded nav ruleset.");
         }
         else
         {
             this.k.b();
             this.k.a(this.n);
             PluginCore.e("Failed to load nav ruleset.");
         }
     }
     PluginCore.cq.ay.ak();
     PluginCore.cq.n.c();
     PluginCore.cq.ay.l();
 }
コード例 #5
0
ファイル: q.cs プロジェクト: obfuscators-2019/VirindiTank
 private void a()
 {
     if ((er.j("DeleteGhostMonstersByHPTracker") && PluginCore.cq.n.b) && (PluginCore.cq.an.h() != 0))
     {
         cv cv = PluginCore.cq.p.d(PluginCore.cq.an.h());
         if (cv != null)
         {
             string str = cv.g();
             if (PluginCore.cq.x.e(str) > 0)
             {
                 TimeSpan span = (TimeSpan)(DateTimeOffset.Now - PluginCore.cq.an.g());
                 if (span.TotalSeconds >= er.i("GhostDeleteHPTrackerSeconds"))
                 {
                     TimeSpan span2 = (TimeSpan)(DateTimeOffset.Now - PluginCore.cq.an.e());
                     if (span2.TotalSeconds >= er.i("GhostDeleteHPTrackerSeconds"))
                     {
                         int num = PluginCore.cq.an.h();
                         cv  cv2 = PluginCore.cq.p.d(num);
                         if ((cv2 != null) && (cv2.c() == ObjectClass.Monster))
                         {
                             PluginCore.e("Deleting ghost monster " + cv2.g() + " (" + num.ToString() + ") due to HP tracker notification.");
                             dh.d(num);
                         }
                     }
                 }
             }
         }
     }
 }
コード例 #6
0
 public static void a(string A_0, k A_1)
 {
     string[] files = Directory.GetFiles(PluginCore.ci, "*.usd");
     foreach (string str in files)
     {
         string[] strArray2 = str.Split(new char[] { '\\' });
         string   str2      = strArray2[strArray2.Length - 1];
         if (str2 == PluginCore.cq.l.m)
         {
             er.b(A_0, A_1);
         }
         else
         {
             bf bf = new bf(str);
             v  v  = bf["Settings"].a(0, k.a(A_0));
             if (v == null)
             {
                 v v2 = new v(bf["Settings"]);
                 v2[0] = k.a(A_0);
                 v2[1] = A_1;
                 bf["Settings"].c(v2);
             }
             else
             {
                 v[1] = A_1;
             }
             bf.c(str);
         }
     }
     string[] strArray4 = new string[] { "Done saving setting ", A_0, " to all profiles. (Changed ", files.Length.ToString(), " profiles)" };
     PluginCore.e(string.Concat(strArray4));
 }
コード例 #7
0
 public void d()
 {
     if ((this.i != 0) && (this.j != this.i))
     {
         this.m = this.i;
         PluginCore.cq.ax.get_Actions().UseItem(this.i, 0);
         if (this.e.ContainsKey(this.i))
         {
             b5.a a = this.e[this.i];
             a.j++;
             if (a.j >= er.i("BlacklistCorpseOpenAttemptCount"))
             {
                 a.j = 0;
                 a.k = DateTimeOffset.Now;
                 cv     cv  = PluginCore.cq.p.d(this.i);
                 string str = "???";
                 if (cv != null)
                 {
                     str = cv.e();
                 }
                 PluginCore.e("Blacklisting unopenable corpse \"" + str + "\" for " + er.i("BlacklistCorpseOpenTimeoutSeconds").ToString() + " seconds.");
             }
         }
     }
 }
コード例 #8
0
ファイル: cc.cs プロジェクト: obfuscators-2019/VirindiTank
 public void e()
 {
     foreach (dy dy in this.c)
     {
         PluginCore.e("(*." + dy.b.a + ") " + dy.d);
     }
 }
コード例 #9
0
ファイル: bv.cs プロジェクト: obfuscators-2019/VirindiTank
    public void d()
    {
        this.b = false;
        int num = k.e(this.c["DBLastUpdateTime"].d()[0][1]);

        PluginCore.e("Checking for GameInfoDB update (DB age " + this.a((TimeSpan)(DateTimeOffset.UtcNow - a(num))) + ").");
        this.e.a("http://auth.virindi.net/plugins/gamedb/get2.php?date=" + num.ToString() + "&dbver=" + this.a(this.c).ToString(), new ea.b(this.a));
    }
コード例 #10
0
 protected override bool e()
 {
     if ((this.b <= DateTimeOffset.Now) && (PluginCore.cq.ax.get_Actions().get_BusyState() == 0))
     {
         PluginCore.e("Executing chat command \"" + this.a + "\"");
         dh.h(this.a);
         return(false);
     }
     return(true);
 }
コード例 #11
0
 private bool a(string A_0)
 {
     this.h.a(A_0);
     if (this.h.b(A_0))
     {
         PluginCore.e("Tell from " + A_0 + " ignored due to spam.");
         return(true);
     }
     return(false);
 }
コード例 #12
0
    public static void a(string A_0)
    {
        string str;

        if (((str = A_0) != null) && (str == "idqueue"))
        {
            a();
        }
        else
        {
            PluginCore.e("Usage: \"/vt explain [command]\". Available commands: idqueue");
        }
    }
コード例 #13
0
ファイル: fm.cs プロジェクト: obfuscators-2019/VirindiTank
 public bool b()
 {
     if ([email protected] >= 0x2710)
     {
         PluginCore.e("Meta Error: Call stack overflow (recursive call loop?).");
         PluginCore.e("Disabling Meta.");
         er.b("EnableMeta", k.a(false));
         return(false);
     }
     [email protected](this.b);
     [email protected](this.a);
     return(false);
 }
コード例 #14
0
ファイル: c7.cs プロジェクト: obfuscators-2019/VirindiTank
    public bool a()
    {
        if ([email protected] == 0)
        {
            PluginCore.e("Meta Error: Call stack underflow, cannot return.");
            PluginCore.e("Disabling Meta.");
            er.b("EnableMeta", k.a(false));
            return(false);
        }
        string str = [email protected]();

        [email protected](str);
        return(false);
    }
コード例 #15
0
 public void o()
 {
     if ((PluginCore.cq.u.b(b0.a.a) > 0) && this.r)
     {
         PluginCore.e("Set default profile: Inventory scan canceled.");
     }
     this.r = false;
     PluginCore.cq.u.a(b0.a.a);
     this.c.d(this.e);
     this.a();
     PluginCore.e("Loaded default settings.");
     if (PluginCore.cq.p.a("Splitting Tool").Count > 0)
     {
         PluginCore.e("Set default profile: Splitting Tool in inventory. Assuming you want to split old component peas.");
         PluginCore.PC.t();
     }
     this.f();
 }
コード例 #16
0
ファイル: fc.cs プロジェクト: obfuscators-2019/VirindiTank
    private void a(int A_0)
    {
        string str = "<UNKNOWN>";

        try
        {
            str = PluginCore.cq.p.d(A_0).e();
        }
        catch
        {
        }
        PluginCore.e("Abandoned trying to combine item " + str + " (Bugged unsalvageable salvage bag)");
        this.i.Add(A_0);
        if (this.h.ContainsKey(A_0))
        {
            this.h.Remove(A_0);
        }
    }
コード例 #17
0
 public void StartMacro()
 {
     if (!PluginCore.ck)
     {
         a5.a(eChatType.Errors, "The macro encountered an exception on startup. Cannot continue.");
     }
     else if (PluginCore.cg == 0)
     {
         PluginCore.cq.c.StopMacro();
         a5.a(eChatType.Errors, "Please wait until you are fully logged in.");
     }
     else if (!PluginCore.cq.ay.cl)
     {
         PluginCore.cq.c.StopMacro();
         a5.a(eChatType.Errors, "Please wait until you are fully logged in.");
     }
     else
     {
         this.k            = true;
         PluginCore.cq.n.b = true;
         PluginCore.cq.n.i.Clear();
         PluginCore.cq.n.a = false;
         PluginCore.cq.n.r = 0;
         PluginCore.cq.g.d();
         PluginCore.cq.n.c();
         PluginCore.cq.n.n.a();
         a2.e();
         [email protected] = DateTimeOffset.Now;
         PluginCore.cq.ay.aq();
         PluginCore.cq.ay.v.Checked = true;
         this.f.a(0x125);
         this.f.d();
         ai.a();
         this.k = false;
         PluginCore.e("Macro started.");
         foreach (ILogicRule rule in this.m)
         {
             rule.Running = false;
         }
         PluginCore.cq.aj.g();
         this.TryPokeMacro();
     }
 }
コード例 #18
0
    protected override bool e()
    {
        switch (this.f)
        {
        case c2.a.a:
            if (this.e == PluginCore.ch)
            {
                if (!PluginCore.cq.n.n.b(ActionLockType.ItemUse))
                {
                    int num = this.g();
                    if (num == 0)
                    {
                        PluginCore.e("Warning: cannot find portal object " + this.a + "! Continuing route at next point.");
                        return(false);
                    }
                    this.d = PluginCore.cq.p.d(PluginCore.cq.p.f()).b(PluginCore.cq.ax.get_Actions());
                    PluginCore.cq.n.n.a(ActionLockType.ItemUse, TimeSpan.FromSeconds(3.0));
                    PluginCore.cq.ax.get_Actions().UseItem(num, 0);
                }
                return(true);
            }
            this.f = c2.a.b;
            return(true);

        case c2.a.b:
            if (PluginCore.ch < (this.e + 2L))
            {
                return(true);
            }
            if (PluginCore.cq.p.d(PluginCore.cq.p.f()).b(PluginCore.cq.ax.get_Actions()).a(this.d, true) <= 0.0625)
            {
                PluginCore.e("Warning: use portal route came out of portal space too close to the origin point. Trying again...");
                this.f = c2.a.a;
                this.e = PluginCore.ch;
                return(true);
            }
            return(false);
        }
        return(false);
    }
コード例 #19
0
ファイル: cz.cs プロジェクト: obfuscators-2019/VirindiTank
    public bool d()
    {
        TimeSpan span = (TimeSpan)(DateTimeOffset.Now - this.i);

        if ((span > TimeSpan.FromSeconds(er.h("CorpseItemAppearanceTimeoutSeconds"))) && (this.h > 0))
        {
            PluginCore.e("Abandoned attempting to loot corpse. Item appearance timeout occurred. (Empty corpse bug)");
            this.h = 0;
        }
        if (this.h > 0)
        {
            return(false);
        }
        bool flag = false;

        foreach (int num in this.c.Keys)
        {
            if (this.c[num].c && !this.c[num].d)
            {
                flag = true;
                break;
            }
        }
        if (flag && (span > TimeSpan.FromSeconds(er.h("CorpseItemIDTimeoutSeconds"))))
        {
            PluginCore.e("Abandoned attempting to loot corpse. Unable to recieve ID for all items.");
            flag = false;
        }
        if (flag)
        {
            return(false);
        }
        if (this.d.Count > 0)
        {
            return(false);
        }
        return(true);
    }
コード例 #20
0
ファイル: q.cs プロジェクト: obfuscators-2019/VirindiTank
 public void b(int A_0)
 {
     if (this.b.ContainsKey(A_0))
     {
         Dictionary <int, int> dictionary;
         int num;
         (dictionary = this.b)[num = A_0] = dictionary[num] + 1;
     }
     else
     {
         this.b[A_0] = 1;
     }
     if (this.b[A_0] > er.i("GhostMonsterSpellAttemptCount"))
     {
         cv cv = PluginCore.cq.p.d(A_0);
         if (((cv != null) && (cv.c() == ObjectClass.Monster)) && er.j("DeleteGhostMonsters"))
         {
             PluginCore.e("Deleting ghost monster " + cv.g() + " (" + A_0.ToString() + ")");
             dh.d(A_0);
         }
         this.b.Remove(A_0);
     }
 }
コード例 #21
0
 private static void a()
 {
     b0.c c = new b0.c(PluginCore.cq.u);
     PluginCore.e("IDQueue overall category counts:");
     foreach (KeyValuePair <b0.a, int> pair in c.d)
     {
         PluginCore.e(string.Format("{0}: {1}", (int)pair.Key, pair.Value));
     }
     PluginCore.e("IDQueue entries:");
     foreach (int num in c.a)
     {
         string str = "???";
         if (PluginCore.cq.p.d(num) != null)
         {
             str = PluginCore.cq.p.d(num).g();
         }
         StringBuilder builder = new StringBuilder();
         builder.AppendFormat("{0} ({1})", str, num);
         builder.Append(": ");
         if (c.c.ContainsKey(num))
         {
             builder.AppendFormat("Category {0}, ", (int)c.c[num]);
         }
         if (c.b.ContainsKey(num) && (c.b[num].Count > 0))
         {
             builder.Append("[Callback], ");
         }
         builder.AppendFormat("IsGoodObj {0}, ", dh.b(num));
         if (dh.b(num))
         {
             builder.AppendFormat("ContainerZero {0}, ", PluginCore.cq.aw.get_WorldFilter().get_Item(num).get_Container() == 0);
             builder.AppendFormat("InRange {0}, ", dh.a(num, PluginCore.cg, true) <= PluginCore.cq.n.p);
         }
         a5.a(eChatType.CommandLine, builder.ToString());
     }
 }
コード例 #22
0
ファイル: fc.cs プロジェクト: obfuscators-2019/VirindiTank
 private bool f()
 {
     for (int i = this.b.Count - 1; i >= 0; i--)
     {
         int num2 = this.b[i];
         if (!PluginCore.cq.p.b(num2, PluginCore.cq.ax))
         {
             fc.a local1 = this.c[num2];
             local1.b++;
             if (this.c[num2].b > 0x19)
             {
                 this.c.Remove(num2);
                 this.b.RemoveAt(i);
                 PluginCore.e("Cannot salvage item " + num2.ToString() + " because it is no longer in the inventory.");
             }
         }
         else
         {
             fc.a local2 = this.c[num2];
             local2.a++;
             if (this.c[num2].a > 80)
             {
                 this.c.Remove(num2);
                 this.b.RemoveAt(i);
                 PluginCore.e("Cannot salvage item " + num2.ToString() + ", item may be bugged unsalvageable.");
             }
             else
             {
                 this.e = num2;
                 return(true);
             }
         }
     }
     this.e = 0;
     return(false);
 }
コード例 #23
0
 public void StopMacro()
 {
     try
     {
         foreach (ILogicRule rule in this.l)
         {
             rule.Running = false;
         }
         PluginCore.cq.n.b = false;
         PluginCore.cq.g.d();
         this.f.f();
         PluginCore.cq.ay.v.Checked = false;
         if (PluginCore.cq.n.c != 0)
         {
             PluginCore.cq.n.c = 0;
             PluginCore.PC.a(new MyList <int>(100));
         }
         PluginCore.cq.ay.aq();
         PluginCore.e("Macro stopped.");
     }
     catch
     {
     }
 }
コード例 #24
0
    public void q()
    {
        string str = "uTank2 SCF 1.06";
        int    num = 0;

        foreach (string str2 in Directory.GetFiles(PluginCore.ci, "*.uts"))
        {
            try
            {
                string[] strArray2 = str2.Split(new char[] { '\\' });
                string   str3      = strArray2[strArray2.Length - 1];
                string   str4      = str3.Split(new char[] { '.' })[0];
                this.c.d(this.e);
                this.a();
                StreamReader reader = new StreamReader(str2);
                if (reader.ReadLine() == str)
                {
                    er.a("EnableLooting", k.a(Convert.ToBoolean(reader.ReadLine())));
                    er.a("EnableNav", k.a(Convert.ToBoolean(reader.ReadLine())));
                    er.a("NavCloseStopRange", k.a(Convert.ToDouble(reader.ReadLine())));
                    er.a("NavFarStopRange", k.a(Convert.ToDouble(reader.ReadLine())));
                    er.a("SpellDiffExcessThreshold-Hunt", k.a(Convert.ToInt32(reader.ReadLine())));
                    er.a("SpellDiffExcessThreshold-Buff", k.a(Convert.ToInt32(reader.ReadLine())));
                    er.a("ArrowheadFletchDiffExcessThreshold", k.a(Convert.ToInt32(reader.ReadLine())));
                    er.a("Recharge-Norm-HitP", k.a((int)Convert.ToSingle(reader.ReadLine())));
                    er.a("Recharge-Norm-Stam", k.a((int)Convert.ToSingle(reader.ReadLine())));
                    er.a("Recharge-Norm-Mana", k.a((int)Convert.ToSingle(reader.ReadLine())));
                    er.a("Recharge-NoTarg-HitP", k.a((int)Convert.ToSingle(reader.ReadLine())));
                    er.a("Recharge-NoTarg-Stam", k.a((int)Convert.ToSingle(reader.ReadLine())));
                    er.a("Recharge-NoTarg-Mana", k.a((int)Convert.ToSingle(reader.ReadLine())));
                    er.a("Recharge-Helper-HitP", k.a((int)Convert.ToSingle(reader.ReadLine())));
                    er.a("Recharge-Helper-Stam", k.a((int)Convert.ToSingle(reader.ReadLine())));
                    er.a("Recharge-Helper-Mana", k.a((int)Convert.ToSingle(reader.ReadLine())));
                    er.a("DoHelp", k.a(Convert.ToBoolean(reader.ReadLine())));
                    er.a("AttackDistance", k.a(Convert.ToDouble(reader.ReadLine())));
                    er.a("ApproachDistance", k.a(Convert.ToDouble(reader.ReadLine())));
                    er.a("RingDistance", k.a(Convert.ToDouble(reader.ReadLine())));
                    er.a("HelperDistanceHitP", k.a(Convert.ToDouble(reader.ReadLine())));
                    er.a("HelperDistanceStam", k.a(er.h("HelperDistanceHitP")));
                    er.a("HelperDistanceMana", k.a(er.h("HelperDistanceHitP")));
                    er.a("MinimumRingTargets", k.a(Convert.ToInt32(reader.ReadLine())));
                    er.a("CastDispelSelf", k.a(Convert.ToBoolean(reader.ReadLine())));
                    er.a("UseDispelItems", k.a(Convert.ToBoolean(reader.ReadLine())));
                    this.g.Clear();
                    int num2 = Convert.ToInt32(reader.ReadLine());
                    for (int i = 0; i < num2; i++)
                    {
                        string key  = reader.ReadLine();
                        int    num4 = Convert.ToInt32(reader.ReadLine());
                        this.g.Add(key, PluginCore.cq.e.b(num4));
                    }
                    this.h.Clear();
                    int num5 = Convert.ToInt32(reader.ReadLine());
                    for (int j = 0; j < num5; j++)
                    {
                        string str7 = reader.ReadLine();
                        int    num7 = Convert.ToInt32(reader.ReadLine());
                        this.h.Add(str7, (fz)num7);
                    }
                    PluginCore.cq.d.h();
                    int  num8 = Convert.ToInt32(reader.ReadLine());
                    aj.c c    = new aj.c();
                    c.a(reader);
                    PluginCore.cq.d.a(c);
                    for (int k = 0; k < num8; k++)
                    {
                        string str8 = reader.ReadLine();
                        aj.c   c2   = new aj.c();
                        c2.a(reader);
                        PluginCore.cq.d.a(str8, c2);
                    }
                    reader.Close();
                    this.b();
                    this.c.c(Path.Combine(PluginCore.ci, str4 + ".usd"));
                    new FileInfo(str2).MoveTo(str2 + ".bak");
                    num++;
                }
            }
            catch (Exception exception)
            {
                ad.a(exception);
            }
        }
        if (num > 0)
        {
            PluginCore.e("Converted " + num.ToString() + " old 0.2.0.x profiles.");
        }
    }
コード例 #25
0
ファイル: bv.cs プロジェクト: obfuscators-2019/VirindiTank
 private void a(bool A_0, TextReader A_1)
 {
     if (A_0)
     {
         try
         {
             bf bf = new bf();
             bf.a(A_1);
             int num = bf.b() - 1;
             if (num > 0)
             {
                 foreach (KeyValuePair <string, a0> pair in this.c)
                 {
                     int num2 = 0;
                     for (int i = 0; i < pair.Value.a(); i++)
                     {
                         if (pair.Value.b(i))
                         {
                             num2 = i;
                             break;
                         }
                     }
                     if (bf.ContainsKey(pair.Key))
                     {
                         pair.Value.a(bf[pair.Key], num2);
                     }
                 }
                 string str = Path.Combine(PluginCore.ci, "gameinfodb.ugd");
                 try
                 {
                     this.c.c(str);
                 }
                 catch
                 {
                 }
                 PluginCore.cq.d.c();
                 PluginCore.e("GameInfoDB updated (" + num.ToString() + " changed records).");
             }
             else
             {
                 PluginCore.e("GameInfoDB is current.");
             }
         }
         catch (Exception exception)
         {
             PluginCore.e("GameInfoDB update failed due to an unknown error.");
             PluginCore.cq.n.a(exception.Message, e8.f);
             PluginCore.cq.n.a(exception.StackTrace, e8.f);
         }
     }
     else
     {
         PluginCore.e("GameInfoDB update failed (" + A_1.ReadToEnd() + ").");
     }
     this.b = true;
     this.f();
     if (this.a != null)
     {
         this.a();
     }
 }
コード例 #26
0
    public void a(int A_0, bool A_1)
    {
        if (!A_1 || !dh.b(A_0))
        {
            goto Label_045E;
        }
        WorldObject obj2 = PluginCore.cq.aw.get_WorldFilter().get_Item(A_0);

        if (((obj2.get_ObjectClass() == 6) || (obj2.get_ObjectClass() == 11)) || ((obj2.get_ObjectClass() == 0x1d) || (obj2.get_ObjectClass() == 0x10)))
        {
            string str;
            if (!obj2.Exists(0x11) || (((str = obj2.get_Name()) != null) && (((str == "Eternal Health Kit") || (str == "Eternal Stamina Kit")) || (str == "Eternal Mana Kit"))))
            {
                if (obj2.get_SpellCount() > 0)
                {
                    MySpell spell = PluginCore.cq.e.b(obj2.Spell(0));
                    if ((spell == null) || (spell.Duration < 1200.0))
                    {
                        goto Label_045E;
                    }
                }
                string key = obj2.get_Name();
                if (key != null)
                {
                    int num2;
                    if (bx.k == null)
                    {
                        Dictionary <string, int> dictionary1 = new Dictionary <string, int>(0x27);
                        dictionary1.Add("Burning Coal", 0);
                        dictionary1.Add("Enhanced Mucor", 1);
                        dictionary1.Add("Gem of Impulse", 2);
                        dictionary1.Add("Refreshing Water", 3);
                        dictionary1.Add("Enhanced Health Elixir", 4);
                        dictionary1.Add("Enhanced Mana Elixir", 5);
                        dictionary1.Add("Black Market Health Elixir", 6);
                        dictionary1.Add("Black Market Mana Elixir", 7);
                        dictionary1.Add("Draught of Revitalization", 8);
                        dictionary1.Add("Gonjoku's Mana Infusion", 9);
                        dictionary1.Add("Harbinger Blood Infusion", 10);
                        dictionary1.Add("Platinum Spirits", 11);
                        dictionary1.Add("Potion of Black Fire", 12);
                        dictionary1.Add("Potion of Destiny's Wind", 13);
                        dictionary1.Add("Potion of Endless Vigor", 14);
                        dictionary1.Add("Coral Fragment", 15);
                        dictionary1.Add("Blue Gem", 0x10);
                        dictionary1.Add("Black Page of Salt and Ash", 0x11);
                        dictionary1.Add("Dull Gem", 0x12);
                        dictionary1.Add("Gem of Black Fire", 0x13);
                        dictionary1.Add("Gem of Harbinger's Acid Barrier", 20);
                        dictionary1.Add("Gem of Harbinger's Flame Barrier", 0x15);
                        dictionary1.Add("Gem of Harbinger's Frost Barrier", 0x16);
                        dictionary1.Add("Gem of Harbinger's Lightning Barrier", 0x17);
                        dictionary1.Add("Miyako's Moonstone", 0x18);
                        dictionary1.Add("Priceless Ore", 0x19);
                        dictionary1.Add("Rage of Grael Gem", 0x1a);
                        dictionary1.Add("Red Gem", 0x1b);
                        dictionary1.Add("Swamp Gem", 0x1c);
                        dictionary1.Add("Essence of Cave Penguin", 0x1d);
                        dictionary1.Add("Stout Lugian Ale", 30);
                        dictionary1.Add("Hearty Lugian Loaf", 0x1f);
                        dictionary1.Add("Pepper Jack Cheese", 0x20);
                        dictionary1.Add("Tasty Pudding", 0x21);
                        dictionary1.Add("Thick Lugian Stew", 0x22);
                        dictionary1.Add("Light Infused Healing Kit", 0x23);
                        dictionary1.Add("Sake", 0x24);
                        dictionary1.Add("Slice of Royal Wedding Cake", 0x25);
                        dictionary1.Add("Massive Mana Charge", 0x26);
                        bx.k = dictionary1;
                    }
                    if (bx.k.TryGetValue(key, out num2))
                    {
                        switch (num2)
                        {
                        case 0:
                        case 1:
                        case 2:
                        case 3:
                        case 4:
                        case 5:
                        case 6:
                        case 7:
                        case 8:
                        case 9:
                        case 10:
                        case 11:
                        case 12:
                        case 13:
                        case 14:
                        case 15:
                        case 0x10:
                        case 0x11:
                        case 0x12:
                        case 0x13:
                        case 20:
                        case 0x15:
                        case 0x16:
                        case 0x17:
                        case 0x18:
                        case 0x19:
                        case 0x1a:
                        case 0x1b:
                        case 0x1c:
                        case 0x1d:
                        case 30:
                        case 0x1f:
                        case 0x20:
                        case 0x21:
                        case 0x22:
                        case 0x23:
                        case 0x24:
                        case 0x25:
                        case 0x26:
                            goto Label_045E;
                        }
                    }
                }
                PluginCore.PC.h(A_0);
            }
            goto Label_045E;
        }
        if (!fn.a(obj2))
        {
            goto Label_045E;
        }
        if ((obj2.get_ObjectClass() == 1) || (obj2.get_ObjectClass() == 9))
        {
            SkillInfo o = null;
            try
            {
                int num = obj2.Values(0xd000020, 0);
                if (num != 0)
                {
                    o = PluginCore.cq.aw.get_CharacterFilter().get_Underlying().get_Skill((eSkillID)num);
                    if ((o.get_Training() != 1) && (o.get_Training() != null))
                    {
                        goto Label_041F;
                    }
                }
                goto Label_045E;
            }
            finally
            {
                if (o != null)
                {
                    Marshal.ReleaseComObject(o);
                }
            }
        }
Label_041F:
        if (obj2.Exists(0x69) && !obj2.Exists(0xab))
        {
            if (CoreManager.get_Current().get_CharacterFilter().get_Level() >= 120)
            {
                goto Label_045E;
            }
            ai.a("Note: since you are under level 120, untinkered items are being auto-added to your items list.");
        }
        PluginCore.PC.l(A_0);
Label_045E:
        if (this.r && (PluginCore.cq.u.b(b0.a.a) == 0))
        {
            PluginCore.e("Set default profile: Done scanning inventory.");
        }
    }
コード例 #27
0
    public void f()
    {
        MyList <string> list = new MyList <string>(15);

        foreach (cv cv in PluginCore.cq.p.d())
        {
            if (list.Contains(cv.g()))
            {
                continue;
            }
            bool flag = false;
            switch (cv.c())
            {
            case ObjectClass.MeleeWeapon:
                flag = true;
                break;

            case ObjectClass.Armor:
                flag = true;
                break;

            case ObjectClass.Food:
                flag = true;
                list.Add(cv.g());
                break;

            case ObjectClass.MissileWeapon:
                flag = true;
                break;

            case ObjectClass.Gem:
                flag = true;
                list.Add(cv.g());
                break;

            case ObjectClass.ManaStone:
                flag = true;
                list.Add(cv.g());
                break;

            case ObjectClass.HealingKit:
                flag = true;
                list.Add(cv.g());
                break;

            case ObjectClass.WandStaffOrb:
                flag = true;
                break;
            }
            if (flag)
            {
                if (cv.j)
                {
                    this.a(cv.k, true);
                }
                else
                {
                    PluginCore.cq.u.a(cv.k, new b0.b(this.a), b0.a.a);
                }
            }
        }
        if (PluginCore.cq.u.b(b0.a.a) > 0)
        {
            PluginCore.e("Set default profile: Beginning inventory scan (" + PluginCore.cq.u.b(b0.a.a).ToString() + " items).");
            this.r = true;
        }
        else
        {
            PluginCore.e("Set default profile: Inventory scan not needed.");
        }
    }
コード例 #28
0
 public void j()
 {
     if ((PluginCore.cq.u.b(b0.a.a) > 0) && this.r)
     {
         PluginCore.e("Set default profile: Inventory scan canceled.");
     }
     this.r = false;
     PluginCore.cq.u.a(b0.a.a);
     if (string.IsNullOrEmpty(this.m))
     {
         this.o();
     }
     else
     {
         string path = Path.Combine(PluginCore.ci, this.m);
         if (File.Exists(path))
         {
             bool flag = true;
             try
             {
                 this.c.b(path);
                 if (this.c["MyMonsters"].a() <= 10)
                 {
                     this.c["MyMonsters"].b("Broadside", k.a(false));
                 }
                 if (this.c["MyMonsters"].a() <= 11)
                 {
                     this.c["MyMonsters"].b("Fester", k.a(false));
                 }
                 if (this.c["MyMonsters"].a() <= 12)
                 {
                     this.c["MyMonsters"].b("WeakeningCurse", k.a(false));
                 }
                 if (this.c["MyMonsters"].a() <= 13)
                 {
                     this.c["MyMonsters"].b("FesteringCurse", k.a(false));
                 }
                 if (this.c["MyMonsters"].a() <= 14)
                 {
                     this.c["MyMonsters"].b("Corruption", k.a(false));
                 }
                 if (this.c["MyMonsters"].a() <= 15)
                 {
                     this.c["MyMonsters"].b("DestructiveCurse", k.a(false));
                 }
                 if (this.c["MyMonsters"].a() <= 0x10)
                 {
                     this.c["MyMonsters"].b("Corrosion", k.a(false));
                 }
                 if (this.c["MyMonsters"].a() <= 0x11)
                 {
                     this.c["MyMonsters"].b("Streak", k.a(false));
                 }
                 if (this.c["MyMonsters"].a() <= 0x12)
                 {
                     this.c["MyMonsters"].b("SecondaryVuln", k.a(0x62));
                 }
                 if (this.c["MyMonsters"].a() <= 0x13)
                 {
                     this.c["MyMonsters"].b("SecondaryEquip", k.a(0));
                 }
                 if (!this.c.ContainsKey("ExtraBuffSpells"))
                 {
                     this.c.Add("ExtraBuffSpells", new a0(new string[] { "ExemplarId" }));
                 }
                 if (!this.c.ContainsKey("AntiExtraBuffSpells"))
                 {
                     this.c.Add("AntiExtraBuffSpells", new a0(new string[] { "ExemplarId" }));
                 }
                 if (!this.c.ContainsKey("ItemUseSpecifiers"))
                 {
                     this.c.Add("ItemUseSpecifiers", new a0(new string[] { "Object", "Uses" }));
                     this.c["ItemUseSpecifiers"].c(0);
                 }
                 this.a();
             }
             catch (Exception)
             {
                 flag = false;
             }
             if (flag)
             {
                 PluginCore.e("Loaded macro settings.");
             }
             else
             {
                 this.o();
                 this.b();
                 this.c.c(path);
             }
         }
         else
         {
             this.o();
             this.b();
             this.c.c(path);
         }
     }
     PluginCore.cq.d.c();
     PluginCore.cq.ay.w();
     er.a();
     PluginCore.cq.x.f();
 }
コード例 #29
0
    private void a(object A_0, ChatTextInterceptEventArgs A_1)
    {
        try
        {
            string str;
            string str2;
            string str10;
            string str11;
            y.b    b;
            int    e;
            if ((PluginCore.cq.n.b && er.j("AutoFellowManagement")) && ((A_1.get_Color() == 3) && this.f.c()))
            {
                Match match = this.x.Match(A_1.get_Text());
                if (match.Success)
                {
                    str  = match.Groups["name"].Value;
                    str2 = match.Groups["msg"].Value;
                    if (string.Compare(str2, "xp", true) == 0)
                    {
                        if (!this.a(str))
                        {
                            foreach (KeyValuePair <int, ar.a> pair in this.f.a)
                            {
                                if (pair.Value.b == str)
                                {
                                    PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] You are already in the fellowship.  -v-");
                                    return;
                                }
                            }
                            if (this.j.Contains(str.ToLowerInvariant()))
                            {
                                PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Sorry, but you have been banned from this fellowship.  -v-");
                            }
                            else if (!this.l && !this.f.d())
                            {
                                string str3 = "????";
                                if (this.f.a.ContainsKey(this.f.b()))
                                {
                                    str3 = this.f.a[this.f.b()].b;
                                }
                                PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] I'm sorry, but the fellowship is closed and I am not the leader. The leader is currently: " + str3 + "  -v-");
                            }
                            else if (this.l)
                            {
                                if (this.k.Contains(str))
                                {
                                    if (this.m)
                                    {
                                        if (this.u.ContainsKey(str))
                                        {
                                            if (!this.p.Contains(str))
                                            {
                                                this.p.Add(str);
                                            }
                                            PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Please wait nearby. I will try to recruit you in a moment.  -v-");
                                        }
                                        else
                                        {
                                            int num = this.k.IndexOf(str) + 1;
                                            PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] You are already number " + num.ToString() + " of " + this.k.Count.ToString() + " on the waiting list.  -v-");
                                        }
                                    }
                                    else
                                    {
                                        PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Please wait nearby. I will try to recruit you in a moment.  -v-");
                                    }
                                }
                                else if (this.m)
                                {
                                    this.k.Add(str);
                                    PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] The fellow is full, and I am the leader. I am adding you to the waiting list at position " + this.k.Count.ToString() + "  -v-");
                                }
                                else
                                {
                                    this.k.Add(str);
                                    PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] I will recruit you in a moment. Please stand close to me.  -v-");
                                }
                            }
                            else if ((!this.l && this.f.d()) && !this.a())
                            {
                                if (!this.k.Contains(str))
                                {
                                    this.k.Add(str);
                                }
                                PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Please wait nearby. I will try to recruit you in a moment.  -v-");
                            }
                            else if ((!this.l && this.f.d()) && this.a())
                            {
                                string str4 = "????";
                                if (this.f.a.ContainsKey(this.f.b()))
                                {
                                    str4 = this.f.a[this.f.b()].b;
                                }
                                PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] I'm sorry, but the fellowship is full. The leader is currently: " + str4 + "  -v-");
                            }
                        }
                    }
                    else if (((string.Compare(str2, "line", true) == 0) || (string.Compare(str2, "list", true) == 0)) || (string.Compare(str2, "status", true) == 0))
                    {
                        if (!this.a(str))
                        {
                            if (this.l)
                            {
                                if (!this.m)
                                {
                                    string[] strArray7 = new string[] { "/t ", str, ", [VT Fellow Manager] There is no waiting list. The fellowship has ", (this.f.a.Count + 1).ToString(), " members.  -v-" };
                                    PluginCore.cq.ah.b(string.Concat(strArray7));
                                }
                                else if (this.k.Contains(str))
                                {
                                    int num2 = this.k.IndexOf(str) + 1;
                                    PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] You are number " + num2.ToString() + " of " + this.k.Count.ToString() + " on the waiting list.  -v-");
                                }
                                else
                                {
                                    PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] The waiting list contains " + this.k.Count.ToString() + " players. You are not on it.  -v-");
                                }
                            }
                            else
                            {
                                string str5;
                                if (this.f.d())
                                {
                                    str5 = "open";
                                }
                                else
                                {
                                    str5 = "closed";
                                }
                                string str6 = "????";
                                if (this.f.a.ContainsKey(this.f.b()))
                                {
                                    str6 = this.f.a[this.f.b()].b;
                                }
                                PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] The leader is currently: " + str6 + ". The fellowship is " + str5 + ".  -v-");
                            }
                        }
                    }
                    else if (string.Compare(str2, "remove", true) == 0)
                    {
                        if (!this.a(str))
                        {
                            string item = str;
                            if (this.k.Contains(item))
                            {
                                this.k.Remove(item);
                            }
                            if (this.p.Contains(item))
                            {
                                this.p.Remove(item);
                            }
                            if (this.u.ContainsKey(item))
                            {
                                this.u.Remove(item);
                            }
                            this.b();
                            PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] You have been removed from the list.  -v-");
                        }
                    }
                    else if (string.Compare(str2, "leader", true) == 0)
                    {
                        if (!this.a(str))
                        {
                            string str8;
                            if (this.f.d())
                            {
                                str8 = "open";
                            }
                            else
                            {
                                str8 = "closed";
                            }
                            if (this.l)
                            {
                                PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] I am the fellowship leader. The fellowship is " + str8 + ".  -v-");
                            }
                            else
                            {
                                string str9 = "????";
                                if (this.f.a.ContainsKey(this.f.b()))
                                {
                                    str9 = this.f.a[this.f.b()].b;
                                }
                                PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] The leader is currently: " + str9 + ". The fellowship is " + str8 + ".  -v-");
                            }
                        }
                    }
                    else if (string.Compare(str2, "help", true) == 0)
                    {
                        if (!this.a(str))
                        {
                            PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Available commands: xp, line, remove, leader, startvote, vote, location, help  -v-");
                        }
                    }
                    else if (string.Compare(str2, "help startvote", true) == 0)
                    {
                        if (!this.a(str))
                        {
                            PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Usage: startvote [votetype] [parameter]. Possible vote types: kick, ban, giveleader, setopen.  -v-");
                        }
                    }
                    else if (string.Compare(str2, "help vote", true) == 0)
                    {
                        if (!this.a(str))
                        {
                            PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Usage: vote [vote id] [yes/no]  -v-");
                        }
                    }
                    else
                    {
                        if (!str2.StartsWith("startvote "))
                        {
                            goto Label_1027;
                        }
                        if ((!this.a(str) && this.b(str)) && !this.j.Contains(str.ToLowerInvariant()))
                        {
                            if (this.q.ContainsKey(str) && (this.q[str] > DateTimeOffset.Now))
                            {
                                string[] strArray13 = new string[] { "/t ", str, ", [VT Fellow Manager] You have initiated a vote too recently (wait another ", (this.q[str] - DateTimeOffset.Now).ToString(), ").  -v-" };
                                PluginCore.cq.ah.b(string.Concat(strArray13));
                            }
                            else
                            {
                                string[] strArray = str2.Split(new char[] { ' ' });
                                if (strArray.Length < 3)
                                {
                                    PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Not enough parameters to startvote command. Tell me 'help startvote' for more information.  -v-");
                                }
                                else
                                {
                                    str10 = strArray[1];
                                    StringBuilder builder = new StringBuilder();
                                    for (int i = 2; i < strArray.Length; i++)
                                    {
                                        if (i > 2)
                                        {
                                            builder.Append(" ");
                                        }
                                        builder.Append(strArray[i]);
                                    }
                                    str11 = builder.ToString();
                                    b     = new y.b {
                                        b = str11.ToLowerInvariant()
                                    };
                                    if (string.Compare(str10, "kick", true) == 0)
                                    {
                                        if (!this.b(str11))
                                        {
                                            PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Cannot vote to kick " + str11 + ", that player is not in the fellow.  -v-");
                                            return;
                                        }
                                        b.a = y.a.a;
                                        goto Label_0CE0;
                                    }
                                    if (string.Compare(str10, "ban", true) == 0)
                                    {
                                        if (!this.b(str11))
                                        {
                                            PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Cannot vote to ban " + str11 + ", that player is not in the fellow.  -v-");
                                            return;
                                        }
                                        b.a = y.a.b;
                                        goto Label_0CE0;
                                    }
                                    if (string.Compare(str10, "giveleader", true) == 0)
                                    {
                                        if (!this.b(str11))
                                        {
                                            PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Cannot vote to give leader to " + str11 + ", that player is not in the fellow.  -v-");
                                            return;
                                        }
                                        b.a = y.a.c;
                                        goto Label_0CE0;
                                    }
                                    if (string.Compare(str10, "setopen", true) == 0)
                                    {
                                        if ((str11 != "true") && (str11 != "false"))
                                        {
                                            PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] A setopen vote call must be followed by 'true' or 'false'.  -v-");
                                            return;
                                        }
                                        b.a = y.a.d;
                                        goto Label_0CE0;
                                    }
                                    PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Unknown vote type. Tell me 'help startvote' for more information.  -v-");
                                }
                            }
                        }
                    }
                }
            }
            return;

Label_0CE0:
            e = 0;
            foreach (KeyValuePair <y.b, List <MyPair <string, bool> > > pair2 in this.r)
            {
                if (pair2.Key.a(b) == 0)
                {
                    e = pair2.Key.e;
                    break;
                }
            }
            if (e != 0)
            {
                PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] An identical vote is already in progress! (Vote ID " + e.ToString() + ")  -v-");
            }
            else
            {
                b.c = DateTimeOffset.Now + TimeSpan.FromMinutes(2.0);
                string[] strArray3 = new string[] { "/f [VT Fellow Manager] ", str, " has called a new vote: ", str10.ToLowerInvariant(), " ", str11, "! To vote, either tell me 'vote ", b.e.ToString(), " yes' or 'vote ", b.e.ToString(), " no'. You have ", 2.0.ToString(), " minutes.  -v-" };
                PluginCore.cq.ah.b(string.Concat(strArray3));
                this.r.Add(b, new List <MyPair <string, bool> >());
                MyPair <string, bool> pair3 = new MyPair <string, bool> {
                    a = str,
                    b = true
                };
                this.r[b].Add(pair3);
                this.q[str] = DateTimeOffset.Now + TimeSpan.FromMinutes(4.0);
                PluginCore.cq.ah.b("/f [VT Fellow Manager] Vote total for '" + str10.ToLowerInvariant() + " " + str11 + "' (ID " + b.e.ToString() + "): 1/0  -v-");
                PluginCore.e("Vote called by " + str + ": " + b.ToString() + ". [" + a.a("Vote Yes", new string[] { "fvote", b.e.ToString(), "yes" }) + "] [" + a.a("Vote No", new string[] { "fvote", b.e.ToString(), "no" }) + "] [" + a.a("Abort Vote", new string[] { "fvote", b.e.ToString(), "abort" }) + "]");
            }
            return;

Label_1027:
            if (str2.StartsWith("vote "))
            {
                if ((!this.a(str) && this.b(str)) && !this.j.Contains(str.ToLowerInvariant()))
                {
                    int      num5;
                    string[] strArray2 = str2.Split(new char[] { ' ' });
                    if ((strArray2.Length != 3) || !int.TryParse(strArray2[1], out num5))
                    {
                        PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Invalid vote command. Votes should look like: vote idnumber yes, or: vote idnumber no  -v-");
                        return;
                    }
                    bool flag = false;
                    if (string.Compare(strArray2[2], "yes", true) == 0)
                    {
                        flag = true;
                    }
                    else if (string.Compare(strArray2[2], "no", true) == 0)
                    {
                        flag = false;
                    }
                    else
                    {
                        PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Invalid vote command. Votes should look like: vote idnumber yes, or: vote idnumber no  -v-");
                        return;
                    }
                    y.b key = null;
                    List <MyPair <string, bool> > list = null;
                    foreach (KeyValuePair <y.b, List <MyPair <string, bool> > > pair4 in this.r)
                    {
                        if (pair4.Key.e == num5)
                        {
                            key  = pair4.Key;
                            list = pair4.Value;
                            break;
                        }
                    }
                    if (key == null)
                    {
                        PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Invalid vote ID number. Votes should look like: vote idnumber yes, or: vote idnumber no  -v-");
                        return;
                    }
                    bool flag2 = false;
                    foreach (MyPair <string, bool> pair5 in list)
                    {
                        if (pair5.a == str)
                        {
                            flag2   = true;
                            pair5.b = flag;
                            break;
                        }
                    }
                    if (!flag2)
                    {
                        MyPair <string, bool> pair6 = new MyPair <string, bool> {
                            a = str,
                            b = flag
                        };
                        list.Add(pair6);
                    }
                    int num6 = 0;
                    int num7 = 0;
                    foreach (MyPair <string, bool> pair7 in list)
                    {
                        if (pair7.b)
                        {
                            num6++;
                        }
                        else
                        {
                            num7++;
                        }
                    }
                    PluginCore.cq.ah.b("/f [VT Fellow Manager] Vote total for " + key.ToString() + ": " + num6.ToString() + "/" + num7.ToString() + "  -v-");
                }
            }
            else
            {
                if ((string.Compare(str2, "location", true) != 0) || this.a(str))
                {
                    return;
                }
                bool flag3 = false;
                foreach (KeyValuePair <int, ar.a> pair8 in this.f.a)
                {
                    if (pair8.Value.b == str)
                    {
                        flag3 = true;
                        break;
                    }
                }
                if (flag3)
                {
                    PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] I am currently located in landcell: " + PluginCore.cq.p.d(PluginCore.cg).w.d().ToString("X8") + "  -v-");
                }
                else
                {
                    PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Sorry, I can only send my location to members of the fellowship.  -v-");
                }
            }
        }
        catch (Exception exception)
        {
            ad.a(exception);
        }
    }