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

Помогите Делаю мини игру но список ников игроков пустеет

Тема в разделе "Разработка плагинов для новичков", создана пользователем firlyaa, 16 фев 2024.

Метки:
  1. Автор темы
    firlyaa

    firlyaa Активный участник

    Баллы:
    61
    Класс game
    Код:
    package org.thefilik.tinyworldarena.commands;
    
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.scheduler.BukkitRunnable;
    
    import java.util.ArrayList;
    import java.util.List;
    
    
    public class game {
    
        public static boolean started = false;
    
    
        public static void startGame(JavaPlugin plugin) {
    
            List<String> list = new pon().getArrayList();
    
    
    
            new BukkitRunnable() {
                @Override
                public void run() {
                    if (started) {
                        cancel();
                    }
                    if (list.size() < 1) {
                        for (String nick : list) {
                            Bukkit.getPlayer(nick).sendMessage(ChatColor.translateAlternateColorCodes('&', "&aОжидание..."));
                        }
                    } else {
                        started = true;
                        cancel();
                    }
                }
            }.runTaskTimer(plugin, 60, 60);
    
            
            
            List<String> nicks = new pon().getArrayList();
    
    
    
    
            plugin.getServer().getConsoleSender().sendMessage("ну эт работает ладно");
    
            StringBuilder sb = new StringBuilder();
            sb.append("");
            sb.append(nicks.size());
            String strI = sb.toString();
    
            plugin.getServer().getConsoleSender().sendMessage(strI);
    
    
    
            for (String nick : nicks) {
                Bukkit.getPlayer(nick).sendMessage("ОМАГАД");
            }
    
    
    
        }
    
    
    
    
    
    
    
    
    
    
    }
    
    Класс pon
    Код:
    package org.thefilik.tinyworldarena.commands;
    
    import org.bukkit.entity.Player;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class pon {
        public static List<String> arrayList = new ArrayList<String>();
    
        public List<String> getArrayList(){
            return arrayList;
        }
    
        public static void addNick(String nick) {
            arrayList.add(nick);
        }
    }
    
    Проблема в том, что в классе game, когда цикл останавливается выводит "ну эт работает ладно" и "0" (0 это количество элементов в списке), так же игрокам не приходит сообщение "ОМАГАД". А в самом цикле сообщение "Ожидание..." отправляется. Что не так?
     
  2. mirrerror

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

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    Значит, у тебя список пустой. Покажи, где ты его заполняешь, потому что из того, что ты показал, ты нигде его не заполняешь
     
  3. Автор темы
    firlyaa

    firlyaa Активный участник

    Баллы:
    61
    Класс twa:

    Код:
    package org.thefilik.tinyworldarena.commands;
    
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import java.util.List;
    
    public class twa implements CommandExecutor {
        public final JavaPlugin plugin;
    
        public twa(JavaPlugin plugin) {
            this.plugin = plugin;
        }
    
    
        @Override
        public boolean onCommand(CommandSender commandSender, Command command, String s, String[] args) {
    
            pon uh = new pon();
            List<String> list = new pon().getArrayList();
    
            if (args[0].equalsIgnoreCase("join")) {
                if ((commandSender instanceof Player)) {
                }
                else {
                    return false;
                }
                Player p = (Player) commandSender;
                if (list.contains(p.getName())) {
                    p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&cВы уже в игре!"));
                    return false;
                } else {
                    Location loc = new Location(Bukkit.getWorld("world"), 281.500, 65, 320.500, 0, 0);
                    p.teleport(loc);
                    if (list.size() < 1) {
                        game.startGame(plugin);
                    }
                    uh.addNick(p.getName());
                    String string = String.format("&f[&a+&f] %s", p.getName());
                    for (String nick : list) {
                        Bukkit.getPlayer(nick).sendMessage(ChatColor.translateAlternateColorCodes('&', string));
                    }
                }
    
    
            }
            return true;
        }
    }
    
    
    Я использовал команду /twa join, написало что я зашёл и после этого ничего. А когда я чуть изменил код и зашёл 1 (когда надо минимум 2 было) писало "Ожидание..." до того как зашёл ещё один игрок
     
  4. mirrerror

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

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    Ты меняешь список в одном объекте, а потом создаешь новый, в котором список пустой
     
  5. Автор темы
    firlyaa

    firlyaa Активный участник

    Баллы:
    61
    Я немного тупой, не понял. Где это и как исправить?
     
  6. mirrerror

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

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    Использовать один и тот же объект класса pon там, где заполняешь список, и там, где читаешь список
     
  7. Автор темы
    firlyaa

    firlyaa Активный участник

    Баллы:
    61
    Спасибо!
     

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