diff --git a/src/PocketMine/Server.php b/src/PocketMine/Server.php index 6679c227d..32c71c013 100644 --- a/src/PocketMine/Server.php +++ b/src/PocketMine/Server.php @@ -28,6 +28,7 @@ namespace PocketMine; use PocketMine\Block\Block; use PocketMine\Command\CommandSender; use PocketMine\Command\ConsoleCommandSender; +use PocketMine\Command\PluginCommand; use PocketMine\Command\SimpleCommandMap; use PocketMine\Entity\Entity; use PocketMine\Event\Event; @@ -373,6 +374,19 @@ class Server{ $this->properties->set($variable, $value == true ? "1" : "0"); } + /** + * @param string $name + * + * @return PluginCommand + */ + public function getPluginCommand($name){ + if(($command = $this->commandMap->getCommand($name)) instanceof PluginCommand){ + return $command; + }else{ + return null; + } + } + /** * @return Server */ diff --git a/src/PocketMine/plugin/PluginBase.php b/src/PocketMine/plugin/PluginBase.php index 382a4556e..7fd24e769 100644 --- a/src/PocketMine/plugin/PluginBase.php +++ b/src/PocketMine/plugin/PluginBase.php @@ -24,6 +24,7 @@ namespace PocketMine\Plugin; use PocketMine\Command\Command; use PocketMine\Command\CommandExecutor; use PocketMine\Command\CommandSender; +use PocketMine\Command\PluginCommand; use PocketMine\Server; use PocketMine\Utils\Config; @@ -125,15 +126,23 @@ abstract class PluginBase implements Plugin, CommandExecutor{ return false; } - /* TODO public function getCommand($name){ - $this->get - }*/ + $command = $this->getServer()->getPluginCommand($name); + if($command === null or $command->getPlugin() !== $this){ + $command = $this->getServer()->getPluginCommand(strtolower($this->description->getName()) . ":" . $name); + } + + if($command instanceof PluginCommand and $command->getPlugin() === $this){ + return $command; + }else{ + return null; + } + } /** * @return bool */ - public function isPhar(){ + protected function isPhar(){ return $this->description instanceof \PharFileInfo; } diff --git a/src/PocketMine/lang/Installer/af_ZA.ini b/src/lang/Installer/af_ZA.ini similarity index 100% rename from src/PocketMine/lang/Installer/af_ZA.ini rename to src/lang/Installer/af_ZA.ini diff --git a/src/PocketMine/lang/Installer/ar_SA.ini b/src/lang/Installer/ar_SA.ini similarity index 100% rename from src/PocketMine/lang/Installer/ar_SA.ini rename to src/lang/Installer/ar_SA.ini diff --git a/src/PocketMine/lang/Installer/cs_CZ.ini b/src/lang/Installer/cs_CZ.ini similarity index 100% rename from src/PocketMine/lang/Installer/cs_CZ.ini rename to src/lang/Installer/cs_CZ.ini diff --git a/src/PocketMine/lang/Installer/de_DE.ini b/src/lang/Installer/de_DE.ini similarity index 100% rename from src/PocketMine/lang/Installer/de_DE.ini rename to src/lang/Installer/de_DE.ini diff --git a/src/PocketMine/lang/Installer/el_GR.ini b/src/lang/Installer/el_GR.ini similarity index 100% rename from src/PocketMine/lang/Installer/el_GR.ini rename to src/lang/Installer/el_GR.ini diff --git a/src/PocketMine/lang/Installer/en.ini b/src/lang/Installer/en.ini similarity index 100% rename from src/PocketMine/lang/Installer/en.ini rename to src/lang/Installer/en.ini diff --git a/src/PocketMine/lang/Installer/en_AU.ini b/src/lang/Installer/en_AU.ini similarity index 100% rename from src/PocketMine/lang/Installer/en_AU.ini rename to src/lang/Installer/en_AU.ini diff --git a/src/PocketMine/lang/Installer/en_CA.ini b/src/lang/Installer/en_CA.ini similarity index 100% rename from src/PocketMine/lang/Installer/en_CA.ini rename to src/lang/Installer/en_CA.ini diff --git a/src/PocketMine/lang/Installer/en_GB.ini b/src/lang/Installer/en_GB.ini similarity index 100% rename from src/PocketMine/lang/Installer/en_GB.ini rename to src/lang/Installer/en_GB.ini diff --git a/src/PocketMine/lang/Installer/en_PT.ini b/src/lang/Installer/en_PT.ini similarity index 100% rename from src/PocketMine/lang/Installer/en_PT.ini rename to src/lang/Installer/en_PT.ini diff --git a/src/PocketMine/lang/Installer/en_US.ini b/src/lang/Installer/en_US.ini similarity index 100% rename from src/PocketMine/lang/Installer/en_US.ini rename to src/lang/Installer/en_US.ini diff --git a/src/PocketMine/lang/Installer/es_AR.ini b/src/lang/Installer/es_AR.ini similarity index 100% rename from src/PocketMine/lang/Installer/es_AR.ini rename to src/lang/Installer/es_AR.ini diff --git a/src/PocketMine/lang/Installer/es_ES.ini b/src/lang/Installer/es_ES.ini similarity index 100% rename from src/PocketMine/lang/Installer/es_ES.ini rename to src/lang/Installer/es_ES.ini diff --git a/src/PocketMine/lang/Installer/es_MX.ini b/src/lang/Installer/es_MX.ini similarity index 100% rename from src/PocketMine/lang/Installer/es_MX.ini rename to src/lang/Installer/es_MX.ini diff --git a/src/PocketMine/lang/Installer/et_EE.ini b/src/lang/Installer/et_EE.ini similarity index 100% rename from src/PocketMine/lang/Installer/et_EE.ini rename to src/lang/Installer/et_EE.ini diff --git a/src/PocketMine/lang/Installer/fi_FI.ini b/src/lang/Installer/fi_FI.ini similarity index 100% rename from src/PocketMine/lang/Installer/fi_FI.ini rename to src/lang/Installer/fi_FI.ini diff --git a/src/PocketMine/lang/Installer/fr_FR.ini b/src/lang/Installer/fr_FR.ini similarity index 100% rename from src/PocketMine/lang/Installer/fr_FR.ini rename to src/lang/Installer/fr_FR.ini diff --git a/src/PocketMine/lang/Installer/ga_IE.ini b/src/lang/Installer/ga_IE.ini similarity index 100% rename from src/PocketMine/lang/Installer/ga_IE.ini rename to src/lang/Installer/ga_IE.ini diff --git a/src/PocketMine/lang/Installer/he_IL.ini b/src/lang/Installer/he_IL.ini similarity index 100% rename from src/PocketMine/lang/Installer/he_IL.ini rename to src/lang/Installer/he_IL.ini diff --git a/src/PocketMine/lang/Installer/id_ID.ini b/src/lang/Installer/id_ID.ini similarity index 100% rename from src/PocketMine/lang/Installer/id_ID.ini rename to src/lang/Installer/id_ID.ini diff --git a/src/PocketMine/lang/Installer/it_IT.ini b/src/lang/Installer/it_IT.ini similarity index 100% rename from src/PocketMine/lang/Installer/it_IT.ini rename to src/lang/Installer/it_IT.ini diff --git a/src/PocketMine/lang/Installer/ja_JP.ini b/src/lang/Installer/ja_JP.ini similarity index 100% rename from src/PocketMine/lang/Installer/ja_JP.ini rename to src/lang/Installer/ja_JP.ini diff --git a/src/PocketMine/lang/Installer/ko_KR.ini b/src/lang/Installer/ko_KR.ini similarity index 100% rename from src/PocketMine/lang/Installer/ko_KR.ini rename to src/lang/Installer/ko_KR.ini diff --git a/src/PocketMine/lang/Installer/lv_LV.ini b/src/lang/Installer/lv_LV.ini similarity index 100% rename from src/PocketMine/lang/Installer/lv_LV.ini rename to src/lang/Installer/lv_LV.ini diff --git a/src/PocketMine/lang/Installer/ms_MY.ini b/src/lang/Installer/ms_MY.ini similarity index 100% rename from src/PocketMine/lang/Installer/ms_MY.ini rename to src/lang/Installer/ms_MY.ini diff --git a/src/PocketMine/lang/Installer/mt_MT.ini b/src/lang/Installer/mt_MT.ini similarity index 100% rename from src/PocketMine/lang/Installer/mt_MT.ini rename to src/lang/Installer/mt_MT.ini diff --git a/src/PocketMine/lang/Installer/nl_NL.ini b/src/lang/Installer/nl_NL.ini similarity index 100% rename from src/PocketMine/lang/Installer/nl_NL.ini rename to src/lang/Installer/nl_NL.ini diff --git a/src/PocketMine/lang/Installer/no_NO.ini b/src/lang/Installer/no_NO.ini similarity index 100% rename from src/PocketMine/lang/Installer/no_NO.ini rename to src/lang/Installer/no_NO.ini diff --git a/src/PocketMine/lang/Installer/pl_PL.ini b/src/lang/Installer/pl_PL.ini similarity index 100% rename from src/PocketMine/lang/Installer/pl_PL.ini rename to src/lang/Installer/pl_PL.ini diff --git a/src/PocketMine/lang/Installer/pt_PT.ini b/src/lang/Installer/pt_PT.ini similarity index 100% rename from src/PocketMine/lang/Installer/pt_PT.ini rename to src/lang/Installer/pt_PT.ini diff --git a/src/PocketMine/lang/Installer/ru_RU.ini b/src/lang/Installer/ru_RU.ini similarity index 100% rename from src/PocketMine/lang/Installer/ru_RU.ini rename to src/lang/Installer/ru_RU.ini diff --git a/src/PocketMine/lang/Installer/sv_SE.ini b/src/lang/Installer/sv_SE.ini similarity index 100% rename from src/PocketMine/lang/Installer/sv_SE.ini rename to src/lang/Installer/sv_SE.ini diff --git a/src/PocketMine/lang/Installer/th_TH.ini b/src/lang/Installer/th_TH.ini similarity index 100% rename from src/PocketMine/lang/Installer/th_TH.ini rename to src/lang/Installer/th_TH.ini diff --git a/src/PocketMine/lang/Installer/tlh_AA.ini b/src/lang/Installer/tlh_AA.ini similarity index 100% rename from src/PocketMine/lang/Installer/tlh_AA.ini rename to src/lang/Installer/tlh_AA.ini diff --git a/src/PocketMine/lang/Installer/tr_TR.ini b/src/lang/Installer/tr_TR.ini similarity index 100% rename from src/PocketMine/lang/Installer/tr_TR.ini rename to src/lang/Installer/tr_TR.ini diff --git a/src/PocketMine/lang/Installer/uk_UA.ini b/src/lang/Installer/uk_UA.ini similarity index 100% rename from src/PocketMine/lang/Installer/uk_UA.ini rename to src/lang/Installer/uk_UA.ini diff --git a/src/PocketMine/lang/Installer/vi_VN.ini b/src/lang/Installer/vi_VN.ini similarity index 100% rename from src/PocketMine/lang/Installer/vi_VN.ini rename to src/lang/Installer/vi_VN.ini diff --git a/src/PocketMine/lang/Installer/zh_CN.ini b/src/lang/Installer/zh_CN.ini similarity index 100% rename from src/PocketMine/lang/Installer/zh_CN.ini rename to src/lang/Installer/zh_CN.ini diff --git a/src/PocketMine/lang/Installer/zu_ZA.ini b/src/lang/Installer/zu_ZA.ini similarity index 100% rename from src/PocketMine/lang/Installer/zu_ZA.ini rename to src/lang/Installer/zu_ZA.ini