diff --git a/MinecraftClient/Dialogs/DialogFormatter.cs b/MinecraftClient/Dialogs/DialogFormatter.cs
index c24fca44..9e836e3e 100644
--- a/MinecraftClient/Dialogs/DialogFormatter.cs
+++ b/MinecraftClient/Dialogs/DialogFormatter.cs
@@ -45,6 +45,8 @@ public static class DialogFormatter
builder.AppendLine(string.Format(Translations.dialog_render_action, action.Index, action.Label, DescribeAction(action.Action)));
}
+ builder.AppendLine();
+ builder.AppendLine("§o" + Translations.dialog_render_help_hint + "§r");
builder.Append(border);
return builder.ToString();
}
diff --git a/MinecraftClient/McClient.cs b/MinecraftClient/McClient.cs
index 58184b0a..753de486 100644
--- a/MinecraftClient/McClient.cs
+++ b/MinecraftClient/McClient.cs
@@ -3440,13 +3440,15 @@ namespace MinecraftClient
public void OnDialogShown(DialogDefinition dialog, DialogPhase phase)
{
var instance = Dialogs.Show(dialog, phase);
- Tui.DialogTuiHost.TryOpen(this, instance, force: phase == DialogPhase.Configuration);
+ if (!Tui.DialogTuiHost.TryOpen(this, instance, force: phase == DialogPhase.Configuration))
+ ConsoleIO.WriteLineFormatted(DialogFormatter.Render(instance), acceptnewlines: true);
}
public void OnDialogRegistryReferenceShown(int protocolId, DialogPhase phase)
{
var instance = Dialogs.ShowRegistryReference(protocolId, phase);
- Tui.DialogTuiHost.TryOpen(this, instance, force: phase == DialogPhase.Configuration);
+ if (!Tui.DialogTuiHost.TryOpen(this, instance, force: phase == DialogPhase.Configuration))
+ ConsoleIO.WriteLineFormatted(DialogFormatter.Render(instance), acceptnewlines: true);
}
public void OnDialogCleared()
diff --git a/MinecraftClient/Resources/Translations/Translations.Designer.cs b/MinecraftClient/Resources/Translations/Translations.Designer.cs
index c2803581..4b325587 100644
--- a/MinecraftClient/Resources/Translations/Translations.Designer.cs
+++ b/MinecraftClient/Resources/Translations/Translations.Designer.cs
@@ -8121,5 +8121,9 @@ namespace MinecraftClient {
get { return ResourceManager.GetString("dialog.input_kind.unknown", resourceCulture); }
}
+ internal static string dialog_render_help_hint {
+ get { return ResourceManager.GetString("dialog.render.help_hint", resourceCulture); }
+ }
+
}
}
diff --git a/MinecraftClient/Resources/Translations/Translations.resx b/MinecraftClient/Resources/Translations/Translations.resx
index 34ce6a62..fdb4fd7c 100644
--- a/MinecraftClient/Resources/Translations/Translations.resx
+++ b/MinecraftClient/Resources/Translations/Translations.resx
@@ -3067,4 +3067,7 @@ see item details.
Unknown
+
+ Use /dialog help for a list of commands.
+
diff --git a/MinecraftClient/Tui/DialogTuiHost.cs b/MinecraftClient/Tui/DialogTuiHost.cs
index 8b0708a7..f94370e6 100644
--- a/MinecraftClient/Tui/DialogTuiHost.cs
+++ b/MinecraftClient/Tui/DialogTuiHost.cs
@@ -174,6 +174,13 @@ internal sealed class DialogView : Border, IOverlayCloseHandler
});
}
+ main.Children.Add(new TextBlock
+ {
+ Text = Translations.dialog_render_help_hint,
+ Foreground = new SolidColorBrush(Color.FromRgb(120, 120, 120)),
+ TextWrapping = TextWrapping.Wrap
+ });
+
main.Children.Add(_status);
scroll.Content = main;
root.Children.Add(scroll);