Added Translation support and configuration options
This commit is contained in:
@@ -20,7 +20,7 @@ public class CarryManager {
|
|||||||
|
|
||||||
public static void toggleCarry(ServerPlayer carrier) {
|
public static void toggleCarry(ServerPlayer carrier) {
|
||||||
if (KnockedManager.isKnocked(carrier)) {
|
if (KnockedManager.isKnocked(carrier)) {
|
||||||
carrier.sendSystemMessage(Component.literal("You cannot carry others while you are knocked!"));
|
carrier.sendSystemMessage(Component.translatable("message.knockedback.cannot_carry_while_knocked"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Optional<Player> existing = carrier.getPassengers().stream()
|
Optional<Player> existing = carrier.getPassengers().stream()
|
||||||
@@ -54,8 +54,8 @@ public class CarryManager {
|
|||||||
if (knocked instanceof ServerPlayer spKnocked) {
|
if (knocked instanceof ServerPlayer spKnocked) {
|
||||||
spKnocked.connection.send(mountPacket);
|
spKnocked.connection.send(mountPacket);
|
||||||
}
|
}
|
||||||
carrier.sendSystemMessage(Component.literal("Picked up " + knocked.getName().getString()));
|
carrier.sendSystemMessage(Component.translatable("message.knockedback.picked_up" + knocked.getName().getString()));
|
||||||
knocked.sendSystemMessage(Component.literal("You are being carried by " + carrier.getName().getString()));
|
knocked.sendSystemMessage(Component.translatable("message.knockedback.being_carried" + carrier.getName().getString()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -67,8 +67,8 @@ public class CarryManager {
|
|||||||
if (knocked instanceof ServerPlayer spKnocked) {
|
if (knocked instanceof ServerPlayer spKnocked) {
|
||||||
spKnocked.connection.send(dismountPacket);
|
spKnocked.connection.send(dismountPacket);
|
||||||
}
|
}
|
||||||
carrier.sendSystemMessage(Component.literal("Dropped " + knocked.getName().getString()));
|
carrier.sendSystemMessage(Component.translatable("message.knockedback.dropped" + knocked.getName().getString()));
|
||||||
knocked.sendSystemMessage(Component.literal("You have been dropped"));
|
knocked.sendSystemMessage(Component.translatable("message.knockedback.been_dropped"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
|
|||||||
@@ -133,8 +133,8 @@ public class MobKillHandler {
|
|||||||
new ExecutionProgressPacket(0)
|
new ExecutionProgressPacket(0)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
knocked.sendSystemMessage(Component.literal(
|
knocked.sendSystemMessage(Component.translatable(
|
||||||
"You were executed by " + mob.getName().getString() + "!"
|
"message.knockedback.you_were_executed " + mob.getName().getString()
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -63,19 +63,19 @@ public class PlayerExecutionHandler {
|
|||||||
|
|
||||||
public static void startExecution(ServerPlayer executor, Player target) {
|
public static void startExecution(ServerPlayer executor, Player target) {
|
||||||
if (KnockedManager.isKnocked(executor)) {
|
if (KnockedManager.isKnocked(executor)) {
|
||||||
executor.sendSystemMessage(Component.literal("You cannot execute others while you are knocked!"));
|
executor.sendSystemMessage(Component.translatable("message.knockedback.cannot_carry_while_knocked"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
UUID knockedId = target.getUUID();
|
UUID knockedId = target.getUUID();
|
||||||
if (!KnockedManager.isKnocked(target)) return;
|
if (!KnockedManager.isKnocked(target)) return;
|
||||||
if (CarryManager.isBeingCarried(target.getUUID())) {
|
if (CarryManager.isBeingCarried(target.getUUID())) {
|
||||||
executor.sendSystemMessage(Component.literal("Cannot execute someone you're carrying!"));
|
executor.sendSystemMessage(Component.translatable("message.knockedback.cannot_execute_while_knocked"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (executionAttempts.containsKey(knockedId)) return;
|
if (executionAttempts.containsKey(knockedId)) return;
|
||||||
executionAttempts.put(knockedId, new PlayerExecutionAttempt(executor.getUUID()));
|
executionAttempts.put(knockedId, new PlayerExecutionAttempt(executor.getUUID()));
|
||||||
executor.sendSystemMessage(Component.literal("Execution started..."));
|
executor.sendSystemMessage(Component.translatable("message.knockedback.execution_started"));
|
||||||
target.sendSystemMessage(Component.literal("You're being executed!"));
|
target.sendSystemMessage(Component.translatable("message.knockedback.being_executed"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void cancelExecution(UUID knockedId) {
|
public static void cancelExecution(UUID knockedId) {
|
||||||
@@ -83,7 +83,7 @@ public class PlayerExecutionHandler {
|
|||||||
if (attempt != null) {
|
if (attempt != null) {
|
||||||
ServerPlayer knocked = getPlayerByUuid(knockedId);
|
ServerPlayer knocked = getPlayerByUuid(knockedId);
|
||||||
if (knocked != null) {
|
if (knocked != null) {
|
||||||
knocked.sendSystemMessage(Component.literal("Execution interrupted!"));
|
knocked.sendSystemMessage(Component.translatable("message.knockedback.execution_interrupted"));
|
||||||
NetworkHandler.CHANNEL.send(
|
NetworkHandler.CHANNEL.send(
|
||||||
PacketDistributor.PLAYER.with(() -> knocked),
|
PacketDistributor.PLAYER.with(() -> knocked),
|
||||||
new ExecutionProgressPacket(0)
|
new ExecutionProgressPacket(0)
|
||||||
@@ -91,7 +91,7 @@ public class PlayerExecutionHandler {
|
|||||||
}
|
}
|
||||||
ServerPlayer executor = getPlayerByUuid(attempt.executorUuid);
|
ServerPlayer executor = getPlayerByUuid(attempt.executorUuid);
|
||||||
if (executor != null) {
|
if (executor != null) {
|
||||||
executor.sendSystemMessage(Component.literal("Your execution was interrupted!"));
|
executor.sendSystemMessage(Component.translatable("message.knockedback.execution_interrupted_executor"));
|
||||||
NetworkHandler.CHANNEL.send(
|
NetworkHandler.CHANNEL.send(
|
||||||
PacketDistributor.PLAYER.with(() -> executor),
|
PacketDistributor.PLAYER.with(() -> executor),
|
||||||
new ExecutionProgressPacket(0)
|
new ExecutionProgressPacket(0)
|
||||||
@@ -106,7 +106,7 @@ public class PlayerExecutionHandler {
|
|||||||
UUID hurtId = hurtPlayer.getUUID();
|
UUID hurtId = hurtPlayer.getUUID();
|
||||||
boolean wasExecutor = executionAttempts.values().removeIf(attempt -> attempt.executorUuid.equals(hurtId));
|
boolean wasExecutor = executionAttempts.values().removeIf(attempt -> attempt.executorUuid.equals(hurtId));
|
||||||
if (wasExecutor) {
|
if (wasExecutor) {
|
||||||
hurtPlayer.sendSystemMessage(Component.literal("Execution canceled because you were hit!"));
|
hurtPlayer.sendSystemMessage(Component.translatable("message.knockedback.execution_interrupted"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,9 +130,9 @@ public class PlayerExecutionHandler {
|
|||||||
new ExecutionProgressPacket(0)
|
new ExecutionProgressPacket(0)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
executor.sendSystemMessage(Component.literal("You executed " + knockedPlayer.getName().getString() + "!"));
|
executor.sendSystemMessage(Component.translatable("message.knockedback.you_executed" + knockedPlayer.getName().getString() + "!"));
|
||||||
if (knockedPlayer instanceof ServerPlayer serverPlayer) {
|
if (knockedPlayer instanceof ServerPlayer serverPlayer) {
|
||||||
serverPlayer.sendSystemMessage(Component.literal("You were executed by " + executor.getName().getString() + "!"));
|
serverPlayer.sendSystemMessage(Component.translatable("message.knockedback.you_were_executed" + executor.getName().getString() + "!"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,35 +21,29 @@ public class ClientKeyHandler {
|
|||||||
"key.categories.knockedback"
|
"key.categories.knockedback"
|
||||||
);
|
);
|
||||||
|
|
||||||
// This event still needs to be registered on the MOD bus for key mapping registration.
|
|
||||||
@Mod.EventBusSubscriber(modid = "knockedback", value = Dist.CLIENT, bus = Mod.EventBusSubscriber.Bus.MOD)
|
|
||||||
public static class KeyMappingRegistration {
|
|
||||||
@SubscribeEvent
|
|
||||||
public static void registerKeyMappings(RegisterKeyMappingsEvent event) {
|
|
||||||
event.register(EXECUTE_KEY);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final KeyMapping CARRY_KEY = new KeyMapping(
|
public static final KeyMapping CARRY_KEY = new KeyMapping(
|
||||||
"key.knockedback.carry",
|
"key.knockedback.carry",
|
||||||
GLFW.GLFW_KEY_V,
|
GLFW.GLFW_KEY_V,
|
||||||
"key.categories.knockedback"
|
"key.categories.knockedback"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@Mod.EventBusSubscriber(modid = "knockedback", value = Dist.CLIENT, bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||||
|
public static class KeyMappingRegistration {
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void registerKeyMappings(RegisterKeyMappingsEvent event) {
|
||||||
|
event.register(EXECUTE_KEY);
|
||||||
|
}
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void registerCarryKey(RegisterKeyMappingsEvent e) {
|
public static void registerCarryKey(RegisterKeyMappingsEvent e) {
|
||||||
e.register(CARRY_KEY);
|
e.register(CARRY_KEY);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void onClientTick(TickEvent.ClientTickEvent event) {
|
public static void onClientTick(TickEvent.ClientTickEvent event) {
|
||||||
if (Minecraft.getInstance().screen != null) return;
|
if (Minecraft.getInstance().screen != null) return;
|
||||||
if (EXECUTE_KEY.consumeClick()) {
|
if (EXECUTE_KEY.consumeClick()) {
|
||||||
if (Minecraft.getInstance().player != null) {
|
if (Minecraft.getInstance().player != null) {
|
||||||
Minecraft.getInstance().player.sendSystemMessage(
|
|
||||||
Component.literal("Key B pressed! Sending execution request to server.")
|
|
||||||
);
|
|
||||||
// Send the packet to the server
|
|
||||||
NetworkHandler.CHANNEL.sendToServer(new ExecuteKnockedPacket());
|
NetworkHandler.CHANNEL.sendToServer(new ExecuteKnockedPacket());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package net.fretux.knockedback.client;
|
package net.fretux.knockedback.client;
|
||||||
|
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
|
||||||
import net.fretux.knockedback.KnockedBack;
|
import net.fretux.knockedback.KnockedBack;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.GuiGraphics;
|
import net.minecraft.client.gui.GuiGraphics;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import net.fretux.knockedback.KnockedBack;
|
|||||||
import net.fretux.knockedback.client.ClientKnockedState;
|
import net.fretux.knockedback.client.ClientKnockedState;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.GuiGraphics;
|
import net.minecraft.client.gui.GuiGraphics;
|
||||||
|
import net.minecraft.client.resources.language.I18n;
|
||||||
import net.minecraftforge.client.event.RenderGuiOverlayEvent;
|
import net.minecraftforge.client.event.RenderGuiOverlayEvent;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
@@ -16,7 +17,7 @@ public class KnockedTimeOverlay {
|
|||||||
if (!ClientKnockedState.isKnocked()) return;
|
if (!ClientKnockedState.isKnocked()) return;
|
||||||
Minecraft mc = Minecraft.getInstance();
|
Minecraft mc = Minecraft.getInstance();
|
||||||
GuiGraphics guiGraphics = event.getGuiGraphics();
|
GuiGraphics guiGraphics = event.getGuiGraphics();
|
||||||
String text = "Time until recovery: " + (ClientKnockedState.getTimeLeft() / 20) + " s";
|
String text = I18n.get("overlay.knockedback.recovery_time", ClientKnockedState.getTimeLeft() / 20);
|
||||||
int screenWidth = mc.getWindow().getGuiScaledWidth();
|
int screenWidth = mc.getWindow().getGuiScaledWidth();
|
||||||
int x = screenWidth / 2 - mc.font.width(text) / 2;
|
int x = screenWidth / 2 - mc.font.width(text) / 2;
|
||||||
int y = 10;
|
int y = 10;
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"key.knockedback.carry": "Tragen",
|
||||||
|
"key.knockedback.execute": "Hinrichten",
|
||||||
|
"key.categories.knockedback": "Knockedback-Steuerung",
|
||||||
|
|
||||||
|
"message.knockedback.cannot_carry_while_knocked": "Du kannst niemanden tragen, während du betäubt bist!",
|
||||||
|
"message.knockedback.cannot_execute_while_knocked": "Du kannst niemanden hinrichten, während du betäubt bist!",
|
||||||
|
"message.knockedback.picked_up": "Hochgehoben %s",
|
||||||
|
"message.knockedback.being_carried": "Du wirst von %s getragen",
|
||||||
|
"message.knockedback.dropped": "Abgesetzt %s",
|
||||||
|
"message.knockedback.been_dropped": "Du wurdest abgesetzt",
|
||||||
|
|
||||||
|
"message.knockedback.execution_started": "Hinrichtung gestartet...",
|
||||||
|
"message.knockedback.being_executed": "Du wirst hingerichtet!",
|
||||||
|
"message.knockedback.execution_interrupted": "Hinrichtung abgebrochen!",
|
||||||
|
"message.knockedback.execution_interrupted_executor": "Deine Hinrichtung wurde abgebrochen!",
|
||||||
|
"message.knockedback.you_executed": "Du hast %s hingerichtet!",
|
||||||
|
"message.knockedback.you_were_executed": "Du wurdest von %s hingerichtet!",
|
||||||
|
|
||||||
|
"overlay.knockedback.recovery_time": "Zeit bis Erholung: %s s"
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"key.knockedback.carry": "Carry",
|
||||||
|
"key.knockedback.execute": "Execute",
|
||||||
|
"key.categories.knockedback": "Knockedback Controls",
|
||||||
|
"message.knockedback.cannot_carry_while_knocked": "You cannot carry others while you are knocked!",
|
||||||
|
"message.knockedback.cannot_execute_while_knocked": "You cannot execute others while you are knocked!",
|
||||||
|
"message.knockedback.picked_up": "Picked up %s",
|
||||||
|
"message.knockedback.being_carried": "You are being carried by %s",
|
||||||
|
"message.knockedback.dropped": "Dropped %s",
|
||||||
|
"message.knockedback.been_dropped": "You have been dropped",
|
||||||
|
"message.knockedback.execution_started": "Execution started...",
|
||||||
|
"message.knockedback.being_executed": "You're being executed!",
|
||||||
|
"message.knockedback.execution_interrupted": "Execution interrupted!",
|
||||||
|
"message.knockedback.execution_interrupted_executor": "Your execution was interrupted!",
|
||||||
|
"message.knockedback.you_executed": "You executed %s!",
|
||||||
|
"message.knockedback.you_were_executed": "You were executed by %s!",
|
||||||
|
"overlay.knockedback.recovery_time": "Time until recovery: %s s"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user