- Баллы
- 88
Пытаюсь сделать фикс для лазера для обычной версии IC2 (не экспериментальной), переписываю один файлик - EntityMiningLaser.java, добавляю такие строчки (пример):
Заменяю файл в моде, ставлю его на сервер, захожу, беру в руки лазер, жму ПКМ и сервер крашится:
Что я не так делаю? Вроде и обфусцирую, и код кроме этих эвентов не трогаю, сами эвенты тоже вкладываю в архив (папку customevents из фикса Шевчика для 1.6.4 экспериментальной - думаю тут не имеет значения, для какой версии, эвенты-то вроде одинаковые, да и краш я думаю не по их вине).
Как исправить эту ошибку? Судя по её названию, ошибка в каком-то абстрактном классе, только что-то я не понимаю, где именно
Код:
//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 экспериментальной - думаю тут не имеет значения, для какой версии, эвенты-то вроде одинаковые, да и краш я думаю не по их вине).
Как исправить эту ошибку? Судя по её названию, ошибка в каком-то абстрактном классе, только что-то я не понимаю, где именно