Untitled
unknown
plain_text
a year ago
4.5 kB
4
Indexable
Для создания конфигурационного файла и добавления команды `/clan reload`, вам нужно внести несколько изменений в код. Вот обновленный вариант: ```java import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import java.io.File; import java.io.IOException; import java.util.*; public class SimpleClan extends JavaPlugin { private Map<Player, String> playerClanMap = new HashMap<>(); private Map<String, List<Player>> clanMembersMap = new HashMap<>(); private FileConfiguration config; @Override public void onEnable() { getLogger().info("Плагин SimpleClan был включен!"); getCommand("clan").setExecutor(this); loadConfig(); } @Override public void onDisable() { getLogger().info("Плагин SimpleClan был выключен!"); } private void loadConfig() { config = getConfig(); config.options().copyDefaults(true); saveConfig(); } @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage("Команды для игроков!"); return true; } Player player = (Player) sender; if (label.equalsIgnoreCase("clan")) { if (args.length == 0) { if (playerClanMap.containsKey(player)) { String clanName = playerClanMap.get(player); List<Player> members = clanMembersMap.getOrDefault(clanName, Collections.emptyList()); player.sendMessage("Информация о клане " + clanName + ":"); player.sendMessage("Участники: " + getMembersListAsString(members)); } else { player.sendMessage("Вы не состоите в клане."); } return true; } else if (args[0].equalsIgnoreCase("create")) { if (args.length == 2) { createClan(player, args[1]); } else { player.sendMessage("Использование: /clan create <название>"); } return true; } else if (args[0].equalsIgnoreCase("invite")) { if (args.length == 2) { Player invitee = getServer().getPlayer(args[1]); if (invitee != null && invitee.isOnline()) { inviteToClan(player, invitee); } else { player.sendMessage("Игрок не найден или оффлайн."); } } else { player.sendMessage("Использование: /clan invite <игрок>"); } return true; } else if (args[0].equalsIgnoreCase("delete")) { deleteClan(player); return true; } else if (args[0].equalsIgnoreCase("reload") && player.hasPermission("clan.reload")) { reloadConfig(); loadConfig(); player.sendMessage("Конфигурация плагина SimpleClan успешно перезагружена."); return true; } } return false; } private String getMembersListAsString(List<Player> members) { if (members.isEmpty()) { return "нет участников"; } else { StringBuilder builder = new StringBuilder(); for (Player member : members) { builder.append(member.getName()).append(", "); } return builder.substring(0, builder.length() - 2); // Убираем последнюю запятую } } } ``` Теперь у вас есть конфигурационный файл, который можно редактировать, и команда `/clan reload` для перезагрузки плагина. Уточните, если есть еще какие-то вопросы или изменения, которые вы хотели бы внести.
Editor is loading...
Leave a Comment