====== 添加物品提示 ======
===== 物品的物品提示 =====
在您的[[zh_cn:tutorial:items|物品]]类中,像这样重写 ''appendTooltip''(有关如何翻译提示,请参见[[zh_cn:tutorial:lang]])。
对于 1.18.2 及之前的版本:
@Override
public void method_7851(class_1799 itemStack, class_1937 world, List tooltip, class_1836 tooltipContext) {
// 默认为白色文本
tooltip.add(new TranslatableText("item.tutorial.custom_item.tooltip"));
// 格式化为红色文本
tooltip.add(new TranslatableText("item.tutorial.custom_item.tooltip").method_27692(class_124.field_1061) );
}
对于 1.19 之后的版本:
@Override
public void method_7851(class_1799 itemStack, class_1937 world, List tooltip, class_1836 tooltipContext) {
tooltip.add(Text.translatable("item.tutorial.custom_item.tooltip"));
}
对于 1.20.5 之后的版本:
@Override
public void method_7851(class_1799 itemStack, TooltipContext context, List tooltip, TooltipType type) {
tooltip.add(Text.translatable("item.tutorial.custom_item.tooltip"));
}
> :!: 该方法自从 1.21.5 开始被弃用。要在 1.21.5 添加物品提示,请使用 Fabric API。
===== 方块的物品提示 =====
你也可以在[[zh_cn:tutorial:blocks|方块]]类中通过重写类似方法来添加物品提示:
@Override
public void method_9568(class_1799 itemStack, class_1922 world, List tooltip, class_1836 tooltipContext) {
// 对于 1.18.2 及之前的版本
tooltip.add(new TranslatableText("block.tutorial.custom_block.tooltip"));
// 对于 1.19 之后的版本
tooltip.add(Text.translatable("block.tutorial.custom_block.tooltip"));
}
对于 1.20.5 之后、1.21.5 之前的版本:
@Override
public void method_9568(class_1799 itemStack, Item.TooltipContext context, List tooltip, TooltipType options) {
tooltip.add(Text.translatable("block.tutorial.custom_block.tooltip"));
}
===== 在 1.21.5 中添加物品提示 =====
自 1.21.5 开始,物品提示的实现方式被重写。大多数物品提示改为使用物品组件实现,其是否显示会受到 ''tooltip_display'' 物品组件的影响。不过,还是可以借助 Fabric API 添加自定义的物品提示。可以在代码的模组初始化器部分加入以下代码:
ItemTooltipCallback.EVENT.register((itemStack, tooltipContext, tooltipType, list) -> {
if (!itemStack.isOf(TutorialItems.CUSTOM_ITEM)) {
return;
}
list.add(Text.translatable("item.tutorial.custom_item.tooltip"));
});
这个例子将为我们在 [[items]] 教程中创建的物品添加自定义的物品提示。