mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-10 15:59:39 +00:00
Network->unregisterInterface() is now less useless
Interfaces are now automatically shut down when unregistered.
This commit is contained in:
parent
9ebd559907
commit
b6bcb47deb
@ -1683,7 +1683,6 @@ class Server{
|
|||||||
$this->getLogger()->debug("Stopping network interfaces");
|
$this->getLogger()->debug("Stopping network interfaces");
|
||||||
foreach($this->network->getInterfaces() as $interface){
|
foreach($this->network->getInterfaces() as $interface){
|
||||||
$this->getLogger()->debug("Stopping network interface " . get_class($interface));
|
$this->getLogger()->debug("Stopping network interface " . get_class($interface));
|
||||||
$interface->shutdown();
|
|
||||||
$this->network->unregisterInterface($interface);
|
$this->network->unregisterInterface($interface);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ use pocketmine\event\server\NetworkInterfaceRegisterEvent;
|
|||||||
use pocketmine\event\server\NetworkInterfaceUnregisterEvent;
|
use pocketmine\event\server\NetworkInterfaceUnregisterEvent;
|
||||||
use pocketmine\network\mcpe\NetworkSession;
|
use pocketmine\network\mcpe\NetworkSession;
|
||||||
use pocketmine\network\mcpe\protocol\PacketPool;
|
use pocketmine\network\mcpe\protocol\PacketPool;
|
||||||
|
use function get_class;
|
||||||
use function spl_object_id;
|
use function spl_object_id;
|
||||||
|
|
||||||
class Network{
|
class Network{
|
||||||
@ -116,10 +117,15 @@ class Network{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param NetworkInterface $interface
|
* @param NetworkInterface $interface
|
||||||
|
* @throws \InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
public function unregisterInterface(NetworkInterface $interface) : void{
|
public function unregisterInterface(NetworkInterface $interface) : void{
|
||||||
|
if(!isset($this->interfaces[$hash = spl_object_id($interface)])){
|
||||||
|
throw new \InvalidArgumentException("Interface " . get_class($interface) . " is not registered on this network");
|
||||||
|
}
|
||||||
(new NetworkInterfaceUnregisterEvent($interface))->call();
|
(new NetworkInterfaceUnregisterEvent($interface))->call();
|
||||||
unset($this->interfaces[$hash = spl_object_id($interface)], $this->advancedInterfaces[$hash]);
|
unset($this->interfaces[$hash], $this->advancedInterfaces[$hash]);
|
||||||
|
$interface->shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user