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

Помогите Работа с BukkitRunnable

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

  1. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Да, за пределами, например в теле главного класса. Я себе это представляю как
    Map<Player, Area> playersPerAreas = new HashMap<>().
    Да, так где у тебя "..." проверять, что текущая зона отличается от предыдущей (которой может не быть):
    playersPerAreas.get(player) != area
    (!= для наглядности, но лучше использовать equals).
     
  2. Автор темы
    Hittcliff

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

    Баллы:
    66
    Имя в Minecraft:
    Relion128
    Код:
        @EventHandler
        public void OnJoin(PlayerJoinEvent event) {
    
            int timer = Integer.parseInt(getConfig().getString("array.time")) * 20;
    
            new BukkitRunnable() {
                int rec = 0;
                int rec3 = Integer.parseInt(getConfig().getString("array.value"));
    
                List<String> list = config.getStringList("array.dir");
                String[] array = list.toArray(new String[0]);
                HashMap<Player, Area> playersPerAreas = new HashMap<>();
               
                @Override
                public void run() {
                    if (rec == rec3 || rec > rec3) {
                        rec = 0;
                    } else {
                        // Позиция 1
                        int[] valueX = new int[rec3];
                        valueX[rec] = Integer.parseInt(getConfig().getString("swarp." + array[rec] + ".x: " + "pos1"));
    
                        int[] valueY = new int[rec3];
                        valueY[rec] = Integer.parseInt(getConfig().getString("swarp." + array[rec] + ".y: " + "pos1"));
    
                        int[] valueZ = new int[rec3];
                        valueZ[rec] = Integer.parseInt(getConfig().getString("swarp." + array[rec] + ".z: " + "pos1"));
    
                        // Позиция 2
                        int[] valueXX = new int[rec3];
                        valueXX[rec] = Integer.parseInt(getConfig().getString("swarp." + array[rec] + ".x: " + "pos2"));
    
                        int[] valueYY = new int[rec3];
                        valueYY[rec] = Integer.parseInt(getConfig().getString("swarp." + array[rec] + ".y: " + "pos2"));
    
                        int[] valueZZ = new int[rec3];
                        valueZZ[rec] = Integer.parseInt(getConfig().getString("swarp." + array[rec] + ".z: " + "pos2"));
                        Location b = player.getLocation(); // Создаём переменную!
    
                        if (b.getX() > valueX[rec] && b.getX() < valueXX[rec]) {
                            if (b.getY() > valueY[rec] && b.getY() < valueYY[rec]) {
                                if (b.getZ() > valueZ[rec] && b.getZ() < valueZZ[rec]) {
                                        tested(event, array[rec]);
                                       
                                        playersPerAreas.get(player).equals(valueXX[rec]);
                                       
                                }
                            }
                        }
                        rec++;
                    }
                }
            }.runTaskTimer(this, 0L, timer);
        }
    Вот второй класс
    Код:
        public void tested(PlayerJoinEvent event, String vois) {
            Player player = event.getPlayer();
    
            // Позиция 1
            int SettinX1 = Integer.parseInt(getConfig().getString("swarp." + vois + ".x: " + "pos1"));
            int SettinY1 = Integer.parseInt(getConfig().getString("swarp." + vois + ".y: " + "pos1"));
            int SettinZ1 = Integer.parseInt(getConfig().getString("swarp." + vois + ".z: " + "pos1"));
    
            // Звук
            String SettinS = getConfig().getString(".swarp." + "." + vois + ".sound:");
            String master = getConfig().getString(".swarp." + "." + vois + ".category:");
    
            int Volume = Integer.parseInt(getConfig().getString(".swarp." + "." + vois + ".sound-volume:")); // Громкость
    
            getServer().dispatchCommand(getServer().getConsoleSender(), "playsound " + SettinS + " " + master + " "
                    + player.getName() + " " + SettinX1 + " " + SettinY1 + " " + SettinZ1 + " " + Volume);
            player.sendMessage(ChatColor.BLUE + "[DCore]: Вы на терреторий: " + vois);
            player.sendMessage(ChatColor.BLUE + "[DCore]: Играет:  " + SettinS);
    
        }
    Вот весь класс, я уже не знаю...
     
  3. Автор темы
    Hittcliff

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

    Баллы:
    66
    Имя в Minecraft:
    Relion128
    Просто дабы более понятно было что да как у меня устроен код... реально, я чувствую себя дэбилом, причём конченным)
     
  4. Exception_Prototype

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

    Баллы:
    96
    Во всю суть происходящего вчитываться пока что не буду(позже), но вот это поправлю сейчас:
    PHP:
    //This
    int SettinX1 Integer.parseInt(getConfig().getString("swarp." vois ".x: " "pos1"));
    int SettinY1 Integer.parseInt(getConfig().getString("swarp." vois ".y: " "pos1"));
    int SettinZ1 Integer.parseInt(getConfig().getString("swarp." vois ".z: " "pos1"));
    //To:
    int SettinX1 getConfig().getInt("swarp." vois ".x: " "pos1");
    int SettinY1 getConfig().getInt("swarp." vois ".y: " "pos1");
    int SettinZ1 getConfig().getInt("swarp." vois ".z: " "pos1");
     
  5. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Ты бы ему конфиг исправил, чтобы нормально хранилось.
     
  6. Exception_Prototype

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

    Баллы:
    96
    Ну ща почитаю, что тут ваще творится.
     
  7. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Ну ты Васют и тупой, конфиг в память сразу выгружается
     
  8. deadanykey

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

    Баллы:
    96
    Это ещё вопрос, кто тут тупой (кстати, для меня и не вопрос вовсе).

    1. HashMap значительно удобнее.
    2. HashMap довольно шустрая штука.
     
  9. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    И че? Причем тут это? Ты сказал так что конфиг типо сразу в память не выгружается
     
  10. deadanykey

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

    Баллы:
    96
    Я такого не говорил, это Вы почему-то так решили.
    Впрочем, Вам виднее, удобнее же городить конструкцию getString("bla.bla.bla"), чем get("key").
     
  11. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Ты шо тупой, где я это говорил. Ты сам написал что конфиг - не память upload_2018-1-6_16-56-25.png
     
  12. Автор темы
    Hittcliff

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

    Баллы:
    66
    Имя в Minecraft:
    Relion128
    Ребята, по теме говорил лишь один человек, я один фиг не понял что к чему.
     
  13. Автор темы
    Hittcliff

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

    Баллы:
    66
    Имя в Minecraft:
    Relion128
    Тема поехала куда-то не туда...:whistle: Стали обсуждать кто прав и т.п...:bad:
     
  14. Exception_Prototype

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

    Баллы:
    96
    Это норма для рубаккита.
     
  15. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Как всегда. Тебе я советовал создать свой клас Cuboid и делать проверку наличия игрока внутри раз в 3 секунды. Могу даже код готовый дать.
     
  16. Cookie1337

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

    Баллы:
    66
    А ArrayListы знаешь?
     
  17. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Иди collections framework учи а не эту хрень пиши
    И к чему тут твое сообщение?
     
  18. Cookie1337

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

    Баллы:
    66
  19. Cookie1337

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

    Баллы:
    66
    Если он их хоть чуть чуть знает, то может поймет мой код:)
     
  20. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Ну вот то что ты не знаешь это видно
     

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