Плагин [MECH/FUN] ReActions - Что? Тогда? Иначе! [BukkitDev]

Итак, сразу после запуска:
Код:
2015-06-20 02:13:14 [INFO] [ReActions] Enabling ReActions v0.9.4/24
2015-06-20 02:13:15 [SEVERE] Error occurred while enabling ReActions v0.9.4/24 (Is it up to date?)
java.lang.NullPointerException
    at me.fromgate.reactions.util.FakeCmd.registerNewCommand(FakeCmd.java:43)
    at me.fromgate.reactions.util.FakeCmd.updateAllCommands(FakeCmd.java:32)
    at me.fromgate.reactions.util.FakeCmd.init(FakeCmd.java:26)
    at me.fromgate.reactions.ReActions.onEnable(ReActions.java:115)
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:382)
    at org.bukkit.craftbukkit.v1_5_R3.CraftServer.loadPlugin(CraftServer.java:305)
    at org.bukkit.craftbukkit.v1_5_R3.CraftServer.enablePlugins(CraftServer.java:287)
    at net.minecraft.server.v1_5_R3.MinecraftServer.j(MinecraftServer.java:310)
    at net.minecraft.server.v1_5_R3.MinecraftServer.e(MinecraftServer.java:289)
    at net.minecraft.server.v1_5_R3.MinecraftServer.a(MinecraftServer.java:249)
    at net.minecraft.server.v1_5_R3.DedicatedServer.init(DedicatedServer.java:152)
    at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:388)
    at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
При перезагрузке:
Код:
2015-06-20 02:17:03 [INFO] Lyosha12 issued server command: /ra reload
2015-06-20 02:17:03 [SEVERE] null
org.bukkit.command.CommandException: Unhandled exception executing command 'ra' in plugin ReActions v0.9.4/24
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189)
    at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchCommand(CraftServer.java:546)
    at net.minecraft.server.v1_5_R3.PlayerConnection.handleCommand(PlayerConnection.java:979)
    at net.minecraft.server.v1_5_R3.PlayerConnection.chat(PlayerConnection.java:895)
    at net.minecraft.server.v1_5_R3.PlayerConnection.a(PlayerConnection.java:840)
    at net.minecraft.server.v1_5_R3.Packet3Chat.handle(Packet3Chat.java:44)
    at org.spigotmc.netty.NettyNetworkManager.b(NettyNetworkManager.java:218)
    at net.minecraft.server.v1_5_R3.PlayerConnection.d(PlayerConnection.java:109)
    at net.minecraft.server.v1_5_R3.ServerConnection.b(SourceFile:35)
    at org.spigotmc.MultiplexingServerConnection.b(MultiplexingServerConnection.java:72)
    at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:583)
    at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:227)
    at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:472)
    at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:404)
    at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
Caused by: java.lang.NullPointerException
    at me.fromgate.reactions.util.FakeCmd.registerNewCommand(FakeCmd.java:43)
    at me.fromgate.reactions.util.FakeCmd.updateAllCommands(FakeCmd.java:32)
    at me.fromgate.reactions.Cmd.executeCmdReload(Cmd.java:143)
    at me.fromgate.reactions.Cmd.onCommand(Cmd.java:120)
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
    ... 15 more
Команды на старом формате не исполняются. Перезагрузил плагин - исполнилось все, что вводил, сразу и по очереди. Видимо, несовместимость с 1.5.2?
Использую меч:
Код:
2015-06-20 02:22:57 [INFO] [ReActions] Failed to parse item: amount:1 type:DIAMOND_SWORD lore:{Меч способен создать психическую\nзащиту I. Противник будет наносить\nзначительно меньше урона.\nАктивация способности: ПКМ\nДлительность: 30 секунд\nПерезарядка способности: 2 минуты\nАпгрейд: .*1000 + 40 уровней\nХарактеристики после апгрейда:\nДлительность: 1 минута\nПерезарядка: 4 минуты\nНаберите /upgrade Pepel1,\nдержа меч в руках.\nАпгрейд снимает все чары\nи чинит меч.}
Код:
ITEM_CLICK:
  Pepel_I:
    item: 'amount:1 type:DIAMOND_SWORD lore:{&7Меч способен создать психическую\n&7защиту &3I&7. Противник будет наносить\n&7значительно меньше урона.\n&5Активация способности: &6ПКМ\n&5Длительность: &630 секунд\n&5Перезарядка способности: &c2 минуты\n&2Апгрейд: &4.*1000 + 40 уровней\n&3Характеристики после апгрейда:\n&bДлительность: &61 минута\n&bПерезарядка: &c4 минуты\n&eНаберите &6/upgrade Pepel1&e,\n&eдержа меч в руках.\n&cАпгрейд снимает все чары\n&cи чинит меч.}'
 
@Lyosha12
С командами я вчера похоже что-то перемудрил. Сегодня проверю.
По поводу меча. Зачем в создании предмета вместо значка доллара используешь ".*"?
Я попробовал у меня меч выдался.
Сегодня погоняю ещё на 1.5.2
0.9.4/25
https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar

Исправил несколько моментов, которые могли повлиять на выдачу предметов.
Исправил ситуацию с командами (регулярки банально не использовались - была попытка простого сравнения)
Добавил в конфиг параметр: save-empty-actions-and-flags-sections: true/false По умолчанию - false - отключает сохранение пустых секций "actions", "reactions" и "flags" в активаторах. Соответственно, на мой взгляд активаторы стали несколько более читаемые. Если нововведение не нравится можно установить save-empty-actions-and-flags-sections: true

На 1.5.2 ещё не проверял
Проверил на 1.5.2. Работает как надо. Меч пепла получен и проверен ;)
 
Спасибо, посмотрим на этот вариант.
Как вижу, команды всё же надо переделать вне очереди. Как закончу - буду проверять ITEM_CLICK.
По поводу меча. Зачем в создании предмета вместо значка доллара используешь ".*"?
Ну, Вы сказали, что вместо него поставили эту регулярку...
В первую очередь это "$" - т.е. его или над экранировать \$ или же заменять на какой-то другой символ. Я вообще убрал и поставил в той строке ".*" - и всё сразу заработало.

Удалил все файлы, кроме activators, поправил команды:
Код:
2015-06-20 17:03:39 [INFO] [ReActions] Enabling ReActions v0.9.4/26
2015-06-20 17:03:39 [INFO] [ReActions] Failed to register command: help
2015-06-20 17:03:40 [SEVERE] java.lang.NullPointerException
2015-06-20 17:03:40 [SEVERE]     at me.fromgate.reactions.util.FakeCmd.registerNewCommand(FakeCmd.java:44)
2015-06-20 17:03:40 [SEVERE]     at me.fromgate.reactions.util.FakeCmd.updateAllCommands(FakeCmd.java:32)
2015-06-20 17:03:40 [SEVERE]     at me.fromgate.reactions.util.FakeCmd.init(FakeCmd.java:26)
2015-06-20 17:03:40 [SEVERE]     at me.fromgate.reactions.ReActions.onEnable(ReActions.java:118)
2015-06-20 17:03:40 [SEVERE]     at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
2015-06-20 17:03:40 [SEVERE]     at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
2015-06-20 17:03:40 [SEVERE]     at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:382)
2015-06-20 17:03:40 [SEVERE]     at org.bukkit.craftbukkit.v1_5_R3.CraftServer.loadPlugin(CraftServer.java:305)
2015-06-20 17:03:40 [SEVERE]     at org.bukkit.craftbukkit.v1_5_R3.CraftServer.enablePlugins(CraftServer.java:287)
2015-06-20 17:03:40 [SEVERE]     at net.minecraft.server.v1_5_R3.MinecraftServer.j(MinecraftServer.java:310)
2015-06-20 17:03:40 [SEVERE]     at net.minecraft.server.v1_5_R3.MinecraftServer.e(MinecraftServer.java:289)
2015-06-20 17:03:40 [SEVERE]     at net.minecraft.server.v1_5_R3.MinecraftServer.a(MinecraftServer.java:249)
2015-06-20 17:03:40 [SEVERE]     at net.minecraft.server.v1_5_R3.DedicatedServer.init(DedicatedServer.java:152)
2015-06-20 17:03:40 [SEVERE]     at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:388)
2015-06-20 17:03:40 [SEVERE]     at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
2015-06-20 17:03:40 [INFO] [ReActions] Failed to register command: nick
2015-06-20 17:03:40 [SEVERE] java.lang.NullPointerException
2015-06-20 17:03:40 [SEVERE]     at me.fromgate.reactions.util.FakeCmd.registerNewCommand(FakeCmd.java:44)
2015-06-20 17:03:40 [SEVERE]     at me.fromgate.reactions.util.FakeCmd.updateAllCommands(FakeCmd.java:32)
2015-06-20 17:03:40 [SEVERE]     at me.fromgate.reactions.util.FakeCmd.init(FakeCmd.java:26)
2015-06-20 17:03:40 [SEVERE]     at me.fromgate.reactions.ReActions.onEnable(ReActions.java:118)
2015-06-20 17:03:40 [SEVERE]     at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
2015-06-20 17:03:40 [SEVERE]     at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
2015-06-20 17:03:40 [SEVERE]     at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:382)
2015-06-20 17:03:40 [SEVERE]     at org.bukkit.craftbukkit.v1_5_R3.CraftServer.loadPlugin(CraftServer.java:305)
2015-06-20 17:03:40 [SEVERE]     at org.bukkit.craftbukkit.v1_5_R3.CraftServer.enablePlugins(CraftServer.java:287)
2015-06-20 17:03:40 [SEVERE]     at net.minecraft.server.v1_5_R3.MinecraftServer.j(MinecraftServer.java:310)
2015-06-20 17:03:40 [SEVERE]     at net.minecraft.server.v1_5_R3.MinecraftServer.e(MinecraftServer.java:289)
2015-06-20 17:03:40 [SEVERE]     at net.minecraft.server.v1_5_R3.MinecraftServer.a(MinecraftServer.java:249)
2015-06-20 17:03:40 [SEVERE]     at net.minecraft.server.v1_5_R3.DedicatedServer.init(DedicatedServer.java:152)
2015-06-20 17:03:40 [SEVERE]     at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:388)
2015-06-20 17:03:40 [SEVERE]     at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
2015-06-20 17:03:40 [INFO] [ReActions] Activator command registered: test
Код:
  TestActivator-CMD:
    command: 'test'
    override: false
    regex: false
    flags: []
    actions:
    - cancel_event=true
    - message=&6[&bSBW&6] &fВы держали в руках &3%PLAYER_ITEM_HAND%&f.
    - var_player_set=id:Test value:{%PLAYER_ITEM_HAND%}
    - action_delayed=time:2s action:{message &6[&bSBW&6] &fПредмет сохранён, вещи удалены.}
    - action_delayed=time:2s action:{cmd_console ci %player% **}
    - action_delayed=time:3s action:{item_give %varp:Test%}
    - action_delayed=time:3s action:{message &6[&bSBW&6] &fПредмет &3%varp:test%&f восстановлен успешно.}
    reactions: []

@fromgate, на 26 версии активатор test, а точнее плейсхолдер переменной, перестал работать правильно. Копирование в переменную значения проходит успешно, а вывод - нет.
Однако команды, похоже, регистрируются, не смотря на ошибки :)
А, кажется вспомнил. Вы говорили, что уже применили новый формат работы с переменными и задержками. Как будет синтаксически правильно вызвать значение переменной теперь?
 

Вложения

  • Снимок.PNG
    Снимок.PNG
    22,2 КБ · Просмотры: 6
@lyosha
Я правильно понимаю команды help и nick определены каким-то другим плагином. Ошибка - это именно из-за этого скорее всего. Собственно механизм работы команд не поменялся - это всё также события. Прост если команда не существует ReActions регистрирует "фальшивую" команду, которая ничего не делает, и привязывает к себе.
Это позволяет команде выводиться по нажатию на кнопку TAB (всё только ради этого). Так что я сообщение об ошибке скрою. Это не ошибка, это можно сказать фича ;)

По поводу переменных сейчас так:
%var:<Id>% и %varp:<Id>% — остаются.
Добавляется:
%var:<Player>.<Id>%
Т.е. переменная определенного игрока.
Сегодня потестирую переменные ещё.


Ну, Вы сказали, что вместо него поставили эту регулярку...
Это имеется в виду при сравнении. Для создания предмета - используются любые символы. Просто когда идёт сравнение путем регулярных выражений возникают нюансы.
Собственно, можно для точного сравнения каждую строку заключать в \Q<строка>\E
Надо попробовать в общем.
 
@fromgate, а как быть с командой /test? Она же происходит только из ReActions и всё равно ошибка в регистрации, однако она регистрируется. И почему тогда моя личная переменная не подставляется в %varp:test%?
 
@fromgate, а как быть с командой /test? Она же происходит только из ReActions и всё равно ошибка в регистрации, однако она регистрируется. И почему тогда моя личная переменная не подставляется в %varp:test%?

Всё как надо там:
2015-06-20 17:03:40 [INFO] [ReActions] Activator command registered: test

С переменной буду смотреть сейчас. Я на обычных гонял.
 
Хм, ок. Видимо, не заметил успешную регистрацию.

Отклонимся от темы: плейсхолдеры и флаги.
Делаю туториал и заметил странную вещь: если указать в действиях плейсхолдер-флаг, то его значение будет всегда равно аргументу флага - GROUP0. Баг или фича?
Код:
  Action-9-1:
    world: world
    x: -454
    y: 4
    z: -1255
    flags:
    - GROUP=GROUP0
    actions:
    - group_remove=Group0
    - group_add=Group1
    - message=&7
    - message=Вы только что были добавлены в другую PEX-группу.
    - message=Напишите что-то в чат и нажмите кнопку ещё раз.
    - message=Как видите, Ваша группа меняется. Это  один из примеров триггера.
    - message=&7
    - message=Сейчас Вы в группе &d%GROUP%&f.
    - message=&7
    - 'message=Само действие &nдобавления&f игрока в группу:'
    - message=&2group_add &dGroupName
    reactions:
    - group_remove=Group1
    - group_add=Group0
    - message=&7
    - message=Вы только что были добавлены в другую PEX-группу.
    - message=Напишите что-то в чат и нажмите кнопку ещё раз.
    - message=Как видите, Ваша группа меняется. Это  один из примеров триггера.
    - message=&7
    - message=Сейчас Вы в группе &d%GROUP%&f.
    - message=&7
    - 'message=Само действие &nдобавления&f игрока в группу:'
    - message=&2group_add &dGroupName
 

Вложения

  • Снимок.PNG
    Снимок.PNG
    142,2 КБ · Просмотры: 4
@Lyosha12
Это вобщем-то фича.
В том отношении, что запись состояния флага во временную переменную происходит во время проверки флага.
Раньше кстати это могло быть не так -- тогда по сути флаги проверялись дважды.
 
Но это же противоречит сути плейсхолдера-флага. Ведь, если нужно вывести значение флага, то можно просто его написать и без применения плейсхолдера, разве это не противоречие?
 
6. Создание активатора
  • /ra help -перечень команд, можно попытаться разобраться.
Итак, создаем активатор-кнопку:
  • Ставим кнопку
  • Смотрим на кнопку и пишем/ra add button <название кнопки>
  • Теперь добавляем флаг: /ra add <название кнопки> f group=noob
  • /ra add <название кнопки> f !pvp 10
Получили флаги, которые проверяют, чтобы игрок был в группе noob и не находился в pvp в течении последних 10 секунд
  • Добавляем действие: /ra add <название кнопки> a tp=<название локации>
  • /ra add <название кнопки> a grprmv noob
  • /ra add <название кнопки> a grpadd leveloneplayer
  • /ra add <название кнопки> a cmdsrv say &6С текущего момента игрока %player% запрещается дразнить нубом! Он уже крутой!
Получили действия - игрока телепортируют в <название локации>, снимают с него группу noob, игроку присваивается групп leveloneplayer, а заодно выполняется команда say по которой всем рассказываем о крутости игрока (%player% будет заменено на имя игрока)* Добавляем противодействие: /ra add <название кнопки> r msg &cЗдесь не любят тех кто дерётся! Иди отдохни!Теперь, если игрок не находится в группе noob или он недавно был участником pvp сражения, он получит соответствующее сообщениеСоздаем активатор регион
Допустим вы уже создали регион raregion используя WorldGuard, теперь:
Создаем активатор:

  • /ra add region <название активатора> <название региона - raregion>
Создаем флаги:* /ra add<название активатора> f item MAP:127
* /ra add<название активатора> f time 9,10,12,14,16,18Создаем действие

  • /ra add<название активатора> a tp <название локации для телепорта>
  • /ra add<название активатора> a msg &6Вы успешно прибыли в<название локации для телепорта>!
  • /ra add<название активатора> a msgall &6Игрок %player% прибыл прямиком в<название локации для телепорта>!
  • /ra add<название активатора> a ritemMAP:127
  • /ra add<название активатора> a sound enderman_teleport/1/1.2
Cоздаем реакцию
  • /ra add<название активатора> a msg &cДля отправления необходим билет. Время отправления:9:00, 10:00, 12:00, 14:00, 16:00, 18:00
Этот активатор фактически является телепортом, работающим в определенное время, при этом в качестве оплаты за телепорт у игрока изымается карта с номером 127 (изображение на карте можно нарисовать при помощи плагина CameraObscura)
 
Но это же противоречит сути плейсхолдера-флага. Ведь, если нужно вывести значение флага, то можно просто его написать и без применения плейсхолдера, разве это не противоречие?

Если флаг не участвует в активаторе - то его вывести не удастся. Вообще плейсхолдеры-флаги, я их считаю ненужными и неправильными. Так сказать тупиковая ветвь, сформированная в то время когда плейсхолдеров не было в принципе. Лучше сделать набор нормальных плейсхолдеров. Тем более, что сейчас это действительно просто.
@demolon
В чём вопрос?
 
Если флаг не участвует в активаторе - то его вывести не удастся. Вообще плейсхолдеры-флаги, я их считаю ненужными и неправильными. Так сказать тупиковая ветвь, сформированная в то время когда плейсхолдеров не было в принципе. Лучше сделать набор нормальных плейсхолдеров. Тем более, что сейчас это действительно просто.
@demolon
В чём вопрос?
Погодите, то есть, плейсхолдеры-флаги можно использовать нормально только тогда, когда они не являются флагами?
 
Плейсхолдеры-флаги -- это результат выполнения флага. Задумывались они для того, чтобы использовать в сообщениях выводимых игроку для пояснения каких-то ситуаций.
Т.е. к примеру флаг MONEY - раньше это был только флаг, отдельного плейсхолдера не было. Проверяешь, допустим, чтобы у игрока было 100 монет, в переменную записывается результат - сколько денег надо. И в тексте сообщения пишешь: "для того чтобы выполнить действие надо %money% монет"
Т.е. плейсхолдеры флаги можно использовать только тогда когда флаг используется.
Если флаг не используется, то если написать %group% - то ничего не увидим.

Фактически сейчас есть следующие виды плейсхолдеров:
1. Переменные
2. Временные переменные (это флаги, это переменные которые вносят активаторы)
3. Все остальные плейсхолдеры
 
Плейсхолдеры-флаги -- это результат выполнения флага. Задумывались они для того, чтобы использовать в сообщениях выводимых игроку для пояснения каких-то ситуаций.
Т.е. к примеру флаг MONEY - раньше это был только флаг, отдельного плейсхолдера не было. Проверяешь, допустим, чтобы у игрока было 100 монет, в переменную записывается результат - сколько денег надо. И в тексте сообщения пишешь: "для того чтобы выполнить действие надо %money% монет"
Но число в аргументе MONEY, с которым сравнивают баланс игрока, не изменяется в активаторе. Следовательно, смысла заносить его в переменную посредством плейсхолдера нет. Следовательно, они бесполезны, верно? Планируется ли это изменять? А то большой же кусок функционала пропадает.
 
Но число в аргументе MONEY, с которым сравнивают баланс игрока, не изменяется в активаторе. Следовательно, смысла заносить его в переменную посредством плейсхолдера нет. Следовательно, они бесполезны, верно? Планируется ли это изменять? А то большой же кусок функционала пропадает.

Ну MONEY есть ещё и плейсхолдер (и тут получается конфликт). Надо наверное всем плейсхолдерам флагам добавить окончание "_flag".
Смысл появляется тогда, когда в качестве требуемой суммы используется переменная. Но вообще изначально это делалось для того чтобы копировать текст из одного активатора в другой без дополнительных правок ;)
 
Ну MONEY есть ещё и плейсхолдер (и тут получается конфликт). Надо наверное всем плейсхолдерам флагам добавить окончание "_flag".
Смысл появляется тогда, когда в качестве требуемой суммы используется переменная. Но вообще изначально это делалось для того чтобы копировать текст из одного активатора в другой без дополнительных правок ;)
Значит, чтобы не писать в каждом активаторе MONEY=100, Вы пишите MONEY=%var:MONEY%? Всё равно не вижу рационального подхода... Разве что изменять эту переменную в будущем, чтобы создать подобие динамического рынка... Однако, устанавливать её значение из плейсхолдера-флага я считаю абсурдом, так как это можно сделать и просто числом в этом же активаторе. Или тут попахивает рекурсией?
 
Последнее редактирование:
@Lyosha12
Если говорить о том, что я делаю - я уже давно ничего не делаю ;) Я уже пару лет безсерверный ;)

Как бы флаги-плейсхолдеры есть, когда-то они сделаны были. Сейчас я их преобразовал в переменные (b буквально минуту назад добавил окончание "_FLAG" к каждому). Если кто-то найдёт им применение - хорошо. Нет - так они есть не просят. ;) Убирать их не хочу, потому что вполне может оказаться, что их кто-то сейчас использует.
 
@fromgate, тогда как занести в переменную текущее количество денег игрока?
 
@fromgate, тогда
как занести в переменную текущее количество денег игрока?

Ну как — var_set id:aaaa value:%money%
Но это естественно - только у текущего игрока.

Исправил плейсхолдеры с переменными: %varp:<Id>% и %var:<Player>.<Id>%
Все плейсхолдеры от флагов имеют окончание _flag
https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar
@Lyosha12 можно попросить погонять ещё на предмет удаление предмета (из руки/инвентаря). Я вроде проверял, но лучше больше проверок сейчас сделать...
 
@fromgate, так не работает:
Код:
    - var_player_set=id:Test value:{%PLAYER_ITEM_HAND%}
    - action_delayed=time:2s action:{ITEM_REMOVE_INVENTORY %varp:test%}
Так тоже:
Код:
    - action_delayed=time:2s action:{ITEM_REMOVE_INVENTORY %PLAYER_ITEM_HAND%}
Код:
2015-06-21 00:10:49 [WARNING] [ReActions] Task #15165 for ReActions v0.9.4/27 generated an exception
java.lang.IllegalArgumentException: Material cannot be null
    at org.apache.commons.lang.Validate.notNull(Validate.java:203)
    at org.*********ventory.ItemStack.setType(ItemStack.java:158)
    at me.fromgate.reactions.util.item.ItemUtil.removeItemInInventory(ItemUtil.java:139)
    at me.fromgate.reactions.util.item.ItemUtil.removeItemInInventory(ItemUtil.java:123)
    at me.fromgate.reactions.util.item.ItemUtil.removeItemInInventory(ItemUtil.java:119)
    at me.fromgate.reactions.actions.ActionItems.removeItemInInventory(ActionItems.java:193)
    at me.fromgate.reactions.actions.ActionItems.execute(ActionItems.java:51)
    at me.fromgate.reactions.actions.Action.executeAction(Action.java:74)
    at me.fromgate.reactions.actions.Actions.performAction(Actions.java:159)
    at me.fromgate.reactions.actions.ActionDelayed$1.run(ActionDelayed.java:36)
    at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftTask.run(CraftTask.java:58)
    at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:344)
    at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:509)
    at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:227)
    at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:472)
    at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:404)
    at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
Похоже, запись в переменную не идёт...
Команда /ra set var test %PLAYER_ITEM_HAND% заносит в переменную ничего.
item_remove %PLAYER_ITEM_HAND% не работает аналогично.
Хотя
Код:
    - message=&6[&bSBW&6] &fВы держали в руках &3%PLAYER_ITEM_HAND%&f.
Работает хорошо...
 
Назад
Верх