Обращение в ЛС по щелчку на ник в чате

Статус
Закрыто для дальнейших ответов.
И ты уверен, что display name? Может лучше просто getName().
А то мало ли какие то цвета кастомные будут в dissplay name висеть и твоя проверка не сработает.
Так же если в сообщении не совпадёт регистр имени, то проверка тоже не выполнится. Думай.
ТС, а на эти слова ты вообще забил?
Я думаю, тут зарыто решение твоего вопроса
 
ТС, а на эти слова ты вообще забил?
Я думаю, тут зарыто решение твоего вопроса
upload_2019-2-15_12-29-54.png
Заменил. Расставил sout'ы. Не работает.
Код:
public class MyListener implements Listener {
    @EventHandler
    public void onPlayerChat(AsyncPlayerChatEvent event) {
        Bukkit.getServer().broadcastMessage(ChatColor.GREEN+"One");
        if (event.getMessage().contains(event.getPlayer().getName())) {
            TextComponent message = new TextComponent(event.getPlayer().getName());
        Bukkit.getServer().broadcastMessage(ChatColor.GREEN+"Two");  
            message.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/w " + event.getPlayer().getName()));
        Bukkit.getServer().broadcastMessage(ChatColor.GREEN+"Three");
            message.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click to private message.").create()));
        Bukkit.getServer().broadcastMessage(ChatColor.GREEN+"Four");        
            //message.addExtra(ChatColor.WHITE + " > " + event.getMessage());
            for (Player players : event.getRecipients()) { players.spigot().sendMessage(message); }  
        Bukkit.getServer().broadcastMessage(ChatColor.GREEN+"Five");
        }
    }
}
 
Заменил. Расставил sout'ы. Не работает.
if (event.getMessage().contains(event.getPlayer().getName())) {
Ну правильно, ты пытаешься найти ник игрока в сообщении, которое должен отправить игрок..
Бери getFormat()
Возвращает все что перед текстом который должен отправиться.
 
Посмотреть вложение 53160
Заменил. Расставил sout'ы. Не работает.
Код:
public class MyListener implements Listener {
    @EventHandler
    public void onPlayerChat(AsyncPlayerChatEvent event) {
        Bukkit.getServer().broadcastMessage(ChatColor.GREEN+"One");
        if (event.getMessage().contains(event.getPlayer().getName())) {
            TextComponent message = new TextComponent(event.getPlayer().getName());
        Bukkit.getServer().broadcastMessage(ChatColor.GREEN+"Two");
            message.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/w " + event.getPlayer().getName()));
        Bukkit.getServer().broadcastMessage(ChatColor.GREEN+"Three");
            message.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click to private message.").create()));
        Bukkit.getServer().broadcastMessage(ChatColor.GREEN+"Four");     
            //message.addExtra(ChatColor.WHITE + " > " + event.getMessage());
            for (Player players : event.getRecipients()) { players.spigot().sendMessage(message); }
        Bukkit.getServer().broadcastMessage(ChatColor.GREEN+"Five");
        }
    }
}
Ифка не проходит вот тут. Напиши свой ник в чате и все.
if (event.getMessage().contains(event.getPlayer().getName())) {
 
Вот я ему сейчас буду сидеть и расписывать как им пользоваться?)
Нет, ты ему сказал использовать дебаг, он пошел гуглить, там всего то пару брекпоинтов натыкать, с чего ты решил, что тебе нужно ему это объяснять?
 
Ну правильно, ты пытаешься найти ник игрока в сообщении, которое должен отправить игрок..
Бери getFormat()
Возвращает все что перед текстом который должен отправиться.
Код:
        if (event.getFormat().contains(event.getPlayer().getName())) {
            TextComponent message = new TextComponent(event.getPlayer().getName());
        Bukkit.getServer().broadcastMessage(ChatColor.GREEN+"Two");   
            message.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/w " + event.getPlayer().getName()));
        Bukkit.getServer().broadcastMessage(ChatColor.GREEN+"Three");
            message.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click to private message.").create()));
        Bukkit.getServer().broadcastMessage(ChatColor.GREEN+"Four");         
            //message.addExtra(ChatColor.WHITE + " > " + event.getMessage());
            for (Player players : event.getRecipients()) { players.spigot().sendMessage(message); }   
        Bukkit.getServer().broadcastMessage(ChatColor.GREEN+"Five");
        }
upload_2019-2-15_19-19-38.png
 
Код:
        if (event.getFormat().contains(event.getPlayer().getName())) {
            TextComponent message = new TextComponent(event.getPlayer().getName());
        Bukkit.getServer().broadcastMessage(ChatColor.GREEN+"Two"); 
            message.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/w " + event.getPlayer().getName()));
        Bukkit.getServer().broadcastMessage(ChatColor.GREEN+"Three");
            message.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click to private message.").create()));
        Bukkit.getServer().broadcastMessage(ChatColor.GREEN+"Four");       
            //message.addExtra(ChatColor.WHITE + " > " + event.getMessage());
            for (Player players : event.getRecipients()) { players.spigot().sendMessage(message); } 
        Bukkit.getServer().broadcastMessage(ChatColor.GREEN+"Five");
        }
Посмотреть вложение 53163
Какой же ты тупой все таки :D.
Код:
    @EventHandler
    public void onPlayerChat(AsyncPlayerChatEvent event) {
        event.getPlayer().sendMessage("ИдиотДетектед - > "+event.getMessage());
        event.getPlayer().sendMessage("ИдиотДетектед - > "+event.getFormat());
    }
 
Какой же ты тупой все таки :D.
Код:
    @EventHandler
    public void onPlayerChat(AsyncPlayerChatEvent event) {
        event.getPlayer().sendMessage("ИдиотДетектед - > "+event.getMessage());
        event.getPlayer().sendMessage("ИдиотДетектед - > "+event.getFormat());
    }
Спасибо за оценку! Ваш отзыв очень важен для нас.
 
Спасибо за оценку! Ваш отзыв очень важен для нас.
Код:
@EventHandler
public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent e) {
Player pl = e.getPlayer();
e.setCancelled(true);
TextComponent message = new TextComponent(pl.getName());
message.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/w " + pl.getName()));
message.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click to private message.").create()));
message.addExtra(ChatColor.WHITE + " > " + e.getMessage());
for (Player pla : Bukkit.getOnlinePlayers()) {
   pla.spigot().sendMessage(message);
}
}
Жуй
 
Код:
@EventHandler
public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent e) {
Player pl = e.getPlayer();
e.setCancelled(true);
TextComponent message = new TextComponent(pl.getName());
message.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/w " + pl.getName()));
message.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click to private message.").create()));
message.addExtra(ChatColor.WHITE + " > " + e.getMessage());
for (Player pla : Bukkit.getOnlinePlayers()) {
   pla.spigot().sendMessage(message);
}
}
Жуй
Хаваю! Спасибо. Однажды интеллектуально отомщу за унижения, но знал на что шёл. Предыдущий вариант кода тоже успел захавать, такой вот я прожорливый.
 
Всем спасибо! Всё работает, тему закрываю. В особенности выражаю благодарность @MurlikMurlik , за то что воссоздал и положил в рот. :З
upload_2019-2-16_2-29-25.png
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх