Chat Links!

Discussion in 'Plugin Development' started by APPLEisROP, Mar 3, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    APPLEisROP

    I'm trying to make that every link in server chat has hover text over them like "click me to open"
    How it works/should work:
    filter links using regex, and then apply hover over it.

    And i only got it work that it adds color in links:

    Code:java
    1. package main;
    2.  
    3. import java.util.regex.Matcher;
    4. import java.util.regex.Pattern;
    5.  
    6. import org.bukkit.ChatColor;
    7. import org.bukkit.event.EventHandler;
    8. import org.bukkit.event.EventPriority;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.player.AsyncPlayerChatEvent;
    11. import org.bukkit.plugin.java.JavaPlugin;
    12.  
    13. public class ServerLink
    14. extends JavaPlugin
    15. implements Listener
    16. {
    17. public void onEnable()
    18. {
    19. getServer().getPluginManager().registerEvents(this, this);
    20. }
    21.  
    22. @EventHandler(priority=EventPriority.HIGHEST, ignoreCancelled=false)
    23. public void onChat(AsyncPlayerChatEvent e)
    24. {
    25. e.setMessage(lawl(e.getMessage()));
    26. }
    27.  
    28. private String lawl(String message)
    29. {
    30. Pattern p = Pattern.compile("(?i)\\b((?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:'\".,<>?«»“”‘’]))");
    31. Matcher m = p.matcher(message);
    32. while (m.find()) {
    33. message = message.replace(m.group(), ChatColor.RED + m.group() + ChatColor.RESET);
    34. }
    35. return message;
    36. }
    37. }


    I have this Chat lib, but i really don't know how to add hover texts in those links. I only got it work with that kind of simple color. :/
     
Thread Status:
Not open for further replies.

Share This Page