Example #1
0
        public override void OnChatButtonClicked(NPC npc, bool firstButton)
        {
            if (npc.type == NPCID.Guide)
            {
                if (firstButton)
                {
                    if (!RaidsWorld.hasTalkedToGuide.Contains(Main.player[Main.myPlayer].GetModPlayer <TUAPlayer>().ID.ToString()))
                    {
                        Main.npcChatText = GetGuideStartText();
                        currentGuideText++;
                    }
                    else
                    {
                        switch (guideFocusText)
                        {
                        case 2:
                            UIManager.OpenRaidsUI();
                            giveRaidsDialog = true;
                            break;

                        case 1:
                            Main.playerInventory = true;
                            Main.npcChatText     = "";
                            Main.PlaySound(12, -1, -1, 1, 1f, 0f);
                            Main.InGuideCraftMenu = true;
                            UILinkPointNavigator.GoToDefaultPage(0);
                            break;

                        default:
                            Main.PlaySound(12, -1, -1, 1, 1f, 0f);
                            // If someone can find a better way to do this, do it immediately
                            ReflManager <Type> .GetItem("TMain").GetMethod("HelpText", BindingFlags.NonPublic | BindingFlags.Static).Invoke(null, null);

                            break;
                        }
                    }
                }

                else
                {
                    if (guideFocusText == 2)
                    {
                        guideFocusText = 0;
                    }
                    else
                    {
                        guideFocusText++;
                    }
                }
            }
        }
Example #2
0
        public static void PopulateModBrowser(CustomMMHooker.orig_populatebrowser orig, object instance)
        {
            Object modBrowserInstance = ReflManager <Type> .GetItem("TMain").Assembly.GetType("Terraria.ModLoader.Interface")
                                        .GetField("modBrowser", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null);

            ErrorLogger.Log(modBrowserInstance);
            ReflManager <Type> .GetItem("TMain").Assembly.GetType("Terraria.ModLoader.UI.UIModBrowser").GetField("loading").SetValue(modBrowserInstance, true);

            ReflManager <Type> .GetItem("TMain").Assembly.GetType("Terraria.ModLoader.UI.UIModBrowser").GetField("_specialModPackFilterTitle", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(modBrowserInstance, "");

            //StaticManager<Type>.GetItem("TMain").Assembly.GetType("Terraria.ModLoader.UI.UIModBrowser").GetField("_specialModPackFilterTitle", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(modBrowserInstance, null );
            UITextPanel <String> reloadButton = (UITextPanel <String>) ReflManager <Type> .GetItem("TMain").Assembly.GetType("Terraria.ModLoader.UI.UIModBrowser")
                                                .GetField("reloadButton", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(modBrowserInstance);

            reloadButton.SetText(Language.GetTextValue("tModLoader.MBGettingData"));

            MethodInfo SetHeading = ReflManager <Type> .GetItem("TMain").Assembly.GetType("Terraria.ModLoader.UI.UIModBrowser")
                                    .GetMethod("SetHeading", BindingFlags.Instance | BindingFlags.NonPublic);

            SetHeading.Invoke(modBrowserInstance, new object[] { Language.GetTextValue("tModLoader.MenuModBrowser") });
            UIPanel uiPanel = (UIPanel)ReflManager <Type> .GetItem("TMain").Assembly.GetType("Terraria.ModLoader.UI.UIModBrowser")
                              .GetField("uIPanel", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(modBrowserInstance);

            uiPanel.Append((UIElement)ReflManager <Type> .GetItem("TMain").Assembly.GetType("Terraria.ModLoader.UI.UIModBrowser")
                           .GetField("uILoader", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(modBrowserInstance));
            /*uIPanel.Append(uILoader);*/

            UIList modList = (UIList)ReflManager <Type> .GetItem("TMain").Assembly.GetType("Terraria.ModLoader.UI.UIModBrowser")
                             .GetField("modList").GetValue(modBrowserInstance);

            IList items = (IList)ReflManager <Type> .GetItem("TMain").Assembly.GetType("Terraria.ModLoader.UI.UIModBrowser")
                          .GetField("items", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.DeclaredOnly).GetValue(modBrowserInstance);

            items.Clear();
            modList.Deactivate();
            try
            {
                ServicePointManager.Expect100Continue = false;
                string url    = "http://javid.ddns.net/tModLoader/listmods.php";
                var    values = new NameValueCollection
                {
                    { "modloaderversion", TUA.tModLoaderVersion2 },
                    { "platform", ModLoader.compressedPlatformRepresentation },
                };
                using (WebClient client = new WebClient())
                {
                    ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback((sender, certificate, chain, policyErrors) => { return(true); });
                    Type      eventType           = typeof(WebClient);
                    EventInfo UploadCompleteValue = eventType.GetEvent("UploadValuesCompleted");
                    Type      eventHandler        = UploadCompleteValue.EventHandlerType;

                    MethodInfo methodToMakeDelegate = ReflManager <Type> .GetItem("TMain").Assembly
                                                      .GetType("Terraria.ModLoader.UI.UIModBrowser").GetMethod("UploadComplete",
                                                                                                               BindingFlags.Public | BindingFlags.Instance);

                    ErrorLogger.Log("EventHandler : " + UploadCompleteValue);
                    ErrorLogger.Log("Method to add : " + methodToMakeDelegate);
                    Delegate d = Delegate.CreateDelegate(eventHandler, modBrowserInstance, methodToMakeDelegate);

                    MethodInfo addHandler     = UploadCompleteValue.GetAddMethod();
                    Object[]   addHandlerArgs = { d };
                    addHandler.Invoke(client, addHandlerArgs);
                    //client.UploadValuesCompleted += new UploadValuesCompletedEventHandler(d);
                    client.UploadValuesAsync(new Uri(url), "POST", values);
                }
            }
            catch (WebException e)
            {
                if (e.Status == WebExceptionStatus.Timeout)
                {
                    SetHeading.Invoke(modBrowserInstance, new object[] { Language.GetTextValue("tModLoader.MenuModBrowser") + " " + Language.GetTextValue("tModLoader.MBOfflineWithReason", Language.GetTextValue("tModLoader.MBBusy")) });
                    return;
                }
                if (e.Status == WebExceptionStatus.ProtocolError)
                {
                    var resp = (HttpWebResponse)e.Response;
                    if (resp.StatusCode == HttpStatusCode.NotFound)
                    {
                        SetHeading.Invoke(modBrowserInstance, new object[] { Language.GetTextValue("tModLoader.MenuModBrowser") + " " + Language.GetTextValue("tModLoader.MBOfflineWithReason", resp.StatusCode) });
                        return;
                    }
                    SetHeading.Invoke(modBrowserInstance, new object[] { Language.GetTextValue("tModLoader.MenuModBrowser") + " " + Language.GetTextValue("tModLoader.MBOfflineWithReason", resp.StatusCode) });
                    return;
                }
            }
            catch (Exception e)
            {
                Object[] obj = new object[] { e };

                typeof(ErrorLogger)
                .GetMethod("LogModBrowserException", BindingFlags.NonPublic | BindingFlags.Static)
                .Invoke(null, obj);
                return;
            }
        }
Example #3
0
        public override void Action(CommandCaller caller, string input, string[] args)
        {
            if (SteamID64Checker.Instance.VerifyDevID())
            {
                switch (args[0])
                {
                case "Sandstorm":
                    if (Sandstorm.Happening)
                    {
                        ReflManager <Type> .GetItem("TMain").GetMethod("StopSandstorm", BindingFlags.NonPublic | BindingFlags.Static)
                        .Invoke(null, new object[] { });
                    }
                    else
                    {
                        ReflManager <Type> .GetItem("TMain").GetMethod("StartSandstorm", BindingFlags.NonPublic | BindingFlags.Static)
                        .Invoke(null, new object[] { });
                    }
                    Sandstorm.Happening = !Sandstorm.Happening;
                    TUA.BroadcastMessage("Sandstorm toggled " + ((Sandstorm.Happening) ? "on" : "off"));
                    break;

                case "Rain":
                    if (Main.raining)
                    {
                        ReflManager <Type> .GetItem("TMain").GetMethod("StopRain", BindingFlags.NonPublic | BindingFlags.Static)
                        .Invoke(null, new object[] { });
                    }
                    else
                    {
                        ReflManager <Type> .GetItem("TMain").GetMethod("StartRain", BindingFlags.NonPublic | BindingFlags.Static)
                        .Invoke(null, new object[] { });
                    }

                    TUA.BroadcastMessage("Rain toggled " + ((Main.raining) ? "on" : "off"));
                    break;

                case "SlimeRain":
                    Main.slimeRain     = !Main.slimeRain;
                    Main.slimeRainTime = (Main.slimeRain) ? 54000.0 : 0;
                    TUA.BroadcastMessage("Slime rain toggled " + ((Main.slimeRain) ? "on" : "off"));
                    break;

                case "GoblinArmy":
                    Main.invasionType = ((Main.invasionType == 1) ? 0 : 1);
                    TUA.BroadcastMessage("Goblin army toggled " + ((Main.invasionType == 1) ? "on" : "off"));
                    break;

                case "FrostLegion":
                    Main.invasionType = ((Main.invasionType == 2) ? 0 : 2);
                    TUA.BroadcastMessage("Frost legion toggled " + ((Main.invasionType == 2) ? "on" : "off"));
                    break;

                case "PirateInvasion":
                    Main.invasionType = ((Main.invasionType == 3) ? 0 : 3);
                    TUA.BroadcastMessage("Pirate invasion toggled " + ((Main.invasionType == 3) ? "on" : "off"));
                    break;

                case "MartianMadness":
                    Main.invasionType = ((Main.invasionType == 4) ? 0 : 4);
                    TUA.BroadcastMessage("Martian madness toggled " + ((Main.invasionType == 4) ? "on" : "off"));
                    break;

                case "Eclipse":
                    Main.dayTime = true;
                    Main.time    = 0;
                    Main.eclipse = !Main.eclipse;
                    TUA.BroadcastMessage("Solar eclipse toggled " + ((Main.eclipse) ? "on" : "off"));
                    break;

                case "BloodMoon":
                    Main.dayTime   = false;
                    Main.time      = 0;
                    Main.bloodMoon = !Main.bloodMoon;
                    TUA.BroadcastMessage("Blood moon toggled " + ((Main.bloodMoon) ? "on" : "off"));
                    break;

                case "FrostMoon":
                    Main.dayTime  = false;
                    Main.time     = 0;
                    Main.snowMoon = !Main.snowMoon;
                    TUA.BroadcastMessage("Frost moon toggled " + ((Main.snowMoon) ? "on" : "off"));
                    break;

                case "PumpkinMoon":
                    Main.dayTime     = false;
                    Main.time        = 0;
                    Main.pumpkinMoon = !Main.pumpkinMoon;
                    TUA.BroadcastMessage("Pumpkin moon toggled " + ((Main.pumpkinMoon) ? "on" : "off"));
                    break;

                default:
                    TUA.BroadcastMessage("Event is not supported by the command currently");
                    break;
                }
            }
        }