Пример #1
0
 public function execute(CommandSender $sender, array $args)
 {
     $player = $sender->getServer()->getPlayer($sender->getName());
     $plot = $this->getPlugin()->getPlotByPosition($player->getPosition());
     if ($plot === null) {
         $sender->sendMessage(TextFormat::RED . "You are not standing inside a plot");
         return true;
     }
     if ($plot->owner == "") {
         $msg = TextFormat::DARK_RED . "Unclaimed Plot";
         if (isset($args[0])) {
             $sender->sendTip($msg);
         } else {
             $sender->sendMessage($msg);
         }
     } else {
         if (isset($args[0])) {
             $msg = TextFormat::DARK_GREEN . "Plot " . TextFormat::WHITE . $plot->id;
             $msg .= " ({$plot->X} , {$plot->Z}) \n";
             $msg .= TextFormat::DARK_GREEN . "Owner: " . TextFormat::WHITE . $plot->owner . "\n";
             if ($plot->name != "") {
                 $msg .= TextFormat::DARK_GREEN . "Name: " . TextFormat::WHITE . $plot->name . "\n";
             }
             /*
             				if( count($plot->helpers) > 0 ) {
             					if($plot->helpers[0] != "") {
             						$msg .= " " . TextFormat::DARK_GREEN . " with " .  implode(", ", $plot->helpers);
             					}
             				}
             */
             $sender->sendTip($msg);
         } else {
             $pos = " ({$plot->X} , {$plot->Z}) ";
             $sender->sendMessage(TextFormat::DARK_GREEN . "Position: " . TextFormat::WHITE . $pos);
             $sender->sendMessage(TextFormat::DARK_GREEN . "Plot Number: " . TextFormat::WHITE . $plot->id);
             $sender->sendMessage(TextFormat::DARK_GREEN . "Name: " . TextFormat::WHITE . $plot->name);
             $sender->sendMessage(TextFormat::DARK_GREEN . "Owner: " . TextFormat::WHITE . $plot->owner);
             $helpers = implode(", ", $plot->helpers);
             $sender->sendMessage(TextFormat::DARK_GREEN . "Helpers: " . TextFormat::WHITE . $helpers);
             $sender->sendMessage(TextFormat::DARK_GREEN . "Biome: " . TextFormat::WHITE . $plot->biome);
         }
     }
     return true;
 }
Пример #2
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     $cfg = $this->getConfig();
     $holding = $cfg->get("sneak-on-item");
     $noholding = $cfg->get("sneak-off-item");
     if ($cmd->getName() === "isneak") {
         if ($sender->hasPermission("isneak.command")) {
             if (!isset($args[0]) || count($args) > 1) {
                 $sender->sendMessage("§b> §cUsage: §7/isneak §c<§7on §c| §7off§c>");
                 return true;
             }
             switch (strtolower($args[0])) {
                 case "on":
                     if ($sender instanceof Player) {
                         $sender->getInventory()->remove(Item::get($holding));
                         $sender->getInventory()->remove(Item::get($noholding));
                         $sender->getInventory()->addItem(Item::get($holding));
                         $sender->getInventory()->addItem(Item::get($noholding));
                         $sender->sendTip("§6ItemSneaking Enabled");
                     }
                     break;
                 case "off":
                     if ($sender instanceof Player) {
                         $sender->getInventory()->remove(Item::get($holding));
                         $sender->getInventory()->remove(Item::get($noholding));
                         $this->disableSneak($sender);
                         $sender->sendTip("§6ItemSneaking Disabled");
                     }
                     break;
             }
             return true;
         } else {
             $sender->sendMessage("§cYou don't have permission for this command.");
         }
     }
 }
 public function execute(CommandSender $sender, array $args)
 {
     if (count($args) > 1) {
         return false;
     }
     $name = "";
     if (isset($args[0])) {
         $name = $args[0];
     }
     $player = $sender->getServer()->getPlayer($sender->getName());
     $plot = $this->getPlugin()->getPlotByPosition($player->getPosition());
     if ($plot === null) {
         $sender->sendMessage(TextFormat::RED . "You are not standing on an island");
         return true;
     }
     if ($plot->owner != "") {
         if ($plot->owner === $sender->getName()) {
             $sender->sendMessage(TextFormat::RED . "You already own this island");
         } else {
             $sender->sendMessage(TextFormat::RED . "This island is already claimed by " . $plot->owner);
         }
         return true;
     }
     $plotLevel = $this->getPlugin()->getLevelSettings($plot->levelName);
     $maxPlotsInLevel = $plotLevel->maxPlotsPerPlayer;
     $maxPlots = $this->getPlugin()->getConfig()->get("MaxPlotsPerPlayer");
     $plotsOfPlayer = $this->getPlugin()->getProvider()->getPlotsByOwner($player->getName());
     if ($maxPlotsInLevel >= 0 and count($plotsOfPlayer) >= $maxPlotsInLevel) {
         $sender->sendMessage(TextFormat::RED . "You reached the limit of {$maxPlotsInLevel} islands per player in this world");
         return true;
     } elseif ($maxPlots >= 0 and count($plotsOfPlayer) >= $maxPlots) {
         $sender->sendMessage(TextFormat::RED . "You reached the limit of {$maxPlots} islands per player");
         return true;
     }
     $economy = $this->getPlugin()->getEconomyProvider();
     if ($economy !== null and !$economy->reduceMoney($player, $plotLevel->claimPrice)) {
         $sender->sendMessage(TextFormat::RED . "You don't have enough money to claim this island");
         return true;
     }
     $plot->owner = $sender->getName();
     $plot->name = $name;
     if ($this->getPlugin()->getProvider()->savePlot($plot)) {
         if ($sender instanceof Player) {
             $sender->sendMessage(TextFormat::GREEN . "You are now the owner of " . TextFormat::WHITE . $plot);
             // chest
             $position = $this->getPlugin()->getPlotPosition($plot);
             // debug
             $position = $player->getPosition();
             $position instanceof Position;
             $chest = $position->getLevel()->getBlock(new Vector3(floor($position->getX()), 30 + (69 - 64), floor($position->getZ())));
             $position->getLevel()->setBlock(new Vector3(floor($position->getX()), 30 + (69 - 64), floor($position->getZ())), new Block(Block::CHEST), true, true);
             $nbt = new Compound("", [new Enum("Items", []), new String("id", Tile::CHEST), new Int("x", floor($position->getX())), new Int("y", floor($position->getY())), new Int("z", floor($position->getZ()))]);
             $nbt->Items->setTagType(NBT::TAG_Compound);
             $tile = Tile::createTile("Chest", $sender->getLevel()->getChunk(floor($position->getX()) >> 4, floor($position->getZ()) >> 4), $nbt);
             if (!$tile instanceof \pocketmine\tile\Chest) {
                 continue;
             }
             $tile->getInventory()->addItem(new Item(Item::ICE, 0, 2), new Item(Item::BUCKET, 10, 1), new Item(Item::MELON_SLICE, 0, 1), new Item(Item::CACTUS, 0, 1), new Item(Item::RED_MUSHROOM, 0, 1), new Item(Item::BROWN_MUSHROOM, 0, 1), new Item(Item::PUMPKIN_SEEDS, 0, 1), new Item(Item::SUGAR_CANE, 0, 1), new Item(Item::SIGN, 0, 1));
             $sender->sendTip(TextFormat::GREEN . TextFormat::BOLD . "A new SkyBlock\n" . TextFormat::GOLD . "by thebigsmileXD");
         }
     } else {
         $sender->sendMessage(TextFormat::RED . "Something went wrong");
     }
     return true;
 }