Example #1
0
        static void SaveWalkerState(List <String> SeenGuilds, List <String> WalkedCodes, List <String> UnWalkedCodes)
        {
            WalkerState State = new WalkerState();

            State.SeenGuilds = SeenGuilds; State.WalkedCodes = WalkedCodes; State.UnWalkedCodes = UnWalkedCodes;
            System.IO.File.WriteAllText("./Data/WalkerState.txt", JToken.FromObject(State).ToString());
        }
Example #2
0
        public static List <String> StartWalking(List <Instance> Instances, string StartInviteCode = "", int MaxDiscordsWalked = 10, int JoinDelay = 5)
        {
            Instance Instance = null;

            NextInstance(ref Instance, ref Instances);
            List <String> SeenGuilds  = new List <string> {
            },
                          WalkedCodes = new List <string> {
            },
                          UnWalkedCodes;

            if (StartInviteCode == "")
            {
                WalkerState State = LoadWalkerState();
                if (State == null)
                {
                    return(null);
                }
                SeenGuilds = State.SeenGuilds; WalkedCodes = State.WalkedCodes; UnWalkedCodes = State.UnWalkedCodes;
            }
            else
            {
                UnWalkedCodes = WalkDiscord(StartInviteCode, ref SeenGuilds, Instance);
                NextInstance(ref Instance, ref Instances);
                MaxDiscordsWalked--;

                SaveWalkerState(SeenGuilds, WalkedCodes, UnWalkedCodes);
                Master.SaveCodes(WalkedCodes.Union(UnWalkedCodes).ToList());

                if (MaxDiscordsWalked != 0)
                {
                    Console.WriteLine("\nWaiting " + JoinDelay + " Seconds before Continuing\n"); Thread.Sleep(JoinDelay * 1000);
                }
            }

            if (UnWalkedCodes == null)
            {
                return(null);
            }

            for (int i = 0; i < MaxDiscordsWalked && i < UnWalkedCodes.Count; i++)
            {
                List <String> NewCodes = WalkDiscord(UnWalkedCodes.First(), ref SeenGuilds, Instance);
                NextInstance(ref Instance, ref Instances);
                if (NewCodes != null)
                {
                    WalkedCodes.Add(UnWalkedCodes.First());
                    NewCodes.ForEach(delegate(String S) { if (!WalkedCodes.Contains(S) && !UnWalkedCodes.Contains(S))
                                                          {
                                                              UnWalkedCodes.Add(S);
                                                          }
                                     });
                }
                UnWalkedCodes.RemoveAt(0);
                SaveWalkerState(SeenGuilds, WalkedCodes, UnWalkedCodes);
                Master.SaveCodes(WalkedCodes.Union(UnWalkedCodes).ToList());

                if (i + 1 < MaxDiscordsWalked && i + 1 < UnWalkedCodes.Count)
                {
                    int Delay = (JoinDelay + Master.Rnd.Next(-10, 10));
                    Console.WriteLine("\nWaiting " + Delay + " Seconds before Continuing\n");
                    Thread.Sleep(Delay * 1000);
                }
            }
            return(WalkedCodes.Union(UnWalkedCodes).ToList());
        }