getCommand("
protect").setExecutor(ce);
Java:
public class RegionData
{
Location start;//начальные координаты
Location end;//конченые координаты
String name = "";//имя
//конструктор по-умолчанию
public RegionData(Location start, Location end, String name)
{
this.start = start;
this.end = end;
this.name = name;
}
//get-, set-методы
public String getName()
{
return name;
}
public Location getStartLocation()
{
return start;
}
public Location getEndLocation()
{
return end;
}
public void setName(String val)
{
name = val;
}
public void setStartLocation(Location val)
{
start = val;
}
public void setEndLocation(Location val)
{
end = val;
}
}
Map<String, RegionData> regions = new HashMap<String, RegionData>();
//загразка
public void Load()
{
File f = new File(PLUGIN.getDataFolder().getAbsolutePath()+"/regions.yml");//ищем файл regions.yml
if(!f.exists())//если его нет, пропускаем код ниже
return;
FileConfiguration data = YamlConfiguration.loadConfiguration(f);//загружаем кофиг
Set<String> keys = data.getKeys(false);//ключевые значения главной секции из конфига.
for(String region : keys)//проходим по списку
{
RegionData rg;//объявление переменной типа RegionData
String world = data.getString(region + ".world");
Location start = data.getVector(region + ".start").toLocation(Bukkit.getWorld(world));
Location end = data.getVector(region + ".end").toLocation(Bukkit.getWorld(world));
rg = new RegionData(start, end, region);
regions.put(region, rg);
}
}
public void Save()
{
File f = new File(PLUGIN.getDataFolder().getAbsolutePath()+"/regions.yml");//ищем файл regions.yml
YamlConfiguration data = new YamlConfiguration();
for(Map.Entry<String, RegionData> entry : regions.entrySet())
{
data.set(entry.getKey()+".world", entry.getValue().getStartLocation().getWorld().getName());
data.set(entry.getKey() + ".start", entry.getValue().getStartLocation().toVector());
data.set(entry.getKey() + ".end", entry.getValue().getEndLocation().toVector());
}
try
{
data.save(f);
}
catch (IOException e)
{
e.printStackTrace();
}
}
Где PLUGIN - экземпляр вашего плагина
Поясню немного.
Сначала идет реализация класса RegionData.
Дальше, я создал ассоциативный массив Map, в котором буду ассоциировать имя региона(ключ) с его данными(значение).
Такой подход наиболее удобен, если требуется быстро получить данные о регионе по его имени.
Ниже привел код загрузки и сохранения регионов в файл SERVER/plugins/Имя_плагина/regions.yml.
Вы можете переделать этот код под свой вариант, а можете переделать свой код и включить использование RegionData в свой плагин.