можете помочь пожалуйста! ( у меня на бесплатном хостинге работал скупщик Я перешёл на платный и уже не работает то есть по нему кликаешь меню не появляется только звук
а что нам даст скрин директории с сервером?)
хотя бы сам, плагин дал и ошибку, если есть
в чём проблема помогите пожалуйста (
<?php
namespace SkupPlugin;
use pocketmine\entity\Entity;
use pocketmine\Player;
use \pocketmine\event\player\PlayerInteractEvent;
use pocketmine\event\player\PlayerDeathEvent;
use pocketmine\entity\Effect;
use \pocketmine\event\player\PlayerDropItemEvent;
use pocketmine\item\enchantment\Enchantment;
use pocketmine\plugin\PluginBase;
use pocketmine\Server;
use pocketmine\event\Listener;
use pocketmine\event\player\PlayerJoinEvent;
use pocketmine\event\player\PlayerLoginEvent;
use pocketmine\event\player\PlayerQuitEvent;
use pocketmine\event\player\PlayerRespawnEvent;
use pocketmine\level\Position;
use pocketmine\network\mcpe\protocol\EntityEventPacket;
use pocketmine\network\mcpe\protocol\MobEquipmentPacket;
use pocketmine\event\inventory\InventoryCloseEvent;
use pocketmine\event\inventory\InventoryTransactionEvent;
use pocketmine\entity\Human;
use pocketmine\level\sound\{PopSound, AnvilFallSound, ExpPickupSound};
use pocketmine\nbt\tag\CompoundTag;
use pocketmine\nbt\tag\ListTag;
use pocketmine\nbt\tag\DoubleTag;
use pocketmine\nbt\tag\FloatTag;
use pocketmine\nbt\tag\NamedTag;
use pocketmine\nbt\tag\StringTag;
use pocketmine\item\ItemIds;
use pocketmine\entity\Villager;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\utils\Config;
use pocketmine\item\Item;
use pocketmine\level\Level;
use pocketmine\math\Vector3;
use pocketmine\event\entity\{EntityDamageEvent, EntityDamageByEntityEvent};
use pocketmine\nbt\NBT;
use pocketmine\nbt\tag\ByteTag;
use pocketmine\nbt\tag\IntTag;
use pocketmine\scheduler\CallbackTask;
use pocketmine\tile\Tile;
use pocketmine\nbt\tag\ShortTag;
use pocketmine\event\TranslationContainer;
use pocketmine\level\Location;
use pocketmine\event\server\DataPacketReceiveEvent;
use pocketmine\network\mcpe\protocol\InteractPacket;
use pocketmine\network\mcpe\protocol\types\InventoryNetworkIds;
use pocketmine\network\mcpe\protocol\protocolInfo;
use pocketmine\network\mcpe\protocol\UpdateBlockPacket;
use pocketmine\network\mcpe\protocol\ContainerOpenPacket;
use pocketmine\network\mcpe\protocol\BlockEntityDataPacket;
use pocketmine\network\mcpe\protocol\ContainerClosePacket;
use pocketmine\network\mcpe\protocol\ContainerSetSlotPacket;
use pocketmine\network\mcpe\protocol\INVENTORY_ACTION_PACKET;
use pocketmine\network\mcpe\protocol\ContainerSetContentPacket;
class Main extends PluginBase implements Listener{
private $case = [];
private $Stranisa = array();
public $chest = array();
public $updates = array();
public function onEnable(){
$this->getServer()->getPluginManager()->registerEvents($this, $this);
$this->eco = $this->getServer()->getPluginManager()->getPlugin("EconomyAPI");
$this->getServer()->getScheduler()->scheduleRepeatingTask(new CallbackTask(array($this, "sizenpc")), 20 * 3);
$this->getServer()->getScheduler()->scheduleRepeatingTask(new CallbackTask(array(
$this,
"Update"
)), 2);
}
public function onCommand(CommandSender $s, Command $cmd, $label, array $args){
switch($cmd->getName()) {
case "setnpc":
$nbt = new CompoundTag("", ["Pos" => new ListTag("Pos", [new DoubleTag("", $s->x), new DoubleTag("", $s->y), new DoubleTag("", $s->z)]), "Motion" => new ListTag("Motion", [new DoubleTag("", 0), new DoubleTag("", 0), new DoubleTag("", 0)]), "Rotation" => new ListTag("Rotation", [new DoubleTag("", $s->yaw), new DoubleTag("", $s->pitch)]), "Skin" => new CompoundTag("Skin", ["Data" => new StringTag("Data", $s->getSkinData()), "Name" => new StringTag("Name", $s->getSkinId())])]);
$npc = Entity::createEntity(Villager::NETWORK_ID, $s->level, $nbt);
$npc->setNameTag(" §l§eСкупщик\n§r§fНажмите чтобы открыть");
$npc->setNameTagVisible(true);
$npc->setNameTagAlwaysVisible(true);
$npc->spawnToAll();
break;
}
}
function sizenpc(){
foreach(\pocketmine\Server::getInstance()->getLevels() as $level){
foreach($level->getEntities() as $entity){
if($entity->getNameTag() == " §l§eСкупщик\n§r§fНажмите чтобы открыть"){
$entity->setDataProperty(Entity::DATA_SCALE, Entity::DATA_TYPE_FLOAT, 1.00);
}
}
}
}
public function onDamage(EntityDamageEvent $e) {
if($e instanceof EntityDamageByEntityEvent) {
$player = $e->getDamager();
$nick = strtolower($player->getName());
$entity = $e->getEntity();
if($player instanceof Player && $entity instanceof Villager && $entity->getNameTag() == " §l§eСкупщик\n§r§fНажмите чтобы открыть") {
$e->setCancelled();
if($player->getGamemode() !== 0) {
$player->sendPopup("§cИспользование Скупщика в креативе категорически ЗАПРЕЩЕНО!");
$player->sendMessage("§cИспользование Скупщика в креативе категорически ЗАПРЕЩЕНО!");
return false;
}
$player->getLevel()->addSound(new PopSound($player));
$this->openAuction($player,$nick);
$this->chest[$nick] = true;
}
}
}
public function openAuction($player, $nick){
$pk = new UpdateBlockPacket;
$pk->x = (int)round($player->x);
$pk->y = (int)round($player->y) - (int)3;
$pk->z = (int)round($player->z);
$pk->blockId = 54;
$pk->blockData = 5;
$player->dataPacket($pk);
$pk = new UpdateBlockPacket;
$pk->x = (int)round($player->x);
$pk->y = (int)round($player->y) - (int)3;
$pk->z = (int)round($player->z) + (int)1;
$pk->blockId = 54;
$pk->blockData = 5;
$player->dataPacket($pk);
$nbt = new CompoundTag(" §l§6СКУПЩИК", [
new StringTag("id", Tile::CHEST),
new StringTag("CustomName", " §l§6СКУПЩИК"),
new IntTag("x", (int)round($player->x)),
new IntTag("y", (int)round($player->y) - (int)3),
new IntTag("z", (int)round($player->z))
]);
$tile1 = Tile::createTile("Chest", $player->getLevel(), $nbt);
$nbt = new CompoundTag("", [
new StringTag("id", Tile::CHEST),
new StringTag("CustomName", " §l§6СКУПЩИК"),
new IntTag("x", (int)round($player->x)),
new IntTag("y", (int)round($player->y) - (int)3),
new IntTag("z", (int)round($player->z) + (int)1)
]);
$tile2 = Tile::createTile("Chest", $player->getLevel(), $nbt);
$tile1->pairWith($tile2);
$tile2->pairWith($tile1);
$this->updates[$nick] = 1;
}
public function Update(){
foreach($this->updates as $nick => $value){
$player = $this->getServer()->getPlayer($nick);
$x = (int)round($player->x);
$y = (int)round($player->y)-(int)3;
$z = (int)round($player->z);
if($this->updates[$nick] == 1) $this->updates[$nick]++; else{
if($this->updates[$nick] == 2) $this->updates[$nick]++;
else{
if($this->updates[$nick] == 10 or $this->updates[$nick] == 11) return $this->updates[$nick]++;
if($this->updates[$nick] == 12){
$block = Server::getInstance()->getDefaultLevel()->getBlock(new Vector3($x, $y, $z));
$pk = new UpdateBlockPacket;
$pk->x = (int)round($player->x);
$pk->y = (int)round($player->y)-(int)3;
$pk->z = (int)round($player->z);
$pk->blockId = $block->getId();
$pk->blockData = 0;
$player->dataPacket($pk);
$block = Server::getInstance()->getDefaultLevel()->getBlock(new Vector3($x, $y, $z + 1));
$pk = new UpdateBlockPacket;
$pk->x = (int)round($player->x);
$pk->y = (int)round($player->y)-(int)3;
$pk->z = (int)round($player->z) + 1;
$pk->blockId = $block->getId();
$pk->blockData = 0;
$player->dataPacket($pk);
unset($this->updates[$nick]);
return;
}
$pk = new ContainerOpenPacket;
$pk->windowid = 10;
$pk->type = InventoryNetworkIds::CONTAINER;
$pk->x = (int)round($player->x);
$pk->y = (int)round($player->y) - (int)3;
$pk->z = (int)round($player->z);
$player->dataPacket($pk);
$this->list($player, 1);
unset($this->updates[$nick]);
}
}
}
}
public function list($player, $list) {
$pk = new ContainerSetContentPacket;
$pk->windowid = 10;
$pk->targetEid = -1;
for($i = 0; $i < 54; $i++){
$customname = "§r";
$itid = 102; $dmg = 0;
$pustota = [];
if(in_array($i, $pustota)){
$itid = 102;
}
$item = Item::get($itid, $dmg, 1);
if($customname !== null) $item->setCustomName($customname);
$pk->slots[$i] = $item;
$customname = null;
}
if($list == 1){
$pk->slots[19] = Item::get(73, 0, 1)->setCustomName("§eРуды");
$pk->slots[21] = Item::get(296, 0, 1)->setCustomName("§eФермерство");
$pk->slots[23] = Item::get(373, 0, 1)->setCustomName("§eЗелья");
$pk->slots[25] = Item::get(381, 0, 1)->setCustomName("§eДругое");
}
if($list == 2) {
for($i = 0; $i < 54; $i++){
$customname = "§r";
$itid = 102; $dmg = 0;
$pustota = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54];
if(in_array($i, $pustota)){
$itid = 0;
}
$item = Item::get($itid, $dmg, 1);
if($customname !== null) $item->setCustomName($customname);
$pk->slots[$i] = $item;
$customname = null;
}
$pk->slots[10] = Item::get(129, 0, 8)->setCustomName("§eИзумрудная Руда\n§eЦена - 1000$");
$pk->slots[11] = Item::get(73, 0, 32)->setCustomName("§eРуда красного камня\n§eЦена - 3000$");
$pk->slots[12] = Item::get(14, 0, 12)->setCustomName("§eЗолотая руда\n§eЦена - 3000$");
$pk->slots[13] = Item::get(21, 0, 64)->setCustomName("§eЛазуритовая руда\n§eЦена - 6000$");
$pk->slots[14] = Item::get(15, 0, 10)->setCustomName("§eЖелезная руда\n§eЦена - 3000$");
$pk->slots[15] = Item::get(56, 0, 8)->setCustomName("§eАлмазная руда\n§eЦена - 3000$");
$pk->slots[16] = Item::get(16, 0, 16)->setCustomName("§eУгольная руда\n§eЦена - 400$");
$pk->slots[19] = Item::get(264, 0, 8)->setCustomName("§eАлмаз\n§eЦена - 4000$");
$pk->slots[20] = Item::get(265, 0, 8)->setCustomName("§eЖелезо\n§eЦена - 3000$");
$pk->slots[21] = Item::get(266, 0, 10)->setCustomName("§eЗолото\n§eЦена - 4000$");
$pk->slots[22] = Item::get(263, 0, 16)->setCustomName("§eУголь\n§eЦена - 500$");
$pk->slots[23] = Item::get(331, 0, 32)->setCustomName("§eКрасный камень\n§eЦена - 5000$");
$pk->slots[24] = Item::get(388, 0, 3)->setCustomName("§eИзумруд\n§eЦена - 300$");
$pk->slots[25] = Item::get(351, 4, 32)->setCustomName("§eЛазурит\n§eЦена - 8000$");
$pk->slots[49] = Item::get(355, 0, 1)->setCustomName("§cВернуться");
}
if($list == 3) {
for($i = 0; $i < 54; $i++){
$customname = "§r";
$itid = 102; $dmg = 0;
$pustota = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54];
if(in_array($i, $pustota)){
$itid = 0;
}
$item = Item::get($itid, $dmg, 1);
if($customname !== null) $item->setCustomName($customname);
$pk->slots[$i] = $item;
$customname = null;
}
$pk->slots[11] = Item::get(391, 0, 10)->setCustomName("§eМорковь\n§eЦена - 3000$");
$pk->slots[12] = Item::get(457, 0, 10)->setCustomName("§eСвекла\n§eЦена - 1000$");
$pk->slots[13] = Item::get(392, 0, 10)->setCustomName("§eКартофель\n§eЦена - 2000$");
$pk->slots[14] = Item::get(349, 0, 10)->setCustomName("§eРыба\n§eЦена - 5000$");
$pk->slots[15] = Item::get(260, 0, 16)->setCustomName("§eКрасное яблоко\n§eЦена - 300$");
$pk->slots[16] = Item::get(360, 0, 5)->setCustomName("§eАрбуз\n§eЦена - 2500$");;
$pk->slots[49] = Item::get(355, 0, 1)->setCustomName("§cВернуться");
}
if($list == 4) {
for($i = 0; $i < 54; $i++){
$customname = "§r";
$itid = 102; $dmg = 0;
$pustota = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54];
if(in_array($i, $pustota)){
$itid = 0;
}
$item = Item::get($itid, $dmg, 1);
if($customname !== null) $item->setCustomName($customname);
$pk->slots[$i] = $item;
$customname = null;
}
$pk->slots[10] = Item::get(373, 6, 1)->setCustomName("§eНочное зрение\n§eЦена - 5000$");
$pk->slots[11] = Item::get(373, 8, 1)->setCustomName("§eЗелье невидимости\n§eЦена - 5000$");
$pk->slots[12] = Item::get(373, 33, 1)->setCustomName("§eЗелье силы\n§eЦена - 5000$");
$pk->slots[13] = Item::get(373, 11, 1)->setCustomName("§eЗелье прыгучести\n§eЦена - 5000$");
$pk->slots[14] = Item::get(373, 13, 1)->setCustomName("§eЗелье огнестойкости\n§eЦена - 5000$");
$pk->slots[15] = Item::get(373, 16, 1)->setCustomName("§eЗелье ускорения\n§eЦена - 5000$");
$pk->slots[19] = Item::get(373, 22, 1)->setCustomName("§eЗелье исцеления\n§eЦена - 5000$");
$pk->slots[20] = Item::get(373, 24, 1)->setCustomName("§eЗелье порчи\n§eЦена - 5000$");
$pk->slots[21] = Item::get(373, 27, 1)->setCustomName("§eЗелье отравления\n§eЦена - 5000$");
$pk->slots[22] = Item::get(373, 30, 1)->setCustomName("§eЗелье регенерации\n§eЦена - 5000$");
$pk->slots[23] = Item::get(373, 35, 1)->setCustomName("§eЗелье слабости\n§eЦена - 5000$");
$pk->slots[24] = Item::get(373, 20, 1)->setCustomName("§eДыхание под водой\n§eЦена - 5000$");
$pk->slots[49] = Item::get(355, 0, 1)->setCustomName("§cВернуться");
}
if($list == 5) {
for($i = 0; $i < 54; $i++){
$customname = "§r";
$itid = 102; $dmg = 0;
$pustota = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54];
if(in_array($i, $pustota)){
$itid = 0;
}
$item = Item::get($itid, $dmg, 1);
if($customname !== null) $item->setCustomName($customname);
$pk->slots[$i] = $item;
$customname = null;
}
$pk->slots[12] = Item::get(345, 0, 1)->setCustomName("§eКомпас\n§eЦена - 1000$");
$pk->slots[13] = Item::get(352, 0, 1)->setCustomName("§eКость\n§eЦена - 3000$");
$pk->slots[49] = Item::get(355, 0, 1)->setCustomName("§cВернуться");
}
$player->dataPacket($pk);
}
public function closeAuc($player){
$nick = strtolower($player->getName());
$this->updates[$nick] = 10;
if(isset($this->chest[$nick])){
$pk = new ContainerClosePacket();
$pk->windowid = 10;
unset($this->chest[$nick]);
$player->dataPacket($pk);
}
}
public function onTransaction(InventoryTransactionEvent $event){
$player = $event->getTransaction()->getPlayer();
$nick = strtolower($player->getName());
if(isset($this->chest[$nick]) or isset($this->updates[$nick])){
$event->setCancelled(true);
}
}
public function drop(PlayerDropItemEvent $event){
$player = $event->getPlayer();
$nick = strtolower($player->getName());
if(isset($this->chest[$nick])) $event->setCancelled(true);
if(isset($this->updates[$nick])) $event->setCancelled(true);
}
public function PacketReceive(DataPacketReceiveEvent $event){
$player = $event->getPlayer();
$nick = strtolower($player->getName());
if($event->getPacket() instanceof ContainerClosePacket){
if(isset($this->chest[$nick])){
$this->closeAuc($player);
unset($this->chest[$nick]);
}
}
if($event->getPacket() instanceof INVENTORY_ACTION_PACKET or $event->getPacket() instanceof ContainerSetSlotPacket){
$pk = $event->getPacket();
$nick = strtolower($player->getName());
if(!isset($this->chest[$nick])) return false;
$item = $pk->item;
$id = $item->getId();
if($item->getCustomName() == "§eРуды"){
$player->getLevel()->addSound(new PopSound($player));
$this->list($player, 2);
}
if($item->getCustomName() == "§eИзумрудная Руда\n§eЦена - 1000$"){
if($player->getInventory()->contains(Item::get(129, 0, 8))){
$player->getInventory()->removeItem(Item::get(129, 0, 8));
$this->eco->addMoney($player, 1000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 1000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eРуда красного камня\n§eЦена - 3000$"){
if($player->getInventory()->contains(Item::get(73, 0, 32))){
$player->getInventory()->removeItem(Item::get(73, 0, 32));
$this->eco->addMoney($player, 3000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 3000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eЗолотая руда\n§eЦена - 3000$"){
if($player->getInventory()->contains(Item::get(14, 0, 12))){
$player->getInventory()->removeItem(Item::get(14, 0, 12));
$this->eco->addMoney($player, 3000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 3000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eЛазуритовая руда\n§eЦена - 6000$"){
if($player->getInventory()->contains(Item::get(21, 0, 64))){
$player->getInventory()->removeItem(Item::get(21, 0, 64));
$this->eco->addMoney($player, 6000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 6000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eЖелезная руда\n§eЦена - 3000$"){
if($player->getInventory()->contains(Item::get(15, 0, 10))){
$player->getInventory()->removeItem(Item::get(15, 0, 10));
$this->eco->addMoney($player, 3000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 3000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eАлмазная руда\n§eЦена - 3000$"){
if($player->getInventory()->contains(Item::get(56, 0, 8))){
$player->getInventory()->removeItem(Item::get(56, 0, 8));
$this->eco->addMoney($player, 3000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 3000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eУгольная руда\n§eЦена - 400$"){
if($player->getInventory()->contains(Item::get(16, 0, 16))){
$player->getInventory()->removeItem(Item::get(16, 0, 16));
$this->eco->addMoney($player, 400);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 400 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eАлмаз\n§eЦена - 4000$"){
if($player->getInventory()->contains(Item::get(264, 0, 8))){
$player->getInventory()->removeItem(Item::get(264, 0, 8));
$this->eco->addMoney($player, 4000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 4000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eЖелезо\n§eЦена - 3000$"){
if($player->getInventory()->contains(Item::get(265, 0, 8))){
$player->getInventory()->removeItem(Item::get(265, 0, 8));
$this->eco->addMoney($player, 3000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 3000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eЗолото\n§eЦена - 4000$"){
if($player->getInventory()->contains(Item::get(266, 0, 10))){
$player->getInventory()->removeItem(Item::get(266, 0, 10));
$this->eco->addMoney($player, 4000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 4000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eУголь\n§eЦена - 500$"){
if($player->getInventory()->contains(Item::get(263, 0, 16))){
$player->getInventory()->removeItem(Item::get(263, 0, 16));
$this->eco->addMoney($player, 500);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 500 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eКрасный камень\n§eЦена - 5000$"){
if($player->getInventory()->contains(Item::get(331, 0, 32))){
$player->getInventory()->removeItem(Item::get(331, 0, 32));
$this->eco->addMoney($player, 5000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 5000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eИзумруд\n§eЦена - 300$"){
if($player->getInventory()->contains(Item::get(388, 0, 3))){
$player->getInventory()->removeItem(Item::get(388, 0, 3));
$this->eco->addMoney($player, 300);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 300 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eЛазурит\n§eЦена - 8000$"){
if($player->getInventory()->contains(Item::get(351, 4, 32))){
$player->getInventory()->removeItem(Item::get(351, 4, 32));
$this->eco->addMoney($player, 8000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 8000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eФермерство"){
$player->getLevel()->addSound(new PopSound($player));
$this->list($player, 3);
}
if($item->getCustomName() == "§eМорковь\n§eЦена - 3000$"){
if($player->getInventory()->contains(Item::get(391, 0, 10))){
$player->getInventory()->removeItem(Item::get(391, 0, 10));
$this->eco->addMoney($player, 3000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 3000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eСвекла\n§eЦена - 1000$"){
if($player->getInventory()->contains(Item::get(457, 0, 10))){
$player->getInventory()->removeItem(Item::get(457, 0, 10));
$this->eco->addMoney($player, 1000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 1000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eКартофель\n§eЦена - 2000$"){
if($player->getInventory()->contains(Item::get(392, 0, 10))){
$player->getInventory()->removeItem(Item::get(392, 0, 10));
$this->eco->addMoney($player, 2000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 2000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eРыба\n§eЦена - 5000$"){
if($player->getInventory()->contains(Item::get(349, 0, 10))){
$player->getInventory()->removeItem(Item::get(349, 0, 10));
$this->eco->addMoney($player, 5000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 5000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eКрасное яблоко\n§eЦена - 300$"){
if($player->getInventory()->contains(Item::get(260, 0, 16))){
$player->getInventory()->removeItem(Item::get(260, 0, 16));
$this->eco->addMoney($player, 300);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 300 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eАрбуз\n§eЦена - 2500$"){
if($player->getInventory()->contains(Item::get(360, 0, 5))){
$player->getInventory()->removeItem(Item::get(360, 0, 5));
$this->eco->addMoney($player, 2500);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 2500 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eЗелья"){
$player->getLevel()->addSound(new PopSound($player));
$this->list($player, 4);
}
if($item->getCustomName() == "§eНочное зрение\n§eЦена - 5000$"){
if($player->getInventory()->contains(Item::get(373, 6, 1))){
$player->getInventory()->removeItem(Item::get(373, 6, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 5000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eЗелье невидимости\n§eЦена - 5000$"){
if($player->getInventory()->contains(Item::get(373, 8, 1))){
$player->getInventory()->removeItem(Item::get(373, 8, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 5000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eЗелье силы\n§eЦена - 5000$"){
if($player->getInventory()->contains(Item::get(373, 33, 1))){
$player->getInventory()->removeItem(Item::get(373, 33, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 5000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eЗелье прыгучести\n§eЦена - 5000$"){
if($player->getInventory()->contains(Item::get(373, 11, 1))){
$player->getInventory()->removeItem(Item::get(373, 11, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 5000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eЗелье огнестойкости\n§eЦена - 5000$"){
if($player->getInventory()->contains(Item::get(373, 13, 1))){
$player->getInventory()->removeItem(Item::get(373, 13, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 5000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eЗелье ускорения\n§eЦена - 5000$"){
if($player->getInventory()->contains(Item::get(373, 16, 1))){
$player->getInventory()->removeItem(Item::get(373, 16, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 5000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eЗелье исцеления\n§eЦена - 5000$"){
if($player->getInventory()->contains(Item::get(373, 22, 1))){
$player->getInventory()->removeItem(Item::get(373, 22, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 5000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eЗелье порчи\n§eЦена - 5000$"){
if($player->getInventory()->contains(Item::get(373, 24, 1))){
$player->getInventory()->removeItem(Item::get(373, 24, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 5000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eЗелье отравления\n§eЦена - 5000$"){
if($player->getInventory()->contains(Item::get(373, 27, 1))){
$player->getInventory()->removeItem(Item::get(373, 27, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 5000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eЗелье регенерации\n§eЦена - 5000$"){
if($player->getInventory()->contains(Item::get(373, 30, 1))){
$player->getInventory()->removeItem(Item::get(373, 30, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 5000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eЗелье слабости\n§eЦена - 5000$"){
if($player->getInventory()->contains(Item::get(373, 35, 1))){
$player->getInventory()->removeItem(Item::get(373, 35, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 5000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eДыхание под водой\n§eЦена - 5000$"){
if($player->getInventory()->contains(Item::get(373, 20, 1))){
$player->getInventory()->removeItem(Item::get(373, 20, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 5000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eДругое"){
$player->getLevel()->addSound(new PopSound($player));
$this->list($player, 5);
}
if($item->getCustomName() == "§eКость\n§eЦена - 3000$"){
if($player->getInventory()->contains(Item::get(352, 0, 1))){
$player->getInventory()->removeItem(Item::get(352, 0, 1));
$this->eco->addMoney($player, 3000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 3000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§eКомпас\n§eЦена - 1000$"){
if($player->getInventory()->contains(Item::get(345, 0, 1))){
$player->getInventory()->removeItem(Item::get(345, 0, 1));
$this->eco->addMoney($player, 1000);
$player->sendMessage("§a| §r§fТы успешно продал предмет за: 1000 монет");
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage("§c| §r§fУ вас нету данного предмета");
}
}
if($item->getCustomName() == "§cВернуться"){
$this->list($player, 1);
}
}
}
}
говнокодер
Спасибо
А какая меню вообще должна была появиться UI или GUI?
Чего?
Разбирайтесь дальше там
Вот код по ui <?php
namespace SkupPlugin;
use pocketmine\entity\Entity;
use pocketmine\Player;
use \pocketmine\event\player\PlayerInteractEvent;
use pocketmine\event\player\PlayerDeathEvent;
use pocketmine\entity\Effect;
use \pocketmine\event\player\PlayerDropItemEvent;
use pocketmine\item\enchantment\Enchantment;
use pocketmine\plugin\PluginBase;
use pocketmine\Server;
use pocketmine\event\Listener;
use pocketmine\event\player\PlayerJoinEvent;
use pocketmine\event\player\PlayerLoginEvent;
use pocketmine\event\player\PlayerQuitEvent;
use pocketmine\event\player\PlayerRespawnEvent;
use pocketmine\level\Position;
use pocketmine\network\mcpe\protocol\EntityEventPacket;
use pocketmine\network\mcpe\protocol\MobEquipmentPacket;
use pocketmine\event\inventory\InventoryCloseEvent;
use pocketmine\event\inventory\InventoryTransactionEvent;
use pocketmine\entity\Human;
use pocketmine\level\sound{PopSound, AnvilFallSound, ExpPickupSound};
use pocketmine\nbt\tag\CompoundTag;
use pocketmine\nbt\tag\ListTag;
use pocketmine\nbt\tag\DoubleTag;
use pocketmine\nbt\tag\FloatTag;
use pocketmine\nbt\tag\NamedTag;
use pocketmine\nbt\tag\StringTag;
use pocketmine\item\ItemIds;
use pocketmine\entity\Villager;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\utils\Config;
use pocketmine\item\Item;
use pocketmine\level\Level;
use pocketmine\math\Vector3;
use pocketmine\event\entity{EntityDamageEvent, EntityDamageByEntityEvent};
use pocketmine\nbt\NBT;
use pocketmine\nbt\tag\ByteTag;
use pocketmine\nbt\tag\IntTag;
use pocketmine\scheduler\CallbackTask;
use pocketmine\tile\Tile;
use pocketmine\nbt\tag\ShortTag;
use pocketmine\event\TranslationContainer;
use pocketmine\level\Location;
use pocketmine\event\server\DataPacketReceiveEvent;
use pocketmine\network\mcpe\protocol\InteractPacket;
use pocketmine\network\mcpe\protocol\types\InventoryNetworkIds;
use pocketmine\network\mcpe\protocol\protocolInfo;
use pocketmine\network\mcpe\protocol\UpdateBlockPacket;
use pocketmine\network\mcpe\protocol\ContainerOpenPacket;
use pocketmine\network\mcpe\protocol\BlockEntityDataPacket;
use pocketmine\network\mcpe\protocol\ContainerClosePacket;
use pocketmine\network\mcpe\protocol\ContainerSetSlotPacket;
use pocketmine\network\mcpe\protocol\INVENTORY_ACTION_PACKET;
use pocketmine\network\mcpe\protocol\ContainerSetContentPacket;
class Main extends PluginBase implements Listener{
private $case = [];
private $Stranisa = array();
public $chest = array();
public $updates = array();
public function onEnable(){
$this->getServer()->getPluginManager()->registerEvents($this, $this);
$this->eco = $this->getServer()->getPluginManager()->getPlugin(“EconomyAPI”);
$this->getServer()->getScheduler()->scheduleRepeatingTask(new CallbackTask(array($this, “sizenpc”)), 20 * 3);
$this->getServer()->getScheduler()->scheduleRepeatingTask(new CallbackTask(array(
$this,
“Update”
)), 2);
}
public function onCommand(CommandSender $s, Command $cmd, $label, array $args){
switch($cmd->getName()) {
case “setnpc”:
$nbt = new CompoundTag(“”, [“Pos” => new ListTag(“Pos”, [new DoubleTag(“”, $s->x), new DoubleTag(“”, $s->y), new DoubleTag(“”, $s->z)]), “Motion” => new ListTag(“Motion”, [new DoubleTag(“”, 0), new DoubleTag(“”, 0), new DoubleTag(“”, 0)]), “Rotation” => new ListTag(“Rotation”, [new DoubleTag(“”, $s->yaw), new DoubleTag(“”, $s->pitch)]), “Skin” => new CompoundTag(“Skin”, [“Data” => new StringTag(“Data”, $s->getSkinData()), “Name” => new StringTag(“Name”, $s->getSkinId())])]);
$npc = Entity::createEntity(Villager::NETWORK_ID, $s->level, $nbt);
$npc->setNameTag(" §l§eСкупщик\n§r§fНажмите чтобы открыть");
$npc->setNameTagVisible(true);
$npc->setNameTagAlwaysVisible(true);
$npc->spawnToAll();
break;
}
}
function sizenpc(){
foreach(\pocketmine\Server::getInstance()->getLevels() as $level){
foreach($level->getEntities() as $entity){
if($entity->getNameTag() == " §l§eСкупщик\n§r§fНажмите чтобы открыть"){
$entity->setDataProperty(Entity::DATA_SCALE, Entity::DATA_TYPE_FLOAT, 1.00);
}
}
}
}
public function onDamage(EntityDamageEvent $e) {
if($e instanceof EntityDamageByEntityEvent) {
$player = $e->getDamager();
$nick = strtolower($player->getName());
$entity = $e->getEntity();
if($player instanceof Player && $entity instanceof Villager && $entity->getNameTag() == " §l§eСкупщик\n§r§fНажмите чтобы открыть") {
$e->setCancelled();
if($player->getGamemode() !== 0) {
$player->sendPopup("§cИспользование Скупщика в креативе категорически ЗАПРЕЩЕНО!");
$player->sendMessage("§cИспользование Скупщика в креативе категорически ЗАПРЕЩЕНО!");
return false;
}
$player->getLevel()->addSound(new PopSound($player));
$this->openAuction($player,$nick);
$this->chest[$nick] = true;
}
}
}
public function openAuction($player, $nick){
$pk = new UpdateBlockPacket;
$pk->x = (int)round($player->x);
$pk->y = (int)round($player->y) - (int)3;
$pk->z = (int)round($player->z);
$pk->blockId = 54;
$pk->blockData = 5;
$player->dataPacket($pk);
$pk = new UpdateBlockPacket;
$pk->x = (int)round($player->x);
$pk->y = (int)round($player->y) - (int)3;
$pk->z = (int)round($player->z) + (int)1;
$pk->blockId = 54;
$pk->blockData = 5;
$player->dataPacket($pk);
$nbt = new CompoundTag(" §l§6СКУПЩИК", [
new StringTag("id", Tile::CHEST),
new StringTag("CustomName", " §l§6СКУПЩИК"),
new IntTag("x", (int)round($player->x)),
new IntTag("y", (int)round($player->y) - (int)3),
new IntTag("z", (int)round($player->z))
]);
$tile1 = Tile::createTile("Chest", $player->getLevel(), $nbt);
$nbt = new CompoundTag("", [
new StringTag("id", Tile::CHEST),
new StringTag("CustomName", " §l§6СКУПЩИК"),
new IntTag("x", (int)round($player->x)),
new IntTag("y", (int)round($player->y) - (int)3),
new IntTag("z", (int)round($player->z) + (int)1)
]);
$tile2 = Tile::createTile("Chest", $player->getLevel(), $nbt);
$tile1->pairWith($tile2);
$tile2->pairWith($tile1);
$this->updates[$nick] = 1;
}
public function Update(){
foreach($this->updates as $nick => $value){
$player = $this->getServer()->getPlayer($nick);
$x = (int)round($player->x);
$y = (int)round($player->y)-(int)3;
$z = (int)round($player->z);
if($this->updates[$nick] == 1) $this->updates[$nick]++; else{
if($this->updates[$nick] == 2) $this->updates[$nick]++;
else{
if($this->updates[$nick] == 10 or $this->updates[$nick] == 11) return $this->updates[$nick]++;
if($this->updates[$nick] == 12){
$block = Server::getInstance()->getDefaultLevel()->getBlock(new Vector3($x, $y, $z));
$pk = new UpdateBlockPacket;
$pk->x = (int)round($player->x);
$pk->y = (int)round($player->y)-(int)3;
$pk->z = (int)round($player->z);
$pk->blockId = $block->getId();
$pk->blockData = 0;
$player->dataPacket($pk);
$block = Server::getInstance()->getDefaultLevel()->getBlock(new Vector3($x, $y, $z + 1));
$pk = new UpdateBlockPacket;
$pk->x = (int)round($player->x);
$pk->y = (int)round($player->y)-(int)3;
$pk->z = (int)round($player->z) + 1;
$pk->blockId = $block->getId();
$pk->blockData = 0;
$player->dataPacket($pk);
unset($this->updates[$nick]);
return;
}
$pk = new ContainerOpenPacket;
$pk->windowid = 10;
$pk->type = InventoryNetworkIds::CONTAINER;
$pk->x = (int)round($player->x);
$pk->y = (int)round($player->y) - (int)3;
$pk->z = (int)round($player->z);
$player->dataPacket($pk);
$this->list($player, 1);
unset($this->updates[$nick]);
}
}
}
}
public function list($player, $list) {
$pk = new ContainerSetContentPacket;
$pk->windowid = 10;
$pk->targetEid = -1;
for($i = 0; $i < 54; $i++){
$customname = “§r”;
$itid = 102; $dmg = 0;
$pustota = [];
if(in_array($i, $pustota)){
$itid = 102;
}
$item = Item::get($itid, $dmg, 1);
if($customname !== null) $item->setCustomName($customname);
$pk->slots[$i] = $item;
$customname = null;
}
if($list == 1){
$pk->slots[19] = Item::get(73, 0, 1)->setCustomName(“§eРуды”);
$pk->slots[21] = Item::get(296, 0, 1)->setCustomName(“§eФермерство”);
$pk->slots[23] = Item::get(373, 0, 1)->setCustomName(“§eЗелья”);
$pk->slots[25] = Item::get(381, 0, 1)->setCustomName(“§eДругое”);
}
if($list == 2) {
for($i = 0; $i < 54; $i++){
$customname = “§r”;
$itid = 102; $dmg = 0;
$pustota = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54];
if(in_array($i, $pustota)){
$itid = 0;
}
$item = Item::get($itid, $dmg, 1);
if($customname !== null) $item->setCustomName($customname);
$pk->slots[$i] = $item;
$customname = null;
}
$pk->slots[10] = Item::get(129, 0, 8)->setCustomName(“§eИзумрудная Руда\n§eЦена - 1000$”);
$pk->slots[11] = Item::get(73, 0, 32)->setCustomName(“§eРуда красного камня\n§eЦена - 3000$”);
$pk->slots[12] = Item::get(14, 0, 12)->setCustomName(“§eЗолотая руда\n§eЦена - 3000$”);
$pk->slots[13] = Item::get(21, 0, 64)->setCustomName(“§eЛазуритовая руда\n§eЦена - 6000$”);
$pk->slots[14] = Item::get(15, 0, 10)->setCustomName(“§eЖелезная руда\n§eЦена - 3000$”);
$pk->slots[15] = Item::get(56, 0, 8)->setCustomName(“§eАлмазная руда\n§eЦена - 3000$”);
$pk->slots[16] = Item::get(16, 0, 16)->setCustomName(“§eУгольная руда\n§eЦена - 400$”);
$pk->slots[19] = Item::get(264, 0, 8)->setCustomName(“§eАлмаз\n§eЦена - 4000$”);
$pk->slots[20] = Item::get(265, 0, 8)->setCustomName(“§eЖелезо\n§eЦена - 3000$”);
$pk->slots[21] = Item::get(266, 0, 10)->setCustomName(“§eЗолото\n§eЦена - 4000$”);
$pk->slots[22] = Item::get(263, 0, 16)->setCustomName(“§eУголь\n§eЦена - 500$”);
$pk->slots[23] = Item::get(331, 0, 32)->setCustomName(“§eКрасный камень\n§eЦена - 5000$”);
$pk->slots[24] = Item::get(388, 0, 3)->setCustomName(“§eИзумруд\n§eЦена - 300$”);
$pk->slots[25] = Item::get(351, 4, 32)->setCustomName(“§eЛазурит\n§eЦена - 8000$”);
$pk->slots[49] = Item::get(355, 0, 1)->setCustomName(“§cВернуться”);
}
if($list == 3) {
for($i = 0; $i < 54; $i++){
$customname = “§r”;
$itid = 102; $dmg = 0;
$pustota = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54];
if(in_array($i, $pustota)){
$itid = 0;
}
$item = Item::get($itid, $dmg, 1);
if($customname !== null) $item->setCustomName($customname);
$pk->slots[$i] = $item;
$customname = null;
}
$pk->slots[11] = Item::get(391, 0, 10)->setCustomName(“§eМорковь\n§eЦена - 3000$”);
$pk->slots[12] = Item::get(457, 0, 10)->setCustomName(“§eСвекла\n§eЦена - 1000$”);
$pk->slots[13] = Item::get(392, 0, 10)->setCustomName(“§eКартофель\n§eЦена - 2000$”);
$pk->slots[14] = Item::get(349, 0, 10)->setCustomName(“§eРыба\n§eЦена - 5000$”);
$pk->slots[15] = Item::get(260, 0, 16)->setCustomName(“§eКрасное яблоко\n§eЦена - 300$”);
$pk->slots[16] = Item::get(360, 0, 5)->setCustomName(“§eАрбуз\n§eЦена - 2500$”);;
$pk->slots[49] = Item::get(355, 0, 1)->setCustomName(“§cВернуться”);
}
if($list == 4) {
for($i = 0; $i < 54; $i++){
$customname = “§r”;
$itid = 102; $dmg = 0;
$pustota = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54];
if(in_array($i, $pustota)){
$itid = 0;
}
$item = Item::get($itid, $dmg, 1);
if($customname !== null) $item->setCustomName($customname);
$pk->slots[$i] = $item;
$customname = null;
}
$pk->slots[10] = Item::get(373, 6, 1)->setCustomName(“§eНочное зрение\n§eЦена - 5000$”);
$pk->slots[11] = Item::get(373, 8, 1)->setCustomName(“§eЗелье невидимости\n§eЦена - 5000$”);
$pk->slots[12] = Item::get(373, 33, 1)->setCustomName(“§eЗелье силы\n§eЦена - 5000$”);
$pk->slots[13] = Item::get(373, 11, 1)->setCustomName(“§eЗелье прыгучести\n§eЦена - 5000$”);
$pk->slots[14] = Item::get(373, 13, 1)->setCustomName(“§eЗелье огнестойкости\n§eЦена - 5000$”);
$pk->slots[15] = Item::get(373, 16, 1)->setCustomName(“§eЗелье ускорения\n§eЦена - 5000$”);
$pk->slots[19] = Item::get(373, 22, 1)->setCustomName(“§eЗелье исцеления\n§eЦена - 5000$”);
$pk->slots[20] = Item::get(373, 24, 1)->setCustomName(“§eЗелье порчи\n§eЦена - 5000$”);
$pk->slots[21] = Item::get(373, 27, 1)->setCustomName(“§eЗелье отравления\n§eЦена - 5000$”);
$pk->slots[22] = Item::get(373, 30, 1)->setCustomName(“§eЗелье регенерации\n§eЦена - 5000$”);
$pk->slots[23] = Item::get(373, 35, 1)->setCustomName(“§eЗелье слабости\n§eЦена - 5000$”);
$pk->slots[24] = Item::get(373, 20, 1)->setCustomName(“§eДыхание под водой\n§eЦена - 5000$”);
$pk->slots[49] = Item::get(355, 0, 1)->setCustomName(“§cВернуться”);
}
if($list == 5) {
for($i = 0; $i < 54; $i++){
$customname = “§r”;
$itid = 102; $dmg = 0;
$pustota = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54];
if(in_array($i, $pustota)){
$itid = 0;
}
$item = Item::get($itid, $dmg, 1);
if($customname !== null) $item->setCustomName($customname);
$pk->slots[$i] = $item;
$customname = null;
}
$pk->slots[12] = Item::get(345, 0, 1)->setCustomName(“§eКомпас\n§eЦена - 1000$”);
$pk->slots[13] = Item::get(352, 0, 1)->setCustomName(“§eКость\n§eЦена - 3000$”);
$pk->slots[49] = Item::get(355, 0, 1)->setCustomName(“§cВернуться”);
}
$player->dataPacket($pk);
}
public function closeAuc($player){
$nick = strtolower($player->getName());
$this->updates[$nick] = 10;
if(isset($this->chest[$nick])){
$pk = new ContainerClosePacket();
$pk->windowid = 10;
unset($this->chest[$nick]);
$player->dataPacket($pk);
}
}
public function onTransaction(InventoryTransactionEvent $event){
$player = $event->getTransaction()->getPlayer();
$nick = strtolower($player->getName());
if(isset($this->chest[$nick]) or isset($this->updates[$nick])){
$event->setCancelled(true);
}
}
public function drop(PlayerDropItemEvent $event){
$player = $event->getPlayer();
$nick = strtolower($player->getName());
if(isset($this->chest[$nick])) $event->setCancelled(true);
if(isset($this->updates[$nick])) $event->setCancelled(true);
}
public function PacketReceive(DataPacketReceiveEvent $event){
$player = $event->getPlayer();
$nick = strtolower($player->getName());
if($event->getPacket() instanceof ContainerClosePacket){
if(isset($this->chest[$nick])){
$this->closeAuc($player);
unset($this->chest[$nick]);
}
}
if($event->getPacket() instanceof INVENTORY_ACTION_PACKET or $event->getPacket() instanceof ContainerSetSlotPacket){
$pk = $event->getPacket();
$nick = strtolower($player->getName());
if(!isset($this->chest[$nick])) return false;
$item = $pk->item;
$id = $item->getId();
if($item->getCustomName() == "§eРуды"){
$player->getLevel()->addSound(new PopSound($player));
$this->list($player, 2);
}
if($item->getCustomName() == “§eИзумрудная Руда\n§eЦена - 1000$”){
if($player->getInventory()->contains(Item::get(129, 0, 8))){
$player->getInventory()->removeItem(Item::get(129, 0, 8));
$this->eco->addMoney($player, 1000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 1000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eРуда красного камня\n§eЦена - 3000$”){
if($player->getInventory()->contains(Item::get(73, 0, 32))){
$player->getInventory()->removeItem(Item::get(73, 0, 32));
$this->eco->addMoney($player, 3000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 3000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eЗолотая руда\n§eЦена - 3000$”){
if($player->getInventory()->contains(Item::get(14, 0, 12))){
$player->getInventory()->removeItem(Item::get(14, 0, 12));
$this->eco->addMoney($player, 3000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 3000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eЛазуритовая руда\n§eЦена - 6000$”){
if($player->getInventory()->contains(Item::get(21, 0, 64))){
$player->getInventory()->removeItem(Item::get(21, 0, 64));
$this->eco->addMoney($player, 6000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 6000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eЖелезная руда\n§eЦена - 3000$”){
if($player->getInventory()->contains(Item::get(15, 0, 10))){
$player->getInventory()->removeItem(Item::get(15, 0, 10));
$this->eco->addMoney($player, 3000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 3000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eАлмазная руда\n§eЦена - 3000$”){
if($player->getInventory()->contains(Item::get(56, 0, 8))){
$player->getInventory()->removeItem(Item::get(56, 0, 8));
$this->eco->addMoney($player, 3000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 3000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eУгольная руда\n§eЦена - 400$”){
if($player->getInventory()->contains(Item::get(16, 0, 16))){
$player->getInventory()->removeItem(Item::get(16, 0, 16));
$this->eco->addMoney($player, 400);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 400 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eАлмаз\n§eЦена - 4000$”){
if($player->getInventory()->contains(Item::get(264, 0, 8))){
$player->getInventory()->removeItem(Item::get(264, 0, 8));
$this->eco->addMoney($player, 4000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 4000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eЖелезо\n§eЦена - 3000$”){
if($player->getInventory()->contains(Item::get(265, 0, 8))){
$player->getInventory()->removeItem(Item::get(265, 0, 8));
$this->eco->addMoney($player, 3000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 3000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eЗолото\n§eЦена - 4000$”){
if($player->getInventory()->contains(Item::get(266, 0, 10))){
$player->getInventory()->removeItem(Item::get(266, 0, 10));
$this->eco->addMoney($player, 4000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 4000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eУголь\n§eЦена - 500$”){
if($player->getInventory()->contains(Item::get(263, 0, 16))){
$player->getInventory()->removeItem(Item::get(263, 0, 16));
$this->eco->addMoney($player, 500);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 500 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eКрасный камень\n§eЦена - 5000$”){
if($player->getInventory()->contains(Item::get(331, 0, 32))){
$player->getInventory()->removeItem(Item::get(331, 0, 32));
$this->eco->addMoney($player, 5000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 5000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eИзумруд\n§eЦена - 300$”){
if($player->getInventory()->contains(Item::get(388, 0, 3))){
$player->getInventory()->removeItem(Item::get(388, 0, 3));
$this->eco->addMoney($player, 300);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 300 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eЛазурит\n§eЦена - 8000$”){
if($player->getInventory()->contains(Item::get(351, 4, 32))){
$player->getInventory()->removeItem(Item::get(351, 4, 32));
$this->eco->addMoney($player, 8000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 8000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == "§eФермерство"){
$player->getLevel()->addSound(new PopSound($player));
$this->list($player, 3);
}
if($item->getCustomName() == “§eМорковь\n§eЦена - 3000$”){
if($player->getInventory()->contains(Item::get(391, 0, 10))){
$player->getInventory()->removeItem(Item::get(391, 0, 10));
$this->eco->addMoney($player, 3000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 3000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eСвекла\n§eЦена - 1000$”){
if($player->getInventory()->contains(Item::get(457, 0, 10))){
$player->getInventory()->removeItem(Item::get(457, 0, 10));
$this->eco->addMoney($player, 1000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 1000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eКартофель\n§eЦена - 2000$”){
if($player->getInventory()->contains(Item::get(392, 0, 10))){
$player->getInventory()->removeItem(Item::get(392, 0, 10));
$this->eco->addMoney($player, 2000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 2000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eРыба\n§eЦена - 5000$”){
if($player->getInventory()->contains(Item::get(349, 0, 10))){
$player->getInventory()->removeItem(Item::get(349, 0, 10));
$this->eco->addMoney($player, 5000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 5000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eКрасное яблоко\n§eЦена - 300$”){
if($player->getInventory()->contains(Item::get(260, 0, 16))){
$player->getInventory()->removeItem(Item::get(260, 0, 16));
$this->eco->addMoney($player, 300);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 300 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eАрбуз\n§eЦена - 2500$”){
if($player->getInventory()->contains(Item::get(360, 0, 5))){
$player->getInventory()->removeItem(Item::get(360, 0, 5));
$this->eco->addMoney($player, 2500);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 2500 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == "§eЗелья"){
$player->getLevel()->addSound(new PopSound($player));
$this->list($player, 4);
}
if($item->getCustomName() == “§eНочное зрение\n§eЦена - 5000$”){
if($player->getInventory()->contains(Item::get(373, 6, 1))){
$player->getInventory()->removeItem(Item::get(373, 6, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 5000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eЗелье невидимости\n§eЦена - 5000$”){
if($player->getInventory()->contains(Item::get(373, 8, 1))){
$player->getInventory()->removeItem(Item::get(373, 8, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 5000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eЗелье силы\n§eЦена - 5000$”){
if($player->getInventory()->contains(Item::get(373, 33, 1))){
$player->getInventory()->removeItem(Item::get(373, 33, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 5000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eЗелье прыгучести\n§eЦена - 5000$”){
if($player->getInventory()->contains(Item::get(373, 11, 1))){
$player->getInventory()->removeItem(Item::get(373, 11, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 5000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eЗелье огнестойкости\n§eЦена - 5000$”){
if($player->getInventory()->contains(Item::get(373, 13, 1))){
$player->getInventory()->removeItem(Item::get(373, 13, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 5000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eЗелье ускорения\n§eЦена - 5000$”){
if($player->getInventory()->contains(Item::get(373, 16, 1))){
$player->getInventory()->removeItem(Item::get(373, 16, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 5000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eЗелье исцеления\n§eЦена - 5000$”){
if($player->getInventory()->contains(Item::get(373, 22, 1))){
$player->getInventory()->removeItem(Item::get(373, 22, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 5000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eЗелье порчи\n§eЦена - 5000$”){
if($player->getInventory()->contains(Item::get(373, 24, 1))){
$player->getInventory()->removeItem(Item::get(373, 24, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 5000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eЗелье отравления\n§eЦена - 5000$”){
if($player->getInventory()->contains(Item::get(373, 27, 1))){
$player->getInventory()->removeItem(Item::get(373, 27, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 5000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eЗелье регенерации\n§eЦена - 5000$”){
if($player->getInventory()->contains(Item::get(373, 30, 1))){
$player->getInventory()->removeItem(Item::get(373, 30, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 5000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eЗелье слабости\n§eЦена - 5000$”){
if($player->getInventory()->contains(Item::get(373, 35, 1))){
$player->getInventory()->removeItem(Item::get(373, 35, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 5000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eДыхание под водой\n§eЦена - 5000$”){
if($player->getInventory()->contains(Item::get(373, 20, 1))){
$player->getInventory()->removeItem(Item::get(373, 20, 1));
$this->eco->addMoney($player, 5000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 5000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == "§eДругое"){
$player->getLevel()->addSound(new PopSound($player));
$this->list($player, 5);
}
if($item->getCustomName() == “§eКость\n§eЦена - 3000$”){
if($player->getInventory()->contains(Item::get(352, 0, 1))){
$player->getInventory()->removeItem(Item::get(352, 0, 1));
$this->eco->addMoney($player, 3000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 3000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == “§eКомпас\n§eЦена - 1000$”){
if($player->getInventory()->contains(Item::get(345, 0, 1))){
$player->getInventory()->removeItem(Item::get(345, 0, 1));
$this->eco->addMoney($player, 1000);
$player->sendMessage(“§a| §r§fТы успешно продал предмет за: 1000 монет”);
$player->getLevel()->addSound(new PopSound($player));
}else{
$player->sendMessage(“§c| §r§fУ вас нету данного предмета”);
}
}
if($item->getCustomName() == "§cВернуться"){
$this->list($player, 1);
}
}
}
}
Нейронка Clаude - это её ответ
Она лучше подходит для кодинга и она частично работает с pm4(наверное ранние версии или первый релиз)
Во всяком случае у него есть такое понятие как onEnable(); void
Чем ChatGPT
Понятие
Чече?
+
там должно стоять ‘:’ вместо ‘;’
И это тип возвращения
- телепортация
Ядро меняй, но как я понимаю ты сам это не сделаешь, пиши тг, помогу
-.-
моя телега @pvp100