diff --git a/forge/src/main/java/com/mitsuaky/stanleyparable/ClientConfig.java b/forge/src/main/java/com/mitsuaky/stanleyparable/ClientConfig.java index af7786f..7bd13d7 100644 --- a/forge/src/main/java/com/mitsuaky/stanleyparable/ClientConfig.java +++ b/forge/src/main/java/com/mitsuaky/stanleyparable/ClientConfig.java @@ -14,6 +14,7 @@ public class ClientConfig { public static final ForgeConfigSpec.ConfigValue COOLDOWN_GLOBAL; public static final ForgeConfigSpec.ConfigValue NARRATOR_VOLUME; public static final ForgeConfigSpec.ConfigValue SEND_TO_CHAT; + public static final ForgeConfigSpec.ConfigValue AKA; public static final ForgeConfigSpec.ConfigValue TTS; public static final ForgeConfigSpec.ConfigValue ELEVENLABS_BUFFER_SIZE; @@ -34,6 +35,7 @@ public class ClientConfig { COOLDOWN_GLOBAL = BUILDER.comment("Cooldown for global events in seconds").defineInRange("cooldown_global", 30, 30, 60); NARRATOR_VOLUME = BUILDER.comment("Narrator Volume").defineInRange("narrator_volume", 100, 1, 130); SEND_TO_CHAT = BUILDER.comment("Send events to chat").define("send_to_chat", true); + AKA = BUILDER.comment("aka").define("aka", ""); TTS = BUILDER.comment("Enable text to speech").define("tts", true); ELEVENLABS_BUFFER_SIZE = BUILDER.comment("ElevenLabs Buffer Size").defineInRange("elevenlabs_buffer_size", 2048, 1024, 16384); diff --git a/forge/src/main/java/com/mitsuaky/stanleyparable/EventSubscriber.java b/forge/src/main/java/com/mitsuaky/stanleyparable/EventSubscriber.java index 1a5b802..1cf49e6 100644 --- a/forge/src/main/java/com/mitsuaky/stanleyparable/EventSubscriber.java +++ b/forge/src/main/java/com/mitsuaky/stanleyparable/EventSubscriber.java @@ -80,6 +80,13 @@ public static String getAsName(Entity entity) { return entity.getName().getString(); } + public static String getPlayerName(Entity entity) { + if (ClientConfig.AKA.get().isEmpty()) { + return entity.getName().getString(); + } else { + return ClientConfig.AKA.get(); + } + } @SubscribeEvent public static void registerCommands(RegisterClientCommandsEvent event) { @@ -114,7 +121,7 @@ public static void onPlayerTick(TickEvent.PlayerTickEvent event) { String addedItemsString = String.join(", ", addedItems).replaceAll(", (?=[^,]*$)", " e "); String removedItemsString = String.join(", ", removedItems).replaceAll(", (?=[^,]*$)", " e "); - String player = event.player.getName().getString(); + String player = getPlayerName(event.player); if (!addedItems.isEmpty() && !removedItems.isEmpty()) { wsClient.sendEvent(Event.CHEST_CHANGE.getValue(), String.format("Jogador \"%s\" colocou \"%s\" e removeu \"%s\" de um baú", player, addedItemsString, removedItemsString)); @@ -137,7 +144,7 @@ public static void onItemCrafted(PlayerEvent.ItemCraftedEvent event) { } String item = getAsName(event.getCrafting()); - String player = event.getEntity().getName().getString(); + String player = getPlayerName(event.getEntity()); wsClient.sendEvent(Event.ITEM_CRAFTED.getValue(), String.format("Jogador \"%s\" craftou \"%s\"", player, item)); } @@ -154,7 +161,7 @@ public static void onBlockBreak(BlockEvent.BreakEvent event) { tool_name = Component.translatable("item.stanleyparable.bare_hands").getString(); } String block = getAsName(event.getState().getBlock()); - String player = event.getPlayer().getName().getString(); + String player = getPlayerName(event.getPlayer()); wsClient.sendEvent(Event.BLOCK_BROKEN.getValue(), String.format("Jogador \"%s\" quebrou \"%s\" com \"%s\"", player, block, tool_name)); } @@ -167,7 +174,7 @@ public static void onBlockPlace(BlockEvent.EntityPlaceEvent event) { } String block = getAsName(event.getPlacedBlock().getBlock()); - String player = event.getEntity().getName().getString(); + String player = getPlayerName(event.getEntity()); wsClient.sendEvent(Event.BLOCK_PLACED.getValue(), String.format("Jogador \"%s\" colocou \"%s\"", player, block)); } @@ -181,8 +188,9 @@ public static void onPlayerDeath(LivingDeathEvent event) { } String deathCause = event.getSource().getLocalizedDeathMessage(event.getEntity()).getString(); - String player = event.getEntity().getName().getString(); - wsClient.sendEvent(Event.PLAYER_DEATH.getValue(), String.format("Jogador \"%s\" morreu \"%s\"", player, deathCause)); + String originalPlayerName = event.getEntity().getName().getString(); + String player = getPlayerName(event.getEntity()); + wsClient.sendEvent(Event.PLAYER_DEATH.getValue(), String.format("Jogador \"%s\" morreu \"%s\"", player, deathCause.replace(originalPlayerName, player))); } @SubscribeEvent @@ -206,7 +214,7 @@ public static void onAchievement(AdvancementEarnEvent event) { String advancementTitle = event.getAdvancement().value().display().map(DisplayInfo::getTitle).map(Component::getString).orElse(""); String advancementDescription = event.getAdvancement().value().display().map(DisplayInfo::getDescription).map(Component::getString).orElse(""); - String player = event.getEntity().getName().getString(); + String player = getPlayerName(event.getEntity()); wsClient.sendEvent(Event.ADVANCEMENT.getValue(), String.format("Jogador \"%s\" obteve a conquista \"%s\": \"%s\"", player, advancementTitle, advancementDescription)); } @@ -218,7 +226,7 @@ public static void onDimensionChange(PlayerEvent.PlayerChangedDimensionEvent eve return; } String dimension = event.getTo().location().toString(); - String player = event.getEntity().getName().getString(); + String player = getPlayerName(event.getEntity()); wsClient.sendEvent(Event.DIMENSION_CHANGED.getValue(), String.format("Jogador \"%s\" entrou na dimensão \"%s\"", player, dimension)); } @@ -232,7 +240,7 @@ public static void onItemPickup(PlayerEvent.ItemPickupEvent event) { String item = getAsName(event.getStack()); int amount = event.getStack().getCount(); - String player = event.getEntity().getName().getString(); + String player = getPlayerName(event.getEntity()); wsClient.sendEvent(Event.ITEM_PICKUP.getValue(), String.format("Jogador \"%s\" pegou \"%d\" \"%s\"", player, amount, item)); } @@ -245,7 +253,7 @@ public static void onItemSmelted(PlayerEvent.ItemSmeltedEvent event) { } String item = getAsName(event.getSmelting()); - String player = event.getEntity().getName().getString(); + String player = getPlayerName(event.getEntity()); wsClient.sendEvent(Event.ITEM_SMELTED.getValue(), String.format("Jogador \"%s\" fundiu/cozinhou \"%s\"", player, item)); } @@ -263,8 +271,8 @@ public static void onMobKilled(LivingDeathEvent event) { if (weapon.getDescriptionId().equals("block.minecraft.air")) { weapon_name = Component.translatable("item.stanleyparable.bare_hands").getString(); } - - wsClient.sendEvent(Event.MOB_KILLED.getValue(), String.format("Jogador \"%s\" matou \"%s\" com \"%s\"", player.getName().getString(), mob, weapon_name)); + String playerName = getPlayerName(player); + wsClient.sendEvent(Event.MOB_KILLED.getValue(), String.format("Jogador \"%s\" matou \"%s\" com \"%s\"", playerName, mob, weapon_name)); } @SubscribeEvent @@ -275,7 +283,7 @@ public static void onClientChat(ServerChatEvent event) { return; } String message = event.getRawText(); - String player = event.getPlayer().getName().getString(); + String player = getPlayerName(event.getPlayer()); wsClient.sendEvent(Event.PLAYER_CHAT.getValue(), String.format("Jogador \"%s\" escreveu no chat do jogo \"%s\"", player, message)); } @@ -287,7 +295,7 @@ public static void onPlayerAte(LivingEntityUseItemEvent.Finish event) { } String item_name = getAsName(event.getItem()); - String player = event.getEntity().getName().getString(); + String player = getPlayerName(event.getEntity()); wsClient.sendEvent(Event.PLAYER_ATE.getValue(), String.format("Jogador \"%s\" comeu/bebeu \"%s\"", player, item_name)); } @@ -306,7 +314,7 @@ public static void onPlayerJoin(PlayerEvent.PlayerLoggedInEvent event) { return null; }); String worldName = Objects.requireNonNull(player.getServer()).getWorldData().getLevelName(); - String playerName = player.getName().getString(); + String playerName = getPlayerName(player); wsClient.sendEvent(Event.JOIN_WORLD.getValue(), String.format("Jogador \"%s\" entrou no mundo \"%s\"", playerName, worldName)); } } diff --git a/forge/src/main/java/com/mitsuaky/stanleyparable/screen/ConfigScreen.java b/forge/src/main/java/com/mitsuaky/stanleyparable/screen/ConfigScreen.java index 25a832e..757e3ca 100644 --- a/forge/src/main/java/com/mitsuaky/stanleyparable/screen/ConfigScreen.java +++ b/forge/src/main/java/com/mitsuaky/stanleyparable/screen/ConfigScreen.java @@ -7,6 +7,7 @@ import net.minecraft.client.gui.components.AbstractSliderButton; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.components.Checkbox; +import net.minecraft.client.gui.components.EditBox; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; import net.minecraftforge.api.distmarker.Dist; @@ -29,6 +30,7 @@ public class ConfigScreen extends Screen { private String ping = "Offline"; private PingWidget pingWidget; + private EditBox akaWidget; public ConfigScreen(Screen parent) { super(Component.translatable("gui.stanleyparable.config.title")); @@ -175,10 +177,18 @@ public void onPress() { this.minecraft.setScreen(new TokenScreen(this)); }).pos(commonX, commonY).size(commonWidth, commonHeight).build()); + commonY += commonHeight + commonMargin; + + akaWidget = new EditBox(this.font, commonX, commonY, commonWidth, commonHeight, Component.translatable("gui.stanleyparable.aka")); + akaWidget.setValue(ClientConfig.AKA.get()); + akaWidget.hint = Component.translatable("gui.stanleyparable.aka"); + this.addRenderableWidget(akaWidget); + this.addRenderableWidget(new Button.Builder(Component.translatable("gui.done"), button -> { ClientConfig.COOLDOWN_INDIVIDUAL.set(coolDownIndividual); ClientConfig.COOLDOWN_GLOBAL.set(coolDownGlobal); ClientConfig.NARRATOR_VOLUME.set(narratorVolume); + ClientConfig.AKA.set(akaWidget.getValue()); ClientConfig.applyServerConfig(); WebSocketClient.getInstance().setOnPong(null); assert this.minecraft != null; diff --git a/forge/src/main/resources/assets/stanleyparable/lang/en_us.json b/forge/src/main/resources/assets/stanleyparable/lang/en_us.json index ba481b3..8ff0eee 100644 --- a/forge/src/main/resources/assets/stanleyparable/lang/en_us.json +++ b/forge/src/main/resources/assets/stanleyparable/lang/en_us.json @@ -5,6 +5,7 @@ "gui.stanleyparable.narrator_volume": "Narrator Volume: ", "gui.stanleyparable.send_to_chat": "Send to chat", "gui.stanleyparable.tts": "Text to speech", + "gui.stanleyparable.aka": "a.k.a", "gui.stanleyparable.openai_key": "OpenAI API Key", "gui.stanleyparable.openai_base_url": "OpenAI API URL", "gui.stanleyparable.openai_model": "OpenAI Chatbot Model", diff --git a/forge/src/main/resources/assets/stanleyparable/lang/pt_br.json b/forge/src/main/resources/assets/stanleyparable/lang/pt_br.json index 88c6d4c..b067d9c 100644 --- a/forge/src/main/resources/assets/stanleyparable/lang/pt_br.json +++ b/forge/src/main/resources/assets/stanleyparable/lang/pt_br.json @@ -5,6 +5,7 @@ "gui.stanleyparable.narrator_volume": "Volume do Narrador: ", "gui.stanleyparable.send_to_chat": "Aparecer no Chat", "gui.stanleyparable.tts": "Texto para Fala", + "gui.stanleyparable.aka": "Vulgo", "gui.stanleyparable.openai_key": "Chave de API da OpenAI", "gui.stanleyparable.openai_base_url": "URL de API da OpenAI", "gui.stanleyparable.openai_model": "Modelo do Chatbot da OpenAI",