66
77use pocketmine \event \Listener ;
88use pocketmine \event \server \DataPacketSendEvent ;
9+ use pocketmine \network \mcpe \protocol \types \AbilitiesData ;
10+ use pocketmine \network \mcpe \protocol \types \AbilitiesLayer ;
911use pocketmine \network \mcpe \protocol \types \command \CommandPermissions ;
1012use pocketmine \network \mcpe \protocol \types \PlayerPermissions ;
11- use pocketmine \network \mcpe \protocol \types \UpdateAbilitiesPacketLayer ;
1213use pocketmine \network \mcpe \protocol \UpdateAbilitiesPacket ;
1314use pocketmine \permission \DefaultPermissionNames ;
1415use pocketmine \permission \DefaultPermissions ;
@@ -77,7 +78,7 @@ public function onDataPacketSendEvent (DataPacketSendEvent $event) : void
7778
7879 $ this ->list [$ target ->getPlayer ()->getUniqueId ()->toString ()] = true ;
7980 }
80- }), 4 );
81+ }), 0 );
8182 }
8283 }
8384 }
@@ -87,31 +88,36 @@ private function internalChange (Player $for, float $value) : void
8788 $ isOp = $ for ->hasPermission (DefaultPermissions::ROOT_OPERATOR );
8889
8990 $ boolAbilities = [
90- UpdateAbilitiesPacketLayer ::ABILITY_ALLOW_FLIGHT => $ for ->getAllowFlight (),
91- UpdateAbilitiesPacketLayer ::ABILITY_FLYING => $ for ->isFlying (),
92- UpdateAbilitiesPacketLayer ::ABILITY_NO_CLIP => !$ for ->hasBlockCollision (),
93- UpdateAbilitiesPacketLayer ::ABILITY_OPERATOR => $ isOp ,
94- UpdateAbilitiesPacketLayer ::ABILITY_TELEPORT => $ for ->hasPermission (DefaultPermissionNames::COMMAND_TELEPORT ),
95- UpdateAbilitiesPacketLayer ::ABILITY_INVULNERABLE => $ for ->isCreative (),
96- UpdateAbilitiesPacketLayer ::ABILITY_MUTED => false ,
97- UpdateAbilitiesPacketLayer ::ABILITY_WORLD_BUILDER => false ,
98- UpdateAbilitiesPacketLayer ::ABILITY_INFINITE_RESOURCES => !$ for ->hasFiniteResources (),
99- UpdateAbilitiesPacketLayer ::ABILITY_LIGHTNING => false ,
100- UpdateAbilitiesPacketLayer ::ABILITY_BUILD => !$ for ->isSpectator (),
101- UpdateAbilitiesPacketLayer ::ABILITY_MINE => !$ for ->isSpectator (),
102- UpdateAbilitiesPacketLayer ::ABILITY_DOORS_AND_SWITCHES => !$ for ->isSpectator (),
103- UpdateAbilitiesPacketLayer ::ABILITY_OPEN_CONTAINERS => !$ for ->isSpectator (),
104- UpdateAbilitiesPacketLayer ::ABILITY_ATTACK_PLAYERS => !$ for ->isSpectator (),
105- UpdateAbilitiesPacketLayer ::ABILITY_ATTACK_MOBS => !$ for ->isSpectator (),
91+ AbilitiesLayer ::ABILITY_ALLOW_FLIGHT => $ for ->getAllowFlight (),
92+ AbilitiesLayer ::ABILITY_FLYING => $ for ->isFlying (),
93+ AbilitiesLayer ::ABILITY_NO_CLIP => !$ for ->hasBlockCollision (),
94+ AbilitiesLayer ::ABILITY_OPERATOR => $ isOp ,
95+ AbilitiesLayer ::ABILITY_TELEPORT => $ for ->hasPermission (DefaultPermissionNames::COMMAND_TELEPORT ),
96+ AbilitiesLayer ::ABILITY_INVULNERABLE => $ for ->isCreative (),
97+ AbilitiesLayer ::ABILITY_MUTED => false ,
98+ AbilitiesLayer ::ABILITY_WORLD_BUILDER => false ,
99+ AbilitiesLayer ::ABILITY_INFINITE_RESOURCES => !$ for ->hasFiniteResources (),
100+ AbilitiesLayer ::ABILITY_LIGHTNING => false ,
101+ AbilitiesLayer ::ABILITY_BUILD => !$ for ->isSpectator (),
102+ AbilitiesLayer ::ABILITY_MINE => !$ for ->isSpectator (),
103+ AbilitiesLayer ::ABILITY_DOORS_AND_SWITCHES => !$ for ->isSpectator (),
104+ AbilitiesLayer ::ABILITY_OPEN_CONTAINERS => !$ for ->isSpectator (),
105+ AbilitiesLayer ::ABILITY_ATTACK_PLAYERS => !$ for ->isSpectator (),
106+ AbilitiesLayer ::ABILITY_ATTACK_MOBS => !$ for ->isSpectator (),
106107 ];
107108
108- $ for ->getNetworkSession ()->sendDataPacket (UpdateAbilitiesPacket::create (
109+ $ for ->getNetworkSession ()->sendDataPacket (UpdateAbilitiesPacket::create (new AbilitiesData (
109110 $ isOp ? CommandPermissions::OPERATOR : CommandPermissions::NORMAL ,
110111 $ isOp ? PlayerPermissions::OPERATOR : PlayerPermissions::MEMBER ,
111- $ for ->getId (),
112+ $ for ->getId (),
112113 [
113- new UpdateAbilitiesPacketLayer (UpdateAbilitiesPacketLayer::LAYER_BASE , $ boolAbilities , $ value / 20 , 0.1 ),
114+ new AbilitiesLayer (
115+ AbilitiesLayer::LAYER_BASE ,
116+ $ boolAbilities ,
117+ $ value / 20 ,
118+ 0.1
119+ )
114120 ]
115- ));
121+ ))) ;
116122 }
117123}
0 commit comments