Untitled

 avatar
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