Java源码示例:codechicken.nei.guihook.IContainerTooltipHandler

示例1
@SubscribeEvent
public void guiOpenEvent(GuiOpenEvent event) {
    if (event.getGui() instanceof GuiContainer) {
        if (lastGui != event.getGui()) {
            if (event.getGui() == null) {
                instanceTooltipHandlers = null;
            } else {
                instanceTooltipHandlers = new LinkedList<>();
                if (event.getGui() instanceof IContainerTooltipHandler) {
                    instanceTooltipHandlers.add((IContainerTooltipHandler) event.getGui());
                }
                instanceTooltipHandlers.addAll(tooltipHandlers);
            }
            lastGui = event.getGui();
        }
    }
}
 
示例2
/**
 * Extra lines are often used for more information. For example enchantments, potion effects and mob spawner contents.
 *
 * @param itemstack       The item to get the name for.
 * @param gui             An instance of the currentscreen passed to tooltip handlers. If null, only gui inspecific handlers should respond
 * @param includeHandlers If true tooltip handlers will add to the item tip
 * @return A list of Strings representing the text to be displayed on each line of the tool tip.
 */
public static List<String> itemDisplayNameMultiline(ItemStack itemstack, GuiContainer gui, boolean includeHandlers) {
    List<String> namelist = null;
    try {
        namelist = itemstack.getTooltip(Minecraft.getMinecraft().player, Minecraft.getMinecraft().gameSettings.advancedItemTooltips ? TooltipFlags.ADVANCED : TooltipFlags.NORMAL);
    } catch (Throwable ignored) {
    }

    if (namelist == null) {
        namelist = new ArrayList<>();
    }

    if (namelist.size() == 0) {
        namelist.add("Unnamed");
    }

    if (namelist.get(0) == null || namelist.get(0).equals("")) {
        namelist.set(0, "Unnamed");
    }

    if (includeHandlers) {
        for (IContainerTooltipHandler handler : NEIClientEventHandler.tooltipHandlers) {
            handler.handleItemDisplayName(gui, itemstack, namelist);
        }
    }

    namelist.set(0, itemstack.getRarity().rarityColor.toString() + namelist.get(0));
    for (int i = 1; i < namelist.size(); i++) {
        namelist.set(i, "\u00a77" + namelist.get(i));
    }

    return namelist;
}
 
示例3
/**
 * Register a new Tooltip render handler;
 *
 * @param handler The handler to register
 */
public static void addTooltipHandler(IContainerTooltipHandler handler) {
    tooltipHandlers.add(handler);
}