- Баллы
- 173
Смотря для чего.Разве с Bukkit можно взаимодействовать не с основного потока?
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Смотря для чего.Разве с Bukkit можно взаимодействовать не с основного потока?
То есть, например в циклах его можно использовать спокойно?Чего...
Код:private final List<CraftPlayer> playerView; public CraftServer(MinecraftServer console, PlayerList playerList) { ... this.playerView = Collections.unmodifiableList(Lists.transform(playerList.players, new Function() { public CraftPlayer apply(EntityPlayer player) { return player.getBukkitEntity();} })); ... }Код:public final List<EntityPlayer> players = new CopyOnWriteArrayList(); public void onPlayerJoin(EntityPlayer entityplayer, String joinMessage) { this.players.add(entityplayer); ... } public String disconnect(EntityPlayer entityplayer) { ... this.players.remove(entityplayer); ... }
В нмс всё равно оперируют листом игроков, элементы которого в геттере перегоняют в бакит игроков.Выгода от своего листа вряд ли будет заметной.А вот про каждого игрока и isOnline() впервые слышу, это где такое есть?Потому что данный метод проходится по всем игрокам, которые когда то были на сервер и проверят isOnline();
По этому причине рекомендуется делать свой собственный метод getOnlinePlayer(name); с помощь эвентов Входа и Выхода игроков заносить\удалять игроков в HashSet<Player>.
Вопрос не в том, можно или нельзя, а в том, что это нерационально.Разве с Bukkit можно взаимодействовать не с основного потока?
Я выше код кинул. Всё нормально там. Непонятно, что @alexandrage не понравилосьВ нмс всё равно оперируют листом игроков, элементы которого в геттере перегоняют в бакит игроков.Выгода от своего листа вряд ли будет заметной.А вот про каждого игрока и isOnline() впервые слышу, это где такое есть?
Естественно. Думаешь как чат работает? Чат обрабатывается в отдельном потоке. То есть если сервер зависнет, то чат будет работать.Разве с Bukkit можно взаимодействовать не с основного потока?
Я не смотрел как оно устроенно, но по скорости знаю. Так бы ничего не говорил.Вопрос не в том, можно или нельзя, а в том, что это нерационально.
Ну а можно или нет - это уже зависит от задачи. Обычно это не очень рекомендуется, т.к. такие действия могут что-то портить внутри ядра.
Я выше код кинул. Всё нормально там. Непонятно, что @alexandrage не понравилось
А как тогда оптимизировать этот метод?Я не смотрел как оно устроенно, но по скорости знаю. Так бы ничего не говорил.
Ну сейчас глянул - там просто отдается лист, который модифицируется при входе/выходе игрока. Но это верно для 1.10+, что там раньше было - лень смотреть.Я не смотрел как оно устроенно, но по скорости знаю. Так бы ничего не говорил.