- Баллы
- 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]
Заранее спасибо.
Последнее редактирование: