java.lang.Integer cannot be cast to java.lang.Byte

Версия Minecraft
1.7.10
API
Forge
122
1
5
Вылетает ошибка на ретюрне
Java:
   public boolean isRotating() {
      return this.dataWatcher.getWatchableObjectByte(29) == 1;
   }
не может сделать каст, не могу понять почему.
 
Краш-лог
java.lang.Integer cannot be cast to java.lang.Byte
Краш-лог:
java.lang.Integer cannot be cast to java.lang.Byte
1,200
37
237
Я что-то тоже не вдуплил, пару раз для надежности проверил в онлайн компиляторе играясь с int/byte/Integer/Byte (и всё работало нормально). Ну попробуй свой байт 1 вынести в статичную константу с типом byte, все равно ты её менять не будешь (не должен).

---

Хотя, у тебя ошибка внутри вотчера может возникать.
 
122
1
5
Я что-то тоже не вдуплил, пару раз для надежности проверил в онлайн компиляторе играясь с int/byte/Integer/Byte (и всё работало нормально). Ну попробуй свой байт 1 вынести в статичную константу с типом byte, все равно ты её менять не будешь (не должен).
Там есть getWatchableObjectInt, выдает тоже самое, только на оборот.
 

TheAndrey

Редактор учебника
1,071
72
372
122
1
5
Стактрейс выложи
net.minecraft.util.ReportedException: Ticking entity
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:713) ~[MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:618) ~[MinecraftServer.class:?]
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118) ~[IntegratedServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:489) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer[imath]2.run(MinecraftServer.java:756) [MinecraftServer[/imath]2.class:?]
Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Byte
at net.minecraft.entity.DataWatcher.getWatchableObjectByte(DataWatcher.java:85) ~[DataWatcher.class:?]
at noppes.npcs.entity.EntityProjectile.isRotating(EntityProjectile.java:771) ~[EntityProjectile.class:?]
at noppes.npcs.entity.EntityProjectile.onUpdate(EntityProjectile.java:316) ~[EntityProjectile.class:?]
at net.minecraft.world.World.updateEntityWithOptionalForce(World.java:2315) ~[World.class:?]
at net.minecraft.world.WorldServer.updateEntityWithOptionalForce(WorldServer.java:684) ~[WorldServer.class:?]
at net.minecraft.world.World.updateEntity(World.java:2275) ~[World.class:?]
at net.minecraft.world.World.updateEntities(World.java:2125) ~[World.class:?]
at net.minecraft.world.WorldServer.updateEntities(WorldServer.java:515) ~[WorldServer.class:?]
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:707) ~[MinecraftServer.class:?]
... 4 more
 
122
1
5
Ты пытаешься преобразовать int значение в byte. Метод другой надо вызывать.
Вызвал, говорит что нельзя преобразовать byte значение в int.
Caused by: java.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.Integer
 
122
1
5
Ну кажись все, понял. Ты же достаель по номеру 29 байт который сам же и писал? Ну вот ты его как интеджер записал.

Там касты внутри метода к байтам.
Даже getWatchableObjectInt где предаю 2 инта, и в нутри только каст инт на инт, выдает: java.lang.Byte cannot be cast to java.lang.Integer
 
122
1
5
public boolean isRotating() { return this.dataWatcher.getWatchableObjectByte(29) == (byte) 1; }
Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Byte
at net.minecraft.entity.DataWatcher.getWatchableObjectByte(DataWatcher.java:85) ~[DataWatcher.class:?]
at noppes.npcs.entity.EntityProjectile.isRotating(EntityProjectile.java:772) ~[EntityProjectile.class:?]
at noppes.npcs.entity.EntityProjectile.onUpdate(EntityProjectile.java:316) ~[EntityProjectile.class:?]
 
Сверху