Hey Guys, what is the Problem in this code? PHP: if($cmd->getName() == "limitedvip") { if(!isset($args[0]) || count($args) > 4){ $sender->sendMessage(TextFormat::GREEN."Usage: /limitedvip <add/remove> [player] [time]"); return true; } switch(strtolower($args[0])){ case "add": if(isset($args[1])){ if(isset($args[2])){ $args[1] = $limitedvip; $this->limitedvip = new Config($this->getDataFolder() . "PlayersInfo/" . strtolower($limitedvip->getName()), Config::YAML, array()); $this->limitedvip; $after = $args[2]; $after = round($after, 2); $secAfter = $after*3600; $limitedviptime = $secAfter + time(); $this->limitedvip->set("limited_V.I.P.", "true"); $this->limitedvip->set("limited_V.I.P._time", $limitedviptime); $this->limitedvip->save(); } }} ERROR: Code: limitedvip add Simon 1 [17:37:58] [Server thread/INFO]: An unknown error occurred while attempting to perform this command [17:37:58] [Server thread/CRITICAL]: Unhandled exception executing command 'limitedvip add Simon 1' in limitedvip: Undefined variable: limitedvip [17:37:58] [Server thread/NOTICE]: UndefinedVariableException: "Undefined variable: limitedvip" (E_NOTICE) in "/McKaff_Settings/src/McKaff_Settings/Main" at line 240 Thx Marcelo234
PHP... PHP: if($cmd->getName() == "limitedvip") { if(!isset($args[0]) || count($args) > 4){ $sender->sendMessage(TextFormat::GREEN."Usage: /limitedvip <add/remove> [player] [time]"); return true; } switch(strtolower($args[0])){ case "add": if(isset($args[1])){ if(isset($args[2])){ $limitedvip = $args[1]; $this->limitedvip = new Config($this->getDataFolder() . "PlayersInfo/" . strtolower($limitedvip->getName()), Config::YAML, array()); $after = $args[2]; $after = round($after, 2); $secAfter = $after*3600; $limitedviptime = $secAfter + time(); $this->limitedvip->set("limited_V.I.P.", "true"); $this->limitedvip->set("limited_V.I.P._time", $limitedviptime); $this->limitedvip->save(); } }}
Code: limitedvip add Simon 1 Fatal error: Call to a member function getName() on string in C:\Users\Marcelo\Desktop\McKaff_Settings-TEST\McKaff_Settings-TEST\plugins\McKaff_Settings\src\McKaff_Settings\Main.php on line 241
This: PHP: $this->limitedvip = new Config($this->getDataFolder() . "PlayersInfo/" . strtolower($limitedvip->getName()), Config::YAML, array());
I think you're is trying to get the name of the player (Should be done with $this->getServer()->getPlayer($String)->getName() )
why? $args[1] is what the players typed on /limitedvip 0 {this} so what a player types is a string. if you want to get the player from the name on $args[1]: PHP: $this->getServer()->getPlayer($args[1]);
it should not be the player, it will return just a string like 'Simon' it'll never return a player object. as I told you above, if you want to get the player from that string use it.
$args[1] isn't an object, it's a string. Try: PHP: private function getValidPlayer($name){$player = $this->getServer()->getPlayer($name);if($player instanceof Player){return $player;}else{return false;}}