Помогите Отправить сообщение всем игрокам

  • Автор темы Автор темы QwertyMo
  • Дата начала Дата начала

QwertyMo

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
QwertyMo
Как отправить сообщение всем игрокам?
 
Java:
Bukkit.broadcastMessage("Hello");
Это отправляет сообщение не всем игрокам, а всему серверу, никогда не использую данный метод. Чтобы отправить сообщение игрокам, получаем массив игроков (Bukkit.getOnlinePlayers()) и отправляем им сообщение:
Код:
for(Player player : Bukkit.getOnlinePlayers()) {
player.sendMessage(сообщение);
}

ТС, закрой тему
 
В одном из первых моих плагинов до сих пор стоит Bukkit.broadcastMessage.
Иногда на сервере два раза отправляется сообщение, может связано с его коротким подвисанием в момент отправки. Таки да, лучше через перебор игроков.
 
В одном из первых моих плагинов до сих пор стоит Bukkit.broadcastMessage.
Иногда на сервере два раза отправляется сообщение, может связано с его коротким подвисанием в момент отправки. Таки да, лучше через перебор игроков.
Оно может отправляться более одного раза только из-за зацикливаня, ищи ошибки в коде
 
Мне в том плагине рыться почти нет желания :cry: )
 
Это отправляет сообщение не всем игрокам, а всему серверу, никогда не использую данный метод.
Java:
@Override
public int broadcastMessage(String message) {
    return broadcast(message, BROADCAST_CHANNEL_USERS);
}

@Override
public int broadcast(String message, String permission) {
    int count = 0;
    Set<Permissible> permissibles = getPluginManager().getPermissionSubscriptions(permission);

    for (Permissible permissible : permissibles) {
        if (permissible instanceof CommandSender && permissible.hasPermission(permission)) {
            CommandSender user = (CommandSender) permissible;
            user.sendMessage(message);
            count++;
        }
    }

    return count;
}

Отсюда я смело могу заявить, что Вы, сударь, не шарите.
 
Java:
@Override
public int broadcastMessage(String message) {
    return broadcast(message, BROADCAST_CHANNEL_USERS);
}

@Override
public int broadcast(String message, String permission) {
    int count = 0;
    Set<Permissible> permissibles = getPluginManager().getPermissionSubscriptions(permission);

    for (Permissible permissible : permissibles) {
        if (permissible instanceof CommandSender && permissible.hasPermission(permission)) {
            CommandSender user = (CommandSender) permissible;
            user.sendMessage(message);
            count++;
        }
    }

    return count;
}

Отсюда я смело могу заявить, что Вы, сударь, не шарите.
Я не декомпилировал этот класс, но консоли он точно уж отправляет
 
Он отправляет CommandSender'ам, если не видно. А консоль - CommandSender тоже.
И я ничего не декомпилировал.
Ничего не понимаю, причем здесь вообще CommandSender? Он просто хочет отправить сообщение всем игрокам
 
Ничего не понимаю, причем здесь вообще CommandSender? Он просто хочет отправить сообщение всем игрокам
... про то что ConsoleCommandSender наследует CommandSender, и при Bukkit.broadcastMessage консоли тоже отправится сообщение.
 
Ничего не понимаю, причем здесь вообще CommandSender? Он просто хочет отправить сообщение всем игрокам
Ты код читать умеешь вообще? Этот метод отправляет не всему серверу, а всем CommandSender.
И откуда ты взял это?
Оно может отправляться более одного раза только из-за зацикливаня
 
Назад
Верх