2024/12/07
修复发射器发射拴绳类箭矢拾取时数量直接copy发射器里的数量的BUG
This commit is contained in:
parent
0ecfe88683
commit
8b759259ad
|
|
@ -1,2 +1,2 @@
|
|||
// 1.21 2024-11-27T00:15:38.1934553 Languages: en_us for mod: leashedplayer
|
||||
d32d19599105d6c5575757a7f0344f066445bd15 assets/leashedplayer/lang/en_us.json
|
||||
// 1.21 2024-12-07T16:59:56.8625511 Languages: en_us for mod: leashedplayer
|
||||
b307f81b4c4d1f4ab0e3520c4028c9addd42b840 assets/leashedplayer/lang/en_us.json
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// 1.21 2024-11-27T00:15:38.1929375 Languages: zh_cn for mod: leashedplayer
|
||||
be8f599c80c4ea7e7f6de238f6acf213fe9827d2 assets/leashedplayer/lang/zh_cn.json
|
||||
// 1.21 2024-12-07T16:59:56.8605492 Languages: zh_cn for mod: leashedplayer
|
||||
4099d0ec30ba8cf765f5e9d492644b2fb8a60b30 assets/leashedplayer/lang/zh_cn.json
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// 1.21 2024-11-27T00:15:38.1846441 Languages: zh_tw for mod: leashedplayer
|
||||
73006b0556ae8066c61837a9ff35a1b50126f510 assets/leashedplayer/lang/zh_tw.json
|
||||
// 1.21 2024-12-07T16:59:56.8583125 Languages: zh_tw for mod: leashedplayer
|
||||
b031b47a2ec98923235e85b63310b71e5f2b0d86 assets/leashedplayer/lang/zh_tw.json
|
||||
|
|
|
|||
|
|
@ -58,6 +58,11 @@
|
|||
"item.minecraft.potion.effect.no_leash": "No Leash Potion",
|
||||
"item.minecraft.splash_potion.effect.no_leash": "Splash No Leash Potion",
|
||||
"item.minecraft.tipped_arrow.effect.no_leash": "Arrow of No Leash",
|
||||
"item.nestle_rope_arrow.desc.1": "§7This arrow will carry the owner along with its flight:",
|
||||
"item.nestle_rope_arrow.desc.2": "§c1.§r If it hits an entity, it will leash the owner with the entity and drop as a normal arrow.",
|
||||
"item.nestle_rope_arrow.desc.3": "",
|
||||
"item.nestle_rope_arrow.desc.4": "",
|
||||
"item.nestle_rope_arrow.desc.5": "",
|
||||
"item.spectral_leash_rope_arrow.desc": "§c2.§r Strike the entity to give it a §e§lGlowing§r effect.",
|
||||
"item.tipped_leash_rope_arrow.desc": "§c2.§rStrike the entity to give it a Potion effect.",
|
||||
"item.tipped_leash_rope_arrow.name": "Tipped Leash Rope Arrow Soaked By %1$s",
|
||||
|
|
|
|||
|
|
@ -58,6 +58,11 @@
|
|||
"item.minecraft.potion.effect.no_leash": "禁拴药水",
|
||||
"item.minecraft.splash_potion.effect.no_leash": "喷溅型禁拴药水",
|
||||
"item.minecraft.tipped_arrow.effect.no_leash": "禁拴之箭",
|
||||
"item.nestle_rope_arrow.desc.1": "§7该箭将会携带拥有者随其飞行",
|
||||
"item.nestle_rope_arrow.desc.2": "§c1.§r 若击中生物时,将持有者与其拴在一起并已普通箭形式掉落;",
|
||||
"item.nestle_rope_arrow.desc.3": "",
|
||||
"item.nestle_rope_arrow.desc.4": "",
|
||||
"item.nestle_rope_arrow.desc.5": "",
|
||||
"item.spectral_leash_rope_arrow.desc": "§c2.§r 击中实体给与其§e§l发光§7(§e§lGlowing§7)§r效果",
|
||||
"item.tipped_leash_rope_arrow.desc": "§c2.§r 击中实体给与其药水效果",
|
||||
"item.tipped_leash_rope_arrow.name": "用%1$s浸泡过的拴绳箭",
|
||||
|
|
|
|||
|
|
@ -58,6 +58,11 @@
|
|||
"item.minecraft.potion.effect.no_leash": "禁拴藥水",
|
||||
"item.minecraft.splash_potion.effect.no_leash": "噴濺型禁拴藥水",
|
||||
"item.minecraft.tipped_arrow.effect.no_leash": "禁拴之箭",
|
||||
"item.nestle_rope_arrow.desc.1": "§7該箭將會攜帶擁有者隨其飛行:",
|
||||
"item.nestle_rope_arrow.desc.2": "§c1.§r 若擊中生物時,將持有者與其拴在一起其上並以普通箭的形式掉落;",
|
||||
"item.nestle_rope_arrow.desc.3": "",
|
||||
"item.nestle_rope_arrow.desc.4": "",
|
||||
"item.nestle_rope_arrow.desc.5": "",
|
||||
"item.spectral_leash_rope_arrow.desc": "擊中實體給予其§e§l發光§7(§e§lGlowing§7)§r效果",
|
||||
"item.tipped_leash_rope_arrow.desc": "擊中實體給予其药水效果",
|
||||
"item.tipped_leash_rope_arrow.name": "蘸有%1$s的拴繩箭",
|
||||
|
|
|
|||
|
|
@ -48,7 +48,9 @@ public class LeashRopeArrow extends AbstractArrow {
|
|||
|
||||
}
|
||||
private PotionContents getPotionContents() {
|
||||
return this.getPickupItemStackOrigin().getOrDefault(DataComponents.POTION_CONTENTS, PotionContents.EMPTY);
|
||||
ItemStack pickupItemStackOrigin = this.getPickupItemStackOrigin();
|
||||
pickupItemStackOrigin.setCount(1);
|
||||
return pickupItemStackOrigin.getOrDefault(DataComponents.POTION_CONTENTS, PotionContents.EMPTY);
|
||||
}
|
||||
|
||||
public void addEffect(MobEffectInstance pEffectInstance) {
|
||||
|
|
@ -135,14 +137,43 @@ public class LeashRopeArrow extends AbstractArrow {
|
|||
|
||||
if(life <= 40 ) {
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
PlayerLeashable playerLeashable = (PlayerLeashable) pPlayer;
|
||||
if(this.getOwner() == null) {//未有Owner始终可检
|
||||
return true;
|
||||
}
|
||||
if(life <= 240) {
|
||||
if(pPlayer.isShiftKeyDown()) {
|
||||
if(this.getOwner() != null) {//未有Owner始终可检
|
||||
if(life <= 240) {
|
||||
if(pPlayer.isShiftKeyDown()) {
|
||||
Entity leashDataEntity = this.getOwner() instanceof PlayerLeashable ? PlayerLeashable.getLeashDataEntity((ServerPlayer) this.getOwner(), (ServerLevel) level()) : this.getOwner();
|
||||
if(this.ownedBy(pPlayer)) {
|
||||
this.pickup = Pickup.ALLOWED;
|
||||
if(this.equals(leashDataEntity)) {
|
||||
pPlayer.playSound(SoundEvents.LEASH_KNOT_BREAK, 1, 1);
|
||||
playerLeashable.dropLeash(true, false);
|
||||
}
|
||||
} else {
|
||||
if(life >= 120) {
|
||||
Entity owner = getOwner();
|
||||
if( owner != null ) {
|
||||
// if(this.equals(leashDataEntity)) {
|
||||
if(owner instanceof PlayerLeashable player) {
|
||||
player.setLeashedTo(pPlayer, true);
|
||||
pPlayer.playSound(SoundEvents.LEASH_KNOT_PLACE, 1, 1);
|
||||
} else if(owner instanceof Leashable leashable) {
|
||||
leashable.setLeashedTo(pPlayer, true);
|
||||
pPlayer.playSound(SoundEvents.LEASH_KNOT_PLACE, 1, 1);
|
||||
}
|
||||
ItemEntity itemEntity = new ItemEntity(level(), getX(), getY(), getZ(), getOrginalItemStack());
|
||||
level().addFreshEntity(itemEntity);
|
||||
discard();
|
||||
// }
|
||||
}
|
||||
} else return false;
|
||||
}
|
||||
} else {
|
||||
((ServerPlayer)pPlayer).sendSystemMessage(Component.translatable(PUSH_SHIFT_TO_PICKUP_QUICKLY), true);
|
||||
return false;
|
||||
}
|
||||
|
||||
} else {
|
||||
Entity leashDataEntity = this.getOwner() instanceof PlayerLeashable ? PlayerLeashable.getLeashDataEntity((ServerPlayer) this.getOwner(), (ServerLevel) level()) : this.getOwner();
|
||||
if(this.ownedBy(pPlayer)) {
|
||||
this.pickup = Pickup.ALLOWED;
|
||||
|
|
@ -151,53 +182,23 @@ public class LeashRopeArrow extends AbstractArrow {
|
|||
playerLeashable.dropLeash(true, false);
|
||||
}
|
||||
} else {
|
||||
if(life >= 120) {
|
||||
Entity owner = getOwner();
|
||||
if( owner != null ) {
|
||||
// if(this.equals(leashDataEntity)) {
|
||||
if(owner instanceof PlayerLeashable player) {
|
||||
player.setLeashedTo(pPlayer, true);
|
||||
pPlayer.playSound(SoundEvents.LEASH_KNOT_PLACE, 1, 1);
|
||||
} else if(owner instanceof Leashable leashable) {
|
||||
leashable.setLeashedTo(pPlayer, true);
|
||||
pPlayer.playSound(SoundEvents.LEASH_KNOT_PLACE, 1, 1);
|
||||
}
|
||||
ItemEntity itemEntity = new ItemEntity(level(), getX(), getY(), getZ(), getOrginalItemStack());
|
||||
level().addFreshEntity(itemEntity);
|
||||
discard();
|
||||
// }
|
||||
} else return true;
|
||||
} else return false;
|
||||
}
|
||||
} else {
|
||||
((ServerPlayer)pPlayer).sendSystemMessage(Component.translatable(PUSH_SHIFT_TO_PICKUP_QUICKLY), true);
|
||||
return false;
|
||||
}
|
||||
Entity owner = getOwner();
|
||||
if(owner instanceof PlayerLeashable player) {
|
||||
player.setLeashedTo(pPlayer, true);
|
||||
pPlayer.playSound(SoundEvents.LEASH_KNOT_PLACE, 1, 1);
|
||||
} else if(owner instanceof Leashable leashable) {
|
||||
leashable.setLeashedTo(pPlayer, true);
|
||||
pPlayer.playSound(SoundEvents.LEASH_KNOT_PLACE, 1, 1);
|
||||
}
|
||||
ItemEntity itemEntity = new ItemEntity(level(), getX(), getY(), getZ(), getOrginalItemStack());
|
||||
level().addFreshEntity(itemEntity);
|
||||
discard();
|
||||
|
||||
}
|
||||
else {
|
||||
Entity leashDataEntity = this.getOwner() instanceof PlayerLeashable ? PlayerLeashable.getLeashDataEntity((ServerPlayer) this.getOwner(), (ServerLevel) level()) : this.getOwner();
|
||||
if(this.ownedBy(pPlayer)) {
|
||||
if (this.pickup == Pickup.DISALLOWED) this.pickup = Pickup.ALLOWED;
|
||||
if(this.equals(leashDataEntity)) {
|
||||
pPlayer.playSound(SoundEvents.LEASH_KNOT_BREAK, 1, 1);
|
||||
playerLeashable.dropLeash(true, false);
|
||||
}
|
||||
} else {
|
||||
Entity owner = getOwner();
|
||||
if(owner instanceof PlayerLeashable player) {
|
||||
player.setLeashedTo(pPlayer, true);
|
||||
pPlayer.playSound(SoundEvents.LEASH_KNOT_PLACE, 1, 1);
|
||||
} else if(owner instanceof Leashable leashable) {
|
||||
leashable.setLeashedTo(pPlayer, true);
|
||||
pPlayer.playSound(SoundEvents.LEASH_KNOT_PLACE, 1, 1);
|
||||
}
|
||||
ItemEntity itemEntity = new ItemEntity(level(), getX(), getY(), getZ(), getOrginalItemStack());
|
||||
level().addFreshEntity(itemEntity);
|
||||
discard();
|
||||
|
||||
}
|
||||
}
|
||||
} else if (this.pickup != Pickup.CREATIVE_ONLY) this.pickup = Pickup.ALLOWED;
|
||||
else return false;
|
||||
|
||||
}
|
||||
|
||||
return super.tryPickup(pPlayer);
|
||||
|
|
@ -424,8 +425,8 @@ public class LeashRopeArrow extends AbstractArrow {
|
|||
ItemEntity lead = new ItemEntity(this.level(), this.position().x, this.position().y, this.position().z, Items.LEAD.getDefaultInstance());
|
||||
this.level().addFreshEntity(lead);
|
||||
}
|
||||
super.onHitEntity(pResult);
|
||||
}
|
||||
else super.onHitEntity(pResult);
|
||||
}
|
||||
/**
|
||||
* Handles an entity event received from a {@link net.minecraft.network.protocol.game.ClientboundEntityEventPacket}.
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ public class NestleRopeArrow extends AbstractArrow {
|
|||
if (life <= 40)
|
||||
return false;
|
||||
else {
|
||||
if (this.pickup == Pickup.DISALLOWED) this.pickup = Pickup.ALLOWED;
|
||||
this.pickup = Pickup.ALLOWED;
|
||||
}
|
||||
return super.tryPickup(pPlayer);
|
||||
}
|
||||
|
|
@ -96,7 +96,7 @@ public class NestleRopeArrow extends AbstractArrow {
|
|||
public void tick() {
|
||||
super.tick();
|
||||
Entity owner = getOwner();
|
||||
if(owner != null && !owner.level().isClientSide) {
|
||||
if (owner != null && !owner.level().isClientSide) {
|
||||
if (!inGround) {
|
||||
if (owner.getVehicle() == null) owner.startRiding(this);
|
||||
}
|
||||
|
|
@ -105,6 +105,10 @@ public class NestleRopeArrow extends AbstractArrow {
|
|||
setOwner(null);
|
||||
}
|
||||
}
|
||||
if (this.inGround && this.inGroundTime != 0) {
|
||||
this.level().broadcastEntityEvent(this, (byte)0);
|
||||
this.setPickupItemStack(new ItemStack(getSelfItemStack().getItem()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.r3944realms.leashedplayer.content.items.type;
|
|||
|
||||
import com.r3944realms.leashedplayer.content.entities.LeashRopeArrow;
|
||||
import com.r3944realms.leashedplayer.content.entities.ModEntityRegister;
|
||||
import com.r3944realms.leashedplayer.content.entities.NestleRopeArrow;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Position;
|
||||
import net.minecraft.network.chat.Component;
|
||||
|
|
@ -19,7 +20,12 @@ import javax.annotation.Nullable;
|
|||
import java.util.List;
|
||||
|
||||
public class NestleRopeArrowItem extends ArrowItem implements INestleRopeArrow {
|
||||
|
||||
public static final String descKey = "item.nestle_rope_arrow.description",
|
||||
DESC_1 = "item.nestle_rope_arrow.desc.1",
|
||||
DESC_2 = "item.nestle_rope_arrow.desc.2",
|
||||
DESC_3 = "item.nestle_rope_arrow.desc.3",
|
||||
DESC_4 = "item.nestle_rope_arrow.desc.4",
|
||||
DESC_5 = "item.nestle_rope_arrow.desc.5";
|
||||
public NestleRopeArrowItem(Item.Properties pProperties) {
|
||||
super(pProperties);
|
||||
}
|
||||
|
|
@ -30,10 +36,18 @@ public class NestleRopeArrowItem extends ArrowItem implements INestleRopeArrow {
|
|||
|
||||
@Override
|
||||
public @NotNull Projectile asProjectile(@NotNull Level pLevel, @NotNull Position pPos, @NotNull ItemStack pStack, @NotNull Direction pDirection) {
|
||||
return new LeashRopeArrow(ModEntityRegister.NESTLE_ROPE_ARROW.get(), pPos.x(), pPos.y(), pPos.z(), pLevel, pStack,null, null);
|
||||
NestleRopeArrow arrow = new NestleRopeArrow(ModEntityRegister.NESTLE_ROPE_ARROW.get(), pPos.x(), pPos.y(), pPos.z(), pLevel, pStack, null, null);
|
||||
arrow.pickup = AbstractArrow.Pickup.DISALLOWED;
|
||||
return arrow;
|
||||
}
|
||||
|
||||
public void appendHoverText(@NotNull ItemStack pStack, Item.@NotNull TooltipContext pContext, @NotNull List<Component> pTooltipComponents, @NotNull TooltipFlag pTooltipFlag) {
|
||||
|
||||
pTooltipComponents.addAll(List.of(
|
||||
Component.translatable(DESC_1),
|
||||
Component.translatable(DESC_2),
|
||||
Component.translatable(DESC_3),
|
||||
Component.translatable(DESC_4),
|
||||
Component.translatable(DESC_5)
|
||||
));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@ import com.r3944realms.leashedplayer.content.entities.ModEntityRegister;
|
|||
import com.r3944realms.leashedplayer.content.gamerules.Server.*;
|
||||
import com.r3944realms.leashedplayer.content.items.ModCreativeTab;
|
||||
import com.r3944realms.leashedplayer.content.items.ModItemRegister;
|
||||
import com.r3944realms.leashedplayer.content.items.type.LeadBreakerItem;
|
||||
import com.r3944realms.leashedplayer.content.items.type.LeashRopeArrowItem;
|
||||
import com.r3944realms.leashedplayer.content.items.type.SpectralLeashRopeArrowItem;
|
||||
import com.r3944realms.leashedplayer.content.items.type.TippedLeashRopeArrow;
|
||||
import com.r3944realms.leashedplayer.content.items.type.*;
|
||||
import com.r3944realms.leashedplayer.content.sounds.ModSoundRegister;
|
||||
import com.r3944realms.leashedplayer.datagen.provider.attributes.ModPaintingVariants;
|
||||
import com.r3944realms.leashedplayer.network.server.Code;
|
||||
|
|
@ -23,6 +20,7 @@ import com.r3944realms.leashedplayer.network.server.DecreaseLeashRopeLength;
|
|||
import com.r3944realms.leashedplayer.network.server.IncreaseLeashRopeLength;
|
||||
import com.r3944realms.leashedplayer.utils.Enum.LanguageEnum;
|
||||
import com.r3944realms.leashedplayer.utils.Enum.ModPartEnum;
|
||||
import io.github.kunosayo.nestle.item.NestleItem;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
@ -59,6 +57,12 @@ public enum ModLangKeyValue {
|
|||
DESC_ITEM_S_LEASH_R_ARROW_THREE(SpectralLeashRopeArrowItem.DESC, ModPartEnum.DESCRIPTION, "§c2.§r Strike the entity to give it a §e§lGlowing§r effect.", "§c2.§r 击中实体给与其§e§l发光§7(§e§lGlowing§7)§r效果", "擊中實體給予其§e§l發光§7(§e§lGlowing§7)§r效果", false),
|
||||
DESC_ITEM_T_LEASH_R_ARROW_THREE(TippedLeashRopeArrow.DESC, ModPartEnum.DESCRIPTION, "§c2.§rStrike the entity to give it a Potion effect.", "§c2.§r 击中实体给与其药水效果", "擊中實體給予其药水效果", false),
|
||||
DESC_ITEM_LEAD_BREAKER(LeadBreakerItem.HOVER_KEY, ModPartEnum.DESCRIPTION, "§7can break the link of leash", "§7可以破坏拴绳链接", "§7可以破壞拴繩鏈接", false),
|
||||
DESC_ITEM_NESTLE_R_ARROW_ONE(NestleRopeArrowItem.DESC_1, ModPartEnum.DESCRIPTION, "§7This arrow will carry the owner along with its flight:", "§7该箭将会携带拥有者随其飞行", "§7該箭將會攜帶擁有者隨其飛行:", false),
|
||||
DESC_ITEM_NESTLE_R_ARROW_TWO(NestleRopeArrowItem.DESC_2, ModPartEnum.DESCRIPTION, "§c1.§r If it hits an entity, it will leash the owner with the entity and drop as a normal arrow.", "§c1.§r 若击中生物时,将持有者与其拴在一起并已普通箭形式掉落;", "§c1.§r 若擊中生物時,將持有者與其拴在一起其上並以普通箭的形式掉落;", false),
|
||||
DESC_ITEM_NESTLE_R_ARROW_THREE(NestleRopeArrowItem.DESC_3, ModPartEnum.DESCRIPTION, "", "", "", false),
|
||||
DESC_ITEM_NESTLE_R_ARROW_FORE(NestleRopeArrowItem.DESC_4, ModPartEnum.DESCRIPTION, "", "", "", false),
|
||||
DESC_ITEM_NESTLE_R_ARROW_FIVE(NestleRopeArrowItem.DESC_5, ModPartEnum.DESCRIPTION, "", "", "", false),
|
||||
|
||||
//PAINTING
|
||||
GROUP_PHOTO_TITLE(ModPaintingVariants.getPaintingVariantTitleKey(ModPaintingVariants.GROUP_PHOTO),ModPartEnum.TITLE, "§dGroup Photo §7[§6memorable§7]§r", "§d集体照 §7[§6纪念§7]§r", "§d集體照 §7[§6紀念§7]§r", false),
|
||||
GROUP_PHOTO_AUTHOR(ModPaintingVariants.getPaintingVariantAuthorKey(ModPaintingVariants.GROUP_PHOTO),ModPartEnum.AUTHOR, "§9Leisure §4Time §eDock§r","§9闲趣§4时§e坞§r","§9閑趣§4時§e塢§r",false),
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user