Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Строка

BeYkeR

Старожил
Девелопер
Пользователь
Баллы
173
Мне нужно получить строку из конфига:
Код:
  Global:
    format: '&6[Global]%PREFIX%%NAME%: %MSG%'
    startWith: ^
    ranged: false
А именно startWith, но появилась проблема:
2013-10-13 13:55:37 [SEVERE] Could not pass event PlayerChatEvent to BkrChatReload v2.0
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
at net.minecraft.server.v1_5_R3.PlayerConnection$4.evaluate(PlayerConnection.java:903)
at org.bukkit.craftbukkit.v1_5_R3.util.Waitable.run(Waitable.java:24)
at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:517)
at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:226)
at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:477)
at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:410)
at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
Caused by: java.lang.NullPointerException
at java.lang.String.startsWith(Unknown Source)
at java.lang.String.startsWith(Unknown Source)
at ykt.BeYkeRYkt.BkrChatReload.Listener.BkrChatListener.onPlayerChat(BkrChatListener.java:191)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
... 10 more

Я знаю что ошибка в строке 191:
if(chatMessage.startsWith(with)){

with:
for(String mods : plugin.getConfig().getConfigurationSection("Mods").getKeys(false)){
String with = plugin.getConfig().getString("Mods." + mods + ".startWith");
Как можно сделать так, чтобы плагин проверял все "под"строки связанное с startWith ?
 
Такие символы вроде нужно заносить в кавычки
Незнаю, но когда создавался конфиг он был без ковычек
Еще кое что, плагин не проверяет остальные кроме первого. Вот весь конфиг:
Код:
Mods:
  Global:
    format: '&6[Global]%PREFIX%%NAME%: %MSG%'
    startWith: ^
    ranged: false
    colors:
    - GOLD
  Local:
    format: '[%TIME%]%PREFIX%%NAME%: %MSG%'
    radius: 10
    ranged: true
    colors:
    - WHITE
  Shout:
    format: '&4[Shout]%PREFIX%%NAME%: %MSG%'
    radius: 20
    startWith: '!'
    ranged: true
    colors:
    - RED
  Whispering:
    format: '&9[Whispering]%PREFIX%%NAME%: %MSG%'
    radius: 3
    startWith: '@'
    ranged: true
    colors:
    - GRAY
    - ITALIC
И он проверяет только первую т.е. Global
 
Незнаю, но когда создавался конфиг он был без ковычек
Еще кое что, плагин не проверяет остальные кроме первого. Вот весь конфиг:
Код:
Mods:
  Global:
    format: '&6[Global]%PREFIX%%NAME%: %MSG%'
    startWith: ^
    ranged: false
    colors:
    - GOLD
  Local:
    format: '[%TIME%]%PREFIX%%NAME%: %MSG%'
    radius: 10
    ranged: true
    colors:
    - WHITE
  Shout:
    format: '&4[Shout]%PREFIX%%NAME%: %MSG%'
    radius: 20
    startWith: '!'
    ranged: true
    colors:
    - RED
  Whispering:
    format: '&9[Whispering]%PREFIX%%NAME%: %MSG%'
    radius: 3
    startWith: '@'
    ranged: true
    colors:
    - GRAY
    - ITALIC
И он проверяет только первую т.е. Global
Постоянно обращаться к конфигу, во время выполнения, не есть хорошо.
Создай таблицу, занеси всё это туда, а потом уже сверяй с таблицей.
Получать что-либо из конфига желательно через JavaPlugin.getConfig().getТип("адрес");
Адрес может быть например такой: Mods.Shout.startWith
 
Постоянно обращаться к конфигу, во время выполнения, не есть хорошо.
Создай таблицу, занеси всё это туда, а потом уже сверяй с таблицей.
Получать что-либо из конфига желательно через JavaPlugin.getConfig().getТип("адрес");
Адрес может быть например такой: Mods.Shout.startWith

Я знаю что так желательно, но иногда хочется добавить "свою" строку без изменения кода плагина. И еще: Как понять таблицу ? HashMap ?
 

Поделиться этой страницей

Назад
Верх