3
3
namespace App \Http \Controllers ;
4
4
5
5
use App \Player ;
6
+ use File ;
6
7
use Illuminate \Http \Request ;
7
8
use App \Http \Controllers \Controller ;
9
+ use Log ;
8
10
9
11
class PlayerController extends Controller {
10
12
@@ -19,19 +21,37 @@ public function addPlayer(Request $request) {
19
21
'g-recaptcha-response ' => 'required|recaptcha ' ,
20
22
);
21
23
24
+
22
25
$ name = $ request ->input ("name " );
23
26
24
- $ validator = validator ()->make ($ request ->input (), $ rules );
27
+ if (env ('APP_DEBUG ' )) {
28
+ $ debugRules = array (
29
+ 'name ' => array ('required ' , 'regex: ' . Player::VALID_USERNAME ),
30
+ //disable the captcha in order to hide the api keys and still be able to test the functionality of this
31
+ //website
32
+ // 'g-recaptcha-response' => 'required|recaptcha',
33
+ );
34
+
35
+ $ validator = validator ()->make ($ request ->input (), $ debugRules );
36
+ } else {
37
+ $ validator = validator ()->make ($ request ->input (), $ rules );
38
+ }
39
+
25
40
if ($ validator ->passes ()) {
26
- logger ("Adding player " , ["name " => $ name ]);
27
41
28
42
$ exists = Player::where ("name " , '= ' , $ name )->exists ();
29
43
if ($ exists ) {
30
44
return view ("player.add " )->with (["name " => $ name ])->withErrors (['Player already exists ' ]);
31
45
} else {
32
46
\Artisan::call ("app:uuid " , ["playerName " => $ name ]);
33
-
34
47
logger ()->info ("Added player: " . $ name . " : " );
48
+
49
+
50
+ $ uuid = Player::where ("name " , '= ' , $ name )->value ("uuid " );
51
+ logger ()->info ("Name: " . $ name . " UUID: " . $ uuid );
52
+ \Artisan::call ("app:skin " , ["uuid " => $ uuid ]);
53
+
54
+ logger ()->info ("Skin Downloaded: Player: " . $ name . " UUID: " . $ uuid );
35
55
return redirect ()->action ("PlayerController@getPlayerByUsername " , [$ name ]);
36
56
}
37
57
} else {
@@ -47,8 +67,21 @@ public function getPlayerByUUID($uuid) {
47
67
/* @var $player Player */
48
68
$ player = Player::where ("uuid " , '= ' , $ uuid )->first ();
49
69
70
+ // /home/breuxi/Minecraft-Database/public/
71
+
72
+ if (is_file (public_path ("/img/skin/ $ player ->uuid .png " )) && is_file (public_path ("/img/skin/raw/ $ player ->uuid .png " ))) {
73
+ $ skin_image_size = $ this ->getFileSize (public_path ("/img/skin/ $ player ->uuid .png " ));
74
+ $ skin_raw_size = $ this ->getFileSize (public_path ("/img/skin/raw/ $ player ->uuid .png " ));
75
+ } else {
76
+ $ skin_image_size = null ;
77
+ $ skin_raw_size = null ;
78
+ }
79
+
80
+
81
+ $ skin_sizes = array ($ skin_image_size , $ skin_raw_size );
82
+
50
83
if ($ player ) {
51
- return view ("player.player " , ['player ' => $ player ]);
84
+ return view ("player.player " , ['player ' => $ player, ' skinsize ' => $ skin_sizes , ' root ' => $ _SERVER [ ' DOCUMENT_ROOT ' ] ]);
52
85
} else {
53
86
return response ()->view ("player.notFound " , ['uuid ' => $ uuid ], 404 );
54
87
}
@@ -58,10 +91,41 @@ public function getPlayerByUsername($username) {
58
91
/* @var $player Player */
59
92
$ player = Player::where ("name " , '= ' , $ username )->first ();
60
93
94
+ if (is_file (public_path ("/img/skin/ $ player ->uuid .png " )) && is_file (public_path ("/img/skin/raw/ $ player ->uuid .png " ))) {
95
+ $ skin_image_size = $ this ->getFileSize (public_path ("/img/skin/ $ player ->uuid .png " ));
96
+ $ skin_raw_size = $ this ->getFileSize (public_path ("/img/skin/raw/ $ player ->uuid .png " ));
97
+ } else {
98
+ $ skin_image_size = null ;
99
+ $ skin_raw_size = null ;
100
+ }
101
+
102
+
103
+ $ skin_sizes = array ($ skin_image_size , $ skin_raw_size );
104
+
105
+
61
106
if ($ player ) {
62
- return view ("player.player " , ['player ' => $ player ]);
107
+ return view ("player.player " , ['player ' => $ player, ' skinsize ' => $ skin_sizes ]);
63
108
} else {
64
109
return response ()->view ("player.notFound " , ['name ' => $ username ], 404 );
65
110
}
66
111
}
112
+
113
+
114
+ public function getFileSize ($ skinURL ) {
115
+ $ bytes = File::size ($ skinURL );
116
+
117
+ if ($ bytes >= 1073741824 ) {
118
+ return number_format ($ bytes / 1073741824 , 2 ) . ' GB ' ;
119
+ } elseif ($ bytes >= 1048576 ) {
120
+ return number_format ($ bytes / 1048576 , 2 ) . ' MB ' ;
121
+ } elseif ($ bytes >= 1024 ) {
122
+ return number_format ($ bytes / 1024 , 2 ) . ' KB ' ;
123
+ } elseif ($ bytes > 1 ) {
124
+ return $ bytes . ' Bytes ' ;
125
+ } elseif ($ bytes == 1 ) {
126
+ return '1 Byte ' ;
127
+ } else {
128
+ return '0 Bytes ' ;
129
+ }
130
+ }
67
131
}
0 commit comments