Fix ./command detection by old plugins (#138)

* Fix ./command detection by old plugins

* plugins might change it 🤦
This commit is contained in:
Dylan K. Taylor 2016-12-03 20:05:00 +00:00 committed by GitHub
parent 2e540300d8
commit 74e31fe712

View File

@ -2556,6 +2556,10 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade
$packet->message = TextFormat::clean($packet->message, $this->removeFormat);
foreach(explode("\n", $packet->message) as $message){
if(trim($message) != "" and strlen($message) <= 255 and $this->messageCounter-- > 0){
if(substr($message, 0, 2) === "./"){ //Command (./ = fast hack for old plugins post 0.16)
$message = substr($message, 1);
}
$ev = new PlayerCommandPreprocessEvent($this, $message);
if(mb_strlen($ev->getMessage(), "UTF-8") > 320){
@ -2566,9 +2570,10 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade
if($ev->isCancelled()){
break;
}
if(substr($ev->getMessage(), 0, 2) === "./"){ //Command (./ = fast hack for old plugins post 0.16)
if(substr($ev->getMessage(), 0, 1) === "/"){
Timings::$playerCommandTimer->startTiming();
$this->server->dispatchCommand($ev->getPlayer(), substr($ev->getMessage(), 2));
$this->server->dispatchCommand($ev->getPlayer(), substr($ev->getMessage(), 1));
Timings::$playerCommandTimer->stopTiming();
}else{
$this->server->getPluginManager()->callEvent($ev = new PlayerChatEvent($this, $ev->getMessage()));