diff --git a/bootstrap.php b/bootstrap.php index bf0d988..ad2b617 100755 --- a/bootstrap.php +++ b/bootstrap.php @@ -2,6 +2,7 @@ use App\Services\Hook; use Blessing\Filter; +use Blessing\Rejection; use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Http\Request; use Illuminate\Support\Collection; @@ -44,6 +45,11 @@ 'LittleSkin\PremiumVerification\Listeners\OnAuthenticated@handle' ); + $events->listen( + 'player.delete.attempt', + 'LittleSkin\PremiumVerification\Listeners\OnPlayerDeleteAttempt@handle' + ); + $events->listen( 'user.deleting', 'LittleSkin\PremiumVerification\Listeners\OnUserDeleting@handle' diff --git a/lang/en/premium.yml b/lang/en/premium.yml index 92f1880..1a098f3 100755 --- a/lang/en/premium.yml +++ b/lang/en/premium.yml @@ -19,6 +19,7 @@ verified-by-other: 这个正版账号已经被其他 LittleSkin 账号绑定过 already-verified: 你已经绑定过正版账号了 not-verified: 你还没有绑定过正版账号 deleted: (已删除) +player-cannot-be-deleted: 正版绑定角色不允许删除 premium-uuid: 正版角色 UUID premium-uuid-tip: 不是绑定角色的 UUID diff --git a/lang/zh_CN/premium.yml b/lang/zh_CN/premium.yml index 92f1880..1a098f3 100755 --- a/lang/zh_CN/premium.yml +++ b/lang/zh_CN/premium.yml @@ -19,6 +19,7 @@ verified-by-other: 这个正版账号已经被其他 LittleSkin 账号绑定过 already-verified: 你已经绑定过正版账号了 not-verified: 你还没有绑定过正版账号 deleted: (已删除) +player-cannot-be-deleted: 正版绑定角色不允许删除 premium-uuid: 正版角色 UUID premium-uuid-tip: 不是绑定角色的 UUID diff --git a/src/Listeners/OnPlayerDeleteAttempt.php b/src/Listeners/OnPlayerDeleteAttempt.php new file mode 100644 index 0000000..ae6adc7 --- /dev/null +++ b/src/Listeners/OnPlayerDeleteAttempt.php @@ -0,0 +1,26 @@ +filter = $filter; + } + + public function handle() { + $this->filter->add('can_delete_player', function($can, $player) { + if(Premium::where('pid', $player->pid)->count()) { + return new Rejection(trans("LittleSkin\PremiumVerification::premium.player-cannot-be-deleted")); + } + return $can; + }); + } +}