From 64f25ef95f092e1d47c52642d42ba8ba956a8e36 Mon Sep 17 00:00:00 2001 From: Pig Fang Date: Tue, 23 Apr 2019 23:34:04 +0800 Subject: [PATCH] Reset invalid texture when player retrieved --- app/Events/PlayerRetrieved.php | 15 +++++++++++++++ app/Http/Controllers/PlayerController.php | 10 +--------- .../ResetInvalidTextureForPlayer.php | 19 +++++++++++++++++++ app/Models/Player.php | 1 + app/Providers/EventServiceProvider.php | 4 +++- 5 files changed, 39 insertions(+), 10 deletions(-) create mode 100644 app/Events/PlayerRetrieved.php create mode 100644 app/Listeners/ResetInvalidTextureForPlayer.php diff --git a/app/Events/PlayerRetrieved.php b/app/Events/PlayerRetrieved.php new file mode 100644 index 00000000..7a29b7ad --- /dev/null +++ b/app/Events/PlayerRetrieved.php @@ -0,0 +1,15 @@ +player = $player; + } +} diff --git a/app/Http/Controllers/PlayerController.php b/app/Http/Controllers/PlayerController.php index e2d8c36c..8b527141 100644 --- a/app/Http/Controllers/PlayerController.php +++ b/app/Http/Controllers/PlayerController.php @@ -31,15 +31,7 @@ class PlayerController extends Controller { $this->middleware(function ($request, $next) { if ($request->has('pid')) { - if ($this->player = Player::find($request->pid)) { - foreach (['skin', 'cape'] as $type) { - $field = "tid_$type"; - if (! Texture::find($this->player->$field)) { - $this->player->$field = 0; - } - } - $this->player->save(); - } + $this->player = Player::find($request->pid); } return $next($request); diff --git a/app/Listeners/ResetInvalidTextureForPlayer.php b/app/Listeners/ResetInvalidTextureForPlayer.php new file mode 100644 index 00000000..1d5fdd81 --- /dev/null +++ b/app/Listeners/ResetInvalidTextureForPlayer.php @@ -0,0 +1,19 @@ +player; + + foreach (['skin', 'cape'] as $type) { + $field = "tid_$type"; + if (! \App\Models\Texture::find($player->$field)) { + $player->$field = 0; + } + } + $player->save(); + } +} diff --git a/app/Models/Player.php b/app/Models/Player.php index 5d3c0d65..1b0a4e19 100644 --- a/app/Models/Player.php +++ b/app/Models/Player.php @@ -28,6 +28,7 @@ class Player extends Model ]; protected $dispatchesEvents = [ + 'retrieved' => \App\Events\PlayerRetrieved::class, 'updated' => PlayerProfileUpdated::class, ]; diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 05ed2e35..cd208a74 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -15,7 +15,9 @@ class EventServiceProvider extends ServiceProvider * @var array */ protected $listen = [ - // + 'App\Events\PlayerRetrieved' => [ + 'App\Listeners\ResetInvalidTextureForPlayer', + ], ]; /**