Решено Краш java.lang.AbstractMethodError

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

LordBekketPro

Активный участник
Пользователь
Баллы
88
Пытаюсь сделать фикс для лазера для обычной версии IC2 (не экспериментальной), переписываю один файлик - EntityMiningLaser.java, добавляю такие строчки (пример):

Код:
//prepare variables
                    String shootername = this.owner.getEntityName();
                    org.bukkit.entity.Entity entityhit = BukkitReflectionUtils.getBukkitEntity(movingobjectposition.entityHit);
                    //call event
                    IC2LaserHitEntityEvent ic2laserhitentityevent = new IC2LaserHitEntityEvent(shootername, entityhit);
                    org.bukkit.Bukkit.getPluginManager().callEvent(ic2laserhitentityevent);
                    //do entity damage only if event is not cancelled
                    if (!ic2laserhitentityevent.isCancelled()) {
                        entity.setFire(damage * (smelt ? 2 : 1));
                        if(movingobjectposition.entityHit.attackEntityFrom((new EntityDamageSourceIndirect("arrow", this, owner)).setProjectile(), damage) && (owner instanceof EntityPlayer) && ((movingobjectposition.entityHit instanceof EntityDragon) && ((EntityDragon)movingobjectposition.entityHit).func_110143_aJ() <= 0.0F || (movingobjectposition.entityHit instanceof EntityDragonPart) && (((EntityDragonPart)movingobjectposition.entityHit).entityDragonObj instanceof EntityDragon) && ((EntityLivingBase)((EntityDragonPart)movingobjectposition.entityHit).entityDragonObj).func_110143_aJ() <= 0.0F))
                            IC2.achievements.issueAchievement((EntityPlayer)owner, "killDragonMiningLaser");
                    }

Заменяю файл в моде, ставлю его на сервер, захожу, беру в руки лазер, жму ПКМ и сервер крашится:

Код:
Time: 8/3/14 1:55 PM
Description: Exception in server tick loop

java.lang.AbstractMethodError
    at net.minecraft.entity.Entity.<init>(Entity.java:323)
    at ic2.core.item.tool.EntityMiningLaser.<init>(EntityMiningLaser.java:72)
    at ic2.core.item.tool.EntityMiningLaser.<init>(EntityMiningLaser.java:67)
    at ic2.core.item.tool.EntityMiningLaser.<init>(EntityMiningLaser.java:56)
    at ic2.core.item.tool.ItemToolMiningLaser.func_77659_a(ItemToolMiningLaser.java:67)
    at net.minecraft.item.ItemStack.func_77957_a(ItemStack.java:178)
    at net.minecraft.item.ItemInWorldManager.func_73085_a(ItemInWorldManager.java:499)
    at net.minecraft.item.ItemInWorldManager.func_73078_a(ItemInWorldManager.java:607)
    at net.minecraft.network.NetServerHandler.func_72472_a(NetServerHandler.java:882)
    at net.minecraft.network.packet.Packet15Place.func_73279_a(Packet15Place.java:79)
    at net.minecraft.network.TcpConnection.func_74428_b(TcpConnection.java:464)
    at net.minecraft.network.NetServerHandler.func_72570_d(NetServerHandler.java:231)
    at net.minecraft.network.NetworkListenThread.func_71747_b(NetworkListenThread.java:54)
    at net.minecraft.server.dedicated.DedicatedServerListenThread.func_71747_b(DedicatedServerListenThread.java:34)
    at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:872)
    at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:318)
    at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:741)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:625)
    at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)

Что я не так делаю? Вроде и обфусцирую, и код кроме этих эвентов не трогаю, сами эвенты тоже вкладываю в архив (папку customevents из фикса Шевчика для 1.6.4 экспериментальной - думаю тут не имеет значения, для какой версии, эвенты-то вроде одинаковые, да и краш я думаю не по их вине).

Как исправить эту ошибку? Судя по её названию, ошибка в каком-то абстрактном классе, только что-то я не понимаю, где именно
 
Я так понимаю, ругается вот на эти 2 строчки (одну из них) в файле ItemToolMiningLaser.class:
Код:
world.func_72838_d(new EntityMiningLaser(world, entityplayer, 4F, 5F, 1, false));
IC2.network.initiateItemEvent(entityplayer, itemstack, 1, true);

Но ведь я ничего больше не трогал в файле EntityMiningLaser.java, странно что он теперь ошибку выдаёт
Все же я думаю, в коде никаких ошибок нет, я где-то не так компилирую или не туда кладу файлы, не то обфусцирую... Не понимаю. Такая же проблема была, когда я карьер пытался пофиксить - тоже был краш, код тоже был в порядке.
Обнаружил, что MCPC+ в jarнике нет файла net.minecraft.entity.Entity... Так и должно быть? Хотя если файла нет, как же сервер может ругаться на него, похоже так и должно быть
Кажется, нашел нестыковки в коде между моим классом и стандартным классом. Похоже что мой класс "недообфусцировался"... Обфусцировал через бон, но видимо не так... Как быть?
Всё, решил проблему, тему можно удалить
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх Низ