diff --git a/Change Log.txt b/Change Log.txt index d0cf2de62..ac484321b 100644 --- a/Change Log.txt +++ b/Change Log.txt @@ -1,5 +1,6 @@ ######## 3.0.31.xxx ######## - Fix: Prevented guardian crystals from being pushed by pistons. +- Fixed dislocators vanishing when dropped. ######## 3.0.30.529 ######## - Added energy link module. (Effectively wireless charging direct from an energy core) diff --git a/src/main/java/com/brandon3055/draconicevolution/items/tools/BoundDislocator.java b/src/main/java/com/brandon3055/draconicevolution/items/tools/BoundDislocator.java index 06a1a665f..6df714c89 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/tools/BoundDislocator.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/tools/BoundDislocator.java @@ -67,6 +67,9 @@ public void inventoryTick(ItemStack stack, Level world, Entity entity, int itemS @Override public boolean onEntityItemUpdate(ItemStack stack, ItemEntity entity) { + if (entity.getAge() >= 0) { + entity.setExtendedLifetime(); + } if (entity.level instanceof ServerLevel && TimeKeeper.getServerTick() % 20 == 0) { if (isValid(stack) && !isPlayer(stack)) { DislocatorSaveData.updateLinkTarget(entity.level, stack, new GroundTarget(entity)); @@ -199,7 +202,6 @@ private static ItemStack createP2PDislocator(UUID linkID) { return stack; } - @Override public TargetPos getTargetPos(ItemStack stack, @Nullable Level world) { if (world instanceof ServerLevel) { @@ -262,9 +264,4 @@ public Rarity getRarity(ItemStack stack) { public boolean canBeHurtBy(DamageSource source) { return source == DamageSource.OUT_OF_WORLD; } - - @Override - public int getEntityLifespan(ItemStack itemStack, Level level) { - return -32768; - } } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/tools/Dislocator.java b/src/main/java/com/brandon3055/draconicevolution/items/tools/Dislocator.java index 11911d8b8..e94a7fb75 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/tools/Dislocator.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/tools/Dislocator.java @@ -19,6 +19,7 @@ import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -208,7 +209,10 @@ public boolean canBeHurtBy(DamageSource source) { } @Override - public int getEntityLifespan(ItemStack itemStack, Level level) { - return -32768; + public boolean onEntityItemUpdate(ItemStack stack, ItemEntity entity) { + if (entity.getAge() >= 0) { + entity.setExtendedLifetime(); + } + return super.onEntityItemUpdate(stack, entity); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/tools/DislocatorAdvanced.java b/src/main/java/com/brandon3055/draconicevolution/items/tools/DislocatorAdvanced.java index ad0685984..2319504cd 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/tools/DislocatorAdvanced.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/tools/DislocatorAdvanced.java @@ -34,6 +34,7 @@ import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; @@ -66,8 +67,11 @@ public boolean canBeHurtBy(DamageSource source) { } @Override - public int getEntityLifespan(ItemStack itemStack, Level level) { - return -32768; + public boolean onEntityItemUpdate(ItemStack stack, ItemEntity entity) { + if (entity.getAge() >= 0) { + entity.setExtendedLifetime(); + } + return super.onEntityItemUpdate(stack, entity); } @Override @@ -277,7 +281,6 @@ public void setBlinkMode(ItemStack stack, boolean blink) { stack.getOrCreateTag().putBoolean("blink", blink); } - //Interaction Handling public void handleClientAction(ServerPlayer player, ItemStack stack, MCDataInput input) {