From 213a313e7dc93438109a5c641c3c7a7de36cd42f Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Mon, 7 Oct 2024 18:38:02 -0600 Subject: [PATCH] machine explosion message --- src/generated/resources/assets/gtceu/lang/en_ud.json | 2 ++ src/generated/resources/assets/gtceu/lang/en_us.json | 2 ++ .../gtceu/api/machine/feature/IExplosionMachine.java | 8 ++++++++ .../gtceu/common/machine/owner/ArgonautsOwner.java | 12 ++++++++++++ .../gtceu/common/machine/owner/FTBOwner.java | 10 ++++++++++ .../gtceu/common/machine/owner/IMachineOwner.java | 2 ++ .../gtceu/common/machine/owner/PlayerOwner.java | 8 ++++++++ .../com/gregtechceu/gtceu/data/lang/LangHandler.java | 2 +- 8 files changed, 45 insertions(+), 1 deletion(-) diff --git a/src/generated/resources/assets/gtceu/lang/en_ud.json b/src/generated/resources/assets/gtceu/lang/en_ud.json index f1fbfd262b..4ac7542b82 100644 --- a/src/generated/resources/assets/gtceu/lang/en_ud.json +++ b/src/generated/resources/assets/gtceu/lang/en_ud.json @@ -2266,6 +2266,7 @@ "config.gtceu.option.hardGlassRecipes": "sǝdıɔǝᴚssɐן⅁pɹɐɥ", "config.gtceu.option.hardIronRecipes": "sǝdıɔǝᴚuoɹIpɹɐɥ", "config.gtceu.option.hardMiscRecipes": "sǝdıɔǝᴚɔsıWpɹɐɥ", + "config.gtceu.option.hardMultiRecipes": "sǝdıɔǝᴚıʇןnWpɹɐɥ", "config.gtceu.option.hardRedstoneRecipes": "sǝdıɔǝᴚǝuoʇspǝᴚpɹɐɥ", "config.gtceu.option.hardToolArmorRecipes": "sǝdıɔǝᴚɹoɯɹⱯןoo⟘pɹɐɥ", "config.gtceu.option.hardWoodRecipes": "sǝdıɔǝᴚpooMpɹɐɥ", @@ -3063,6 +3064,7 @@ "gtceu.machine.ev_sifter.tooltip": "buıʇɟıs dǝǝʞ puɐ ɯןɐɔ ʎɐʇSㄥ§", "gtceu.machine.ev_thermal_centrifuge.tooltip": "ʎןǝsıɔǝɹd ǝɹoɯ sǝɹO buıʇɐɹɐdǝSㄥ§", "gtceu.machine.ev_wiremill.tooltip": "ʎןʇuǝıɔıɟɟǝ ǝɹoɯ sǝɹıM sǝɔnpoɹԀㄥ§", + "gtceu.machine.explosion": "ɹ§%dᄅ§ :Z 'ɹ§%dᄅ§ :ʎ 'ɹ§%dᄅ§ :X ʇɐ pǝpoןdxǝ %s", "gtceu.machine.extreme_combustion_engine.tooltip": "ɹǝsɐǝןǝᴚ ʎbɹǝuƎ ןɐɔıɯǝɥƆ ǝɯǝɹʇxƎ", "gtceu.machine.fisher.requirement": "˙ʍoןǝq ʎןʇɔǝɹıp ɹǝʇɐʍ ɟo ǝɹɐnbs pǝɹǝʇuǝɔ %dx%d ɐ sǝɹınbǝᴚ", "gtceu.machine.fisher.speed": "sʞɔıʇ %d ʎɹǝʌǝ buıɥʇǝɯos sǝɥɔʇɐƆ", diff --git a/src/generated/resources/assets/gtceu/lang/en_us.json b/src/generated/resources/assets/gtceu/lang/en_us.json index aea3d283dd..93883eaa95 100644 --- a/src/generated/resources/assets/gtceu/lang/en_us.json +++ b/src/generated/resources/assets/gtceu/lang/en_us.json @@ -2266,6 +2266,7 @@ "config.gtceu.option.hardGlassRecipes": "hardGlassRecipes", "config.gtceu.option.hardIronRecipes": "hardIronRecipes", "config.gtceu.option.hardMiscRecipes": "hardMiscRecipes", + "config.gtceu.option.hardMultiRecipes": "hardMultiRecipes", "config.gtceu.option.hardRedstoneRecipes": "hardRedstoneRecipes", "config.gtceu.option.hardToolArmorRecipes": "hardToolArmorRecipes", "config.gtceu.option.hardWoodRecipes": "hardWoodRecipes", @@ -3063,6 +3064,7 @@ "gtceu.machine.ev_sifter.tooltip": "§7Stay calm and keep sifting", "gtceu.machine.ev_thermal_centrifuge.tooltip": "§7Separating Ores more precisely", "gtceu.machine.ev_wiremill.tooltip": "§7Produces Wires more efficiently", + "gtceu.machine.explosion": "%s exploded at X: §2%d§r, Y: §2%d§r, Z: §2%d§r", "gtceu.machine.extreme_combustion_engine.tooltip": "Extreme Chemical Energy Releaser", "gtceu.machine.fisher.requirement": "Requires a %dx%d centered square of water directly below.", "gtceu.machine.fisher.speed": "Catches something every %d ticks", diff --git a/src/main/java/com/gregtechceu/gtceu/api/machine/feature/IExplosionMachine.java b/src/main/java/com/gregtechceu/gtceu/api/machine/feature/IExplosionMachine.java index a7054b955e..0ada14e617 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/machine/feature/IExplosionMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/api/machine/feature/IExplosionMachine.java @@ -2,10 +2,12 @@ import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.config.ConfigHolder; +import com.gregtechceu.gtceu.utils.FormattingUtil; import com.gregtechceu.gtceu.utils.GTUtil; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Blocks; @@ -57,6 +59,12 @@ default void doExplosion(BlockPos pos, float explosionPower) { var machine = self(); var level = machine.getLevel(); level.removeBlock(pos, false); + var owner = machine.getHolder().getOwner(); + if (owner != null) { + String machineName = FormattingUtil.toEnglishName(machine.getDefinition().getName()); + owner.broadcastMessage( + Component.translatable("gtceu.machine.explosion", machineName, pos.getX(), pos.getY(), pos.getZ())); + } level.explode(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, explosionPower, ConfigHolder.INSTANCE.machines.doesExplosionDamagesTerrain ? Level.ExplosionInteraction.BLOCK : Level.ExplosionInteraction.NONE); diff --git a/src/main/java/com/gregtechceu/gtceu/common/machine/owner/ArgonautsOwner.java b/src/main/java/com/gregtechceu/gtceu/common/machine/owner/ArgonautsOwner.java index c4019391d5..2eac1c3906 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/machine/owner/ArgonautsOwner.java +++ b/src/main/java/com/gregtechceu/gtceu/common/machine/owner/ArgonautsOwner.java @@ -62,6 +62,18 @@ public boolean isPlayerFriendly(Player player) { return false; } + @Override + public void broadcastMessage(Component message) { + var members = guild.members(); + for (var player : members.allMembers()) { + var serverPlayer = ServerLifecycleHooks.getCurrentServer().getPlayerList() + .getPlayer(player.profile().getId()); + if (serverPlayer != null) { + serverPlayer.displayClientMessage(message, false); + } + } + } + @Override public void displayInfo(List compList) { compList.add(Component.translatable("behavior.portable_scanner.machine_ownership", type().getName())); diff --git a/src/main/java/com/gregtechceu/gtceu/common/machine/owner/FTBOwner.java b/src/main/java/com/gregtechceu/gtceu/common/machine/owner/FTBOwner.java index d094d87457..7d5d2cc386 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/machine/owner/FTBOwner.java +++ b/src/main/java/com/gregtechceu/gtceu/common/machine/owner/FTBOwner.java @@ -52,6 +52,16 @@ public boolean isPlayerFriendly(Player player) { return false; } + @Override + public void broadcastMessage(Component message) { + for (var player : team.getMembers()) { + var serverPlayer = ServerLifecycleHooks.getCurrentServer().getPlayerList().getPlayer(player); + if (serverPlayer != null) { + serverPlayer.displayClientMessage(message, false); + } + } + } + @Override public void displayInfo(List compList) { compList.add(Component.translatable("behavior.portable_scanner.machine_ownership", type().getName())); diff --git a/src/main/java/com/gregtechceu/gtceu/common/machine/owner/IMachineOwner.java b/src/main/java/com/gregtechceu/gtceu/common/machine/owner/IMachineOwner.java index 9f90afd18f..7b2cea6ed1 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/machine/owner/IMachineOwner.java +++ b/src/main/java/com/gregtechceu/gtceu/common/machine/owner/IMachineOwner.java @@ -47,6 +47,8 @@ default CompoundTag write() { boolean isPlayerFriendly(Player player); + void broadcastMessage(Component message); + enum MachineOwnerType { PLAYER, diff --git a/src/main/java/com/gregtechceu/gtceu/common/machine/owner/PlayerOwner.java b/src/main/java/com/gregtechceu/gtceu/common/machine/owner/PlayerOwner.java index 062e8402af..83de18fbff 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/machine/owner/PlayerOwner.java +++ b/src/main/java/com/gregtechceu/gtceu/common/machine/owner/PlayerOwner.java @@ -41,6 +41,14 @@ public boolean isPlayerFriendly(Player player) { return true; } + @Override + public void broadcastMessage(Component message) { + var serverPlayer = ServerLifecycleHooks.getCurrentServer().getPlayerList().getPlayer(playerUUID); + if (serverPlayer != null) { + serverPlayer.displayClientMessage(message, false); + } + } + @Override public void displayInfo(List compList) { compList.add(Component.translatable("behavior.portable_scanner.machine_ownership", type().getName())); diff --git a/src/main/java/com/gregtechceu/gtceu/data/lang/LangHandler.java b/src/main/java/com/gregtechceu/gtceu/data/lang/LangHandler.java index a3cc3744a8..880a6f2ea6 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/lang/LangHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/data/lang/LangHandler.java @@ -839,7 +839,7 @@ public static void init(RegistrateLangProvider provider) { provider.add("gtceu.machine.muffle.off", "Sound Muffling: Disabled"); provider.add("gtceu.machine.perfect_oc", "Does not lose energy efficiency when overclocked."); provider.add("gtceu.machine.parallel_limit", "Can run up to §b%d§r§7 Recipes at once."); - + provider.add("gtceu.machine.explosion", "%s exploded at X: §2%d§r, Y: §2%d§r, Z: §2%d§r"); provider.add("gtceu.machine.multiblock.tank.tooltip", "Fill and drain through the controller or tank valves."); provider.add("gtceu.machine.tank_valve.tooltip",