Помогите Вытащить домен из текста.

  • Автор темы Автор темы xDark
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

xDark

Активный участник
Пользователь
Баллы
96
Вообщем делаю плагин от рекламы.
Сейчас есть такой код:
Java:
    private static final String URL_REGEX = "^((https?|ftp)://|(www|ftp)\\.)?[a-z0-9-]+(\\.[a-z0-9-]+)+([/?].*)?$";

    private static boolean containsURL(String message) {
        try {
            Pattern p = Pattern.compile(URL_REGEX);
            Matcher m = p.matcher(message);
            String url = m.group();
            if (isWhiteListed(url))
                return false;
            if (m.find()) {
                List<String> current = WatchSystem.config().getStringList("settings.ad.list");
                current.add(url);
                WatchSystem.instance().getConfig().set("settings.ad.list", current);
                WatchSystem.instance().saveConfig();
                Settings.AD_WORDS.add(url);
                return true;
            }
        } catch (Throwable t) {
            if (Settings.DEBUG)
                WatchSystem.instance().getLogger().log(Level.SEVERE,
                        "Exception thrown while checking if message contains URL", t);
            return false;
        }
        return false;
    }
Но постоянно бросает ошибку.
Код:
[19:13:52 INFO]: <wars> 34534534534 sdfsdf
[19:13:55 ERROR]: [WatchSystem] Exception thrown while checking if ad contains URL
java.lang.IllegalStateException: No match found
        at java.util.regex.Matcher.group(Unknown Source) ~[?:1.8.0_121]
        at java.util.regex.Matcher.group(Unknown Source) ~[?:1.8.0_121]
        at me.xDark.watchSystem.Util.containsURL(Util.java:56) [WatchSystem.jar:?]
        at me.xDark.watchSystem.Util.checkAd(Util.java:106) [WatchSystem.jar:?]
        at me.xDark.watchSystem.AsyncChatListener.onChat(AsyncChatListener.java:23) [WatchSystem.jar:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_121]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) [spigot.jar:git-Spigot-4af49dc-c5e9a16]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [spigot.jar:git-Spigot-4af49dc-c5e9a16]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-4af49dc-c5e9a16]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:484) [spigot.jar:git-Spigot-4af49dc-c5e9a16]
        at net.minecraft.server.v1_9_R2.PlayerConnection.chat(PlayerConnection.java:1271) [spigot.jar:git-Spigot-4af49dc-c5e9a16]
        at net.minecraft.server.v1_9_R2.PlayerConnection.a(PlayerConnection.java:1209) [spigot.jar:git-Spigot-4af49dc-c5e9a16]
        at net.minecraft.server.v1_9_R2.PacketPlayInChat$1.run(PacketPlayInChat.java:39) [spigot.jar:git-Spigot-4af49dc-c5e9a16]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_121]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_121]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_121]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_121]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_121]
Есть ли какой - то другой способ проверить сообщение на наличие ссылок?
Заранее спасибо.
 
Последнее редактирование:
гыг
Решено, закрыто с:
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх