Fix in case of a space in names.

This commit is contained in:
Adsooi 2017-11-05 16:26:36 +01:00
parent 6e64b8745d
commit e3ea4cfeb5

View file

@ -46,6 +46,7 @@ class Main extends PluginBase implements Listener {
* When a command is executed, check for selectors * When a command is executed, check for selectors
* *
* @param PlayerCommandPreProcessEvent $event * @param PlayerCommandPreProcessEvent $event
* @priority HIGHEST
* @return void * @return void
*/ */
public function onCommandPreProcess(PlayerCommandPreProcessEvent $event): void{ public function onCommandPreProcess(PlayerCommandPreProcessEvent $event): void{
@ -59,6 +60,7 @@ class Main extends PluginBase implements Listener {
* When a command is executed, check for selectors * When a command is executed, check for selectors
* *
* @param PlayerCommandPreProcessEvent $event * @param PlayerCommandPreProcessEvent $event
* @priority HIGHEST
* @return void * @return void
*/ */
public function onServerCommand(ServerCommandEvent $event): void{ public function onServerCommand(ServerCommandEvent $event): void{
@ -86,6 +88,7 @@ class Main extends PluginBase implements Listener {
foreach($commandsToExecute as $index => $cmd){ foreach($commandsToExecute as $index => $cmd){
// Foreaching the returning commands to push them to the new commands to be executed at the next run. // Foreaching the returning commands to push them to the new commands to be executed at the next run.
foreach(self::$selectors[$matches[1][$index]]->applySelector($sender, $params) as $selectorStr){ foreach(self::$selectors[$matches[1][$index]]->applySelector($sender, $params) as $selectorStr){
if(strpos($selectorStr, " ") !== -1) $selectorStr = explore($selectorStr)[count(explode($selectorStr)) - 1]; // Name w/ spaces. Match the nearest name in the player. Not perfect :/
$newCommandsToExecute[] = substr_replace($cmd, " " . $selectorStr . " ", strpos($cmd, $match), strlen($match)); $newCommandsToExecute[] = substr_replace($cmd, " " . $selectorStr . " ", strpos($cmd, $match), strlen($match));
} }
if(count($newCommandsToExecute) == 0) { if(count($newCommandsToExecute) == 0) {