优化nbt相关方法
This commit is contained in:
parent
29a367578d
commit
c2429e4aae
7 changed files with 40 additions and 34 deletions
|
@ -106,9 +106,9 @@ public class ModUtils {
|
|||
addNetworkMessage(ZoomMessage.class, ZoomMessage::encode, ZoomMessage::decode, ZoomMessage::handler);
|
||||
addNetworkMessage(DoubleJumpMessage.class, DoubleJumpMessage::encode, DoubleJumpMessage::decode, DoubleJumpMessage::handler);
|
||||
addNetworkMessage(GunsDataMessage.class, GunsDataMessage::encode, GunsDataMessage::decode, GunsDataMessage::handler, Optional.of(NetworkDirection.PLAY_TO_CLIENT));
|
||||
addNetworkMessage(FireMessage.class, FireMessage::encode, FireMessage::new, FireMessage::handler);
|
||||
addNetworkMessage(VehicleFireMessage.class, VehicleFireMessage::encode, VehicleFireMessage::new, VehicleFireMessage::handler);
|
||||
addNetworkMessage(FireModeMessage.class, FireModeMessage::encode, FireModeMessage::new, FireModeMessage::handler);
|
||||
addNetworkMessage(FireMessage.class, FireMessage::encode, FireMessage::decode, FireMessage::handler);
|
||||
addNetworkMessage(VehicleFireMessage.class, VehicleFireMessage::encode, VehicleFireMessage::decode, VehicleFireMessage::handler);
|
||||
addNetworkMessage(FireModeMessage.class, FireModeMessage::encode, FireModeMessage::decode, FireModeMessage::handler);
|
||||
addNetworkMessage(ReloadMessage.class, ReloadMessage::encode, ReloadMessage::decode, ReloadMessage::handler);
|
||||
addNetworkMessage(PlayerGunKillMessage.class, PlayerGunKillMessage::encode, PlayerGunKillMessage::decode, PlayerGunKillMessage::handler, Optional.of(NetworkDirection.PLAY_TO_CLIENT));
|
||||
addNetworkMessage(ClientIndicatorMessage.class, ClientIndicatorMessage::encode, ClientIndicatorMessage::decode, ClientIndicatorMessage::handler, Optional.of(NetworkDirection.PLAY_TO_CLIENT));
|
||||
|
@ -117,7 +117,7 @@ public class ModUtils {
|
|||
addNetworkMessage(AdjustMortarAngleMessage.class, AdjustMortarAngleMessage::encode, AdjustMortarAngleMessage::decode, AdjustMortarAngleMessage::handler);
|
||||
addNetworkMessage(InteractMessage.class, InteractMessage::encode, InteractMessage::decode, InteractMessage::handler);
|
||||
addNetworkMessage(DroneMovementMessage.class, DroneMovementMessage::encode, DroneMovementMessage::decode, DroneMovementMessage::handler);
|
||||
addNetworkMessage(DroneFireMessage.class, DroneFireMessage::encode, DroneFireMessage::new, DroneFireMessage::handler);
|
||||
addNetworkMessage(DroneFireMessage.class, DroneFireMessage::encode, DroneFireMessage::decode, DroneFireMessage::handler);
|
||||
addNetworkMessage(SimulationDistanceMessage.class, SimulationDistanceMessage::encode, SimulationDistanceMessage::decode, SimulationDistanceMessage::handle, Optional.of(NetworkDirection.PLAY_TO_CLIENT));
|
||||
addNetworkMessage(GunReforgeMessage.class, GunReforgeMessage::encode, GunReforgeMessage::decode, GunReforgeMessage::handler);
|
||||
addNetworkMessage(SetPerkLevelMessage.class, SetPerkLevelMessage::encode, SetPerkLevelMessage::decode, SetPerkLevelMessage::handler);
|
||||
|
|
|
@ -268,9 +268,13 @@ public class LivingEventHandler {
|
|||
if (oldTags.getInt("bolt_action_time") > 0) {
|
||||
oldTags.putInt("bolt_action_anim", 0);
|
||||
}
|
||||
|
||||
CompoundTag data = oldTags.getCompound("GunData");
|
||||
data.putInt("ReloadTime", 0);
|
||||
oldStack.addTagElement("GunData", data);
|
||||
|
||||
oldTags.putBoolean("is_normal_reloading", false);
|
||||
oldTags.putBoolean("is_empty_reloading", false);
|
||||
oldTags.putInt("gun_reloading_time", 0);
|
||||
|
||||
if (oldTags.getDouble("iterative_time") != 0) {
|
||||
oldTags.putBoolean("force_stop", false);
|
||||
|
@ -292,7 +296,6 @@ public class LivingEventHandler {
|
|||
capability.edit = false;
|
||||
capability.syncPlayerVariables(player);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
if (newStack.getItem() instanceof GunItem) {
|
||||
|
@ -303,7 +306,10 @@ public class LivingEventHandler {
|
|||
}
|
||||
newStack.getOrCreateTag().putBoolean("is_normal_reloading", false);
|
||||
newStack.getOrCreateTag().putBoolean("is_empty_reloading", false);
|
||||
newStack.getOrCreateTag().putInt("gun_reloading_time", 0);
|
||||
|
||||
CompoundTag data = newStack.getOrCreateTag().getCompound("GunData");
|
||||
data.putInt("ReloadTime", 0);
|
||||
newStack.addTagElement("GunData", data);
|
||||
|
||||
if (newStack.getOrCreateTag().getDouble("iterative_time") != 0) {
|
||||
newStack.getOrCreateTag().putBoolean("force_stop", false);
|
||||
|
@ -323,7 +329,7 @@ public class LivingEventHandler {
|
|||
|
||||
int level = PerkHelper.getItemPerkLevel(ModPerks.KILLING_TALLY.get(), newStack);
|
||||
if (level != 0) {
|
||||
newStack.getOrCreateTag().putInt("KillingTally", 0);
|
||||
GunsTool.setPerkIntTag(newStack, "KillingTally", 0);
|
||||
}
|
||||
|
||||
if (player.level() instanceof ServerLevel) {
|
||||
|
|
|
@ -10,14 +10,15 @@ import net.minecraftforge.network.NetworkEvent;
|
|||
import java.util.function.Supplier;
|
||||
|
||||
public class DroneFireMessage {
|
||||
|
||||
private final int type;
|
||||
|
||||
public DroneFireMessage(int type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public DroneFireMessage(FriendlyByteBuf buffer) {
|
||||
this.type = buffer.readInt();
|
||||
public static DroneFireMessage decode(FriendlyByteBuf buffer) {
|
||||
return new DroneFireMessage(buffer.readInt());
|
||||
}
|
||||
|
||||
public static void encode(DroneFireMessage message, FriendlyByteBuf buffer) {
|
||||
|
|
|
@ -45,8 +45,8 @@ public class FireMessage {
|
|||
this.type = type;
|
||||
}
|
||||
|
||||
public FireMessage(FriendlyByteBuf buffer) {
|
||||
this.type = buffer.readInt();
|
||||
public static FireMessage decode(FriendlyByteBuf buffer) {
|
||||
return new FireMessage(buffer.readInt());
|
||||
}
|
||||
|
||||
public static void encode(FireMessage message, FriendlyByteBuf buffer) {
|
||||
|
@ -260,7 +260,7 @@ public class FireMessage {
|
|||
CompoundTag tag = heldItem.getOrCreateTag();
|
||||
var perk = PerkHelper.getPerkByType(heldItem, Perk.Type.AMMO);
|
||||
float headshot = (float) tag.getDouble("headshot");
|
||||
float velocity = 2 * (float) tag.getDouble("speed") * (float)perkSpeed(heldItem);
|
||||
float velocity = 2 * (float) tag.getDouble("speed") * (float) perkSpeed(heldItem);
|
||||
float bypassArmorRate = (float) heldItem.getOrCreateTag().getDouble("BypassesArmor");
|
||||
double damage;
|
||||
boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zoom;
|
||||
|
@ -329,7 +329,7 @@ public class FireMessage {
|
|||
ItemStack heldItem = player.getMainHandItem();
|
||||
CompoundTag tag = heldItem.getOrCreateTag();
|
||||
|
||||
float velocity = 2 * (float) tag.getDouble("speed") * (float)perkSpeed(heldItem);
|
||||
float velocity = 2 * (float) tag.getDouble("speed") * (float) perkSpeed(heldItem);
|
||||
|
||||
BocekArrowEntity arrow = new BocekArrowEntity(player, player.level());
|
||||
arrow.setBaseDamage(0);
|
||||
|
|
|
@ -3,6 +3,7 @@ package net.mcreator.superbwarfare.network.message;
|
|||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
import net.mcreator.superbwarfare.init.ModSounds;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.minecraft.core.Holder;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
|
@ -22,8 +23,8 @@ public class FireModeMessage {
|
|||
this.type = type;
|
||||
}
|
||||
|
||||
public FireModeMessage(FriendlyByteBuf buffer) {
|
||||
this.type = buffer.readInt();
|
||||
public static FireModeMessage decode(FriendlyByteBuf buffer) {
|
||||
return new FireModeMessage(buffer.readInt());
|
||||
}
|
||||
|
||||
public static void encode(FireModeMessage message, FriendlyByteBuf buffer) {
|
||||
|
@ -95,11 +96,10 @@ public class FireModeMessage {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
if (mainHandItem.getItem() == ModItems.SENTINEL.get()
|
||||
&& !player.isSpectator()
|
||||
&& !(player.getCooldowns().isOnCooldown(mainHandItem.getItem()))
|
||||
&& mainHandItem.getOrCreateTag().getInt("gun_reloading_time") == 0
|
||||
&& GunsTool.getGunIntTag(mainHandItem, "ReloadTime") == 0
|
||||
&& !mainHandItem.getOrCreateTag().getBoolean("sentinel_is_charging")) {
|
||||
|
||||
int count = 0;
|
||||
|
|
|
@ -3,6 +3,7 @@ package net.mcreator.superbwarfare.network.message;
|
|||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.network.ModVariables;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
|
@ -57,7 +58,7 @@ public class ReloadMessage {
|
|||
&& stack.is(ModTags.Items.GUN)
|
||||
&& !stack.getOrCreateTag().getBoolean("sentinel_is_charging")
|
||||
&& !(player.getCooldowns().isOnCooldown(stack.getItem()))
|
||||
&& stack.getOrCreateTag().getInt("gun_reloading_time") == 0
|
||||
&& GunsTool.getGunIntTag(stack, "ReloadTime") == 0
|
||||
) {
|
||||
CompoundTag tag = stack.getOrCreateTag();
|
||||
|
||||
|
|
|
@ -2,21 +2,21 @@ package net.mcreator.superbwarfare.network.message;
|
|||
|
||||
import net.mcreator.superbwarfare.entity.ICannonEntity;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraftforge.network.NetworkEvent;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class VehicleFireMessage {
|
||||
|
||||
private final int type;
|
||||
|
||||
public VehicleFireMessage(int type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public VehicleFireMessage(FriendlyByteBuf buffer) {
|
||||
this.type = buffer.readInt();
|
||||
public static VehicleFireMessage decode(FriendlyByteBuf buffer) {
|
||||
return new VehicleFireMessage(buffer.readInt());
|
||||
}
|
||||
|
||||
public static void encode(VehicleFireMessage message, FriendlyByteBuf buffer) {
|
||||
|
@ -27,13 +27,7 @@ public class VehicleFireMessage {
|
|||
NetworkEvent.Context context = contextSupplier.get();
|
||||
context.enqueueWork(() -> {
|
||||
if (context.getSender() != null) {
|
||||
pressAction(context.getSender(), message.type);
|
||||
}
|
||||
});
|
||||
context.setPacketHandled(true);
|
||||
}
|
||||
|
||||
public static void pressAction(Player player, int type) {
|
||||
var player = context.getSender();
|
||||
Level level = player.level();
|
||||
|
||||
if (!level.isLoaded(player.blockPosition())) {
|
||||
|
@ -44,4 +38,8 @@ public class VehicleFireMessage {
|
|||
entity.cannonShoot(player);
|
||||
}
|
||||
}
|
||||
});
|
||||
context.setPacketHandled(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue