11<?php
2+
3+ /*
4+ * ____ __ __ _ _ ___ ____ ____ ___ _____
5+ * / ___| \ \ / / | \ | | / _ \ | _ \ / ___| |_ _| | ____|
6+ * \___ \ \ V / | \| | | | | | | |_) | \___ \ | | | _|
7+ * ___) | | | | |\ | | |_| | | __/ ___) | | | | |___
8+ * |____/ |_| |_| \_| \___/ |_| |____/ |___| |_____|
9+ *
10+ * Ce plugin permet d'activer ou de désactiver le fly pendant une période définit ou non,
11+ * ainsi que de modifier ça vitesse de vole.
12+ *
13+ * @author Synopsie
14+ * @link https://github.com/Synopsie
15+ * @version 1.0.0
16+ *
17+ */
18+
219declare (strict_types=1 );
320
421namespace fly \commands ;
1431use pocketmine \lang \Translatable ;
1532use pocketmine \player \Player ;
1633use pocketmine \Server ;
34+ use function str_replace ;
1735
1836class FlyCommand extends CommandBase {
37+ public function __construct (string $ name , string |Translatable $ description , string $ usageMessage , array $ subCommands = [], array $ aliases = []) {
38+ parent ::__construct ($ name , $ description , $ usageMessage , $ subCommands , $ aliases );
39+ $ this ->setPermissions (
40+ [
41+ Main::getInstance ()->getConfig ()->getNested ('commands.fly.permission.name ' , 'synopsie.fly.use ' ),
42+ Main::getInstance ()->getConfig ()->getNested ('commands.fly.other.permission.name ' , 'synopsie.fly.other ' )
43+ ]
44+ );
45+ }
1946
20- public function __construct (string $ name , Translatable |string $ description , string $ usageMessage , array $ subCommands = [], array $ aliases = []) {
21- parent ::__construct ($ name , $ description , $ usageMessage , $ subCommands , $ aliases );
22- $ this ->setPermissions (
23- [
24- Main::getInstance ()->getConfig ()->getNested ('commands.fly.permission.name ' , 'synopsie.fly.use ' ),
25- Main::getInstance ()->getConfig ()->getNested ('commands.fly.other.permission.name ' , 'synopsie.fly.other ' )
26- ]
27- );
28- }
29-
30- public function getCommandParameters () : array {
31- return [
32- new PlayerParameter ('target ' , true ),
33- new IntParameter ('time ' , false , true )
34- ];
35- }
47+ public function getCommandParameters () : array {
48+ return [
49+ new PlayerParameter ('target ' , true ),
50+ new IntParameter ('time ' , false , true )
51+ ];
52+ }
3653
37- protected function onRun (CommandSender $ sender , array $ parameters ) : void {
38- $ config = Main::getInstance ()->getConfig ();
39- if (!isset ($ parameters ['target ' ])) {
40- if ($ sender instanceof Player) {
41- if (!$ sender ->isCreative ()) {
42- if (!$ sender ->getAllowFlight ()) {
43- $ sender ->setAllowFlight (true );
44- $ sender ->setFlying (true );
45- if ($ config ->get ('no.clip.in.fly ' )) {
46- $ sender ->setHasBlockCollision (false );
47- }
48- $ sender ->sendMessage ($ config ->get ('fly.enabled ' , "Vous venez d'§aactiver §fle vole. " ));
49- } else {
50- $ sender ->setAllowFlight (false );
51- $ sender ->setFlying (false );
52- if ($ config ->get ('no.clip.in.fly ' )) {
53- $ sender ->setHasBlockCollision (true );
54- }
55- $ sender ->sendMessage ($ config ->get ('fly.disabled ' , "Vous venez de §cdésactiver §fle vole. " ));
56- }
57- } else {
58- $ sender ->sendMessage ($ config ->get ('use.command.increative ' , "§cVous ne pouvez pas utiliser cette commande en créatif. " ));
59- }
60- } else {
61- $ sender ->sendMessage ($ config ->get ('use.command.ingame ' ));
62- }
63- } else {
64- if (!$ sender ->hasPermission ($ this ->getPermissions ()[1 ])) {
65- $ sender ->sendMessage ($ config ->get ('no.permission ' , "§cVous n'avez pas la permission d'utiliser cette commande. " ));
66- return ;
67- }
68- $ target = Server::getInstance ()->getPlayerExact ($ parameters ['target ' ]);
69- if (!$ target instanceof Player) {
70- $ sender ->sendMessage ($ config ->get ('player.not.found ' , "§cLe joueur n'a pas été trouvé. " ));
71- return ;
72- }
73- if (!$ target ->isCreative ()) {
74- if (isset ($ parameters ['time ' ])) {
75- $ session = Session::get ($ target );
76- $ session ->setFlyTime ($ parameters ['time ' ]);
77- $ target ->setAllowFlight (true );
78- $ target ->setFlying (true );
79- if ($ config ->get ('no.clip.in.fly ' )) {
80- $ target ->setHasBlockCollision (false );
81- }
82- $ target ->sendMessage (str_replace (["%staff% " , "%time% " ], [$ sender ->getName (), Utils::convertTime ($ parameters ['time ' ])], $ config ->get ('fly.enabled.by.time ' , "§e%staff% §fvient de vous §aactiver §fle vole pour §e%time%§f. " )));
83- $ sender ->sendMessage (str_replace (["%player% " , "%time% " ], [$ target ->getName (), Utils::convertTime ($ parameters ['time ' ])], $ config ->get ('fly.enabled.to.time ' , "Vous venez de §aactiver §fle vole de §e%player% pour §e%time%§f. " )));
84- Main::getInstance ()->getScheduler ()->scheduleRepeatingTask (new FlyTask ($ target , $ parameters ['time ' ]), 20 );
85- } else {
86- if (!$ target ->getAllowFlight ()) {
87- $ target ->setAllowFlight (true );
88- $ target ->setFlying (true );
89- if ($ config ->get ('no.clip.in.fly ' )) {
90- $ target ->setHasBlockCollision (false );
91- }
92- $ target ->sendMessage (str_replace ("%staff% " , $ sender ->getName (), $ config ->get ('fly.enabled.by ' , "§e%staff% §fvient de vous §aactiver §fle vole. " )));
93- $ sender ->sendMessage (str_replace ("%player% " , $ target ->getName (), $ config ->get ('fly.enabled.to ' , "Vous venez de §aactiver §fle vole de §e%player%. " )));
94- } else {
95- $ target ->setAllowFlight (false );
96- $ target ->setFlying (false );
97- if ($ config ->get ('no.clip.in.fly ' )) {
98- $ target ->setHasBlockCollision (true );
99- }
100- $ target ->sendMessage (str_replace ("%staff% " , $ sender ->getName (), $ config ->get ('fly.disabled.by ' , "§e%staff% §fvient de vous §cdésactiver §fle vole. " )));
101- $ sender ->sendMessage (str_replace ("%player% " , $ target ->getName (), $ config ->get ('fly.disabled.to ' , "Vous venez de §cdésactiver §fle vole de §e%player%. " )));
102- }
103- }
104- } else {
105- $ target ->sendMessage ($ config ->get ('use.command.increative ' , "§cVous ne pouvez pas utiliser cette commande en créatif. " ));
106- }
107- }
108- }
54+ protected function onRun (CommandSender $ sender , array $ parameters ) : void {
55+ $ config = Main::getInstance ()->getConfig ();
56+ if (!isset ($ parameters ['target ' ])) {
57+ if ($ sender instanceof Player) {
58+ if (!$ sender ->isCreative ()) {
59+ if (!$ sender ->getAllowFlight ()) {
60+ $ sender ->setAllowFlight (true );
61+ $ sender ->setFlying (true );
62+ if ($ config ->get ('no.clip.in.fly ' )) {
63+ $ sender ->setHasBlockCollision (false );
64+ }
65+ $ sender ->sendMessage ($ config ->get ('fly.enabled ' , "Vous venez d'§aactiver §fle vole. " ));
66+ } else {
67+ $ sender ->setAllowFlight (false );
68+ $ sender ->setFlying (false );
69+ if ($ config ->get ('no.clip.in.fly ' )) {
70+ $ sender ->setHasBlockCollision (true );
71+ }
72+ $ sender ->sendMessage ($ config ->get ('fly.disabled ' , "Vous venez de §cdésactiver §fle vole. " ));
73+ }
74+ } else {
75+ $ sender ->sendMessage ($ config ->get ('use.command.increative ' , "§cVous ne pouvez pas utiliser cette commande en créatif. " ));
76+ }
77+ } else {
78+ $ sender ->sendMessage ($ config ->get ('use.command.ingame ' ));
79+ }
80+ } else {
81+ if (!$ sender ->hasPermission ($ this ->getPermissions ()[1 ])) {
82+ $ sender ->sendMessage ($ config ->get ('no.permission ' , "§cVous n'avez pas la permission d'utiliser cette commande. " ));
83+ return ;
84+ }
85+ $ target = Server::getInstance ()->getPlayerExact ($ parameters ['target ' ]);
86+ if (!$ target instanceof Player) {
87+ $ sender ->sendMessage ($ config ->get ('player.not.found ' , "§cLe joueur n'a pas été trouvé. " ));
88+ return ;
89+ }
90+ if (!$ target ->isCreative ()) {
91+ if (isset ($ parameters ['time ' ])) {
92+ $ session = Session::get ($ target );
93+ $ session ->setFlyTime ($ parameters ['time ' ]);
94+ $ target ->setAllowFlight (true );
95+ $ target ->setFlying (true );
96+ if ($ config ->get ('no.clip.in.fly ' )) {
97+ $ target ->setHasBlockCollision (false );
98+ }
99+ $ target ->sendMessage (str_replace (["%staff% " , "%time% " ], [$ sender ->getName (), Utils::convertTime ($ parameters ['time ' ])], $ config ->get ('fly.enabled.by.time ' , "§e%staff% §fvient de vous §aactiver §fle vole pour §e%time%§f. " )));
100+ $ sender ->sendMessage (str_replace (["%player% " , "%time% " ], [$ target ->getName (), Utils::convertTime ($ parameters ['time ' ])], $ config ->get ('fly.enabled.to.time ' , "Vous venez de §aactiver §fle vole de §e%player% pour §e%time%§f. " )));
101+ Main::getInstance ()->getScheduler ()->scheduleRepeatingTask (new FlyTask ($ target , $ parameters ['time ' ]), 20 );
102+ } else {
103+ if (!$ target ->getAllowFlight ()) {
104+ $ target ->setAllowFlight (true );
105+ $ target ->setFlying (true );
106+ if ($ config ->get ('no.clip.in.fly ' )) {
107+ $ target ->setHasBlockCollision (false );
108+ }
109+ $ target ->sendMessage (str_replace ("%staff% " , $ sender ->getName (), $ config ->get ('fly.enabled.by ' , "§e%staff% §fvient de vous §aactiver §fle vole. " )));
110+ $ sender ->sendMessage (str_replace ("%player% " , $ target ->getName (), $ config ->get ('fly.enabled.to ' , "Vous venez de §aactiver §fle vole de §e%player%. " )));
111+ } else {
112+ $ target ->setAllowFlight (false );
113+ $ target ->setFlying (false );
114+ if ($ config ->get ('no.clip.in.fly ' )) {
115+ $ target ->setHasBlockCollision (true );
116+ }
117+ $ target ->sendMessage (str_replace ("%staff% " , $ sender ->getName (), $ config ->get ('fly.disabled.by ' , "§e%staff% §fvient de vous §cdésactiver §fle vole. " )));
118+ $ sender ->sendMessage (str_replace ("%player% " , $ target ->getName (), $ config ->get ('fly.disabled.to ' , "Vous venez de §cdésactiver §fle vole de §e%player%. " )));
119+ }
120+ }
121+ } else {
122+ $ target ->sendMessage ($ config ->get ('use.command.increative ' , "§cVous ne pouvez pas utiliser cette commande en créatif. " ));
123+ }
124+ }
125+ }
109126
110- }
127+ }
0 commit comments