2016-09-10 19:06:54 +08:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Providers;
|
|
|
|
|
|
|
|
use Illuminate\Support\ServiceProvider;
|
2019-12-14 11:10:37 +08:00
|
|
|
use Validator;
|
2016-09-10 19:06:54 +08:00
|
|
|
|
|
|
|
class ValidatorExtendServiceProvider extends ServiceProvider
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* Bootstrap any application services.
|
|
|
|
*
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
public function boot()
|
|
|
|
{
|
2018-06-19 11:51:34 +08:00
|
|
|
Validator::extend('player_name', function ($a, $value, $p, $v) {
|
|
|
|
$regexp = '/^(.*)$/';
|
2016-09-10 19:06:54 +08:00
|
|
|
|
2018-06-19 11:51:34 +08:00
|
|
|
switch (option('player_name_rule')) {
|
|
|
|
case 'official':
|
|
|
|
// Mojang's official username rule
|
|
|
|
$regexp = '/^([A-Za-z0-9_]+)$/';
|
|
|
|
break;
|
2016-09-10 19:06:54 +08:00
|
|
|
|
2018-06-19 11:51:34 +08:00
|
|
|
case 'cjk':
|
|
|
|
// CJK Unified Ideographs
|
|
|
|
$regexp = '/^([A-Za-z0-9_\x{4e00}-\x{9fff}]+)$/u';
|
|
|
|
break;
|
2016-09-10 19:06:54 +08:00
|
|
|
|
2018-06-19 11:51:34 +08:00
|
|
|
case 'custom':
|
|
|
|
$regexp = option('custom_player_name_regexp') ?: $regexp;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return preg_match($regexp, $value);
|
2016-09-10 19:06:54 +08:00
|
|
|
});
|
2018-06-19 11:51:34 +08:00
|
|
|
}
|
2016-09-10 19:06:54 +08:00
|
|
|
}
|