1+ <?php
2+ declare (strict_types=1 );
3+
4+ namespace space \yurisi \SecureCoinAPI \command ;
5+
6+ use pocketmine \command \CommandSender ;
7+ use pocketmine \player \Player ;
8+ use space \yurisi \SecureCoinAPI \History ;
9+ use space \yurisi \SecureCoinAPI \SecureCoinAPI ;
10+
11+ class givecoinCommand extends SecureCoinCommand{
12+
13+ public function __construct (private SecureCoinAPI $ main ) {
14+ parent ::__construct ('givecoin ' , '自分のお金を他人に譲渡します。 ' , '/givecoin [playerName] [amount] ' );
15+ $ this ->setPermission ("space.yurisi.SecureCoinAPI.givecoin " );
16+ }
17+
18+ public function execute (CommandSender $ sender , string $ commandLabel , array $ args ) {
19+ if (!$ this ->testPermission ($ sender )) return ;
20+
21+ $ amount = $ this ->getAmount ($ args , $ sender );
22+
23+ if (!$ sender instanceof Player){
24+ $ sender ->sendMessage ('ゲーム内で実行してください。 ' );
25+ return ;
26+ }
27+ $ receive_player = $ this ->getPlayer ($ args [0 ]);
28+ $ sent_player = $ sender ->getName ();
29+
30+ if (!$ this ->main ->isRegister ($ receive_player ) || !$ this ->main ->isRegister ($ sent_player )) {
31+ $ sender ->sendMessage ("対象が存在しません。 " );
32+ return ;
33+ }
34+
35+ if ($ receive_player == $ sent_player ) {
36+ $ sender ->sendMessage ("自分自身には渡せません。 " );
37+ return ;
38+ }
39+
40+ if ($ this ->main ->getCoin ($ sent_player ) < $ amount ){
41+ $ sender ->sendMessage ("お金が足りません。 " );
42+ return ;
43+ }
44+
45+ $ this ->main ->addCoin (new History (
46+ $ receive_player ,
47+ $ sent_player ,
48+ $ amount ,
49+ $ this ->main ->getName (),
50+ $ this ->getDescription ()
51+ ));
52+
53+ $ this ->main ->takeCoin (new History (
54+ $ sent_player ,
55+ $ receive_player ,
56+ $ amount ,
57+ $ this ->main ->getName (),
58+ $ this ->getDescription ()
59+ ));
60+
61+ $ sender ->sendMessage ("§c {$ receive_player }に {$ amount }円を渡しました " );
62+ }
63+ }
0 commit comments