Beispiel #1
0
        public void TradeCanceled(PokeRoutineExecutor routine, PokeTradeDetail <T> info, PokeTradeResult msg)
        {
            if (Hub.Config.Trade.EggRaffle && info.TradeData.IsEgg)
            {
                System.IO.StreamReader reader = new System.IO.StreamReader("EggRngBlacklist.txt");
                var content = reader.ReadToEnd();
                reader.Close();

                var id    = System.Text.RegularExpressions.Regex.Match(Context.User.Mention, @"\D*(\d*)", System.Text.RegularExpressions.RegexOptions.Multiline).Groups[1].Value;
                var parse = System.Text.RegularExpressions.Regex.Match(content, @"(" + id + @") - (\S*\ \S*\ \w*)", System.Text.RegularExpressions.RegexOptions.Multiline);
                if (content.Contains(id))
                {
                    content = content.Replace(parse.Groups[0].Value, $"{id} - 1/11/2000 12:00:00 AM").TrimEnd();
                    System.IO.StreamWriter writer = new System.IO.StreamWriter("EggRngBlacklist.txt");
                    writer.WriteLine(content);
                    writer.Close();
                    OnFinish?.Invoke(routine);
                    Context.User.SendMessageAsync($"Trade canceled: {msg}. EggRaffle cooldown was reset.").ConfigureAwait(false);
                }
            }
            else
            {
                OnFinish?.Invoke(routine);
                Context.User.SendMessageAsync($"Trade canceled: {msg}").ConfigureAwait(false);
            }
        }
Beispiel #2
0
        public void TradeFinished(PokeRoutineExecutor routine, PokeTradeDetail <T> info, T result)
        {
            OnFinish?.Invoke(routine);
            var    tradedToUser = Data.Species;
            string message      = tradedToUser != 0 ? $"Trade finished. Enjoy your {(Species)tradedToUser}!" : "Trade finished!";

            Context.User.SendMessageAsync(message).ConfigureAwait(false);
            if (result.Species != 0 && Hub.Config.Discord.ReturnPK8s)
            {
                Context.User.SendPKMAsync(result, "Here's what you traded me!").ConfigureAwait(false);
            }

            if (info.Type == PokeTradeType.TradeCord)
            {
                var user     = Context.User.Id.ToString();
                var original = TradeExtensions.TradeCordPath.FirstOrDefault(x => x.Contains(user));
                TradeExtensions.TradeCordPath.Remove(original);
                try
                {
                    System.IO.File.Move(original, System.IO.Path.Combine($"TradeCord\\Backup\\{user}", original.Split('\\')[2]));
                }
                catch (Exception ex)
                {
                    Base.LogUtil.LogText("Error occurred: " + ex.InnerException);
                    TradeExtensions.TradeCordPath.RemoveAll(x => x.Contains(user));
                }
            }
        }
        public void TradeSearching(PokeRoutineExecutor <T> routine, PokeTradeDetail <T> info)
        {
            var name    = Info.TrainerName;
            var trainer = string.IsNullOrEmpty(name) ? string.Empty : $", {name}";

            Trader.SendMessageAsync($"I'm waiting for you{trainer}! Your code is **{Code:0000 0000}**. My IGN is **{routine.InGameName}**.").ConfigureAwait(false);
        }
Beispiel #4
0
 public void SendNotification(PokeRoutineExecutor routine, PokeTradeDetail <T> info, T result, string message)
 {
     if (result.Species != 0 && (Hub.Config.Discord.ReturnPK8s || info.Type == PokeTradeType.Dump))
     {
         Trader.SendPKMAsync(result, message).ConfigureAwait(false);
     }
 }
Beispiel #5
0
        public void TradeSearching(PokeRoutineExecutor routine, PokeTradeDetail <T> info)
        {
            var name    = Info.TrainerName;
            var trainer = string.IsNullOrEmpty(name) ? string.Empty : $", {name}";

            Client.SendWhisper(Username, $"I'm searching for you{trainer}! Use the code you whispered me to search!");
        }
Beispiel #6
0
        public void SendNotification(PokeRoutineExecutor routine, PokeTradeDetail <T> info, T result, string message)
        {
            // Eat end detail messages
            var msg = $"Details for {result.FileName}: " + message;

            LogUtil.LogText(msg);
        }
Beispiel #7
0
 public void SendNotification(PokeRoutineExecutor routine, PokeTradeDetail <T> info, T result, string message)
 {
     if (result.Species != 0 && Hub.Config.Discord.ReturnPK8s)
     {
         Context.User.SendPKMAsync(result, message).ConfigureAwait(false);
     }
 }
        public void SendNotification(PokeRoutineExecutor routine, PokeTradeDetail <T> info, T result, string message)
        {
            var msg = $"Details for {result.FileName}: " + message;

            LogUtil.LogText(msg);
            SendMessage(msg, Settings.NotifyDestination);
        }
        public void TradeFinished(PokeRoutineExecutor routine, PokeTradeDetail <T> info, T result)
        {
            OnFinish?.Invoke(routine);
            var    tradedToUser = Data.Species;
            string message;

            if (Data.IsEgg && info.Type == PokeTradeType.EggRoll)
            {
                message = tradedToUser != 0 ? $"Trade finished. Enjoy your Mysterious egg!" : "Trade finished!";
            }
            else
            {
                message = tradedToUser != 0 ? $"Trade finished. Enjoy your {(Species)tradedToUser}!" : "Trade finished!";
            }

            Context.User.SendMessageAsync(message).ConfigureAwait(false);
            if (result.Species != 0 && Hub.Config.Discord.ReturnPK8s)
            {
                Context.User.SendPKMAsync(result, "Here's what you traded me!").ConfigureAwait(false);
            }

            if (info.Type == PokeTradeType.EggRoll && Hub.Config.Trade.EggRollCooldown > 0) // Add cooldown if trade completed
            {
                var id   = Context.User.Id.ToString();
                var line = TradeExtensions.EggRollCooldown.FirstOrDefault(z => z.Contains(id));
                if (line != null)
                {
                    TradeExtensions.EggRollCooldown.Remove(TradeExtensions.EggRollCooldown.FirstOrDefault(z => z.Contains(id)));
                }
                TradeExtensions.EggRollCooldown.Add($"{id},{DateTime.Now}");
            }
        }
Beispiel #10
0
        public void SendNotification(PokeRoutineExecutor routine, PokeTradeDetail <T> info, string message)
        {
            if (message.TryStringBetweenStrings("Trading Partner: ", ". Waiting for", out var trainerName))
            {
                OtherTrainer = trainerName;
                NotifyServerOfState(WebTradeState.FoundTrainer, new KeyValuePair <string, string>("option", trainerName));
            }
            if (message.TryStringBetweenStrings("Link Trade Code: ", "...", out var code))
            {
                NotifyServerOfState(WebTradeState.TypingCode, new KeyValuePair <string, string>("option", code));
            }

            if (message.Contains("Unable to calculate seeds: "))
            {
                NotifyServerOfState(WebTradeState.Finished, new KeyValuePair <string, string>("option", OtherTrainer + ": " + message.Replace("Unable to calculate seeds: ", "Seedcheck failure! ")));
            }
            if (message.Contains("This Pokémon is already shiny!"))
            {
                NotifyServerOfState(WebTradeState.Finished, new KeyValuePair <string, string>("option", OtherTrainer + ": I can't Seedcheck a shiny Pokémon!"));
            }
            if (message.StartsWith("SSR"))
            {
                NotifyServerOfState(WebTradeState.Finished, new KeyValuePair <string, string>("option", OtherTrainer + ": " + message.Substring(3)));
            }
        }
Beispiel #11
0
        public void TradeFinished(PokeRoutineExecutor routine, PokeTradeDetail <T> info, T result)
        {
            var message = Data.Species != 0 ? $"Trade finished {Username}. Enjoy your {(Species)Data.Species}!" : "Trade finished. Enjoy your Pokemon!";

            Client.SendMessage(Channel, message);
            OnFinish?.Invoke(routine);
        }
Beispiel #12
0
        public void TradeSearching(PokeRoutineExecutor routine, PokeTradeDetail <T> info)
        {
            var name    = Info.TrainerName;
            var trainer = string.IsNullOrEmpty(name) ? string.Empty : $", {name}";

            Context.User.SendMessageAsync($"I'm searching for you{trainer}! Your code is {Code:0000}.").ConfigureAwait(false);
        }
Beispiel #13
0
        public void TradeFinished(PokeRoutineExecutor routine, PokeTradeDetail <T> info, T result)
        {
            OnFinish?.Invoke(routine);
            var message = Data.Species != 0 ? $"Trade finished. Enjoy your {(Species)Data.Species}!" : "Trade finished. Enjoy your Pokemon!";

            Context.User.SendMessageAsync(message).ConfigureAwait(false);
            Context.User.SendPKMAsync(result, "Here's what you traded me!").ConfigureAwait(false);
        }
        public void TradeFinished(PokeRoutineExecutor routine, PokeTradeDetail <T> info, T result)
        {
            OnFinish?.Invoke(routine);
            var tradedToUser = Data.Species;
            var message      = tradedToUser != 0 ? $"Trade finished. Enjoy your {(Species)tradedToUser}!" : "Trade finished!";

            Client.SendMessage(Channel, message);
        }
Beispiel #15
0
        public void TradeCanceled(PokeRoutineExecutor routine, PokeTradeDetail <T> info, PokeTradeResult msg)
        {
            OnFinish?.Invoke(routine);
            var line = $"@{info.Trainer.TrainerName}: Trade canceled, {msg}";

            LogUtil.LogText(line);
            SendMessage(line, Settings.TradeCanceledDestination);
        }
Beispiel #16
0
 public void SendNotification(PokeRoutineExecutor routine, PokeTradeDetail <T> info, PokeTradeSummary message)
 {
     if (message.ExtraInfo is SeedSearchResult r)
     {
         NotifyServerOfTradeInfo(r);
         LogUtil.LogText($"Seed: {r.Seed:X16}");
     }
 }
Beispiel #17
0
        public void TradeInitialize(PokeRoutineExecutor routine, PokeTradeDetail <T> info)
        {
            var receive = Data.Species == 0 ? string.Empty : $" ({Data.Nickname})";
            var msg     = $"@{info.Trainer.TrainerName} (ID: {info.ID}): Initializing trade{receive} with you. Your trade code is: {info.Code:0000 0000}";

            LogUtil.LogText(msg);
            SendMessage(msg);
        }
Beispiel #18
0
 public void TradeCanceled(PokeRoutineExecutor routine, PokeTradeDetail <T> info, PokeTradeResult msg)
 {
     OnFinish?.Invoke(routine);
     Trader.SendMessageAsync($"Trade canceled: {msg}").ConfigureAwait(false);
     if (info.Type == PokeTradeType.TradeCord)
     {
         TradeExtensions.TradeStatusUpdate(Trader.Id.ToString(), true);
     }
 }
Beispiel #19
0
        public void TradeFinished(PokeRoutineExecutor routine, PokeTradeDetail <T> info, T result)
        {
            OnFinish?.Invoke(routine);
            var tradedToUser = Data.Species;
            var message      = $"@{info.Trainer.TrainerName}: " + (tradedToUser != 0 ? $"Trade finished. Enjoy your {(Species)tradedToUser}!" : "Trade finished!");

            LogUtil.LogText(message);
            SendMessage(message, Settings.TradeFinishDestination);
        }
 public void TradeCanceled(PokeRoutineExecutor routine, PokeTradeDetail <T> info, PokeTradeResult msg)
 {
     OnFinish?.Invoke(routine);
     Trader.SendMessageAsync($"Trade canceled: {msg}").ConfigureAwait(false);
     if (msg == PokeTradeResult.NoTrainerFound)
     {
         CommandSentChannel.SendMessageAsync($"{Trader.Mention} - Something happened with your trade: {msg}. This has been reported.");
     }
 }
        public void TradeInitialize(PokeRoutineExecutor routine, PokeTradeDetail <T> info)
        {
            var receive = Data.Species == 0 ? string.Empty : $" ({Data.Nickname})";
            var msg     = $"@{info.Trainer.TrainerName} (ID: {info.ID}): Initializing trade{receive} with you. Please be ready. Use the code you whispered me to search!";

            msg += $" Your trade code is: {info.Code:0000 0000}";
            LogUtil.LogText(msg);
            Client.SendMessage(msg);
        }
Beispiel #22
0
        public void TradeSearching(PokeRoutineExecutor routine, PokeTradeDetail <T> info)
        {
            var name    = Info.TrainerName;
            var trainer = string.IsNullOrEmpty(name) ? string.Empty : $", @{name}";
            var message = $"I'm waiting for you{trainer}! My IGN is {routine.InGameName}. Your trade code is: {info.Code:0000 0000}";

            LogUtil.LogText(message);
            SendMessage($"@{info.Trainer.TrainerName} {message}");
        }
Beispiel #23
0
        public void SendNotification(PokeRoutineExecutor routine, PokeTradeDetail <T> info, PokeTradeSummary message)
        {
            var msg = message.Summary;

            if (message.Details.Count > 0)
            {
                msg += ", " + string.Join(", ", message.Details.Select(z => $"{z.Heading}: {z.Detail}"));
            }
            Client.SendMessage(Channel, msg);
        }
Beispiel #24
0
        public void TradeCanceled(PokeRoutineExecutor <T> routine, PokeTradeDetail <T> info, PokeTradeResult msg)
        {
            if (info.Type == PokeTradeType.TradeCord)
            {
                TradeCordHelper <T> .HandleTradedCatches(Trader.Id, false);
            }

            OnFinish?.Invoke(routine);
            Trader.SendMessageAsync($"Trade canceled: {msg}").ConfigureAwait(false);
        }
Beispiel #25
0
        public void TradeSearching(PokeRoutineExecutor routine, PokeTradeDetail <T> info)
        {
            var name    = Info.TrainerName;
            var trainer = string.IsNullOrEmpty(name) ? string.Empty : $", {name}";

            Trader.SendMessageAsync($"I'm waiting for you{trainer}! Your code is **{Code:0000 0000}**. My IGN is **{routine.InGameName}**.").ConfigureAwait(false);

            string gameText = $"{SysCordInstance.Settings.BotGameStatus.Replace("{0}", $"On Trade #{info.ID}")}";

            Context.Client.SetGameAsync(gameText).ConfigureAwait(false);
        }
Beispiel #26
0
 public void TradeCanceled(PokeRoutineExecutor routine, PokeTradeDetail <T> info, PokeTradeResult msg)
 {
     OnFinish?.Invoke(routine);
     Trader.SendMessageAsync($"Trade canceled: {msg}").ConfigureAwait(false);
     if (info.Type == PokeTradeType.TradeCord)
     {
         var user = Trader.Id.ToString();
         var path = TradeExtensions.TradeCordPath.FirstOrDefault(x => x.Contains(user));
         TradeExtensions.TradeCordPath.Remove(path);
     }
 }
Beispiel #27
0
        public void SendNotification(PokeRoutineExecutor routine, PokeTradeDetail <T> info, PokeTradeSummary message)
        {
            var msg = message.Summary;

            if (message.Details.Count > 0)
            {
                msg += ", " + string.Join(", ", message.Details.Select(z => $"{z.Heading}: {z.Detail}"));
            }
            LogUtil.LogText(msg);
            SendMessage(msg, Settings.NotifyDestination);
        }
Beispiel #28
0
        public void TradeFinished(PokeRoutineExecutor routine, PokeTradeDetail <T> info, T result)
        {
            OnFinish?.Invoke(routine);
            var tradedToUser = Data.Species;
            var message      = tradedToUser != 0 ? $"Trade finished. Enjoy your {(Species)tradedToUser}!" : "Trade finished!";

            Context.User.SendMessageAsync(message).ConfigureAwait(false);
            if (result.Species != 0 && Hub.Config.Discord.ReturnPK8s)
            {
                Context.User.SendPKMAsync(result, "Here's what you traded me!").ConfigureAwait(false);
            }
        }
Beispiel #29
0
        public void TradeInitialize(PokeRoutineExecutor routine, PokeTradeDetail <T> info)
        {
            var receive = Data.Species == 0 ? string.Empty : $" ({Data.Nickname})";
            var msg     = $"@{info.Trainer.TrainerName} (ID: {info.ID}): Initializing trade{receive} with you. Please be ready. Use the code you whispered me to search!";
            var dest    = Settings.TradeStartDestination;

            if (dest == TwitchMessageDestination.Whisper)
            {
                msg += $" Your trade code is: {info.Code:0000 0000}";
            }
            LogUtil.LogText(msg);
            SendMessage(msg, dest);
        }
Beispiel #30
0
        public void SendNotification(PokeRoutineExecutor routine, PokeTradeDetail <T> info, PokeTradeSummary message)
        {
            if (message.ExtraInfo is Z3SeedResult r)
            {
                SendNotificationZ3(r);
                return;
            }

            var msg = message.Summary;

            if (message.Details.Count > 0)
            {
                msg += ", " + string.Join(", ", message.Details.Select(z => $"{z.Heading}: {z.Detail}"));
            }
            Context.User.SendMessageAsync(msg).ConfigureAwait(false);
        }