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

Помогите Поделить и телепортировать игроков

Тема в разделе "Разработка плагинов для новичков", создана пользователем Kolia1_1, 21 май 2020.

  1. Автор темы
    Kolia1_1

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

    Баллы:
    66
    Имя в Minecraft:
    kolia1_1
    Есть N-количество локаций(list) и Есть N-количество игроков(list) нужно их телепортировать в N-локацию что-бы было по-ровно между локациями

    1 локация: 5 игроков
    2 локация: 5 игроков
    3 локация: 5 игроков

    подскажите куда смотреть и готовый код если можно
     
  2. alexandrage

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

    Баллы:
    173
    Учить алгебру
     
  3. Автор темы
    Kolia1_1

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

    Баллы:
    66
    Имя в Minecraft:
    kolia1_1
    Красавчик помог, человек просто может не знать как это сделать с тех-части
     
  4. Gru2303

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

    Баллы:
    76
    Имя в Minecraft:
    Gru2303
  5. Автор темы
    Kolia1_1

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

    Баллы:
    66
    Имя в Minecraft:
    kolia1_1
  6. Lemar98

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

    Баллы:
    76
    Use google please
     
  7. Gru2303

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

    Баллы:
    76
    Имя в Minecraft:
    Gru2303
  8. alexandrage

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

    Баллы:
    173
    Код:
    package Example;
    
    import java.util.ArrayList;
    import java.util.List;
    import org.bukkit.Bukkit;
    import org.bukkit.Location;
    import org.bukkit.entity.Player;
    
    public class Locations implements Comparable<Locations> {
        private List<String> players;
        private Location loc;
    
        public Locations(Location loc) {
            this.players = new ArrayList<String>();
        }
    
        public void addPlayer(Player player) {
            this.players.add(player.getName());
        }
    
        private Integer getSize() {
            return this.players.size();
        }
    
        public void teleportPlayers() {
            this.players.forEach(player -> {
                Player p = Bukkit.getPlayerExact(player);
                if (p != null) {
                    p.teleport(this.loc);
                }
            });
        }
    
        @Override
        public int compareTo(Locations locations) {
            return locations.getSize().compareTo(this.getSize());
        }
    
        @Override
        public String toString() {
            return loc + ":" + players;
        }
    }
    Код:
        public void addPlayer(List<Locations> locations, Player player) {
            locations.sort(null);
            locations.get(locations.size()-1).addPlayer(player);
        }
    Код:
        public void teleportAll(List<Locations> locations) {
            locations.forEach(location -> location.teleportPlayers());
        }
    Код:
        public void apply(List<Locations> locations, Collection<? extends Player> players) {
            players.forEach(player -> addPlayer(locations, player));
            teleportAll(locations);
        }
    Применялка :D
    Код:
            List<Locations> location = new ArrayList<Locations>();
            //TODO создание листов: location.add(new Locations(loc));
            apply(location, Bukkit.getOnlinePlayers());
     
    Последнее редактирование: 21 май 2020
  9. Gru2303

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

    Баллы:
    76
    Имя в Minecraft:
    Gru2303
    Очень много строчек. Вырубай)
     
  10. Lemar98

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

    Баллы:
    76
    Вкусна)))
     
  11. alexandrage

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

    Баллы:
    173
    Пол плагина арены написал уже ага :D
     
  12. Автор темы
    Kolia1_1

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

    Баллы:
    66
    Имя в Minecraft:
    kolia1_1
    неподходит я не понимаю
     
  13. Автор темы
    Kolia1_1

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

    Баллы:
    66
    Имя в Minecraft:
    kolia1_1
    List<Location> list1 = new ArrayList<>(...);
    List<Player> list2 = new ArrayList<>(Bukkit.getonlineplayers);

    ... teleport
     
  14. alexandrage

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

    Баллы:
    173
    Говорил же, надо в школе было учится, даже с готовым кодом не знаешь что делать.
     
  15. Автор темы
    Kolia1_1

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

    Баллы:
    66
    Имя в Minecraft:
    kolia1_1
    я же говорил я не понимаю что с ним делать, и ты надоел оскор****ь меня
     
  16. alexandrage

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

    Баллы:
    173
    Покажи где я тебя оскорблял?
     
  17. Gru2303

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

    Баллы:
    76
    Имя в Minecraft:
    Gru2303
    Для начала лучше подучи джаву по книжкам и алгебру за одно - рановато ты за плагины взялся.
     
  18. alexandrage

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

    Баллы:
    173
    Дописал тебе применялку.
     
  19. Gru2303

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

    Баллы:
    76
    Имя в Minecraft:
    Gru2303
    PHP:
    List<Locationlocation= ...;
    List<
    Playerplayers Bukkit.getonlineplayers;
    List<List<
    Player>> users Lists.partition(players, (int)Math.round(players.size() / location.size()));

    for (
    int i 0!= users.size(); i++) {
        for (
    Player p users.get(i)) {
            
    p.teleport(location.get(i))
        }
    }

    Как-то так
     
    Последнее редактирование: 21 май 2020
  20. CriticaMobslps

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

    Баллы:
    76
    Имя в Minecraft:
    CriticaMobs
    Не знаю правильно ли это но мне не по душе
     

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