the code: ("this code is a edit of RealVanish") PHP: use pocketmine\command\CommandSender;use pocketmine\command\Command;use pocketmine\event\Listener;use pocketmine\plugin\PluginBase;use pocketmine\Server; use pocketmine\Player; use pocketmine\event\entity\EntityDamageByEntityEvent; use pocketmine\event\entity\EntityDamageEvent; use pocketmine\entity\Entity; use pocketmine\utils\TextFormat as C; use pocketmine\utils\Config; use pocketmine\network\protocol\DisconnectPacket; use pocketmine\Server\ConsoleCommandSender; use pocketmine\inventory\PlayerInventory; use pocketmine\inventory\Inventory; use pocketmine\event\player\PlayerQuitEvent; use pocketmine\event\player\PlayerInteractEvent; use pocketmine\event\player\PlayerPreLoginEvent; use pocketmine\item\enchantment\Enchantment; use pocketmine\item\enchantment\EnchantmentEntry; use pocketmine\item\enchantment\EnchantmentList; use pocketmine\item\Item; use pocketmine\math\Vector3; use pocketmine\event\block\BlockPlaceEvent;class code extends PluginBase implements Listener{public function onEnable(){ $this->getServer()->getPluginManager()->registerEvents($this, $this); $this->getServer()->getPluginManager("EconomyAPI"); $this->admin = []; }public function onLoad(){} public function onCommand(CommandSender $sender, Command $cmd, $label, array $args){switch($cmd->getName()){ case "eadmin": $this->admin[$sender->getName()]; $inv = $sender->getInventory(); $inv->clearAll(); $itens = [ Item::get(280, 0, 1), //Graveto Item::get(340, 0, 1), //Livro Item::get(352, 0, 1), //Osso Item::get(288, 0, 1), //Pena Item::get(101, 0, 64),//Grade de iron Item::get(101, 0, 64),//Grade de iron Item::get(101, 0, 64),//Grade de iron Item::get(101, 0, 64),//Grade de iron Item::get(101, 0, 64),//Grade de iron Item::get(101, 0,64),//Grade de iron ]; $knockback = Enchantment::getEnchantment(12); $knockback->setLevel(25); $itens[0]->addEnchantment($knockback); $itens[0]->setCustomName("§e§lAnti-Knockback §r/n§7(Toque em um jogador)"); $sender->getInventory()->addItem($itens[0]); $itens[6]->setCustomName("§c§lNull"); $sender->getInventory()->addItem($itens[6]); $itens[5]->setCustomName("§c§lNull"); $sender->getInventory()->addItem($itens[5]); $itens[1]->setCustomName("§e§lInfo §r/n§7(Mostrar as informações do jogador)"); $sender->getInventory()->addItem($itens[1]); $itens[7]->setCustomName("§c§lNull"); $sender->getInventory()->addItem($itens[7]); $itens[8]->setCustomName("§c§lNull"); $sender->getInventory()->addItem($itens[8]); $itens[2]->setCustomName("§e§lCrashador §r/n§7(Crashar o minecraft do jogador)"); $sender->getInventory()->addItem($itens[2]); $itens[3]->setCustomName("§e§lGlide / No-Fall§r§7 /n(Ver se o jogador está de Glide ou No-Fall)"); $sender->getInventory()->addItem($itens[3]); $itens[4]->setCustomName("§c§lNull"); $sender->getInventory()->addItem($itens[4]); $itens[9]->setCustomName("§c§lNull"); $sender->getInventory()->addItem($itens[9]); $sender->getInventory()->setHotbarSlotIndex(380, 1); $sender->getInventory()->setHotbarSlotIndex(340, 2); $sender->getInventory()->setHotbarSlotIndex(101, 3); $sender->getInventory()->setHotbarSlotIndex(352, 4); $sender->getInventory()->setHotbarSlotIndex(288, 5); $sender->getInventory()->setHotbarSlotIndex(101, 6); $sender->getInventory()->setHotbarSlotIndex(101, 7); $sender->getInventory()->setHotbarSlotIndex(101, 8); $sender->getInventory()->setHotbarSlotIndex(101, 9); $sender->getInventory()->setHotbarSlotIndex(101, 10); $this->getServer()->removeOnlinePlayer($sender); $this->getServer()->removePlayer($sender); foreach($this->getServer()->getOnlinePlayers() as $player){ if($player->canSee($sender)){ if(!$player->hasPermission("admin.ver")){ $player->hidePlayer($sender); } } } Server::getInstance()->dispatchCommand($sender, "sc §aAcabei de entrar em modo admin!"); unset($sender->buffer); $sender->sendMessage("§cAdmin>§f Você entrou no modo admin"); $this->getServer()->broadcastMessage($sender->getLeaveMessage()); return true; break; case "sadmin": $sender->getInventory()->clearAll(); unset($this->admin[$sender->getName()]); Server::getInstance()->dispatchCommand($sender, "sc §aAcabei de sair do modo admin, só falta relogar"); $pk = new DisconnectPacket(); $pk->message = "§cAdmin>§f Para sair do modo admin, basta relogar"; $sender->directDataPacket($pk); return true; break;}return false; } public function onDamage(EntityDamageEvent $ev){ $eco = $this->getServer()->getPluginManager("EconomyAPI"); //Pega o plugin economy $entity = $ev->getEntity(); if($entity instanceof Player){ if($entity instanceof EntityDamageByEntityEvent){ $player = $ev->getDamager(); if($player instanceof Player){ $id = $player->getInventory()->getIteminHand()->getId(); if($player->isAdmin()){ if($id == 340){ $name = $entity->getName(); $gamemode = $entity->getGamemode(); $life = $entity->getHealth(); $xp = $entity->getXpLevel(); $admin = $entity->isAdmin(); $money = $eco->myMoney($entity); $player->sendMessage(" "); $player->sendMessage("§7Nick: §a".$name ."\n§7Gamemode:§a ".$gamemode ."\n§7Vida:§a ".$life ."\n§7XP:§a ".$xp ."\n§7Modo Admin: ".$admin ."\n§7Money:§a ".$money); $player->sendMessage(" "); return; } if($id == 352){ $entity->close("", "§cThis server has crashed"); return; } if($id == 288){ $x = $entity->getX(); $y = $entity->getY(); $z = $entity->getZ(); $entity->teleport(new Vector3($entity->getX(), $entity->getY() + 15, $entity->getZ())); if($entity->getLastDamageCause()->getCause() === EntityDamageEvent::CAUSE_FALL){ //Verificar a causa do dano, no caso "queda" $player->sendMessage(" "); $player->sendMessage("§7A vida do §a".$entity->getName() ." §7agora é: §a".$entity->getHealth); $player->sendMessage(" "); } } } } } } } public function aoQuebrar(BlockPlaceEvent $ev){ $player = $ev->getPlayer(); $id = $ev->getBlock()->getId(); if(isset($this->admin[$player->getName()])){ if($id === 101){ $ev->setCancelled(true); } } } public function aoSair(PlayerQuitEvent $ev){ $player = $ev->getPlayer(); if(isset($this->admin[$player->getName()])){ $player->getInventory()->clearAll(); unset($this->admin[$player->getName()]); } } public function isAdmin(Player $sender){ if(isset($this->admin[$sender->getName()])){ $player->sendMessage("§aVerdadeiro"); return true; } else { $player->sendMessage("§cFalso"); return; } } public function onDisable(){}} I can not do anything with the EntityDamageEvent items, and the BlockPlaceEvent block can be placed on the floor, even the event being canceled '-'
I think there must be something wrong with the function isAdmin () and $ this-> admin [$ sender-> getName ()]
for this: Code: Notice: Undefined index: DanielYTK in C:\Users\DanielYTK\Documents\PocketMine-MP\plugins\Admin\src\DanielYTK\Coder\code.php on line 57 line 57: PHP: switch($cmd->getName()){ case "eadmin": $this->admin[$sender->getName()]; -- line 55 $inv = $sender->getInventory(); $inv->clearAll(); $itens = [ Item::get(280, 0, 1), //Graveto Item::get(340, 0, 1), //Livro Item::get(352, 0, 1), //Osso Item::get(288, 0, 1), //Pena Item::get(101, 0, 64),//Grade de iron Item::get(101, 0, 64),//Grade de iron Item::get(101, 0, 64),//Grade de iron Item::get(101, 0, 64),//Grade de iron Item::get(101, 0, 64),//Grade de iron Item::get(101, 0,64),//Grade de iron ];
Your code there doesn't do anything. If you want to set it, you need to use something like this: PHP: $this->admin[$sender->getName()] = $value;//or? Never used this:set($this->admin[$sender->getName(), $value); Keep in mind that the value can be anything, numeric or not, and isset() will then return true(This is my understanding, anyway. Feel free to correct me if I am wrong.)