优化无人机操作网络包写法
This commit is contained in:
parent
59de873d91
commit
231302de0a
11 changed files with 132 additions and 401 deletions
|
@ -105,13 +105,7 @@ public class TargetMod {
|
|||
addNetworkMessage(AdjustZoomFovMessage.class, AdjustZoomFovMessage::encode, AdjustZoomFovMessage::decode, AdjustZoomFovMessage::handler);
|
||||
addNetworkMessage(AdjustMortarAngleMessage.class, AdjustMortarAngleMessage::encode, AdjustMortarAngleMessage::decode, AdjustMortarAngleMessage::handler);
|
||||
addNetworkMessage(InteractMessage.class, InteractMessage::encode, InteractMessage::decode, InteractMessage::handler);
|
||||
|
||||
addNetworkMessage(DroneMoveLeftMessage.class, DroneMoveLeftMessage::encode, DroneMoveLeftMessage::decode, DroneMoveLeftMessage::handler);
|
||||
addNetworkMessage(DroneMoveRightMessage.class, DroneMoveRightMessage::encode, DroneMoveRightMessage::decode, DroneMoveRightMessage::handler);
|
||||
addNetworkMessage(DroneMoveForwardMessage.class, DroneMoveForwardMessage::encode, DroneMoveForwardMessage::decode, DroneMoveForwardMessage::handler);
|
||||
addNetworkMessage(DroneMoveBackwardMessage.class, DroneMoveBackwardMessage::encode, DroneMoveBackwardMessage::decode, DroneMoveBackwardMessage::handler);
|
||||
addNetworkMessage(DroneMoveUpMessage.class, DroneMoveUpMessage::encode, DroneMoveUpMessage::decode, DroneMoveUpMessage::handler);
|
||||
addNetworkMessage(DroneMoveDownMessage.class, DroneMoveDownMessage::encode, DroneMoveDownMessage::decode, DroneMoveDownMessage::handler);
|
||||
addNetworkMessage(DroneMovementMessage.class, DroneMovementMessage::encode, DroneMovementMessage::decode, DroneMovementMessage::handler);
|
||||
addNetworkMessage(DroneFireMessage.class, DroneFireMessage::buffer, DroneFireMessage::new, DroneFireMessage::handler);
|
||||
|
||||
event.enqueueWork(() -> BrewingRecipeRegistry.addRecipe(Ingredient.of(PotionUtils.setPotion(new ItemStack(Items.POTION), Potions.WATER)),
|
||||
|
|
|
@ -2,18 +2,15 @@ package net.mcreator.target.client;
|
|||
|
||||
import com.mojang.blaze3d.platform.InputConstants;
|
||||
import net.mcreator.target.TargetMod;
|
||||
import net.mcreator.target.client.gui.RangeHelper;
|
||||
import net.mcreator.target.entity.Mk42Entity;
|
||||
import net.mcreator.target.entity.MortarEntity;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModKeyMappings;
|
||||
import net.mcreator.target.init.TargetModMobEffects;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.network.TargetModVariables;
|
||||
import net.mcreator.target.network.message.*;
|
||||
import net.mcreator.target.tools.TraceTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
@ -151,54 +148,37 @@ public class ClickHandler {
|
|||
@SubscribeEvent
|
||||
public static void onKeyPressed(InputEvent.Key event) {
|
||||
if (notInGame()) return;
|
||||
if (event.getAction() != InputConstants.PRESS) return;
|
||||
setKeyState(event.getKey(), 1);
|
||||
|
||||
boolean clicked;
|
||||
if (event.getAction() == InputConstants.PRESS) {
|
||||
clicked = true;
|
||||
} else if (event.getAction() == InputConstants.RELEASE) {
|
||||
clicked = false;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
setKeyState(event.getKey(), clicked ? 1 : 0);
|
||||
|
||||
int button = event.getKey();
|
||||
if (button == GLFW.GLFW_KEY_A) {
|
||||
TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveLeftMessage(true));
|
||||
TargetMod.PACKET_HANDLER.sendToServer(new DroneMovementMessage(0, clicked));
|
||||
}
|
||||
if (button == GLFW.GLFW_KEY_D) {
|
||||
TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveRightMessage(true));
|
||||
TargetMod.PACKET_HANDLER.sendToServer(new DroneMovementMessage(1, clicked));
|
||||
}
|
||||
if (button == GLFW.GLFW_KEY_W) {
|
||||
TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveForwardMessage(true));
|
||||
TargetMod.PACKET_HANDLER.sendToServer(new DroneMovementMessage(2, clicked));
|
||||
}
|
||||
if (button == GLFW.GLFW_KEY_S) {
|
||||
TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveBackwardMessage(true));
|
||||
TargetMod.PACKET_HANDLER.sendToServer(new DroneMovementMessage(3, clicked));
|
||||
}
|
||||
if (button == GLFW.GLFW_KEY_SPACE) {
|
||||
TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveUpMessage(true));
|
||||
TargetMod.PACKET_HANDLER.sendToServer(new DroneMovementMessage(4, clicked));
|
||||
}
|
||||
if (button == GLFW.GLFW_KEY_LEFT_CONTROL) {
|
||||
TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveDownMessage(true));
|
||||
if (button == GLFW.GLFW_KEY_LEFT_SHIFT) {
|
||||
TargetMod.PACKET_HANDLER.sendToServer(new DroneMovementMessage(5, clicked));
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void onKeyReleased(InputEvent.Key event) {
|
||||
if (notInGame()) return;
|
||||
if (event.getAction() != InputConstants.RELEASE) return;
|
||||
setKeyState(event.getKey(), 0);
|
||||
|
||||
int button = event.getKey();
|
||||
if (button == GLFW.GLFW_KEY_A) {
|
||||
TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveLeftMessage(false));
|
||||
}
|
||||
if (button == GLFW.GLFW_KEY_D) {
|
||||
TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveRightMessage(false));
|
||||
}
|
||||
if (button == GLFW.GLFW_KEY_W) {
|
||||
TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveForwardMessage(false));
|
||||
}
|
||||
if (button == GLFW.GLFW_KEY_S) {
|
||||
TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveBackwardMessage(false));
|
||||
}
|
||||
if (button == GLFW.GLFW_KEY_SPACE) {
|
||||
TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveUpMessage(false));
|
||||
}
|
||||
if (button == GLFW.GLFW_KEY_LEFT_CONTROL) {
|
||||
TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveDownMessage(false));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,14 +1,19 @@
|
|||
|
||||
package net.mcreator.target.entity;
|
||||
|
||||
import net.mcreator.target.init.*;
|
||||
import net.mcreator.target.item.common.ammo.CannonShellItem;
|
||||
import net.mcreator.target.init.TargetModEntities;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.item.Monitor;
|
||||
import net.mcreator.target.tools.SoundTool;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.commands.CommandSource;
|
||||
import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.core.particles.ParticleTypes;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.protocol.Packet;
|
||||
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
||||
import net.minecraft.network.syncher.EntityDataAccessor;
|
||||
import net.minecraft.network.syncher.EntityDataSerializers;
|
||||
import net.minecraft.network.syncher.SynchedEntityData;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
|
@ -16,41 +21,29 @@ import net.minecraft.sounds.SoundSource;
|
|||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.damagesource.DamageSource;
|
||||
import net.minecraft.world.entity.*;
|
||||
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
|
||||
import net.minecraft.world.entity.ai.attributes.Attributes;
|
||||
import net.minecraft.world.entity.ai.navigation.FlyingPathNavigation;
|
||||
import net.minecraft.world.entity.ai.navigation.PathNavigation;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
import software.bernie.geckolib.core.object.PlayState;
|
||||
import software.bernie.geckolib.core.animation.RawAnimation;
|
||||
import software.bernie.geckolib.core.animation.AnimationState;
|
||||
import software.bernie.geckolib.core.animation.AnimationController;
|
||||
import software.bernie.geckolib.core.animation.AnimatableManager;
|
||||
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
|
||||
import software.bernie.geckolib.animatable.GeoEntity;
|
||||
|
||||
import net.minecraftforge.network.PlayMessages;
|
||||
import net.minecraftforge.network.NetworkHooks;
|
||||
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.entity.ai.navigation.PathNavigation;
|
||||
import net.minecraft.world.entity.ai.navigation.FlyingPathNavigation;
|
||||
import net.minecraft.world.entity.ai.attributes.Attributes;
|
||||
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
|
||||
import net.minecraft.world.damagesource.DamageSource;
|
||||
import net.minecraft.network.syncher.SynchedEntityData;
|
||||
import net.minecraft.network.syncher.EntityDataSerializers;
|
||||
import net.minecraft.network.syncher.EntityDataAccessor;
|
||||
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
||||
import net.minecraft.network.protocol.Packet;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
import net.mcreator.target.item.Monitor;
|
||||
import net.minecraftforge.network.PlayMessages;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import software.bernie.geckolib.animatable.GeoEntity;
|
||||
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
|
||||
import software.bernie.geckolib.core.animation.AnimatableManager;
|
||||
import software.bernie.geckolib.core.animation.AnimationController;
|
||||
import software.bernie.geckolib.core.animation.AnimationState;
|
||||
import software.bernie.geckolib.core.animation.RawAnimation;
|
||||
import software.bernie.geckolib.core.object.PlayState;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
|
@ -64,7 +57,6 @@ public class DroneEntity extends PathfinderMob implements GeoEntity {
|
|||
private float moveZ = 0;
|
||||
private boolean move = false;
|
||||
|
||||
|
||||
public String animationprocedure = "empty";
|
||||
|
||||
public DroneEntity(PlayMessages.SpawnEntity packet, Level world) {
|
||||
|
|
|
@ -5,7 +5,6 @@ import net.mcreator.target.tools.ItemNBTTool;
|
|||
import net.mcreator.target.tools.TooltipTool;
|
||||
import net.minecraft.client.CameraType;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResultHolder;
|
||||
|
@ -37,9 +36,13 @@ public class Monitor extends Item {
|
|||
|
||||
@Override
|
||||
public InteractionResultHolder<ItemStack> use(Level world, Player player, InteractionHand hand) {
|
||||
InteractionResultHolder<ItemStack> ar = super.use(world, player, hand);
|
||||
Minecraft mc = Minecraft.getInstance();
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
|
||||
if (!ItemNBTTool.getBoolean(stack, LINKED, false)) {
|
||||
return super.use(world, player, hand);
|
||||
}
|
||||
|
||||
Minecraft mc = Minecraft.getInstance();
|
||||
if (!stack.getOrCreateTag().getBoolean("Using")) {
|
||||
stack.getOrCreateTag().putBoolean("Using", true);
|
||||
mc.options.setCameraType(CameraType.THIRD_PERSON_BACK);
|
||||
|
@ -50,17 +53,18 @@ public class Monitor extends Item {
|
|||
|
||||
DroneEntity drone = player.level().getEntitiesOfClass(DroneEntity.class, player.getBoundingBox().inflate(512))
|
||||
.stream().filter(e -> e.getStringUUID().equals(stack.getOrCreateTag().getString("LinkedDrone"))).findFirst().orElse(null);
|
||||
|
||||
if (drone != null) {
|
||||
drone.getPersistentData().putBoolean("left",false);
|
||||
drone.getPersistentData().putBoolean("right",false);
|
||||
drone.getPersistentData().putBoolean("forward",false);
|
||||
drone.getPersistentData().putBoolean("backward",false);
|
||||
drone.getPersistentData().putBoolean("up",false);
|
||||
drone.getPersistentData().putBoolean("down",false);
|
||||
}
|
||||
return ar;
|
||||
drone.getPersistentData().putBoolean("left", false);
|
||||
drone.getPersistentData().putBoolean("right", false);
|
||||
drone.getPersistentData().putBoolean("forward", false);
|
||||
drone.getPersistentData().putBoolean("backward", false);
|
||||
drone.getPersistentData().putBoolean("up", false);
|
||||
drone.getPersistentData().putBoolean("down", false);
|
||||
}
|
||||
|
||||
return super.use(world, player, hand);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appendHoverText(ItemStack stack, Level world, List<Component> list, TooltipFlag flag) {
|
||||
|
|
|
@ -1,51 +0,0 @@
|
|||
package net.mcreator.target.network.message;
|
||||
|
||||
import net.mcreator.target.entity.DroneEntity;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraftforge.network.NetworkEvent;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class DroneMoveBackwardMessage {
|
||||
private final boolean backward;
|
||||
|
||||
public DroneMoveBackwardMessage(boolean backward) {
|
||||
this.backward = backward;
|
||||
}
|
||||
|
||||
public static DroneMoveBackwardMessage decode(FriendlyByteBuf buffer) {
|
||||
return new DroneMoveBackwardMessage(buffer.readBoolean());
|
||||
}
|
||||
|
||||
public static void encode(DroneMoveBackwardMessage message, FriendlyByteBuf buffer) {
|
||||
buffer.writeBoolean(message.backward);
|
||||
}
|
||||
|
||||
public static void handler(DroneMoveBackwardMessage message, Supplier<NetworkEvent.Context> contextSupplier) {
|
||||
NetworkEvent.Context context = contextSupplier.get();
|
||||
context.enqueueWork(() -> {
|
||||
if (context.getSender() != null) {
|
||||
pressAction(context.getSender(), message.backward);
|
||||
}
|
||||
});
|
||||
context.setPacketHandled(true);
|
||||
}
|
||||
|
||||
public static void pressAction(Player player, boolean backward) {
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (stack.is(TargetModItems.MONITOR.get()) && stack.getOrCreateTag().getBoolean("Using") && stack.getOrCreateTag().getBoolean("Linked")) {
|
||||
DroneEntity drone = player.level().getEntitiesOfClass(DroneEntity.class, player.getBoundingBox().inflate(512))
|
||||
.stream().filter(e -> e.getStringUUID().equals(stack.getOrCreateTag().getString("LinkedDrone"))).findFirst().orElse(null);
|
||||
if (drone != null) {
|
||||
if (backward) {
|
||||
drone.getPersistentData().putBoolean("backward",true);
|
||||
} else {
|
||||
drone.getPersistentData().putBoolean("backward",false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,51 +0,0 @@
|
|||
package net.mcreator.target.network.message;
|
||||
|
||||
import net.mcreator.target.entity.DroneEntity;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraftforge.network.NetworkEvent;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class DroneMoveDownMessage {
|
||||
private final boolean down;
|
||||
|
||||
public DroneMoveDownMessage(boolean down) {
|
||||
this.down = down;
|
||||
}
|
||||
|
||||
public static DroneMoveDownMessage decode(FriendlyByteBuf buffer) {
|
||||
return new DroneMoveDownMessage(buffer.readBoolean());
|
||||
}
|
||||
|
||||
public static void encode(DroneMoveDownMessage message, FriendlyByteBuf buffer) {
|
||||
buffer.writeBoolean(message.down);
|
||||
}
|
||||
|
||||
public static void handler(DroneMoveDownMessage message, Supplier<NetworkEvent.Context> contextSupplier) {
|
||||
NetworkEvent.Context context = contextSupplier.get();
|
||||
context.enqueueWork(() -> {
|
||||
if (context.getSender() != null) {
|
||||
pressAction(context.getSender(), message.down);
|
||||
}
|
||||
});
|
||||
context.setPacketHandled(true);
|
||||
}
|
||||
|
||||
public static void pressAction(Player player, boolean down) {
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (stack.is(TargetModItems.MONITOR.get()) && stack.getOrCreateTag().getBoolean("Using") && stack.getOrCreateTag().getBoolean("Linked")) {
|
||||
DroneEntity drone = player.level().getEntitiesOfClass(DroneEntity.class, player.getBoundingBox().inflate(512))
|
||||
.stream().filter(e -> e.getStringUUID().equals(stack.getOrCreateTag().getString("LinkedDrone"))).findFirst().orElse(null);
|
||||
if (drone != null) {
|
||||
if (down) {
|
||||
drone.getPersistentData().putBoolean("down",true);
|
||||
} else {
|
||||
drone.getPersistentData().putBoolean("down",false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,51 +0,0 @@
|
|||
package net.mcreator.target.network.message;
|
||||
|
||||
import net.mcreator.target.entity.DroneEntity;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraftforge.network.NetworkEvent;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class DroneMoveForwardMessage {
|
||||
private final boolean forward;
|
||||
|
||||
public DroneMoveForwardMessage(boolean forward) {
|
||||
this.forward = forward;
|
||||
}
|
||||
|
||||
public static DroneMoveForwardMessage decode(FriendlyByteBuf buffer) {
|
||||
return new DroneMoveForwardMessage(buffer.readBoolean());
|
||||
}
|
||||
|
||||
public static void encode(DroneMoveForwardMessage message, FriendlyByteBuf buffer) {
|
||||
buffer.writeBoolean(message.forward);
|
||||
}
|
||||
|
||||
public static void handler(DroneMoveForwardMessage message, Supplier<NetworkEvent.Context> contextSupplier) {
|
||||
NetworkEvent.Context context = contextSupplier.get();
|
||||
context.enqueueWork(() -> {
|
||||
if (context.getSender() != null) {
|
||||
pressAction(context.getSender(), message.forward);
|
||||
}
|
||||
});
|
||||
context.setPacketHandled(true);
|
||||
}
|
||||
|
||||
public static void pressAction(Player player, boolean forward) {
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (stack.is(TargetModItems.MONITOR.get()) && stack.getOrCreateTag().getBoolean("Using") && stack.getOrCreateTag().getBoolean("Linked")) {
|
||||
DroneEntity drone = player.level().getEntitiesOfClass(DroneEntity.class, player.getBoundingBox().inflate(512))
|
||||
.stream().filter(e -> e.getStringUUID().equals(stack.getOrCreateTag().getString("LinkedDrone"))).findFirst().orElse(null);
|
||||
if (drone != null) {
|
||||
if (forward) {
|
||||
drone.getPersistentData().putBoolean("forward",true);
|
||||
} else {
|
||||
drone.getPersistentData().putBoolean("forward",false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,52 +0,0 @@
|
|||
package net.mcreator.target.network.message;
|
||||
|
||||
import net.mcreator.target.entity.DroneEntity;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraftforge.network.NetworkEvent;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class DroneMoveLeftMessage {
|
||||
private final boolean left;
|
||||
|
||||
public DroneMoveLeftMessage(boolean left) {
|
||||
this.left = left;
|
||||
}
|
||||
|
||||
public static DroneMoveLeftMessage decode(FriendlyByteBuf buffer) {
|
||||
return new DroneMoveLeftMessage(buffer.readBoolean());
|
||||
}
|
||||
|
||||
public static void encode(DroneMoveLeftMessage message, FriendlyByteBuf buffer) {
|
||||
buffer.writeBoolean(message.left);
|
||||
}
|
||||
|
||||
public static void handler(DroneMoveLeftMessage message, Supplier<NetworkEvent.Context> contextSupplier) {
|
||||
NetworkEvent.Context context = contextSupplier.get();
|
||||
context.enqueueWork(() -> {
|
||||
if (context.getSender() != null) {
|
||||
pressAction(context.getSender(), message.left);
|
||||
}
|
||||
});
|
||||
context.setPacketHandled(true);
|
||||
}
|
||||
|
||||
public static void pressAction(Player player, boolean left) {
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (stack.is(TargetModItems.MONITOR.get()) && stack.getOrCreateTag().getBoolean("Using") && stack.getOrCreateTag().getBoolean("Linked")) {
|
||||
DroneEntity drone = player.level().getEntitiesOfClass(DroneEntity.class, player.getBoundingBox().inflate(512))
|
||||
.stream().filter(e -> e.getStringUUID().equals(stack.getOrCreateTag().getString("LinkedDrone"))).findFirst().orElse(null);
|
||||
if (drone != null) {
|
||||
if (left) {
|
||||
drone.getPersistentData().putBoolean("left",true);
|
||||
} else {
|
||||
drone.getPersistentData().putBoolean("left",false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,51 +0,0 @@
|
|||
package net.mcreator.target.network.message;
|
||||
|
||||
import net.mcreator.target.entity.DroneEntity;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraftforge.network.NetworkEvent;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class DroneMoveRightMessage {
|
||||
private final boolean right;
|
||||
|
||||
public DroneMoveRightMessage(boolean right) {
|
||||
this.right = right;
|
||||
}
|
||||
|
||||
public static DroneMoveRightMessage decode(FriendlyByteBuf buffer) {
|
||||
return new DroneMoveRightMessage(buffer.readBoolean());
|
||||
}
|
||||
|
||||
public static void encode(DroneMoveRightMessage message, FriendlyByteBuf buffer) {
|
||||
buffer.writeBoolean(message.right);
|
||||
}
|
||||
|
||||
public static void handler(DroneMoveRightMessage message, Supplier<NetworkEvent.Context> contextSupplier) {
|
||||
NetworkEvent.Context context = contextSupplier.get();
|
||||
context.enqueueWork(() -> {
|
||||
if (context.getSender() != null) {
|
||||
pressAction(context.getSender(), message.right);
|
||||
}
|
||||
});
|
||||
context.setPacketHandled(true);
|
||||
}
|
||||
|
||||
public static void pressAction(Player player, boolean left) {
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (stack.is(TargetModItems.MONITOR.get()) && stack.getOrCreateTag().getBoolean("Using") && stack.getOrCreateTag().getBoolean("Linked")) {
|
||||
DroneEntity drone = player.level().getEntitiesOfClass(DroneEntity.class, player.getBoundingBox().inflate(512))
|
||||
.stream().filter(e -> e.getStringUUID().equals(stack.getOrCreateTag().getString("LinkedDrone"))).findFirst().orElse(null);
|
||||
if (drone != null) {
|
||||
if (left) {
|
||||
drone.getPersistentData().putBoolean("right",true);
|
||||
} else {
|
||||
drone.getPersistentData().putBoolean("right",false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,51 +0,0 @@
|
|||
package net.mcreator.target.network.message;
|
||||
|
||||
import net.mcreator.target.entity.DroneEntity;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraftforge.network.NetworkEvent;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class DroneMoveUpMessage {
|
||||
private final boolean up;
|
||||
|
||||
public DroneMoveUpMessage(boolean up) {
|
||||
this.up = up;
|
||||
}
|
||||
|
||||
public static DroneMoveUpMessage decode(FriendlyByteBuf buffer) {
|
||||
return new DroneMoveUpMessage(buffer.readBoolean());
|
||||
}
|
||||
|
||||
public static void encode(DroneMoveUpMessage message, FriendlyByteBuf buffer) {
|
||||
buffer.writeBoolean(message.up);
|
||||
}
|
||||
|
||||
public static void handler(DroneMoveUpMessage message, Supplier<NetworkEvent.Context> contextSupplier) {
|
||||
NetworkEvent.Context context = contextSupplier.get();
|
||||
context.enqueueWork(() -> {
|
||||
if (context.getSender() != null) {
|
||||
pressAction(context.getSender(), message.up);
|
||||
}
|
||||
});
|
||||
context.setPacketHandled(true);
|
||||
}
|
||||
|
||||
public static void pressAction(Player player, boolean up) {
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (stack.is(TargetModItems.MONITOR.get()) && stack.getOrCreateTag().getBoolean("Using") && stack.getOrCreateTag().getBoolean("Linked")) {
|
||||
DroneEntity drone = player.level().getEntitiesOfClass(DroneEntity.class, player.getBoundingBox().inflate(512))
|
||||
.stream().filter(e -> e.getStringUUID().equals(stack.getOrCreateTag().getString("LinkedDrone"))).findFirst().orElse(null);
|
||||
if (drone != null) {
|
||||
if (up) {
|
||||
drone.getPersistentData().putBoolean("up",true);
|
||||
} else {
|
||||
drone.getPersistentData().putBoolean("up",false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
package net.mcreator.target.network.message;
|
||||
|
||||
import net.mcreator.target.entity.DroneEntity;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraftforge.network.NetworkEvent;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class DroneMovementMessage {
|
||||
private final int direction;
|
||||
private final boolean clicked;
|
||||
|
||||
public DroneMovementMessage(int direction, boolean clicked) {
|
||||
this.direction = direction;
|
||||
this.clicked = clicked;
|
||||
}
|
||||
|
||||
public static DroneMovementMessage decode(FriendlyByteBuf buffer) {
|
||||
return new DroneMovementMessage(buffer.readInt(), buffer.readBoolean());
|
||||
}
|
||||
|
||||
public static void encode(DroneMovementMessage message, FriendlyByteBuf buffer) {
|
||||
buffer.writeInt(message.direction);
|
||||
buffer.writeBoolean(message.clicked);
|
||||
}
|
||||
|
||||
public static void handler(DroneMovementMessage message, Supplier<NetworkEvent.Context> contextSupplier) {
|
||||
NetworkEvent.Context context = contextSupplier.get();
|
||||
context.enqueueWork(() -> {
|
||||
if (context.getSender() != null) {
|
||||
Player player = context.getSender();
|
||||
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
|
||||
if (stack.is(TargetModItems.MONITOR.get()) && stack.getOrCreateTag().getBoolean("Using") && stack.getOrCreateTag().getBoolean("Linked")) {
|
||||
player.level().getEntitiesOfClass(DroneEntity.class, player.getBoundingBox().inflate(512))
|
||||
.stream().filter(e -> e.getStringUUID().equals(stack.getOrCreateTag().getString("LinkedDrone"))).findFirst()
|
||||
.ifPresent(drone -> {
|
||||
switch (message.direction) {
|
||||
case 0:
|
||||
drone.getPersistentData().putBoolean("left", message.clicked);
|
||||
break;
|
||||
case 1:
|
||||
drone.getPersistentData().putBoolean("right", message.clicked);
|
||||
break;
|
||||
case 2:
|
||||
drone.getPersistentData().putBoolean("forward", message.clicked);
|
||||
break;
|
||||
case 3:
|
||||
drone.getPersistentData().putBoolean("backward", message.clicked);
|
||||
break;
|
||||
case 4:
|
||||
drone.getPersistentData().putBoolean("up", message.clicked);
|
||||
break;
|
||||
case 5:
|
||||
drone.getPersistentData().putBoolean("down", message.clicked);
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
context.setPacketHandled(true);
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue