Java 类net.minecraft.util.text.event.ClickEvent 实例源码

项目:ProgressiveDifficulty    文件:EventHandler.java   
@SubscribeEvent
public void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event){
    if(DifficultyManager.enabled && ProgressiveDifficulty.oldConfigExists){
        TextComponentString linkComponent = new TextComponentString("[Progressive Difficulty Wiki]");
        ITextComponent[] chats = new ITextComponent[]{
                new TextComponentString("[ProgressiveDifficulty] It looks like you have a version 1.0 " +
                        "config file. Please check out the Progressive Difficulty Wiki for instructions on how" +
                        " to migrate to a version 2.0 config file."),
                linkComponent
        };
        ClickEvent goLinkEvent = new ClickEvent(ClickEvent.Action.OPEN_URL,"https://github.com/talandar/ProgressiveDifficulty/wiki/2.0-Transition");
        linkComponent.getStyle().setClickEvent(goLinkEvent);
        linkComponent.getStyle().setColor(TextFormatting.BLUE);
        linkComponent.getStyle().setUnderlined(true);
        ChatUtil.sendChat(event.player,chats);
    }
}
项目:Easy-Editors    文件:CommandHelpManager.java   
@Override
public boolean mouseClicked(int mouseX, int mouseY, int y, int virtualWidth) {
    ITextComponent hoveredComponent = getHoveredComponent(virtualWidth, y, mouseX, mouseY);
    if (hoveredComponent != null) {
        ClickEvent clickEvent = hoveredComponent.getStyle().getClickEvent();
        if (clickEvent != null && clickEvent.getAction() == ClickEvent.Action.CHANGE_PAGE) {
            String value = clickEvent.getValue();
            String name = null;
            if (value.contains("=")) {
                int equalsIndex = value.indexOf('=');
                name = value.substring(0, equalsIndex);
                value = value.substring(equalsIndex + 1);
            }
            CommandHelpManager.getInstance().displayHelpScreen(name, value);
            return true;
        } else {
            return GeneralUtils.handleClickEvent(clickEvent);
        }
    } else
        return false;
}
项目:MnM-Utils    文件:UpdateChecker.java   
private void notifyUser(VersionData data, UpdateResponse response) {
    ITextBuilder builder = new TextBuilder()
            .translation("update.available")
            .text(data.getName())
            .format(TextFormatting.GOLD)
            .end()
            .text(" ");
    if (data.getUrl() != null)
        builder.translation("update.clickhere").end()
                .format(TextFormatting.LIGHT_PURPLE)
                .click(new ClickEvent(ClickEvent.Action.OPEN_URL, data.getUrl()))
                .text(". ");
    ITextComponent msg = builder
            .text(response.minecraft.version)
            .text(" - ")
            .text(response.minecraft.changes)
            .build();
    LogManager.getLogger("Updates").info(msg.getUnformattedText());
    this.chatProxy.addToChat("Updates", msg);
}
项目:TabbyChat-2    文件:UpdateChecker.java   
private void notifyUser(VersionData data, UpdateResponse response) {
    ITextBuilder builder = new TextBuilder()
            .translation("update.available")
            .text(data.getName())
            .format(TextFormatting.GOLD)
            .end()
            .text(" ");
    if (data.getUrl() != null)
        builder.translation("update.clickhere").end()
                .format(TextFormatting.LIGHT_PURPLE)
                .click(new ClickEvent(ClickEvent.Action.OPEN_URL, data.getUrl()))
                .text(". ");
    ITextComponent msg = builder
            .text(response.minecraft.version)
            .text(" - ")
            .text(response.minecraft.changes)
            .build();
    LogManager.getLogger("Updates").info(msg.getUnformattedText());
    this.chatProxy.addToChat("Updates", msg);
}
项目:TabbyChat-2    文件:ChatTextUtilsTest.java   
private static ITextComponent makeChat(boolean tag) {

        ITextComponent chat = new TextComponentString(tag ? "[test] " : "");
        chat.getStyle().setBold(true);
        {
            ITextComponent colored = new TextComponentString("This should be green. ");
            colored.getStyle().setColor(TextFormatting.GREEN);
            chat.appendSibling(colored);
        }
        chat.appendText(" ");
        {
            ITextComponent link = new TextComponentString("This is a link.");
            link.getStyle().setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, "http://google.com/"));
            chat.appendSibling(link);
        }
        return chat;
    }
项目:ClientAPI    文件:ChatBuilder.java   
/**
 * Appends a string with the specified color(s) and an event
 * triggered on text click and on text hover. Only one actual
 * color should be specified, any other {@code TextFormatting}
 * type should be styling. (Bold, Italic, Underline, Strikethrough,
 * and Obfuscated)
 *
 * @param text The string being appended
 * @param clickEvent Click event to be used
 * @param hoverEvent Hover event to be used
 * @param colors Color formatting
 * @return This builder
 */
public final ChatBuilder append(String text, @Nullable ClickEvent clickEvent, @Nullable HoverEvent hoverEvent, TextFormatting... colors) {
    TextComponentString component = new TextComponentString(text);
    Style style = component.getStyle();
    Arrays.stream(colors).forEach(color -> {
        switch (color) {
            case BOLD: {
                style.setBold(true);
                break;
            }
            case ITALIC: {
                style.setItalic(true);
                break;
            }
            case UNDERLINE: {
                style.setUnderlined(true);
                break;
            }
            case STRIKETHROUGH: {
                style.setStrikethrough(true);
                break;
            }
            case OBFUSCATED: {
                style.setObfuscated(true);
                break;
            }
            default: {
                style.setColor(color);
                break;
            }
        }
    });
    // noinspection ConstantConditions
    style.setClickEvent(clickEvent).setHoverEvent(hoverEvent);
    this.component.appendSibling(component);
    return this;
}
项目:CreeperHostGui    文件:GuiPersonalDetails.java   
@Override
protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException
{
    super.mouseClicked(mouseX, mouseY, mouseButton);

    int info2Start = (this.height / 2) - 50;

    if (orderPressed && !isSure && mouseY >= info2Start && mouseY <= info2Start + fontRendererObj.FONT_HEIGHT)
    {
        ITextComponent comp = getComponent(mouseX, mouseY);

        ClickEvent clickevent = comp.getStyle().getClickEvent();
        if (clickevent != null && clickevent.getAction() == ClickEvent.Action.OPEN_URL)
        {
            try
            {
                URI uri = new URI(clickevent.getValue());
                Class<?> oclass = Class.forName("java.awt.Desktop");
                Object object = oclass.getMethod("getDesktop").invoke(null);
                oclass.getMethod("browse", URI.class).invoke(object, uri);
            }
            catch (Throwable t)
            {
                CreeperHost.logger.error("Can\'t open url for " + clickevent, t);
            }
            return;
        }
    }

    for (TextFieldDetails field : this.fields)
    {
        field.myMouseClicked(mouseX, mouseY, mouseButton);
    }
}
项目:UniversalRemote    文件:TextFormatter.java   
public static ITextComponent addURLClick(ITextComponent component, String url)
{
    Style s = component.getStyle();
    s.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, url));
    component.setStyle(s);
    return component;
}
项目:Zombe-Modpack    文件:EntityPlayer.java   
/**
 * Get the formatted ChatComponent that will be used for the sender's username in chat
 */
public ITextComponent getDisplayName()
{
    ITextComponent itextcomponent = new TextComponentString(ScorePlayerTeam.formatPlayerName(this.getTeam(), this.getName()));
    itextcomponent.getStyle().setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/msg " + this.getName() + " "));
    itextcomponent.getStyle().setHoverEvent(this.getHoverEvent());
    itextcomponent.getStyle().setInsertion(this.getName());
    return itextcomponent;
}
项目:Backmemed    文件:EntityPlayer.java   
/**
 * Get the formatted ChatComponent that will be used for the sender's username in chat
 */
public ITextComponent getDisplayName()
{
    ITextComponent itextcomponent = new TextComponentString(ScorePlayerTeam.formatPlayerName(this.getTeam(), this.getName()));
    itextcomponent.getStyle().setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/msg " + this.getName() + " "));
    itextcomponent.getStyle().setHoverEvent(this.getHoverEvent());
    itextcomponent.getStyle().setInsertion(this.getName());
    return itextcomponent;
}
项目:Backmemed    文件:Style.java   
@Nullable

    /**
     * The effective chat click event.
     */
    public ClickEvent getClickEvent()
    {
        return this.clickEvent == null ? this.getParent().getClickEvent() : this.clickEvent;
    }
项目:CustomWorldGen    文件:EntityPlayer.java   
/**
 * Get the formatted ChatComponent that will be used for the sender's username in chat
 */
public ITextComponent getDisplayName()
{
    ITextComponent itextcomponent = new TextComponentString("");
    if (!prefixes.isEmpty()) for (ITextComponent prefix : prefixes) itextcomponent.appendSibling(prefix);
    itextcomponent.appendSibling(new TextComponentString(ScorePlayerTeam.formatPlayerName(this.getTeam(), this.getDisplayNameString())));
    if (!suffixes.isEmpty()) for (ITextComponent suffix : suffixes) itextcomponent.appendSibling(suffix);
    itextcomponent.getStyle().setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/msg " + this.getName() + " "));
    itextcomponent.getStyle().setHoverEvent(this.getHoverEvent());
    itextcomponent.getStyle().setInsertion(this.getName());
    return itextcomponent;
}
项目:blockbuster    文件:GuiReplay.java   
/**
 * Send record message to the player
 */
private void sendRecordMessage()
{
    EntityPlayer player = this.mc.thePlayer;

    if (this.filename.getText().isEmpty())
    {
        L10n.error(player, "recording.fill_filename");

        return;
    }

    String command = "/action record " + this.filename.getText() + " " + this.pos.getX() + " " + this.pos.getY() + " " + this.pos.getZ();

    ITextComponent component = new TextComponentString(stringClickhere);
    component.getStyle().setClickEvent(new ClickEvent(Action.RUN_COMMAND, command));
    component.getStyle().setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponentString(command)));
    component.getStyle().setColor(TextFormatting.GRAY).setUnderlined(true);

    L10n.info(player, "recording.message", this.filename.getText(), component);

    /* Add the command to the history */
    List<String> messages = this.mc.ingameGUI.getChatGUI().getSentMessages();

    boolean empty = messages.isEmpty();
    boolean lastMessageIsntCommand = !empty && !messages.get(messages.size() - 1).equals(command);

    if (lastMessageIsntCommand || empty)
    {
        messages.add(command);
    }
}
项目:Minecraft-Flux    文件:Msg.java   
@SideOnly(Side.CLIENT)
@Override
protected void climsg(EntityPlayer p) {
    final TextComponentTranslation tt = new TextComponentTranslation("mcflux.update.newversion", version);
    tt.getStyle().setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, R.MF_URL));
    p.sendMessage(tt);
}
项目:pycode-minecraft    文件:GuiPythonBook.java   
/**
 * Executes the click event specified by the given chat component
 */
protected boolean handleComponentClick(ITextComponent component) {
    ClickEvent clickevent = component.getStyle().getClickEvent();

    if (clickevent == null) {
        return false;
    } else if (clickevent.getAction() == ClickEvent.Action.CHANGE_PAGE) {
        String s = clickevent.getValue();

        try {
            int i = Integer.parseInt(s) - 1;

            if (i >= 0 && i < this.bookTotalPages && i != this.currPage) {
                this.currPage = i;
                this.updateButtons();
                return true;
            }
        } catch (Throwable var5) {
            ;
        }

        return false;
    } else {
        boolean flag = super.handleComponentClick(component);
        if (flag && clickevent.getAction() == ClickEvent.Action.RUN_COMMAND) {
            this.mc.displayGuiScreen((GuiScreen)null);
        }
        return flag;
    }
}
项目:morecommands    文件:CommandMorecommands.java   
@Override
public String execute(CommandSender sender, String[] params) throws CommandException {
    DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");

    ITextComponent textModid = new TextComponentString("MODID:             ").setStyle(new Style().setColor(TextFormatting.DARK_AQUA));
    ITextComponent modid = new TextComponentString(Reference.MODID).setStyle(new Style().setColor(TextFormatting.GREEN));

    ITextComponent textVersion = new TextComponentString("VERSION:          ").setStyle(new Style().setColor(TextFormatting.DARK_AQUA));
    ITextComponent version = new TextComponentString(Reference.VERSION).setStyle(new Style().setColor(TextFormatting.GREEN));

    ITextComponent textName = new TextComponentString("NAME:              ").setStyle(new Style().setColor(TextFormatting.DARK_AQUA));
    ITextComponent name = new TextComponentString(Reference.NAME).setStyle(new Style().setColor(TextFormatting.GREEN));

    ITextComponent textModDir = new TextComponentString("MOD_DIR:          ").setStyle(new Style().setColor(TextFormatting.DARK_AQUA));
    ITextComponent modDir = new TextComponentString(Reference.getModDir().getPath()).setStyle(new Style().setColor(TextFormatting.GREEN));

    ITextComponent textBuildDate = new TextComponentString("BUILD_DATE:     ").setStyle(new Style().setColor(TextFormatting.DARK_AQUA));
    ITextComponent builDate = new TextComponentString(df.format(Reference.BUILD)).setStyle(new Style().setColor(TextFormatting.GREEN));

    ITextComponent textWebsite = new TextComponentString("WEBSITE         ").setStyle(new Style().setColor(TextFormatting.DARK_AQUA));
    ITextComponent website = new TextComponentString(Reference.WEBSITE).setStyle(new Style().setColor(TextFormatting.GREEN).setUnderlined(true).setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, Reference.WEBSITE)));

    sender.sendChatComponent(textModid.appendSibling(modid));
    sender.sendChatComponent(textVersion.appendSibling(version));
    sender.sendChatComponent(textName.appendSibling(name));
    sender.sendChatComponent(textModDir.appendSibling(modDir));
    sender.sendChatComponent(textBuildDate.appendSibling(builDate));
    sender.sendChatComponent(textWebsite.appendSibling(website));

    return null;
}
项目:morecommands    文件:CommandMorecommands.java   
@Override
public String execute(CommandSender sender, String[] params) throws CommandException {
    DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");

    ITextComponent textModid = new TextComponentString("MODID:             ").setStyle(new Style().setColor(TextFormatting.DARK_AQUA));
    ITextComponent modid = new TextComponentString(Reference.MODID).setStyle(new Style().setColor(TextFormatting.GREEN));

    ITextComponent textVersion = new TextComponentString("VERSION:          ").setStyle(new Style().setColor(TextFormatting.DARK_AQUA));
    ITextComponent version = new TextComponentString(Reference.VERSION).setStyle(new Style().setColor(TextFormatting.GREEN));

    ITextComponent textName = new TextComponentString("NAME:              ").setStyle(new Style().setColor(TextFormatting.DARK_AQUA));
    ITextComponent name = new TextComponentString(Reference.NAME).setStyle(new Style().setColor(TextFormatting.GREEN));

    ITextComponent textModDir = new TextComponentString("MOD_DIR:          ").setStyle(new Style().setColor(TextFormatting.DARK_AQUA));
    ITextComponent modDir = new TextComponentString(Reference.getModDir().getPath()).setStyle(new Style().setColor(TextFormatting.GREEN));

    ITextComponent textBuildDate = new TextComponentString("BUILD_DATE:     ").setStyle(new Style().setColor(TextFormatting.DARK_AQUA));
    ITextComponent builDate = new TextComponentString(df.format(Reference.BUILD)).setStyle(new Style().setColor(TextFormatting.GREEN));

    ITextComponent textWebsite = new TextComponentString("WEBSITE         ").setStyle(new Style().setColor(TextFormatting.DARK_AQUA));
    ITextComponent website = new TextComponentString(Reference.WEBSITE).setStyle(new Style().setColor(TextFormatting.GREEN).setUnderlined(true).setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, Reference.WEBSITE)));

    sender.sendChatComponent(textModid.appendSibling(modid));
    sender.sendChatComponent(textVersion.appendSibling(version));
    sender.sendChatComponent(textName.appendSibling(name));
    sender.sendChatComponent(textModDir.appendSibling(modDir));
    sender.sendChatComponent(textBuildDate.appendSibling(builDate));
    sender.sendChatComponent(textWebsite.appendSibling(website));

    return null;
}
项目:morecommands    文件:CommonProxy.java   
/**
 * Starts a thread looking for MoreCommands updates
 */
private void findMoreCommandsUpdates() {
    this.mod.getLogger().info("Searching for MoreCommands updates");

    new Thread(new MoreCommandsUpdater(Loader.MC_VERSION, new MoreCommandsUpdater.UpdateCallback() {
        @Override
        public void udpate(String version, String website, String download) {
            TextComponentString text = new TextComponentString(Reference.VERSION.equals(version) ? 
                    "MoreCommands update for this version found " : "new MoreCommands version found: "); 
            text.getStyle().setColor(TextFormatting.BLUE);
            TextComponentString downloadVersion = new TextComponentString(version); downloadVersion.getStyle().setColor(TextFormatting.YELLOW);
            TextComponentString homepage = new TextComponentString("Minecraft Forum"); homepage.getStyle().setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, website)).setColor(TextFormatting.GREEN).setItalic(true).setUnderlined(true);
            TextComponentString downloadPage = new TextComponentString("Download"); downloadPage.getStyle().setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, download)).setColor(TextFormatting.GREEN).setItalic(true).setUnderlined(true);
            TextComponentString comma = new TextComponentString(", "); comma.getStyle().setColor(TextFormatting.DARK_GRAY);
            TextComponentString sep = new TextComponentString(" - "); sep.getStyle().setColor(TextFormatting.DARK_GRAY);

            String rawText = text.getUnformattedText() + (Reference.VERSION.equals(version) ? "" : downloadVersion.getUnformattedText()) + " - " + website + ", " + download;
            if (!Reference.VERSION.equals(version)) text.appendSibling(downloadVersion);
            text.appendSibling(sep).appendSibling(homepage).appendSibling(comma).appendSibling(downloadPage);

            CommonProxy.this.mod.getLogger().info(rawText);
            CommonProxy.this.updateText = text;

            if (MoreCommands.isClientSide() && net.minecraft.client.Minecraft.getMinecraft().player != null) {
                CommonProxy.this.playerNotified = true;
                net.minecraft.client.Minecraft.getMinecraft().player.sendMessage(text);
            }
        }
    }), "MoreCommands Update Thread").start();
}
项目:Progression    文件:CommandHelp.java   
@Override
public boolean processCommand(ICommandSender sender, String[] parameters) throws CommandException {
    List list = this.getSortedPossibleCommands(sender);
    byte b0 = 7;
    int i = (list.size() - 1) / b0;
    boolean flag = false;
    int k;

    try {
        k = parameters.length == 0 ? 0 : net.minecraft.command.CommandBase.parseInt(parameters[0], 1, i + 1) - 1;
    } catch (NumberInvalidException numberinvalidexception) {
        Map map = this.getCommands();
        AbstractCommand icommand = (AbstractCommand) map.get(parameters[0]);

        if (icommand != null) {
            CommandManager.throwError(sender, icommand);
            return true;
        }

        if (MathHelper.parseIntWithDefault(parameters[0], -1) != -1) {
            throw numberinvalidexception;
        }

        throw new CommandNotFoundException();
    }

    int j = Math.min((k + 1) * b0, list.size());
    TextComponentTranslation chatcomponenttranslation1 = new TextComponentTranslation("crafting.commands.help.header", new Object[] { Integer.valueOf(k + 1), Integer.valueOf(i + 1) });
    chatcomponenttranslation1.getStyle().setColor(TextFormatting.DARK_GREEN);
    sender.addChatMessage(chatcomponenttranslation1);

    for (int l = k * b0; l < j; ++l) {
        AbstractCommand icommand1 = (AbstractCommand) list.get(l);
        TextComponentTranslation chatcomponenttranslation = new TextComponentTranslation(CommandManager.getUsage(icommand1), new Object[0]);
        chatcomponenttranslation.getStyle().setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/" + icommand1.getCommandName() + " "));
        sender.addChatMessage(chatcomponenttranslation);
    }

    return true;
}
项目:Easy-Editors    文件:CommandHelpManager.java   
@Override
public boolean mouseClicked(int mouseX, int mouseY, int y, int virtualWidth) {
    if (clickEvent != null) {
        String str = TextFormatting.RED + "No image found at " + location;
        int imageLeft, imageRight, imageBottom;
        if (theImage == null) {
            imageLeft = virtualWidth / 2 - fontRenderer.getStringWidth(str) / 2;
            imageRight = imageLeft + fontRenderer.getStringWidth(str);
            imageBottom = y + fontRenderer.FONT_HEIGHT;
        } else {
            imageLeft = virtualWidth / 2 - viewportWidth / 2;
            imageRight = imageLeft + viewportWidth;
            imageBottom = y + viewportHeight;
        }
        if (mouseX >= imageLeft && mouseX < imageRight && mouseY >= y && mouseY < imageBottom) {
            if (clickEvent.getAction() == ClickEvent.Action.CHANGE_PAGE) {
                String value = clickEvent.getValue();
                String name = null;
                if (value.contains("=")) {
                    int equalsIndex = value.indexOf('=');
                    name = value.substring(0, equalsIndex);
                    value = value.substring(equalsIndex + 1);
                }
                CommandHelpManager.getInstance().displayHelpScreen(name, value);
                return true;
            } else {
                return GeneralUtils.handleClickEvent(clickEvent);
            }
        }
    }
    return false;
}
项目:HCoreLib    文件:ChatUtils.java   
/**
 * Creates a url chat component.
 *
 * @param separateMessages boolean flag to separate by commas and space.
 * @param url String url to use.
 * @param maskURL String url mask.
 * @param messages Messages.
 * @return IChatComponent.
 */
public static ITextComponent createURLComponent(boolean separateMessages, String url, String maskURL, String... messages) {
    if (!StringUtils.nullCheckString(url) || !StringUtils.contains(url, '.'))
        throw new NullPointerException("URL doesn't exist!");

    ITextComponent comp = createComponent(separateMessages, messages);
    comp.appendText(" " + (StringUtils.nullCheckString(maskURL) ? maskURL : url));

    comp.getStyle().setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, url));

    return comp;
}
项目:HCoreLib    文件:ChatUtils.java   
/**
 * Creates a command chat component.
 *
 * @param separateMessages boolean flag to separate by commas and space.
 * @param command HCommand to use.
 * @param messages Messages.
 * @return IChatComponent.
 */
public static ITextComponent createCmdComponent(boolean separateMessages, HCommand command, String... messages) {
    if (command == null)
        return createComponent(false, "<Invalid command>");

    ITextComponent comp = createComponent(separateMessages, messages);

    comp.getStyle().setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND,
            command.getUsage(null)));

    return comp;
}
项目:HCoreLib    文件:ChatUtils.java   
/**
 * Creates a file chat component.
 *
 * @param separateMessages boolean flag to separate by commas and space.
 * @param file File to open.
 * @param messages Messages.
 * @return IChatComponent.
 */
public static ITextComponent createFileComponent(boolean separateMessages, File file, String... messages) {
    if (file == null || !file.exists())
        return createComponent(false, "<missing file>");

    ITextComponent comp = createComponent(separateMessages, messages);

    comp.getStyle().setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_FILE, file.getAbsolutePath()));

    return comp;
}
项目:D3Core    文件:EventHandler.java   
@SubscribeEvent
public static void playerDeath(LivingDeathEvent event)
{
    if (event.getEntityLiving() instanceof EntityPlayer && printDeathCoords)
    {
        TextComponentString posText = new TextComponentString("X: " + MathHelper.floor(event.getEntityLiving().posX) + " Y: " + MathHelper.floor(event.getEntityLiving().posY + 0.5d) + " Z: " + MathHelper.floor(event.getEntityLiving().posZ));
        try
        {
            MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance();
            if (server.getCommandManager().getPossibleCommands(event.getEntityLiving()).contains(server.getCommandManager().getCommands().get("tp")))
            {
                posText.setStyle(new Style().setItalic(true)
                        .setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponentString("Click to teleport!")))
                        .setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tp " + MathHelper.floor(event.getEntityLiving().posX) + " " + MathHelper.floor(event.getEntityLiving().posY + 0.5d) + " " + MathHelper.floor(event.getEntityLiving().posZ))));
            }
            if (server.getCommandManager().getPossibleCommands(event.getEntityLiving()).contains(server.getCommandManager().getCommands().get("tpx")))
            {
                posText.setStyle(new Style().setItalic(true)
                        .setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponentString("Click to teleport!")))
                        .setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tpx " + ((EntityPlayer) event.getEntityLiving()).dimension + " " + MathHelper.floor(event.getEntityLiving().posX) + " " + MathHelper.floor(event.getEntityLiving().posY + 0.5d) + " " + MathHelper.floor(event.getEntityLiving().posZ))));
            }
        }
        catch (Exception ignored)
        {

        }            
        event.getEntityLiving().sendMessage(new TextComponentString("You died at ").setStyle(new Style().setColor(TextFormatting.AQUA)).appendSibling(posText));
    }
}
项目:ExpandedRailsMod    文件:EntityPlayer.java   
/**
 * Get the formatted ChatComponent that will be used for the sender's username in chat
 */
public ITextComponent getDisplayName()
{
    ITextComponent itextcomponent = new TextComponentString("");
    if (!prefixes.isEmpty()) for (ITextComponent prefix : prefixes) itextcomponent.appendSibling(prefix);
    itextcomponent.appendSibling(new TextComponentString(ScorePlayerTeam.formatPlayerName(this.getTeam(), this.getDisplayNameString())));
    if (!suffixes.isEmpty()) for (ITextComponent suffix : suffixes) itextcomponent.appendSibling(suffix);
    itextcomponent.getStyle().setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/msg " + this.getName() + " "));
    itextcomponent.getStyle().setHoverEvent(this.getHoverEvent());
    itextcomponent.getStyle().setInsertion(this.getName());
    return itextcomponent;
}
项目:mineshot    文件:ChatUtils.java   
public static void printFileLink(String msg, File file) {
    TextComponentTranslation text = new TextComponentTranslation(file.getName());
    String path;

    try {
        path = file.getAbsoluteFile().getCanonicalPath();
    } catch (IOException ex) {
        path = file.getAbsolutePath();
    }

    text.getStyle().setClickEvent(new ClickEvent(OPEN_FILE, path));
    text.getStyle().setUnderlined(true);

    print(msg, text);
}
项目:Battlegear2    文件:ModUpdateDetector.java   
public static void notifyUpdateDone(){
    ICommandSender sender = getSender();
    if(verbose && sender != null){
        sender.sendMessage(new TextComponentString(
                TextFormatting.YELLOW + I18n.format("mud.name") +
                        TextFormatting.WHITE + ": "+I18n.format("message.check.done")
        ));
    }

    int outOfDateCount = 0;
    int failedCount = 0;
    for(UpdateEntry e : updateMap.values()){
        try {
            if(!e.isUpToDate()){
                outOfDateCount ++;
            }
        } catch (Exception e1) {
            failedCount++;
        }
    }
    TextComponentTranslation chat;
    if(outOfDateCount > 0){
        if(sender != null){
            chat = new TextComponentTranslation("message.you.have.outdated", outOfDateCount);
            chat.getStyle().setColor(TextFormatting.RED);
            sender.sendMessage(chat);
            chat = new TextComponentTranslation("message.type.to.view");
            chat.getStyle().setColor(TextFormatting.RED).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/mud"));
            sender.sendMessage(chat);
        }
    }else if (verbose){
        if(sender != null){
            chat = new TextComponentTranslation("message.up.to.date");
            chat.getStyle().setColor(TextFormatting.DARK_GREEN);
            sender.sendMessage(chat);
        }
    }
    hasChecked = true;
}
项目:Wurst-MC-1.12    文件:TemplateToolMod.java   
private void saveFile()
{
    step = Step.values()[step.ordinal() + 1];

    new Thread(() -> {

        JsonObject json = new JsonObject();

        // get facings
        EnumFacing front = EnumFacing.getHorizontal(4 - WMinecraft
            .getPlayer().getHorizontalFacing().getHorizontalIndex());
        EnumFacing left = front.rotateYCCW();

        // add sorted blocks
        JsonArray jsonBlocks = new JsonArray();
        for(BlockPos pos : template.sortedBlocks)
        {
            // translate
            pos = pos.subtract(Step.FIRST_BLOCK.pos);

            // rotate
            pos = new BlockPos(0, pos.getY(), 0).offset(front, pos.getZ())
                .offset(left, pos.getX());

            // add to json
            jsonBlocks.add(JsonUtils.gson.toJsonTree(
                new int[]{pos.getX(), pos.getY(), pos.getZ()},
                int[].class));
        }
        json.add("blocks", jsonBlocks);

        try(PrintWriter save = new PrintWriter(new FileWriter(file)))
        {
            // save file
            save.print(JsonUtils.prettyGson.toJson(json));

            // show success message
            TextComponentString message =
                new TextComponentString("Saved template as ");
            TextComponentString link =
                new TextComponentString(file.getName());
            ClickEvent event = new ClickEvent(ClickEvent.Action.OPEN_FILE,
                file.getParentFile().getAbsolutePath());
            link.getStyle().setUnderlined(true).setClickEvent(event);
            message.appendSibling(link);
            ChatUtils.component(message);

        }catch(IOException e)
        {
            e.printStackTrace();

            // show error message
            ChatUtils.error("File could not be saved.");
        }

        // update AutoBuild
        wurst.mods.autoBuildMod.loadTemplates();

        // disable TemplateTool
        setEnabled(false);

    }, "TemplateTool").start();
}
项目:Backmemed    文件:GuiScreenBook.java   
/**
 * Executes the click event specified by the given chat component
 */
protected boolean handleComponentClick(ITextComponent component)
{
    ClickEvent clickevent = component.getStyle().getClickEvent();

    if (clickevent == null)
    {
        return false;
    }
    else if (clickevent.getAction() == ClickEvent.Action.CHANGE_PAGE)
    {
        String s = clickevent.getValue();

        try
        {
            int i = Integer.parseInt(s) - 1;

            if (i >= 0 && i < this.bookTotalPages && i != this.currPage)
            {
                this.currPage = i;
                this.updateButtons();
                return true;
            }
        }
        catch (Throwable var5)
        {
            ;
        }

        return false;
    }
    else
    {
        boolean flag = super.handleComponentClick(component);

        if (flag && clickevent.getAction() == ClickEvent.Action.RUN_COMMAND)
        {
            this.mc.displayGuiScreen((GuiScreen)null);
        }

        return flag;
    }
}
项目:Backmemed    文件:Style.java   
@Nullable
public ClickEvent getClickEvent()
{
    return null;
}
项目:Backmemed    文件:Style.java   
public Style setClickEvent(ClickEvent event)
{
    throw new UnsupportedOperationException();
}
项目:Backmemed    文件:Style.java   
/**
 * Sets the event that should be run when text of this ChatStyle is clicked on.
 */
public Style setClickEvent(ClickEvent event)
{
    this.clickEvent = event;
    return this;
}
项目:Backmemed    文件:TileEntitySign.java   
public boolean executeCommand(final EntityPlayer playerIn)
{
    ICommandSender icommandsender = new ICommandSender()
    {
        public String getName()
        {
            return playerIn.getName();
        }
        public ITextComponent getDisplayName()
        {
            return playerIn.getDisplayName();
        }
        public void addChatMessage(ITextComponent component)
        {
        }
        public boolean canCommandSenderUseCommand(int permLevel, String commandName)
        {
            return permLevel <= 2;
        }
        public BlockPos getPosition()
        {
            return TileEntitySign.this.pos;
        }
        public Vec3d getPositionVector()
        {
            return new Vec3d((double)TileEntitySign.this.pos.getX() + 0.5D, (double)TileEntitySign.this.pos.getY() + 0.5D, (double)TileEntitySign.this.pos.getZ() + 0.5D);
        }
        public World getEntityWorld()
        {
            return playerIn.getEntityWorld();
        }
        public Entity getCommandSenderEntity()
        {
            return playerIn;
        }
        public boolean sendCommandFeedback()
        {
            return false;
        }
        public void setCommandStat(CommandResultStats.Type type, int amount)
        {
            if (TileEntitySign.this.world != null && !TileEntitySign.this.world.isRemote)
            {
                TileEntitySign.this.stats.setCommandStatForSender(TileEntitySign.this.world.getMinecraftServer(), this, type, amount);
            }
        }
        public MinecraftServer getServer()
        {
            return playerIn.getServer();
        }
    };

    for (ITextComponent itextcomponent : this.signText)
    {
        Style style = itextcomponent == null ? null : itextcomponent.getStyle();

        if (style != null && style.getClickEvent() != null)
        {
            ClickEvent clickevent = style.getClickEvent();

            if (clickevent.getAction() == ClickEvent.Action.RUN_COMMAND)
            {
                playerIn.getServer().getCommandManager().executeCommand(icommandsender, clickevent.getValue());
            }
        }
    }

    return true;
}
项目:Backmemed    文件:CommandHelp.java   
/**
 * Callback for when the command is executed
 */
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException
{
    if (sender instanceof CommandBlockBaseLogic)
    {
        sender.addChatMessage((new TextComponentString("Searge says: ")).appendText(seargeSays[this.rand.nextInt(seargeSays.length) % seargeSays.length]));
    }
    else
    {
        List<ICommand> list = this.getSortedPossibleCommands(sender, server);
        int i = 7;
        int j = (list.size() - 1) / 7;
        int k = 0;

        try
        {
            k = args.length == 0 ? 0 : parseInt(args[0], 1, j + 1) - 1;
        }
        catch (NumberInvalidException numberinvalidexception)
        {
            Map<String, ICommand> map = this.getCommandMap(server);
            ICommand icommand = (ICommand)map.get(args[0]);

            if (icommand != null)
            {
                throw new WrongUsageException(icommand.getCommandUsage(sender), new Object[0]);
            }

            if (MathHelper.getInt(args[0], -1) == -1 && MathHelper.getInt(args[0], -2) == -2)
            {
                throw new CommandNotFoundException();
            }

            throw numberinvalidexception;
        }

        int l = Math.min((k + 1) * 7, list.size());
        TextComponentTranslation textcomponenttranslation1 = new TextComponentTranslation("commands.help.header", new Object[] {Integer.valueOf(k + 1), Integer.valueOf(j + 1)});
        textcomponenttranslation1.getStyle().setColor(TextFormatting.DARK_GREEN);
        sender.addChatMessage(textcomponenttranslation1);

        for (int i1 = k * 7; i1 < l; ++i1)
        {
            ICommand icommand1 = (ICommand)list.get(i1);
            TextComponentTranslation textcomponenttranslation = new TextComponentTranslation(icommand1.getCommandUsage(sender), new Object[0]);
            textcomponenttranslation.getStyle().setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/" + icommand1.getCommandName() + " "));
            sender.addChatMessage(textcomponenttranslation);
        }

        if (k == 0)
        {
            TextComponentTranslation textcomponenttranslation2 = new TextComponentTranslation("commands.help.footer", new Object[0]);
            textcomponenttranslation2.getStyle().setColor(TextFormatting.GREEN);
            sender.addChatMessage(textcomponenttranslation2);
        }
    }
}
项目:BetterBeginningsReborn    文件:TileEntityInfusionRepair.java   
public void activate(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, @Nullable ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ)
   {
if(player.isSneaking())
{
    if(Prep1_11.isEmpty(heldItem))
    {
    if(hasEnchItem())
    {
        if(!world.isRemote)
        {
        world.spawnEntity(new EntityItem(world, pos.getX(), pos.getY() + 1, pos.getZ(), mainHandler.getStackInSlot(SLOT_ENCH_ITEM)));
        }
        mainHandler.setStackInSlot(SLOT_ENCH_ITEM, null);
        mode = Mode.NONE;
        pendingIngredients.clear();
        markDirty();
        world.notifyBlockUpdate(pos, state, state, 8);
    }
    else if(world.isRemote)
    {
        ITextComponent link1 = new TextComponentString("Infusion Repair");
        link1.setStyle(new Style().setBold(true).setUnderlined(true).setClickEvent(new ClickEvent(Action.OPEN_URL, "https://github.com/einsteinsci/betterbeginnings/wiki/Infusion-Repair")));
        ITextComponent link2 = new TextComponentString("Enchantment Diffusion");
        link2.setStyle(new Style().setBold(true).setUnderlined(true).setClickEvent(new ClickEvent(Action.OPEN_URL, "https://github.com/einsteinsci/betterbeginnings/wiki/Enchantment-Diffusion")));
        ITextComponent message = new TextComponentString("See the BB wiki articles on ");
        message.appendSibling(link1);
        player.sendMessage(message);
        player.sendMessage(new TextComponentString("and ").appendSibling(link2));
    }
    }
}
else
{
    if(Prep1_11.isEmpty(heldItem) || hasEnchItem() || mode != Mode.NONE) return;
    if(heldItem.getItem() == RegisterItems.cloth)
    {
    mode = Mode.DIFFUSION;
    }
    else if(heldItem.isItemEnchanted())
    {
    if(heldItem.getEnchantmentTagList().tagCount() > 8)
    {
        player.sendMessage(new TextComponentTranslation("diffusion.toomanyenchants"));
        mode = Mode.NONE;
        return;
    }
    mode = Mode.REPAIR;
    pendingIngredients.clear();
    pendingIngredients.addAll(InfusionRepairUtil.getRequiredStacks(heldItem));
    xpLevelsNeeded = InfusionRepairUtil.getTakenLevels(heldItem);
    markDirty();
    }
    else
    return;
    ItemStack newStack = heldItem.copy();
    newStack.setCount(1);
    mainHandler.setStackInSlot(heldItem.isItemEnchanted() ? SLOT_ENCH_ITEM : 1, newStack);
    heldItem.shrink(1);
}
   }
项目:CustomWorldGen    文件:GuiScreenBook.java   
/**
 * Executes the click event specified by the given chat component
 */
protected boolean handleComponentClick(ITextComponent component)
{
    ClickEvent clickevent = component.getStyle().getClickEvent();

    if (clickevent == null)
    {
        return false;
    }
    else if (clickevent.getAction() == ClickEvent.Action.CHANGE_PAGE)
    {
        String s = clickevent.getValue();

        try
        {
            int i = Integer.parseInt(s) - 1;

            if (i >= 0 && i < this.bookTotalPages && i != this.currPage)
            {
                this.currPage = i;
                this.updateButtons();
                return true;
            }
        }
        catch (Throwable var5)
        {
            ;
        }

        return false;
    }
    else
    {
        boolean flag = super.handleComponentClick(component);

        if (flag && clickevent.getAction() == ClickEvent.Action.RUN_COMMAND)
        {
            this.mc.displayGuiScreen((GuiScreen)null);
        }

        return flag;
    }
}
项目:CustomWorldGen    文件:Style.java   
/**
 * The effective chat click event.
 */
@Nullable
public ClickEvent getClickEvent()
{
    return null;
}
项目:CustomWorldGen    文件:Style.java   
/**
 * Sets the event that should be run when text of this ChatStyle is clicked on.
 */
public Style setClickEvent(ClickEvent event)
{
    throw new UnsupportedOperationException();
}
项目:CustomWorldGen    文件:Style.java   
/**
 * The effective chat click event.
 */
@Nullable
public ClickEvent getClickEvent()
{
    return this.clickEvent == null ? this.getParent().getClickEvent() : this.clickEvent;
}
项目:CustomWorldGen    文件:Style.java   
/**
 * Sets the event that should be run when text of this ChatStyle is clicked on.
 */
public Style setClickEvent(ClickEvent event)
{
    this.clickEvent = event;
    return this;
}