- Сообщения
- 285
- Решения
- 1
Я хочу сделать 2 файла
messages.yml и config.yml чтобы их можно было перезагружать командой
и символы & работали в файле messages.yml
Я новичок возможно буду тупить
Вот как реализовал не знаю правильно но оно работает
messages.yml и config.yml чтобы их можно было перезагружать командой
и символы & работали в файле messages.yml
Я новичок возможно буду тупить
Объединено
Вот как реализовал не знаю правильно но оно работает
Configurations
Java:
package com.specter.stem.configurations;
import java.io.File;
import java.io.IOException;
import java.util.*;
import com.google.common.collect.Lists;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.Plugin;
public class Configurations
{
private Map<String, Map.Entry<FileConfiguration, File>> configurations = new HashMap<> ();
private List<String> configurationsNames;
private Plugin plugin;
public Configurations(Plugin plugin, String... configurationsNames)
{
this.plugin = plugin;
this.configurationsNames = Lists.newArrayList(configurationsNames);
this.loadConfigurations();
}
private File generateDefaultFile(String name)
{
File file = new File(this.plugin.getDataFolder(), name);
if (!file.exists())
{
this.plugin.saveResource(name, false);
}
return file;
}
public void loadConfigurations()
{
for (String configurationName : this.configurationsNames)
{
if (this.configurations.containsKey(configurationName))
{
continue;
}
File configurationFile = this.generateDefaultFile(configurationName);
FileConfiguration configuration = YamlConfiguration.loadConfiguration(configurationFile);
this.configurations.put(configurationName, new AbstractMap.SimpleEntry<> (configuration, configurationFile));
}
}
public void reloadConfigurations()
{
this.configurations.clear();
this.loadConfigurations();
}
private Optional<Map.Entry<FileConfiguration, File>> getEntry(String configurationName)
{
return Optional.ofNullable(this.configurations.get(configurationName));
}
public FileConfiguration get(String configurationName)
{
return this.getEntry(configurationName)
.map(Map.Entry::getKey)
.orElse(null);
}
private File getFile(String configurationName)
{
return this.getEntry(configurationName)
.map(Map.Entry::getValue)
.orElse(null);
}
public void save(String configurationName)
{
this.getEntry(configurationName).ifPresent((entry) ->
{
try {
entry.getKey().save(entry.getValue());
} catch (IOException e) {
e.printStackTrace();
}
});
}
}
Java:
package com.specter.stem;
import com.specter.stem.commands.StemCommand;
import com.specter.stem.configurations.Configurations;
import org.bukkit.ChatColor;
import org.bukkit.plugin.java.JavaPlugin;
public final class Stem extends JavaPlugin {
private static Stem instance;
public Configurations configurations = new Configurations(this, "config.yml", "messages.yml");
@Override
public void onEnable() {
this.configurations.loadConfigurations();
System.out.println(ChatColor.GREEN + "Stem plugin is enabled");
instance = this;
new StemCommand();
}
@Override
public void onDisable() {
this.configurations = null;
}
public void reload()
{
this.configurations.reloadConfigurations();
}
public static Stem getInstance() {
return instance;
}
}
Последнее редактирование: