Untitled
unknown
plain_text
2 years ago
4.5 kB
15
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