Exemplo n.º 1
0
 private void Start(EventArgs args)
 {
     Discovered = SharpUPnP.Discover(SharpUPnP.GetGateways());
     if (Discovered)
     {
         RestPort = TShock.Config.RestApiPort;
         //SharpUPnP.DeleteForwardingRule(Netplay.ListenPort, ProtocolType.Udp);
         SharpUPnP.DeleteForwardingRule(Netplay.ListenPort, ProtocolType.Tcp);
         //SharpUPnP.DeleteForwardingRule(RestPort, ProtocolType.Udp);
         SharpUPnP.DeleteForwardingRule(RestPort, ProtocolType.Tcp);
         //bool Udp = SharpUPnP.ForwardPort(Netplay.ListenPort, ProtocolType.Udp, "TShock @ Port: " + Netplay.ListenPort);
         bool Tcp = SharpUPnP.ForwardPort(Netplay.ListenPort, ProtocolType.Tcp, "TShock @ Port: " + Netplay.ListenPort);
         if (TShock.Config.RestApiEnabled)
         {
             //Udp &= SharpUPnP.ForwardPort(RestPort, ProtocolType.Udp, "TShock REST @ Port: " + RestPort);
             Tcp &= SharpUPnP.ForwardPort(RestPort, ProtocolType.Tcp, "TShock REST @ Port: " + RestPort);
         }
         Success = Tcp;
         if (Success)
         {
             Console.WriteLine("(UPnP) Port Forward succesful.");
             try
             {
                 string IP = SharpUPnP.GetExternalIP().ToString();
                 if (!String.IsNullOrEmpty(IP))
                 {
                     Console.WriteLine("(UPnP) Your IP: " + SharpUPnP.GetExternalIP().ToString());
                 }
             }
             catch { }
             TShock.Log.Info("(UPnP) Port Forward succesful.");
         }
         else
         {
             Console.WriteLine("(UPnP) Port Forward failed. (Port already taken?)");
             TShock.Log.Error("(UPnP) Port Forward failed. (Port already taken?)");
         }
     }
     else
     {
         Console.WriteLine("(UPnP) Failed to discover UPnP service.");
         TShock.Log.Error("(UPnP) Failed to discover UPnP service.");
     }
 }