Помогите Предметы на земле

  • Автор темы Автор темы Grazy
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Grazy

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Prost
Проблема заключаться в том что предметы на земле тоже являются энтити.
Как мне исключить из этого кода проверку предмета(ентити) который валяется на земле.
Если сможете киньте пример кода проверки на наличии предмета на земле, буду благодарен.
 
Последнее редактирование:
Метод я вызываю вот так
LivingEntity entityTarget = (LivingEntity)getTargetEntity(Player);
И instanceof Item не помогает(.
Код:
[00:03:56] [Server thread/ERROR]: Could not pass event PlayerInteractEvent to Sposobnostu v1.5
org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:305) ~[craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
    at org.bukkit.craftbukkit.v1_8_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:226) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.PlayerInteractManager.interact(PlayerInteractManager.java:463) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.PlayerConnection.a(PlayerConnection.java:724) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:50) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:80) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.PacketHandleTask.run(SourceFile:13) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_131]
    at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_131]
    at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:696) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:316) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:634) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
    at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:537) [craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_131]
Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_8_R1.entity.CraftItem cannot be cast to org.bukkit.entity.LivingEntity
    at me.SpiceMeme.spells.Lightning.use(Lightning.java:51) ~[?:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_131]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_131]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_131]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_131]
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) ~[craftbukkit.jar:git-Spigot-c3c767f-33d5de3]
    ... 16 more
 
Последнее редактирование:
Код:
public static <T extends Entity> T getTarget(final Entity entity, final Iterable<T> entities) {
        if (entity == null)
            return null;
        T target = null;
        final double threshold = 1;
        for (final T other : entities) {
            if(!(other instanceof LivingEntity)) continue;
            final Vector n = other.getLocation().toVector().subtract(entity.getLocation().toVector());
            if (entity.getLocation().getDirection().normalize().crossProduct(n).lengthSquared() < threshold && n.normalize().dot(entity.getLocation().getDirection().normalize()) >= 0) {
                if (target == null || target.getLocation().distanceSquared(entity.getLocation()) > other.getLocation().distanceSquared(entity.getLocation()))target = other;
            }
        }
        return target;
    }
Кстати, видно же, что код сп*здил
 
Код:
public static <T extends Entity> T getTarget(final Entity entity, final Iterable<T> entities) {
        if (entity == null)
            return null;
        T target = null;
        final double threshold = 1;
        for (final T other : entities) {
            if(!(other instanceof LivingEntity)) continue;
            final Vector n = other.getLocation().toVector().subtract(entity.getLocation().toVector());
            if (entity.getLocation().getDirection().normalize().crossProduct(n).lengthSquared() < threshold && n.normalize().dot(entity.getLocation().getDirection().normalize()) >= 0) {
                if (target == null || target.getLocation().distanceSquared(entity.getLocation()) > other.getLocation().distanceSquared(entity.getLocation()))target = other;
            }
        }
        return target;
    }
Кстати, видно же, что код сп*здил
У меня по геометрии 12)
Я тебе больше скажу мне гугл в этом помог) https://bukkit.org/threads/get-entity-player-is-looking.300661/#post-2727103
 
Код:
public static <T extends Entity> T getTarget(final Entity entity, final Iterable<T> entities) {
        if (entity == null)
            return null;
        T target = null;
        final double threshold = 1;
        for (final T other : entities) {
            if(!(other instanceof LivingEntity)) continue;
            final Vector n = other.getLocation().toVector().subtract(entity.getLocation().toVector());
            if (entity.getLocation().getDirection().normalize().crossProduct(n).lengthSquared() < threshold && n.normalize().dot(entity.getLocation().getDirection().normalize()) >= 0) {
                if (target == null || target.getLocation().distanceSquared(entity.getLocation()) > other.getLocation().distanceSquared(entity.getLocation()))target = other;
            }
        }
        return target;
    }
Кстати, видно же, что код сп*здил
Смысл твоего сообщения???
 
Смысл твоего сообщения???
if(!(other instanceof LivingEntity)) continue;

Этот код изначально сворован у кого-то другого
 
Ой, забыл за тему. Вот решение моей проблемы:
try {

} catch (Exception e) {
// TODO: handle exception
}


Этот код изначально сворован у кого-то другого
Из их диалога я понял, что чел сам его написал, выложил его как решение проблемы челу. А это значит что он не против что бы его код брали. И причем тут то что я спиз*ил его, если бы все были такие правильные не научились бы кодить.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх