Небольшой вопрос про JSON конфиги

Как сохранить обьект в конфиг JSON чтобы был он в таком виде:

{
  "Portals": {
    "MyPortal": {
      "minX": 120,
      "minY": 210,
      "minZ": 46,
      
      "maxX": 250,
      "maxY": 488,
      "maxZ": 90,

      "serverIp": "localhost",
      "serverPort": 19132
    },

    "MyAnotherPortal": {
      "minX": 12,
      "minY": 12,
      "minZ": 21,
      
      "maxX": 125,
      "maxY": 185,
      "maxZ": 75,

      "serverIp": "localhost",
      "serverPort": 19132
    }
  }
}

Вот как выглядит сам обьект:

class Portal {
    public $name;

    public $maxX;
    public $minX;
    public $maxY;
    public $minY;
    public $maxZ;
    public $minZ;

    public string $ip;
    public int $port;
}

Json - тоже что-то типо конфига. Записывать так же, как и в yaml

Только нужно применять json_decode и json_encode, чтобы данные были читабельными

Я чет не понял куда мое сообщение пропало, я отправлю еще раз:

@Layton не подскажешь как удалить все предметы кроме нескольких, я пробовал так, но это не помогло:

foreach($inventory->getContents() as $item){
		   $self = [self::$RUNE_FIRE, self::$RUNE_WITHER, self::$RUNE_FREEZE, self::$RUNE_BLIND, self::$RUNE_JUMP, self::$RUNE_REGENERATION, self::$RUNE_SPEED, self::$RUNE_LIVING, self::$RUNE_DAMAGE, self::$RUNE_LIVES];
           if($item->getCustomName() === $self) continue; 
           $player->getInventory()->removeItem($item);
        }

Тебе же ответили вопросы задавай в новой теме а не в чужих. Удаляй смс и создавай тему

Мне ничего не приходило, а я просто увидел что сообщение пропало.

$data["portals"] = ["MyPortal" => [
  "minX" => 120,
  "minY" => 210,
  "minZ" => 46,
  "maxX" => 250,
  "maxY" => 488,
  "maxZ" => 90,
  "serverIp" => "localhost",
  "port" => 19132
]];
$config->setAll($data);

И так далее

$self = [self::$RUNE_FIRE, self::$RUNE_WITHER, self::$RUNE_FREEZE, self::$RUNE_BLIND, self::$RUNE_JUMP, self::$RUNE_REGENERATION, self::$RUNE_SPEED, self::$RUNE_LIVING, self::$RUNE_DAMAGE, self::$RUNE_LIVES];
foreach($inventory->getContents() as $item){
           if(in_array($self, $item->getCustomName())){
return;
}
           $player->getInventory()->removeItem($item);
        }

Еба, что с табуляцией

Попробуем

Что ты хочешь сделать, я не понял?

$self = [self::$RUNE_FIRE, self::$RUNE_WITHER, self::$RUNE_FREEZE, self::$RUNE_BLIND, self::$RUNE_JUMP, self::$RUNE_REGENERATION, self::$RUNE_SPEED, self::$RUNE_LIVING, self::$RUNE_DAMAGE, self::$RUNE_LIVES];
foreach($inventory->getContents() as $item){
  if(!in_array($item->getCustomName(), $self)){
    $player->getInventory()->removeItem($item);
  }
}

Не нуждался в твоём коде

Твой код остановит работу если в инвентаре будет один из предметов в массиве

ХАХХАХАХА, хахахаххах

return остановит текущую итерацию цикла, но не остановит код. Он начнется выполняться дальше, только заново

Точнее он начнет следующую итерацию

А смысл выполнять цикл заного

return возвращает управление программой модулю, из которого была вызвана функция. Выполнение программы продолжается с инструкции, следующей за местом вызова.

Если вызывается из функции, выражение return немедленно прекращает выполнение текущей функции и возвращает свой аргумент как значение данной функции.

1 лайк

return в цикле