Для всех примеров я буду использовать последнюю версию pmmp (4). В случае с другими ядрами, может отличаться только пространство имён.
импорт:
use pocketmine\utils\Config;
Создание
$name = "config.json";
$type = Config::JSON;
$config = new Config($this->getDataFolder() . $name, $type);
где переменная $name хранит имя конфига, $type - тип конфига. для примера использовался json конфиг.
getDataFolder - это метод, который возращает расположение папки plugin_data, в которой обычно хранят все конфиги.
- Запись данных:
$key = "значение ключа";
$data = "значение"; #может быть обычным массивом []
$config->set($key, $data);
$config->save(); #сохраняет данные, которые ты записал
#если это не сделать, то конфиг не изменится
- Получение данных:
$data = $config->get($key);
если под данным ключом был записан массив, то он и вернётся, если значение стандартных типов, то оно и вернётся.
- Занятость ключа в конфиге:
$exist = $config->exists($key); #bool; вернётся истина, если ключ существует
- Удаление ключа:
$config->remove($key); #удаляет этот ключ из конфига
$config->save();
нужно сохранить конфиг, чтобы данные обновились
- Получение всего конфига:
$data = $config->getAll(); #array
возращает весь конфиг в виде массива
Папка resources
в корневой папке вашего плагина может присутствовать папка resources, которую разработчики обычно используют для хранения разных данных, которые в процессе выполнения кода, ядром сервера, могут быть использованы для настройки разных данных.
возьмём в пример находящийся там файл config.yml, который будет хранить в нем эти данные:
default: ["value", "value2"]
в коде вашего плагина вы можете их обработать довольно простым и заранее предусмотренным методом в ядре.
$resource = $this->getResource("config.yml");
Пока что с этими данными нам нельзя работать, поэтому мы их обработаем и получим уже готовую строку для работы с ней.
$contents = stream_get_contents($resource);
смотрите, наш файл имеет довольно распространенный формат для хранения разных данных, поэтому метод для его обработки уже существует в самом языке.
$config = yaml_parse($contents);
Всё что нам нужно, это спарсить данные в обычный массив объект. для разных форматов файлов уже предусмотрены свои методы парса данных.