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

Помогите java.lang.IllegalArgumentException: Path cannot be null

Статус
Закрыто для дальнейших ответов.

BeYkeR

Старожил
Девелопер
Пользователь
Баллы
173
При поставке сундука появляются ошибки:
2013-09-07 12:35:08 [SEVERE] Could not pass event BlockPlaceEvent to Test v1.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 org.bukkit.craftbukkit.v1_5_R3.event.CraftEventFactory.callBlockPlaceEvent(CraftEventFactory.java:112)
at net.minecraft.server.v1_5_R3.ItemBlock.processBlockPlace(ItemBlock.java:85)
at net.minecraft.server.v1_5_R3.ItemBlock.interactWith(ItemBlock.java:71)
at net.minecraft.server.v1_5_R3.ItemStack.placeItem(ItemStack.java:79)
at net.minecraft.server.v1_5_R3.PlayerInteractManager.interact(PlayerInteractManager.java:386)
at net.minecraft.server.v1_5_R3.PlayerConnection.a(PlayerConnection.java:637)
at net.minecraft.server.v1_5_R3.Packet15Place.handle(SourceFile:58)
at net.minecraft.server.v1_5_R3.NetworkManager.b(NetworkManager.java:292)
at net.minecraft.server.v1_5_R3.PlayerConnection.d(PlayerConnection.java:115)
at net.minecraft.server.v1_5_R3.ServerConnection.b(SourceFile:35)
at net.minecraft.server.v1_5_R3.DedicatedServerConnection.b(SourceFile:30)
at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:581)
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.IllegalArgumentException: Path cannot be null
at org.apache.commons.lang.Validate.notNull(Validate.java:203)
at org.bukkit.configuration.MemorySection.getDefault(MemorySection.java:697)
at org.bukkit.configuration.MemorySection.get(MemorySection.java:194)
at ykt.BeYkeRYkt.Test.TestListener.BlockPlaceEvent(ChestListener.java:156)
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)
... 19 more
Вот код:

Код:
@EventHandler
public void BlockPlaceEvent(BlockPlaceEvent event) {
Block block = event.getBlock();
String name = event.getPlayer().getItemInHand().getItemMeta().getDisplayName();
//Проверка: блок == сундук
if(block.getType() == Material.CHEST){
 
//По идее: проверка нет ли имя сундука в отдельном конфиг файле, если есть идет дальше...
if(plugin.getCustomConfig().get(name) != null){
 
//взял где-то
Inventory chestInventory = ((Chest)block.getState()).getInventory();
 
if(chestInventory instanceof DoubleChestInventory){
DoubleChest c = new DoubleChest((DoubleChestInventory) chestInventory);
 
//Загрузка инвентаря из файла
SaveFile.LoadDoubleInventory(c, name);
 
}else if(chestInventory instanceof Inventory){
 
//Загрузка инвентаря из файла
SaveFile.LoadInventoryFile(block, name);
 
}
}
}
}
 
При поставке сундука появляются ошибки:

Вот код:

Код:
@EventHandler
public void BlockPlaceEvent(BlockPlaceEvent event) {
Block block = event.getBlock();
String name = event.getPlayer().getItemInHand().getItemMeta().getDisplayName();
//Проверка: блок == сундук
if(block.getType() == Material.CHEST){
 
//По идее: проверка нет ли имя сундука в отдельном конфиг файле, если есть идет дальше...
if(plugin.getCustomConfig().get(name) != null){
 
//взял где-то
Inventory chestInventory = ((Chest)block.getState()).getInventory();
 
if(chestInventory instanceof DoubleChestInventory){
DoubleChest c = new DoubleChest((DoubleChestInventory) chestInventory);
 
//Загрузка инвентаря из файла
SaveFile.LoadDoubleInventory(c, name);
 
}else if(chestInventory instanceof Inventory){
 
//Загрузка инвентаря из файла
SaveFile.LoadInventoryFile(block, name);
 
}
}
}
}
На основе данного кода могу предположить, что name == null.
 
String name = event.getPlayer().getItemInHand().getItemMeta().getDisplayName();
Вот тут бабах, предмет не обязан иметь кастомное имя, проверяй сначала
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх