添加并修改网络包
This commit is contained in:
parent
88244fe54b
commit
1a177045a9
17 changed files with 97 additions and 19 deletions
|
@ -1,7 +1,7 @@
|
|||
package net.mcreator.target;
|
||||
|
||||
import net.mcreator.target.init.*;
|
||||
import net.mcreator.target.network.*;
|
||||
import net.mcreator.target.network.message.*;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
|
@ -88,5 +88,6 @@ public class TargetMod {
|
|||
addNetworkMessage(FireModeMessage.class, FireModeMessage::buffer, FireModeMessage::new, FireModeMessage::handler);
|
||||
addNetworkMessage(GunRecycleGuiButtonMessage.class, GunRecycleGuiButtonMessage::buffer, GunRecycleGuiButtonMessage::new, GunRecycleGuiButtonMessage::handler);
|
||||
addNetworkMessage(ReloadMessage.class, ReloadMessage::buffer, ReloadMessage::new, ReloadMessage::handler);
|
||||
addNetworkMessage(PlayerKillMessage.class, PlayerKillMessage::encode, PlayerKillMessage::decode, PlayerKillMessage::handler, Optional.of(NetworkDirection.PLAY_TO_CLIENT));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ package net.mcreator.target.client;
|
|||
import com.mojang.blaze3d.platform.InputConstants;
|
||||
import net.mcreator.target.TargetMod;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.network.FireMessage;
|
||||
import net.mcreator.target.network.message.FireMessage;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
|
|
|
@ -2,7 +2,7 @@ package net.mcreator.target.client.gui;
|
|||
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import net.mcreator.target.TargetMod;
|
||||
import net.mcreator.target.network.GunRecycleGuiButtonMessage;
|
||||
import net.mcreator.target.network.message.GunRecycleGuiButtonMessage;
|
||||
import net.mcreator.target.world.inventory.GunRecycleGuiMenu;
|
||||
import net.minecraft.client.gui.GuiGraphics;
|
||||
import net.minecraft.client.gui.components.Button;
|
||||
|
|
|
@ -2,7 +2,7 @@ package net.mcreator.target.client.gui;
|
|||
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import net.mcreator.target.TargetMod;
|
||||
import net.mcreator.target.network.MortarGUIButtonMessage;
|
||||
import net.mcreator.target.network.message.MortarGUIButtonMessage;
|
||||
import net.mcreator.target.tools.TraceTool;
|
||||
import net.mcreator.target.world.inventory.MortarGUIMenu;
|
||||
import net.minecraft.client.gui.GuiGraphics;
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package net.mcreator.target.event;
|
||||
|
||||
import net.mcreator.target.TargetMod;
|
||||
import net.mcreator.target.entity.BocekarrowEntity;
|
||||
import net.mcreator.target.entity.Target1Entity;
|
||||
import net.mcreator.target.init.TargetModDamageTypes;
|
||||
|
@ -7,6 +8,7 @@ import net.mcreator.target.init.TargetModItems;
|
|||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.gun.GunItem;
|
||||
import net.mcreator.target.network.TargetModVariables;
|
||||
import net.mcreator.target.network.message.PlayerKillMessage;
|
||||
import net.minecraft.commands.CommandSource;
|
||||
import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
|
@ -14,6 +16,7 @@ import net.minecraft.network.protocol.game.ClientboundStopSoundPacket;
|
|||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
import net.minecraft.world.damagesource.DamageSource;
|
||||
import net.minecraft.world.damagesource.DamageTypes;
|
||||
|
@ -30,6 +33,7 @@ import net.minecraftforge.event.entity.living.LivingHurtEvent;
|
|||
import net.minecraftforge.eventbus.api.Event;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.network.PacketDistributor;
|
||||
|
||||
@Mod.EventBusSubscriber
|
||||
public class LivingEntityEventHandler {
|
||||
|
@ -214,4 +218,16 @@ public class LivingEntityEventHandler {
|
|||
server.players().forEach(p -> p.connection.send(clientboundstopsoundpacket));
|
||||
});
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void handlePlayerKillEntity(LivingDeathEvent event) {
|
||||
LivingEntity entity = event.getEntity();
|
||||
DamageSource source = event.getSource();
|
||||
|
||||
if (source.getDirectEntity() instanceof ServerPlayer player) {
|
||||
if (source.is(TargetModDamageTypes.GUNFIRE)) {
|
||||
TargetMod.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> player), new PlayerKillMessage(player.getId(), entity.getId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,10 +2,10 @@ package net.mcreator.target.init;
|
|||
|
||||
import com.mojang.blaze3d.platform.InputConstants;
|
||||
import net.mcreator.target.TargetMod;
|
||||
import net.mcreator.target.network.DoubleJumpMessage;
|
||||
import net.mcreator.target.network.FireModeMessage;
|
||||
import net.mcreator.target.network.ReloadMessage;
|
||||
import net.mcreator.target.network.ZoomMessage;
|
||||
import net.mcreator.target.network.message.DoubleJumpMessage;
|
||||
import net.mcreator.target.network.message.FireModeMessage;
|
||||
import net.mcreator.target.network.message.ReloadMessage;
|
||||
import net.mcreator.target.network.message.ZoomMessage;
|
||||
import net.minecraft.client.KeyMapping;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
package net.mcreator.target.network;
|
||||
|
||||
import net.mcreator.target.network.message.GunsDataMessage;
|
||||
import net.mcreator.target.tools.GunsTool;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraftforge.fml.LogicalSide;
|
||||
import net.minecraftforge.network.NetworkEvent;
|
||||
|
||||
|
@ -13,4 +16,10 @@ public class ClientPacketHandler {
|
|||
GunsTool.gunsData = message.gunsData;
|
||||
}
|
||||
}
|
||||
|
||||
public static void handlePlayerKillMessage(Player attacker, Entity target, Supplier<NetworkEvent.Context> ctx) {
|
||||
if (ctx.get().getDirection().getReceptionSide() == LogicalSide.CLIENT) {
|
||||
System.out.println(attacker + " killed " + target);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package net.mcreator.target.network;
|
||||
package net.mcreator.target.network.message;
|
||||
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.network.TargetModVariables;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.sounds.SoundSource;
|
|
@ -1,8 +1,9 @@
|
|||
package net.mcreator.target.network;
|
||||
package net.mcreator.target.network.message;
|
||||
|
||||
import net.mcreator.target.entity.BocekarrowEntity;
|
||||
import net.mcreator.target.init.TargetModEntities;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.network.TargetModVariables;
|
||||
import net.mcreator.target.procedures.PressFireProcedure;
|
||||
import net.mcreator.target.tools.GunsTool;
|
||||
import net.minecraft.commands.CommandSource;
|
|
@ -1,4 +1,4 @@
|
|||
package net.mcreator.target.network;
|
||||
package net.mcreator.target.network.message;
|
||||
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
|
@ -1,4 +1,4 @@
|
|||
package net.mcreator.target.network;
|
||||
package net.mcreator.target.network.message;
|
||||
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModTags;
|
|
@ -1,5 +1,6 @@
|
|||
package net.mcreator.target.network;
|
||||
package net.mcreator.target.network.message;
|
||||
|
||||
import net.mcreator.target.network.ClientPacketHandler;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.fml.DistExecutor;
|
||||
|
@ -32,5 +33,4 @@ public class GunsDataMessage {
|
|||
ctx.get().setPacketHandled(true);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package net.mcreator.target.network;
|
||||
package net.mcreator.target.network.message;
|
||||
|
||||
import net.mcreator.target.init.TargetModAttributes;
|
||||
import net.mcreator.target.tools.TraceTool;
|
|
@ -0,0 +1,49 @@
|
|||
package net.mcreator.target.network.message;
|
||||
|
||||
import net.mcreator.target.network.ClientPacketHandler;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.multiplayer.ClientLevel;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.fml.DistExecutor;
|
||||
import net.minecraftforge.network.NetworkEvent;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class PlayerKillMessage {
|
||||
public final int attackerId;
|
||||
public final int targetId;
|
||||
|
||||
public PlayerKillMessage(int attackerId, int targetId) {
|
||||
this.attackerId = attackerId;
|
||||
this.targetId = targetId;
|
||||
}
|
||||
|
||||
public static void encode(PlayerKillMessage message, FriendlyByteBuf buffer) {
|
||||
buffer.writeInt(message.attackerId);
|
||||
buffer.writeInt(message.targetId);
|
||||
}
|
||||
|
||||
public static PlayerKillMessage decode(FriendlyByteBuf buffer) {
|
||||
int attackerId = buffer.readInt();
|
||||
int targetId = buffer.readInt();
|
||||
return new PlayerKillMessage(attackerId, targetId);
|
||||
}
|
||||
|
||||
public static void handler(PlayerKillMessage message, Supplier<NetworkEvent.Context> ctx) {
|
||||
ctx.get().enqueueWork(() -> {
|
||||
ClientLevel level = Minecraft.getInstance().level;
|
||||
if (level != null) {
|
||||
Player player = level.getEntity(message.attackerId) instanceof Player ? (Player) level.getEntity(message.attackerId) : null;
|
||||
Entity target = level.getEntity(message.targetId);
|
||||
|
||||
if (player != null && target != null) {
|
||||
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> ClientPacketHandler.handlePlayerKillMessage(player, target, ctx));
|
||||
}
|
||||
}
|
||||
});
|
||||
ctx.get().setPacketHandled(true);
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package net.mcreator.target.network;
|
||||
package net.mcreator.target.network.message;
|
||||
|
||||
import net.mcreator.target.procedures.PlayerReloadProcedure;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
|
@ -1,5 +1,6 @@
|
|||
package net.mcreator.target.network;
|
||||
package net.mcreator.target.network.message;
|
||||
|
||||
import net.mcreator.target.network.TargetModVariables;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.level.Level;
|
|
@ -5,7 +5,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.entity.ProjectileEntity;
|
||||
import net.mcreator.target.init.TargetModAttributes;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.network.GunsDataMessage;
|
||||
import net.mcreator.target.network.message.GunsDataMessage;
|
||||
import net.mcreator.target.network.TargetModVariables;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
|
|
Loading…
Add table
Reference in a new issue