okey try this code: <?php namespace TopMoney; use pocketmine\level\particle\FloatingTextParticle; use pocketmine\Player; use pocketmine\event\Listener; use pocketmine\math\Vector3; use pocketmine\event\player\PlayerJoinEvent; class TopMoney extends implements Listener{ public function joinevent(PlayerJoinEvent $e){ $player = $e->getPlayer(); $this->topmoney($player); } public function topmoney($p){ $player = $p->getPlayer(); $configs = $this->moneyconfig->getAll(); $count = count($configs); $message = “”; $top = “Top Money LeaderBoard”; arsort($configs); $i = 1; foreach($configs as $name => $amount){ $message .= “§e ”.$i.”. §7” .$name.” §f” .$amount. “§aMoney\n”; if($i > 4 ){ break; } ++$i; } $x = 100; $y = 100; $z = 101; $p = new FloatingTextParticle(new Vector3($x,$y +1, $z), $message, $top); $player->getLevel()->addParticle($p); } } } }
<?php namespace TopMoney\Task; use TopMoney\TopMoney; use pocketmine\scheduler\Task; use pocketmine\Player; class UpdateTask extends Task { public function __construct(TopMoney $plugin) { $this->plugin = $plugin; } public function onRun(int $currentTick) { $this->plugin->TopMoney(); } } use this task
Help me, the code run but my money was initially 5 and I adjusted it to 10, so the 2 text tables are nested! Is there any way for a text table?
You have to define $p that means do it like that: public function topmoney(Player $player){} And in the Task you must write the argument Player like that: foreach($this->plugin->getServer()->getOnlinePlayers() as $player){ $this->plugin->topmoney($player) }