From 67257e21e9eba8f05e8c8751cce20893d6731372 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Sun, 29 Sep 2024 09:50:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9B=B4=E5=A4=9A=E7=9A=84co?= =?UTF-8?q?nfig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../net/mcreator/superbwarfare/ModUtils.java | 2 ++ .../client/screens/KillMessageOverlay.java | 7 +++++- .../superbwarfare/config/ClientConfig.java | 2 ++ .../superbwarfare/config/ServerConfig.java | 16 ++++++++++++++ .../client/KillMessageClientConfig.java | 22 +++++++++++++++++++ .../server/KillMessageServerConfig.java | 17 ++++++++++++++ .../event/KillMessageHandler.java | 1 - .../event/LivingEventHandler.java | 13 ++++++----- .../network/ClientPacketHandler.java | 3 ++- 9 files changed, 75 insertions(+), 8 deletions(-) create mode 100644 src/main/java/net/mcreator/superbwarfare/config/ServerConfig.java create mode 100644 src/main/java/net/mcreator/superbwarfare/config/client/KillMessageClientConfig.java create mode 100644 src/main/java/net/mcreator/superbwarfare/config/server/KillMessageServerConfig.java diff --git a/src/main/java/net/mcreator/superbwarfare/ModUtils.java b/src/main/java/net/mcreator/superbwarfare/ModUtils.java index dc2ab13d2..127a1188d 100644 --- a/src/main/java/net/mcreator/superbwarfare/ModUtils.java +++ b/src/main/java/net/mcreator/superbwarfare/ModUtils.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare; import net.mcreator.superbwarfare.config.ClientConfig; +import net.mcreator.superbwarfare.config.ServerConfig; import net.mcreator.superbwarfare.init.*; import net.mcreator.superbwarfare.network.ModVariables; import net.mcreator.superbwarfare.network.message.*; @@ -43,6 +44,7 @@ public class ModUtils { public ModUtils() { ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, ClientConfig.init()); + ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, ServerConfig.init()); IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus(); diff --git a/src/main/java/net/mcreator/superbwarfare/client/screens/KillMessageOverlay.java b/src/main/java/net/mcreator/superbwarfare/client/screens/KillMessageOverlay.java index f660d00dc..ae409fd33 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/screens/KillMessageOverlay.java +++ b/src/main/java/net/mcreator/superbwarfare/client/screens/KillMessageOverlay.java @@ -3,6 +3,7 @@ package net.mcreator.superbwarfare.client.screens; import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.systems.RenderSystem; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.config.client.KillMessageClientConfig; import net.mcreator.superbwarfare.event.KillMessageHandler; import net.mcreator.superbwarfare.init.ModDamageTypes; import net.mcreator.superbwarfare.init.ModItems; @@ -44,7 +45,11 @@ public class KillMessageOverlay { private static final ResourceLocation WORLD_PEACE_STAFF = new ResourceLocation(ModUtils.MODID, "textures/gun_icon/compat/world_peace_staff.png"); @SubscribeEvent(priority = EventPriority.NORMAL) - public static void eventHandler(RenderGuiEvent.Pre event) { + public static void onRenderGui(RenderGuiEvent.Pre event) { + if (!KillMessageClientConfig.SHOW_KILL_MESSAGE.get()) { + return; + } + Player player = Minecraft.getInstance().player; if (player == null) { diff --git a/src/main/java/net/mcreator/superbwarfare/config/ClientConfig.java b/src/main/java/net/mcreator/superbwarfare/config/ClientConfig.java index e8eb38842..5e5cf9ddc 100644 --- a/src/main/java/net/mcreator/superbwarfare/config/ClientConfig.java +++ b/src/main/java/net/mcreator/superbwarfare/config/ClientConfig.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.config; import net.mcreator.superbwarfare.config.client.EmptyAutoReloadConfig; +import net.mcreator.superbwarfare.config.client.KillMessageClientConfig; import net.minecraftforge.common.ForgeConfigSpec; public class ClientConfig { @@ -9,6 +10,7 @@ public class ClientConfig { ForgeConfigSpec.Builder builder = new ForgeConfigSpec.Builder(); EmptyAutoReloadConfig.init(builder); + KillMessageClientConfig.init(builder); return builder.build(); } diff --git a/src/main/java/net/mcreator/superbwarfare/config/ServerConfig.java b/src/main/java/net/mcreator/superbwarfare/config/ServerConfig.java new file mode 100644 index 000000000..97d107688 --- /dev/null +++ b/src/main/java/net/mcreator/superbwarfare/config/ServerConfig.java @@ -0,0 +1,16 @@ +package net.mcreator.superbwarfare.config; + +import net.mcreator.superbwarfare.config.server.KillMessageServerConfig; +import net.minecraftforge.common.ForgeConfigSpec; + +public class ServerConfig { + + public static ForgeConfigSpec init() { + ForgeConfigSpec.Builder builder = new ForgeConfigSpec.Builder(); + + KillMessageServerConfig.init(builder); + + return builder.build(); + } + +} diff --git a/src/main/java/net/mcreator/superbwarfare/config/client/KillMessageClientConfig.java b/src/main/java/net/mcreator/superbwarfare/config/client/KillMessageClientConfig.java new file mode 100644 index 000000000..36e6386ab --- /dev/null +++ b/src/main/java/net/mcreator/superbwarfare/config/client/KillMessageClientConfig.java @@ -0,0 +1,22 @@ +package net.mcreator.superbwarfare.config.client; + +import net.minecraftforge.common.ForgeConfigSpec; + +public class KillMessageClientConfig { + + public static ForgeConfigSpec.BooleanValue SHOW_KILL_MESSAGE; + public static ForgeConfigSpec.IntValue KILL_MESSAGE_COUNT; + + public static void init(ForgeConfigSpec.Builder builder) { + builder.push("kill_message"); + + builder.comment("Set TRUE if you want to show kill message"); + SHOW_KILL_MESSAGE = builder.define("show_kill_message", false); + + builder.comment("The max count of kill messages to show concurrently"); + KILL_MESSAGE_COUNT = builder.defineInRange("kill_message_count", 5, 1, 20); + + builder.pop(); + } + +} diff --git a/src/main/java/net/mcreator/superbwarfare/config/server/KillMessageServerConfig.java b/src/main/java/net/mcreator/superbwarfare/config/server/KillMessageServerConfig.java new file mode 100644 index 000000000..aade7da57 --- /dev/null +++ b/src/main/java/net/mcreator/superbwarfare/config/server/KillMessageServerConfig.java @@ -0,0 +1,17 @@ +package net.mcreator.superbwarfare.config.server; + +import net.minecraftforge.common.ForgeConfigSpec; + +public class KillMessageServerConfig { + + public static ForgeConfigSpec.BooleanValue SEND_KILL_MESSAGE; + + public static void init(ForgeConfigSpec.Builder builder) { + builder.push("kill_message"); + + SEND_KILL_MESSAGE = builder.define("send_kill_message", false); + + builder.pop(); + } + +} diff --git a/src/main/java/net/mcreator/superbwarfare/event/KillMessageHandler.java b/src/main/java/net/mcreator/superbwarfare/event/KillMessageHandler.java index 18fbfb322..5efa870ad 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/KillMessageHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/KillMessageHandler.java @@ -13,7 +13,6 @@ import java.util.Queue; public class KillMessageHandler { public static Queue QUEUE = new ArrayDeque<>(); - public static final int MAX_SIZE = 10; @SubscribeEvent public static void onClientTick(TickEvent.ClientTickEvent event) { diff --git a/src/main/java/net/mcreator/superbwarfare/event/LivingEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/LivingEventHandler.java index ee40580ae..727bcada9 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/LivingEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/LivingEventHandler.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.event; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.config.server.KillMessageServerConfig; import net.mcreator.superbwarfare.entity.TargetEntity; import net.mcreator.superbwarfare.entity.projectile.ProjectileEntity; import net.mcreator.superbwarfare.init.*; @@ -234,15 +235,17 @@ public class LivingEventHandler { }); } - + /** + * 发送击杀消息 + */ private static void handlePlayerKillEntity(LivingDeathEvent event) { - LivingEntity entity = event.getEntity(); - DamageSource source = event.getSource(); - - if (!ModVariables.MapVariables.get(entity.level()).pvpMode) { + if (!KillMessageServerConfig.SEND_KILL_MESSAGE.get()) { return; } + LivingEntity entity = event.getEntity(); + DamageSource source = event.getSource(); + ResourceKey damageTypeResourceKey = source.typeHolder().unwrapKey().isPresent() ? source.typeHolder().unwrapKey().get() : DamageTypes.GENERIC; ServerPlayer attacker = null; diff --git a/src/main/java/net/mcreator/superbwarfare/network/ClientPacketHandler.java b/src/main/java/net/mcreator/superbwarfare/network/ClientPacketHandler.java index 90d78a462..be3ee8800 100644 --- a/src/main/java/net/mcreator/superbwarfare/network/ClientPacketHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/network/ClientPacketHandler.java @@ -2,6 +2,7 @@ package net.mcreator.superbwarfare.network; import net.mcreator.superbwarfare.client.screens.CrossHairOverlay; import net.mcreator.superbwarfare.client.screens.DroneUIOverlay; +import net.mcreator.superbwarfare.config.client.KillMessageClientConfig; import net.mcreator.superbwarfare.event.KillMessageHandler; import net.mcreator.superbwarfare.network.message.ClientIndicatorMessage; import net.mcreator.superbwarfare.network.message.GunsDataMessage; @@ -26,7 +27,7 @@ public class ClientPacketHandler { public static void handlePlayerKillMessage(Player attacker, Entity target, boolean headshot, ResourceKey damageType, Supplier ctx) { if (ctx.get().getDirection().getReceptionSide() == LogicalSide.CLIENT) { - if (KillMessageHandler.QUEUE.size() >= KillMessageHandler.MAX_SIZE) { + if (KillMessageHandler.QUEUE.size() >= KillMessageClientConfig.KILL_MESSAGE_COUNT.get()) { KillMessageHandler.QUEUE.poll(); } KillMessageHandler.QUEUE.offer(new PlayerKillRecord(attacker, target, attacker.getMainHandItem(), headshot, damageType));