1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

[Решено] Проблема с циклом и отправкой сообщения (видаёт ошибку s cannot be resolved to a variable)

Тема в разделе "Разработка плагинов для новичков", создана пользователем SashaBrine, 4 мар 2022.

Статус темы:
Закрыта.
  1. Автор темы
    SashaBrine

    SashaBrine Активный участник Пользователь

    Баллы:
    76
    Или я слепой или я что-то сломал в Eclipse.
    Код:
    package FMeria.main.commands;
    
    import java.io.File;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.configuration.file.YamlConfiguration;
    import org.bukkit.entity.Player;
    
    import FMeria.main.FMeria;
    
    public class CommandLaw implements CommandExecutor {
    
        private FMeria plugin;
        private List<String> subcommands = new ArrayList<String>();
        private File messages;
        public CommandLaw(FMeria plugin) {
            this.plugin = plugin;
            this.subcommands.add("set");
            this.subcommands.add("setcategory");
            this.subcommands.add("delcategory");
            this.subcommands.add("del");
            this.subcommands.add("list");
            this.messages = new File(plugin.getDataFolder()+File.separator+"messages.yml");
        }
       
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            if (!(sender instanceof Player)) {
                sender.sendMessage("Вы не игрок!");
                return true;
            }
            Player p = (Player) sender;
            YamlConfiguration messageConfig = YamlConfiguration.loadConfiguration(this.messages);
            if (args.length<1) {
                for (String s : messageConfig.getStringList("message.lawUsage")); {
                    p.sendMessage(s);
                }
                return true;
            }
           
            return true;
        }
    }
    
    Код:
    value:
      time: 5
    
    message:
      nonFaction: "§cВы не состоите во фракции!"
      payday:
       - "Вам была выдана зарплата в размере %salary%."
       - "=========================="
      d: "§c(D) §7[%faction%]§9 %rank% %player%: %msg%"
      rb: "§7(( §c(R) §7[%faction%]§9 %rank% %player%: %msg% §7))"
      r: "§c(R) §7[%faction%]§9 %rank% %player%: %msg%"
      fhome: "Вас на такси довезли на базу вашей фракции!"
      noneName: "Не в организации"
      noneRank: "Гражданин"
      nonHospitalFaction: "§cЭту команду может использовать только фракция - Больница."
      nonRank: "§cДля этой команды нужен выше ранг!"
      errorPlayer: "§cВы не можете вылечить себя."
      notOnline: "§cИгрок не онлайн"
      playerHeal: "§f%faction §7>>>§f%player вылечил %player2."
      playerHealMessage: "Вас вылечил %player."
      distance: "§cИгрок слишком далеко!"
      lawUsage:
       - "§7Упралвение законами:"
       - "§7/law set <ID категории> <ID закона> <название> - §fУстановить название закону"
       - "§7/law setcategory <ID категории> <название> - §fУстановить название категории"
       - "§7/law delcategory <ID категории> <название> - §fУдалить категорию"
       - "§7/law del <ID категории> <ID закона> - §fУдалить закон"
       - "§7/law list - §fЗаконы"
      gov:
       - "§7=========================="
       - "§7[Гос.Новости] [%faction] %rank %player: %message"
       - "§7=========================="
    Код:
    [12:15:20 ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'law' in plugin FMeria v1.6
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[patched_1.12.2.jar:git-Paper-1618]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:152) ~[patched_1.12.2.jar:git-Paper-1618]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:685) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.PlayerConnection.handleCommand(PlayerConnection.java:1492) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1297) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:5) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:14) ~[patched_1.12.2.jar:git-Paper-1618]
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:1.8.0_291]
            at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_291]
            at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:850) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:423) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:774) ~[patched_1.12.2.jar:git-Paper-1618]
            at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:666) ~[patched_1.12.2.jar:git-Paper-1618]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_291]
    Caused by: java.lang.Error: Unresolved compilation problem:
            s cannot be resolved to a variable
    
            at FMeria.main.commands.CommandLaw.onCommand(CommandLaw.java:40) ~[?:?]
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[patched_1.12.2.jar:git-Paper-1618]
            ... 15 more
     
  2. LOVEC3327

    LOVEC3327 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    Убери ';'. Код ниже должен уже работать.
    Код:
    for (String s : messageConfig.getStringList("message.lawUsage")) {
        p.sendMessage(s);
    }
     
  3. Автор темы
    SashaBrine

    SashaBrine Активный участник Пользователь

    Баллы:
    76
    Незаметил спасибо!
     
Статус темы:
Закрыта.

Поделиться этой страницей