diff --git a/src/network/upnp/UPnP.php b/src/network/upnp/UPnP.php index 07399e0e4..8645fa99f 100644 --- a/src/network/upnp/UPnP.php +++ b/src/network/upnp/UPnP.php @@ -187,14 +187,14 @@ class UPnP{ return $serviceURL; } - public static function portForward(string $serviceURL, int $port) : void{ + public static function portForward(string $serviceURL, string $internalIP, int $internalPort, int $externalPort) : void{ $body = '' . '' . - '' . $port . '' . + '' . $externalPort . '' . 'UDP' . - '' . $port . '' . - '' . Internet::getInternalIP() . '' . + '' . $internalPort . '' . + '' . $internalIP . '' . '1' . 'PocketMine-MP' . '0' . @@ -215,11 +215,11 @@ class UPnP{ } } - public static function removePortForward(string $serviceURL, int $port) : void{ + public static function removePortForward(string $serviceURL, int $externalPort) : void{ $body = '' . '' . - '' . $port . '' . + '' . $externalPort . '' . 'UDP' . ''; diff --git a/src/network/upnp/UPnPNetworkInterface.php b/src/network/upnp/UPnPNetworkInterface.php index f4deafc39..ecb30e876 100644 --- a/src/network/upnp/UPnPNetworkInterface.php +++ b/src/network/upnp/UPnPNetworkInterface.php @@ -52,7 +52,7 @@ final class UPnPNetworkInterface implements NetworkInterface{ $this->logger->info("Attempting to portforward..."); $this->serviceURL = UPnP::getServiceUrl(); - UPnP::portForward($this->serviceURL, $this->port); + UPnP::portForward($this->serviceURL, Internet::getInternalIP(), $this->port, $this->port); $this->logger->info("Forwarded $this->ip:$this->port to external port $this->port"); }