Beispiel #1
0
  public void func_71515_b(ICommandSender p_71515_1_, String[] p_71515_2_) {
    if (p_71515_2_.length >= 1 && p_71515_2_[0].length() > 1) {
      Matcher var3 = field_147211_a.matcher(p_71515_2_[0]);
      IChatComponent var4 = null;
      if (p_71515_2_.length >= 2) {
        var4 = func_147178_a(p_71515_1_, p_71515_2_, 1);
      }

      if (var3.matches()) {
        this.func_147210_a(p_71515_1_, p_71515_2_[0], var4 == null ? null : var4.func_150260_c());
      } else {
        EntityPlayerMP var5 =
            MinecraftServer.func_71276_C().func_71203_ab().func_72361_f(p_71515_2_[0]);
        if (var5 == null) {
          throw new PlayerNotFoundException("commands.banip.invalid", new Object[0]);
        }

        this.func_147210_a(
            p_71515_1_, var5.func_71114_r(), var4 == null ? null : var4.func_150260_c());
      }

    } else {
      throw new WrongUsageException("commands.banip.usage", new Object[0]);
    }
  }
 /**
  * Returns true if the given quest made progress and/or no further interactions should occur.
  *
  * @param player
  * @param quest Quest instance to check for progress
  * @param handler IQuestHandler will have its methods called at appropriate times; pass {@link
  *     #DEFAULT_QUEST_HANDLER} if none available
  * @param data Optional arguments passed to the various {@code IQuest} methods, e.g. {@link
  *     IQuest#begin begin} and {@link IQuest#complete complete}
  * @return True if something happened, i.e. the calling interaction should be canceled
  */
 public static boolean checkQuestProgress(
     EntityPlayer player, IQuest quest, IQuestHandler handler, Object... data) {
   boolean changed = false;
   if (quest.isComplete(player)) {
     // do nothing if quest is already complete
   } else if (quest.canBegin(player)) {
     if (quest.begin(player, data)) {
       handler.onQuestBegun(quest, player);
       changed = true;
     }
   } else if (quest.canComplete(player)) {
     if (quest.complete(player, data)) {
       handler.onQuestCompleted(quest, player);
       changed = true;
     }
   } else if (quest.hasBegun(player) && quest.update(player, data)) {
     handler.onQuestChanged(quest, player);
     changed = true;
   }
   if (!changed) { // check for hint
     IChatComponent hint = quest.getHint(player, data);
     if (hint != null) { // result may be different on client vs. server due to Random
       if (!player.worldObj.isRemote && !hint.getFormattedText().equals("")) {
         player.addChatMessage(hint);
       }
       return true;
     }
   }
   if (changed && quest.requiresSync() && player instanceof EntityPlayerMP) {
     PacketDispatcher.sendTo(new SyncQuestPacket(quest), (EntityPlayerMP) player);
   }
   return changed;
 }
  /** Called when a CommandSender executes this command */
  public void execute(ICommandSender sender, String[] args) throws CommandException {
    if (args.length >= 1 && args[0].length() > 1) {
      IChatComponent ichatcomponent =
          args.length >= 2 ? getChatComponentFromNthArg(sender, args, 1) : null;
      Matcher matcher = field_147211_a.matcher(args[0]);

      if (matcher.matches()) {
        this.func_147210_a(
            sender, args[0], ichatcomponent == null ? null : ichatcomponent.getUnformattedText());
      } else {
        EntityPlayerMP entityplayermp =
            MinecraftServer.getServer().getConfigurationManager().getPlayerByUsername(args[0]);

        if (entityplayermp == null) {
          throw new PlayerNotFoundException("commands.banip.invalid", new Object[0]);
        }

        this.func_147210_a(
            sender,
            entityplayermp.getPlayerIP(),
            ichatcomponent == null ? null : ichatcomponent.getUnformattedText());
      }
    } else {
      throw new WrongUsageException("commands.banip.usage", new Object[0]);
    }
  }
Beispiel #4
0
 @Override
 public synchronized void printChatMessageWithOptionalDeletion(IChatComponent ichat, int id) {
   // chat listeners
   ChatRecievedEvent chatevent = new ChatRecievedEvent(ichat, id);
   chatevent.channels.add(ChatChannel.DEFAULT_CHANNEL);
   tc.getEventManager().onChatRecieved(chatevent);
   // chat filters
   ichat = chatevent.chat;
   id = chatevent.id;
   if (ichat != null && !ichat.getUnformattedText().isEmpty()) {
     if (id != 0) {
       // send removable msg to current channel
       chatevent.channels.clear();
       chatevent.channels.add(this.chat.getActiveChannel());
     }
     if (chatevent.channels.contains(ChatChannel.DEFAULT_CHANNEL)
         && chatevent.channels.size() > 1
         && !tc.serverSettings.general.useDefaultTab.getValue()) {
       chatevent.channels.remove(ChatChannel.DEFAULT_CHANNEL);
     }
     boolean msg = !chatevent.channels.contains(this.chat.getActiveChannel());
     for (Channel channel : chatevent.channels) {
       channel.addMessage(ichat, id);
       if (msg) {
         channel.setStatus(ChannelStatus.UNREAD);
       }
     }
     TabbyChat.getLogger().info("[CHAT] " + ichat.getUnformattedText());
     this.chat.getChatBox().updateComponent();
   }
 }
Beispiel #5
0
  public void processCommand(ICommandSender par1ICommandSender, String[] par2ArrayOfStr) {
    if (par2ArrayOfStr.length >= 1 && par2ArrayOfStr[0].length() > 1) {
      Matcher var3 = field_147211_a.matcher(par2ArrayOfStr[0]);
      IChatComponent var4 = null;

      if (par2ArrayOfStr.length >= 2) {
        var4 = func_147178_a(par1ICommandSender, par2ArrayOfStr, 1);
      }

      if (var3.matches()) {
        this.func_147210_a(
            par1ICommandSender, par2ArrayOfStr[0], var4 == null ? null : var4.getUnformattedText());
      } else {
        EntityPlayerMP var5 =
            MinecraftServer.getServer()
                .getConfigurationManager()
                .getPlayerEntity(par2ArrayOfStr[0]);

        if (var5 == null) {
          throw new PlayerNotFoundException("commands.banip.invalid", new Object[0]);
        }

        this.func_147210_a(
            par1ICommandSender,
            var5.getPlayerIP(),
            var4 == null ? null : var4.getUnformattedText());
      }
    } else {
      throw new WrongUsageException("commands.banip.usage", new Object[0]);
    }
  }
Beispiel #6
0
  /** Creates a copy of this component. Almost a deep copy, except the style is shallow-copied. */
  public ChatComponentText createCopy() {
    ChatComponentText var1 = new ChatComponentText(this.text);
    var1.setChatStyle(this.getChatStyle().createShallowCopy());
    Iterator var2 = this.getSiblings().iterator();

    while (var2.hasNext()) {
      IChatComponent var3 = (IChatComponent) var2.next();
      var1.appendSibling(var3.createCopy());
    }

    return var1;
  }
Beispiel #7
0
  public ChatComponentScore func_179996_i() {
    ChatComponentScore var1 = new ChatComponentScore(this.field_179999_b, this.field_180000_c);
    var1.func_179997_b(this.field_179998_d);
    var1.setChatStyle(this.getChatStyle().createShallowCopy());
    Iterator var2 = this.getSiblings().iterator();

    while (var2.hasNext()) {
      IChatComponent var3 = (IChatComponent) var2.next();
      var1.appendSibling(var3.createCopy());
    }

    return var1;
  }
Beispiel #8
0
  @Override
  public void handleCommand(ICommandSender sender, String[] args) {

    List<String> commandList = new ArrayList<String>(CommandHandler.getCommandList());
    Collections.sort(commandList, String.CASE_INSENSITIVE_ORDER);
    commandList.remove(getCommandName());
    for (int i = 0; i < commandList.size(); ++i) {
      String name = commandList.get(i);
      if (!CommandHandler.canUseCommand(sender, CommandHandler.getCommandPermission(name), name)) {
        commandList.remove(i--);
      }
    }
    final int pageSize = 7;
    int maxPages = (commandList.size() - 1) / pageSize;
    int page;

    try {
      page =
          args.length == 1 ? 0 : CommandBase.parseIntBounded(sender, args[1], 1, maxPages + 1) - 1;
    } catch (NumberInvalidException numberinvalidexception) {
      String commandName = args[1];
      if (!CommandHandler.getCommandExists(commandName)) {
        throw new CommandNotFoundException("info.cofh.command.notFound");
      }
      sender.addChatMessage(
          new ChatComponentTranslation("info.cofh.command." + commandName + ".syntax"));
      return;
    }

    int maxIndex = Math.min((page + 1) * pageSize, commandList.size());
    IChatComponent chatcomponenttranslation1 =
        new ChatComponentTranslation("commands.help.header", page + 1, maxPages + 1);
    chatcomponenttranslation1.getChatStyle().setColor(EnumChatFormatting.DARK_GREEN);
    sender.addChatMessage(chatcomponenttranslation1);

    for (int i = page * pageSize; i < maxIndex; ++i) {
      IChatComponent chatcomponenttranslation =
          new ChatComponentText("/cofh " + StringHelper.YELLOW + commandList.get(i));
      chatcomponenttranslation
          .getChatStyle()
          .setChatClickEvent(
              new ClickEvent(
                  ClickEvent.Action.SUGGEST_COMMAND, "/cofh syntax " + commandList.get(i)));
      sender.addChatMessage(chatcomponenttranslation);
    }
  }
Beispiel #9
0
  public IChatComponent func_151000_E() {
    IChatComponent ichatcomponent =
        (new ChatComponentText("[")).appendText(this.getDisplayName()).appendText("]");

    if (this.field_151002_e != null) {
      NBTTagCompound nbttagcompound = new NBTTagCompound();
      this.writeToNBT(nbttagcompound);
      ichatcomponent
          .getChatStyle()
          .setChatHoverEvent(
              new HoverEvent(
                  HoverEvent.Action.SHOW_ITEM, new ChatComponentText(nbttagcompound.toString())));
      ichatcomponent.getChatStyle().setColor(this.getRarity().rarityColor);
    }

    return ichatcomponent;
  }
 void fixSerialization() {
   List<HoverEvent> list = Lists.newArrayList();
   @SuppressWarnings("unchecked")
   Iterable<IChatComponent> chat = message;
   for (IChatComponent message : chat) {
     ChatStyle style = message.getChatStyle();
     HoverEvent hover = style.getChatHoverEvent();
     if (list.contains(hover)) continue;
     list.add(hover);
     if (hover != null && hover.getAction() == Action.SHOW_ENTITY) {
       // serialization is bugged
       try {
         String[] names = {"b", "field_150703_b", "value"};
         ReflectionHelper.setFieldValue(HoverEvent.class, hover, null, names);
       } catch (Exception e) {
         e.printStackTrace();
       }
     }
   }
 }
Beispiel #11
0
  public IChatComponent C() {
    ChatComponentText chatcomponenttext = new ChatComponentText(this.q());

    if (this.s()) {
      chatcomponenttext.b().b(Boolean.valueOf(true));
    }

    IChatComponent ichatcomponent = (new ChatComponentText("[")).a(chatcomponenttext).a("]");

    if (this.d != null) {
      NBTTagCompound nbttagcompound = new NBTTagCompound();

      this.b(nbttagcompound);
      ichatcomponent
          .b()
          .a(
              new HoverEvent(
                  HoverEvent.Action.SHOW_ITEM, new ChatComponentText(nbttagcompound.toString())));
      ichatcomponent.b().a(this.u().e);
    }

    return ichatcomponent;
  }
  public static void sendNotice(ICommandSender sender, IChatComponent msg, String permission) {
    ChatComponentTranslation notice =
        new ChatComponentTranslation("chat.type.admin", sender.getName(), msg.createCopy());
    notice.getChatStyle().setColor(EnumChatFormatting.GRAY).setItalic(true);

    if (NEIServerConfig.canPlayerPerformAction("CONSOLE", permission)) {
      MinecraftServer.getServer().addChatMessage(notice);
    }

    for (EntityPlayer p : ServerUtils.getPlayers()) {
      if (p == sender) {
        p.addChatComponentMessage(msg);
      } else if (NEIServerConfig.canPlayerPerformAction(p.getName(), permission)) {
        p.addChatComponentMessage(notice);
      }
    }
  }
 @SideOnly(Side.CLIENT)
 public InventoryBasic(IChatComponent title, int slotCount) {
   this(title.getUnformattedText(), true, slotCount);
 }
Beispiel #14
0
 /**
  * Notifies this sender of some sort of information. This is for messages intended to display to
  * the user. Used for typical output (like "you asked for whether or not this game rule is set, so
  * here's your answer"), warnings (like "I fetched this block for you by ID, but I'd like you to
  * know that every time you do this, I die a little inside"), and errors (like "it's not called
  * iron_pixacke, silly").
  */
 public void addChatMessage(IChatComponent message) {
   logger.info(message.getUnformattedText());
 }
Beispiel #15
0
    public IChatComponent deserialize(
        JsonElement p_deserialize_1_,
        Type p_deserialize_2_,
        JsonDeserializationContext p_deserialize_3_) {
      if (p_deserialize_1_.isJsonPrimitive()) {
        return new ChatComponentText(p_deserialize_1_.getAsString());
      } else if (!p_deserialize_1_.isJsonObject()) {
        if (p_deserialize_1_.isJsonArray()) {
          JsonArray var11 = p_deserialize_1_.getAsJsonArray();
          IChatComponent var12 = null;
          Iterator var15 = var11.iterator();

          while (var15.hasNext()) {
            JsonElement var17 = (JsonElement) var15.next();
            IChatComponent var18 = this.deserialize(var17, var17.getClass(), p_deserialize_3_);

            if (var12 == null) {
              var12 = var18;
            } else {
              var12.appendSibling(var18);
            }
          }

          return var12;
        } else {
          throw new JsonParseException(
              "Don\'t know how to turn " + p_deserialize_1_.toString() + " into a Component");
        }
      } else {
        JsonObject var4 = p_deserialize_1_.getAsJsonObject();
        Object var5;

        if (var4.has("text")) {
          var5 = new ChatComponentText(var4.get("text").getAsString());
        } else if (var4.has("translate")) {
          String var6 = var4.get("translate").getAsString();

          if (var4.has("with")) {
            JsonArray var7 = var4.getAsJsonArray("with");
            Object[] var8 = new Object[var7.size()];

            for (int var9 = 0; var9 < var8.length; ++var9) {
              var8[var9] = this.deserialize(var7.get(var9), p_deserialize_2_, p_deserialize_3_);

              if (var8[var9] instanceof ChatComponentText) {
                ChatComponentText var10 = (ChatComponentText) var8[var9];

                if (var10.getChatStyle().isEmpty() && var10.getSiblings().isEmpty()) {
                  var8[var9] = var10.getChatComponentText_TextValue();
                }
              }
            }

            var5 = new ChatComponentTranslation(var6, var8);
          } else {
            var5 = new ChatComponentTranslation(var6, new Object[0]);
          }
        } else if (var4.has("score")) {
          JsonObject var13 = var4.getAsJsonObject("score");

          if (!var13.has("name") || !var13.has("objective")) {
            throw new JsonParseException("A score component needs a least a name and an objective");
          }

          var5 =
              new ChatComponentScore(
                  JsonUtils.getJsonObjectStringFieldValue(var13, "name"),
                  JsonUtils.getJsonObjectStringFieldValue(var13, "objective"));

          if (var13.has("value")) {
            ((ChatComponentScore) var5)
                .func_179997_b(JsonUtils.getJsonObjectStringFieldValue(var13, "value"));
          }
        } else {
          if (!var4.has("selector")) {
            throw new JsonParseException(
                "Don\'t know how to turn " + p_deserialize_1_.toString() + " into a Component");
          }

          var5 =
              new ChatComponentSelector(JsonUtils.getJsonObjectStringFieldValue(var4, "selector"));
        }

        if (var4.has("extra")) {
          JsonArray var14 = var4.getAsJsonArray("extra");

          if (var14.size() <= 0) {
            throw new JsonParseException("Unexpected empty array of components");
          }

          for (int var16 = 0; var16 < var14.size(); ++var16) {
            ((IChatComponent) var5)
                .appendSibling(
                    this.deserialize(var14.get(var16), p_deserialize_2_, p_deserialize_3_));
          }
        }

        ((IChatComponent) var5)
            .setChatStyle(
                (ChatStyle) p_deserialize_3_.deserialize(p_deserialize_1_, ChatStyle.class));
        return (IChatComponent) var5;
      }
    }
Beispiel #16
0
    public JsonElement serialize(
        IChatComponent p_serialize_1_,
        Type p_serialize_2_,
        JsonSerializationContext p_serialize_3_) {
      if (p_serialize_1_ instanceof ChatComponentText
          && p_serialize_1_.getChatStyle().isEmpty()
          && p_serialize_1_.getSiblings().isEmpty()) {
        return new JsonPrimitive(
            ((ChatComponentText) p_serialize_1_).getChatComponentText_TextValue());
      } else {
        JsonObject var4 = new JsonObject();

        if (!p_serialize_1_.getChatStyle().isEmpty()) {
          this.serializeChatStyle(p_serialize_1_.getChatStyle(), var4, p_serialize_3_);
        }

        if (!p_serialize_1_.getSiblings().isEmpty()) {
          JsonArray var5 = new JsonArray();
          Iterator var6 = p_serialize_1_.getSiblings().iterator();

          while (var6.hasNext()) {
            IChatComponent var7 = (IChatComponent) var6.next();
            var5.add(this.serialize(var7, var7.getClass(), p_serialize_3_));
          }

          var4.add("extra", var5);
        }

        if (p_serialize_1_ instanceof ChatComponentText) {
          var4.addProperty(
              "text", ((ChatComponentText) p_serialize_1_).getChatComponentText_TextValue());
        } else if (p_serialize_1_ instanceof ChatComponentTranslation) {
          ChatComponentTranslation var11 = (ChatComponentTranslation) p_serialize_1_;
          var4.addProperty("translate", var11.getKey());

          if (var11.getFormatArgs() != null && var11.getFormatArgs().length > 0) {
            JsonArray var14 = new JsonArray();
            Object[] var16 = var11.getFormatArgs();
            int var8 = var16.length;

            for (int var9 = 0; var9 < var8; ++var9) {
              Object var10 = var16[var9];

              if (var10 instanceof IChatComponent) {
                var14.add(this.serialize((IChatComponent) var10, var10.getClass(), p_serialize_3_));
              } else {
                var14.add(new JsonPrimitive(String.valueOf(var10)));
              }
            }

            var4.add("with", var14);
          }
        } else if (p_serialize_1_ instanceof ChatComponentScore) {
          ChatComponentScore var12 = (ChatComponentScore) p_serialize_1_;
          JsonObject var15 = new JsonObject();
          var15.addProperty("name", var12.func_179995_g());
          var15.addProperty("objective", var12.func_179994_h());
          var15.addProperty("value", var12.getUnformattedTextForChat());
          var4.add("score", var15);
        } else {
          if (!(p_serialize_1_ instanceof ChatComponentSelector)) {
            throw new IllegalArgumentException(
                "Don\'t know how to serialize " + p_serialize_1_ + " as a Component");
          }

          ChatComponentSelector var13 = (ChatComponentSelector) p_serialize_1_;
          var4.addProperty("selector", var13.func_179992_g());
        }

        return var4;
      }
    }
  @Override
  public boolean run(Screenshot screen) {
    try {
      String title = ConfigHandler.SAVE_DATE_FORMAT.format(new Date());
      String description = "A minecraft screenshot ";

      if (Minecraft.getMinecraft().isSingleplayer()) {
        description += "in " + Minecraft.getMinecraft().getIntegratedServer().getFolderName();
      } else {
        ServerData data = Minecraft.getMinecraft().func_147104_D();
        description +=
            "on " + data.serverIP + (data.field_82821_f != 25565 ? ":" + data.field_82821_f : "");
      }

      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      ImageIO.write(screen.image, "png", baos);
      String data = Base64.encodeBase64String(baos.toByteArray());

      List<NameValuePair> arguments = new ArrayList<NameValuePair>(3);
      arguments.add(new BasicNameValuePair("client_id", ImgurAuthHandler.CLIENT_ID));
      arguments.add(new BasicNameValuePair("image", data));
      arguments.add(new BasicNameValuePair("type", "base64"));
      arguments.add(new BasicNameValuePair("title", title));
      arguments.add(new BasicNameValuePair("description", description));

      HttpPost hpost = new HttpPost("https://api.imgur.com/3/upload");
      hpost.setEntity(new UrlEncodedFormEntity(arguments));

      if (ImgurAuthHandler.getInstance().getAccessToken() != null) {
        hpost.addHeader(
            "Authorization", "Bearer " + ImgurAuthHandler.getInstance().getAccessToken());
      } else {
        hpost.addHeader("Authorization", "Client-ID " + ImgurAuthHandler.CLIENT_ID);
      }

      HttpClient client = HttpClientBuilder.create().build();
      HttpResponse resp = client.execute(hpost);
      String result = EntityUtils.toString(resp.getEntity());

      JsonObject responce = new JsonParser().parse(result).getAsJsonObject();
      JsonObject responceData = responce.get("data").getAsJsonObject();

      if (responce.has("success") && responce.get("success").getAsBoolean()) {
        final String uploadUrl = responceData.get("link").getAsString();

        HistoryHandler.addUploadedImage(
            new UploadedImage(title, uploadUrl, screen, new ImgurImageSource(uploadUrl)));

        IChatComponent message = new ChatComponentTranslation("image.upload.success");
        IChatComponent url = new ChatComponentText("Imgur");
        IChatComponent tooltip =
            new ChatComponentText(uploadUrl)
                .setChatStyle(new ChatStyle().setColor(EnumChatFormatting.AQUA));

        url.setChatStyle(
            new ChatStyle()
                .setColor(EnumChatFormatting.GOLD)
                .setBold(true)
                .setChatHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, tooltip))
                .setChatClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, uploadUrl)));

        message.appendSibling(url);

        MessageHandler.sendChatMessage(message);

        if (ConfigHandler.COPY_URL_TO_CLIPBOARD) {
          GuiScreen.setClipboardString(uploadUrl);
          MessageHandler.sendChatMessage("image.upload.copy");
        }
      } else {
        MessageHandler.sendChatMessage(
            "image.upload.fail", "Imgur", responce.get("status").getAsInt());
        MessageHandler.sendChatMessage(responceData.get("error").getAsString());
        return false;
      }
      return true;
    } catch (Exception ex) {
      ex.printStackTrace();
      MessageHandler.sendChatMessage("image.upload.fail", "Imgur", ex.getMessage());
      return false;
    }
  }
    public IChatComponent deserialize(
        JsonElement p_deserialize_1_,
        Type p_deserialize_2_,
        JsonDeserializationContext p_deserialize_3_) {
      if (p_deserialize_1_.isJsonPrimitive()) {
        return new ChatComponentText(p_deserialize_1_.getAsString());
      } else if (!p_deserialize_1_.isJsonObject()) {
        if (p_deserialize_1_.isJsonArray()) {
          JsonArray jsonarray1 = p_deserialize_1_.getAsJsonArray();
          IChatComponent ichatcomponent = null;
          Iterator iterator = jsonarray1.iterator();

          while (iterator.hasNext()) {
            JsonElement jsonelement1 = (JsonElement) iterator.next();
            IChatComponent ichatcomponent1 =
                this.deserialize(jsonelement1, jsonelement1.getClass(), p_deserialize_3_);

            if (ichatcomponent == null) {
              ichatcomponent = ichatcomponent1;
            } else {
              ichatcomponent.appendSibling(ichatcomponent1);
            }
          }

          return ichatcomponent;
        } else {
          throw new JsonParseException(
              "Don\'t know how to turn " + p_deserialize_1_.toString() + " into a Component");
        }
      } else {
        JsonObject jsonobject = p_deserialize_1_.getAsJsonObject();
        Object object;

        if (jsonobject.has("text")) {
          object = new ChatComponentText(jsonobject.get("text").getAsString());
        } else if (jsonobject.has("translate")) {
          String s = jsonobject.get("translate").getAsString();

          if (jsonobject.has("with")) {
            JsonArray jsonarray = jsonobject.getAsJsonArray("with");
            Object[] aobject = new Object[jsonarray.size()];

            for (int i = 0; i < aobject.length; ++i) {
              aobject[i] = this.deserialize(jsonarray.get(i), p_deserialize_2_, p_deserialize_3_);

              if (aobject[i] instanceof ChatComponentText) {
                ChatComponentText chatcomponenttext = (ChatComponentText) aobject[i];

                if (chatcomponenttext.getChatStyle().isEmpty()
                    && chatcomponenttext.getSiblings().isEmpty()) {
                  aobject[i] = chatcomponenttext.getChatComponentText_TextValue();
                }
              }
            }

            object = new ChatComponentTranslation(s, aobject);
          } else {
            object = new ChatComponentTranslation(s, new Object[0]);
          }
        } else if (jsonobject.has("score")) {
          JsonObject jsonobject1 = jsonobject.getAsJsonObject("score");

          if (!jsonobject1.has("name") || !jsonobject1.has("objective")) {
            throw new JsonParseException("A score component needs a least a name and an objective");
          }

          object =
              new ChatComponentScore(
                  JsonUtils.getJsonObjectStringFieldValue(jsonobject1, "name"),
                  JsonUtils.getJsonObjectStringFieldValue(jsonobject1, "objective"));

          if (jsonobject1.has("value")) {
            ((ChatComponentScore) object)
                .func_179997_b(JsonUtils.getJsonObjectStringFieldValue(jsonobject1, "value"));
          }
        } else {
          if (!jsonobject.has("selector")) {
            throw new JsonParseException(
                "Don\'t know how to turn " + p_deserialize_1_.toString() + " into a Component");
          }

          object =
              new ChatComponentSelector(
                  JsonUtils.getJsonObjectStringFieldValue(jsonobject, "selector"));
        }

        if (jsonobject.has("extra")) {
          JsonArray jsonarray2 = jsonobject.getAsJsonArray("extra");

          if (jsonarray2.size() <= 0) {
            throw new JsonParseException("Unexpected empty array of components");
          }

          for (int j = 0; j < jsonarray2.size(); ++j) {
            ((IChatComponent) object)
                .appendSibling(
                    this.deserialize(jsonarray2.get(j), p_deserialize_2_, p_deserialize_3_));
          }
        }

        ((IChatComponent) object)
            .setChatStyle(
                (ChatStyle) p_deserialize_3_.deserialize(p_deserialize_1_, ChatStyle.class));
        return (IChatComponent) object;
      }
    }
    public JsonElement serialize(
        IChatComponent p_serialize_1_,
        Type p_serialize_2_,
        JsonSerializationContext p_serialize_3_) {
      if (p_serialize_1_ instanceof ChatComponentText
          && p_serialize_1_.getChatStyle().isEmpty()
          && p_serialize_1_.getSiblings().isEmpty()) {
        return new JsonPrimitive(
            ((ChatComponentText) p_serialize_1_).getChatComponentText_TextValue());
      } else {
        JsonObject jsonobject = new JsonObject();

        if (!p_serialize_1_.getChatStyle().isEmpty()) {
          this.serializeChatStyle(p_serialize_1_.getChatStyle(), jsonobject, p_serialize_3_);
        }

        if (!p_serialize_1_.getSiblings().isEmpty()) {
          JsonArray jsonarray = new JsonArray();
          Iterator iterator = p_serialize_1_.getSiblings().iterator();

          while (iterator.hasNext()) {
            IChatComponent ichatcomponent1 = (IChatComponent) iterator.next();
            jsonarray.add(
                this.serialize(ichatcomponent1, ichatcomponent1.getClass(), p_serialize_3_));
          }

          jsonobject.add("extra", jsonarray);
        }

        if (p_serialize_1_ instanceof ChatComponentText) {
          jsonobject.addProperty(
              "text", ((ChatComponentText) p_serialize_1_).getChatComponentText_TextValue());
        } else if (p_serialize_1_ instanceof ChatComponentTranslation) {
          ChatComponentTranslation chatcomponenttranslation =
              (ChatComponentTranslation) p_serialize_1_;
          jsonobject.addProperty("translate", chatcomponenttranslation.getKey());

          if (chatcomponenttranslation.getFormatArgs() != null
              && chatcomponenttranslation.getFormatArgs().length > 0) {
            JsonArray jsonarray1 = new JsonArray();
            Object[] aobject = chatcomponenttranslation.getFormatArgs();
            int i = aobject.length;

            for (int j = 0; j < i; ++j) {
              Object object = aobject[j];

              if (object instanceof IChatComponent) {
                jsonarray1.add(
                    this.serialize((IChatComponent) object, object.getClass(), p_serialize_3_));
              } else {
                jsonarray1.add(new JsonPrimitive(String.valueOf(object)));
              }
            }

            jsonobject.add("with", jsonarray1);
          }
        } else if (p_serialize_1_ instanceof ChatComponentScore) {
          ChatComponentScore chatcomponentscore = (ChatComponentScore) p_serialize_1_;
          JsonObject jsonobject1 = new JsonObject();
          jsonobject1.addProperty("name", chatcomponentscore.func_179995_g());
          jsonobject1.addProperty("objective", chatcomponentscore.func_179994_h());
          jsonobject1.addProperty("value", chatcomponentscore.getUnformattedTextForChat());
          jsonobject.add("score", jsonobject1);
        } else {
          if (!(p_serialize_1_ instanceof ChatComponentSelector)) {
            throw new IllegalArgumentException(
                "Don\'t know how to serialize " + p_serialize_1_ + " as a Component");
          }

          ChatComponentSelector chatcomponentselector = (ChatComponentSelector) p_serialize_1_;
          jsonobject.addProperty("selector", chatcomponentselector.func_179992_g());
        }

        return jsonobject;
      }
    }
  @Override
  public void run() {
    HttpURLConnection connection = null;
    BufferedReader reader = null;

    try {
      connection = (HttpURLConnection) new URL(changelogURL).openConnection();

      connection.connect();

      reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));

      String line = reader.readLine();

      if (line == null) {
        PELogger.logFatal("Update check failed!");
        throw new IOException("No data from github changelog!");
      }

      String latestVersion;
      List<String> changes = Lists.newArrayList();

      latestVersion = line.substring(11);
      latestVersion = latestVersion.trim();

      while ((line = reader.readLine()) != null) {
        if (line.startsWith("###Version")) {
          break;
        }

        if (!line.isEmpty()) {
          line = line.substring(1).trim();
          changes.add(line);
        }
      }

      if (!PECore.VERSION.equals(latestVersion)) {
        PELogger.logInfo(
            "Mod is outdated! Check "
                + curseURL
                + " to get the latest version ("
                + latestVersion
                + ").");

        for (String s : changes) {
          PELogger.logInfo(s);
        }

        if (isServerSide) {
          ChangelogCMD.changelog.addAll(changes);
        } else {
          Minecraft.getMinecraft()
              .thePlayer
              .addChatMessage(
                  new ChatComponentText(
                      String.format(
                          StatCollector.translateToLocal("pe.update.available"), latestVersion)));
          Minecraft.getMinecraft()
              .thePlayer
              .addChatMessage(
                  new ChatComponentText(StatCollector.translateToLocal("pe.update.getit")));

          IChatComponent link = new ChatComponentText(curseURL);
          link.getChatStyle()
              .setChatClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, curseURL));
          Minecraft.getMinecraft().thePlayer.addChatMessage(link);

          Minecraft.getMinecraft()
              .thePlayer
              .addChatMessage(
                  new ChatComponentText(StatCollector.translateToLocal("pe.update.changelog")));
        }
      } else {
        PELogger.logInfo("Mod is updated.");
      }
    } catch (Exception e) {
      PELogger.logFatal("Caught exception in Update Checker thread!");
      e.printStackTrace();
    } finally {
      if (reader != null) {
        try {
          reader.close();
        } catch (IOException e) {
          PELogger.logFatal("Caught exception in Update Checker thread!");
          e.printStackTrace();
        }
      }

      if (connection != null) {
        connection.disconnect();
      }

      if (isServerSide) {
        hasRunServer = true;
      } else {
        hasRunClient = true;
      }
    }
  }
 /**
  * Notifies this sender of some sort of information. This is for messages intended to display to
  * the user. Used for typical output (like "you asked for whether or not this game rule is set, so
  * here's your answer"), warnings (like "I fetched this block for you by ID, but I'd like you to
  * know that every time you do this, I die a little inside"), and errors (like "it's not called
  * iron_pixacke, silly").
  */
 public void addChatMessage(IChatComponent message) {
   this.buffer.append(message.getUnformattedText());
 }
Beispiel #22
0
  public void processCommand(ICommandSender par1ICommandSender, String[] par2ArrayOfStr) {
    if (par2ArrayOfStr.length >= 1) {
      String var3 = par2ArrayOfStr[0];
      double var4 = (double) par1ICommandSender.getCommandSenderPosition().posX + 0.5D;
      double var6 = (double) par1ICommandSender.getCommandSenderPosition().posY;
      double var8 = (double) par1ICommandSender.getCommandSenderPosition().posZ + 0.5D;

      if (par2ArrayOfStr.length >= 4) {
        var4 = func_110666_a(par1ICommandSender, var4, par2ArrayOfStr[1]);
        var6 = func_110666_a(par1ICommandSender, var6, par2ArrayOfStr[2]);
        var8 = func_110666_a(par1ICommandSender, var8, par2ArrayOfStr[3]);
      }

      World var10 = par1ICommandSender.getEntityWorld();

      if (!var10.blockExists((int) var4, (int) var6, (int) var8)) {
        notifyAdmins(par1ICommandSender, "commands.summon.outOfWorld", new Object[0]);
      } else {
        NBTTagCompound var11 = new NBTTagCompound();
        boolean var12 = false;

        if (par2ArrayOfStr.length >= 5) {
          IChatComponent var13 = func_147178_a(par1ICommandSender, par2ArrayOfStr, 4);

          try {
            NBTBase var14 = JsonToNBT.func_150315_a(var13.getUnformattedText());

            if (!(var14 instanceof NBTTagCompound)) {
              notifyAdmins(
                  par1ICommandSender, "commands.summon.tagError", new Object[] {"Not a valid tag"});
              return;
            }

            var11 = (NBTTagCompound) var14;
            var12 = true;
          } catch (NBTException var17) {
            notifyAdmins(
                par1ICommandSender, "commands.summon.tagError", new Object[] {var17.getMessage()});
            return;
          }
        }

        var11.setString("id", var3);
        Entity var18 = EntityList.createEntityFromNBT(var11, var10);

        if (var18 != null) {
          var18.setLocationAndAngles(var4, var6, var8, var18.rotationYaw, var18.rotationPitch);

          if (!var12 && var18 instanceof EntityLiving) {
            ((EntityLiving) var18).onSpawnWithEgg((IEntityLivingData) null);
          }

          var10.spawnEntityInWorld(var18);
          Entity var19 = var18;

          for (NBTTagCompound var15 = var11;
              var15.func_150297_b("Riding", 10);
              var15 = var15.getCompoundTag("Riding")) {
            Entity var16 = EntityList.createEntityFromNBT(var15.getCompoundTag("Riding"), var10);

            if (var16 != null) {
              var16.setLocationAndAngles(var4, var6, var8, var16.rotationYaw, var16.rotationPitch);
              var10.spawnEntityInWorld(var16);
              var19.mountEntity(var16);
            }

            var19 = var16;
          }

          notifyAdmins(par1ICommandSender, "commands.summon.success", new Object[0]);
        } else {
          notifyAdmins(par1ICommandSender, "commands.summon.failed", new Object[0]);
        }
      }
    } else {
      throw new WrongUsageException("commands.summon.usage", new Object[0]);
    }
  }
 /**
  * Invoked when disconnecting, the parameter is a ChatComponent describing the reason for
  * termination
  */
 public void onDisconnect(IChatComponent reason) {
   logger.info(this.func_147317_d() + " lost connection: " + reason.getUnformattedText());
 }
  public static List<IChatComponent> func_178908_a(
      IChatComponent p_178908_0_,
      int p_178908_1_,
      FontRenderer p_178908_2_,
      boolean p_178908_3_,
      boolean p_178908_4_) {
    int i = 0;
    IChatComponent ichatcomponent = new ChatComponentText("");
    List<IChatComponent> list = Lists.<IChatComponent>newArrayList();
    List<IChatComponent> list1 = Lists.newArrayList(p_178908_0_);

    for (int j = 0; j < ((List) list1).size(); ++j) {
      IChatComponent ichatcomponent1 = (IChatComponent) list1.get(j);
      String s = ichatcomponent1.getUnformattedTextForChat();
      boolean flag = false;

      if (s.contains("\n")) {
        int k = s.indexOf(10);
        String s1 = s.substring(k + 1);
        s = s.substring(0, k + 1);
        ChatComponentText chatcomponenttext = new ChatComponentText(s1);
        chatcomponenttext.setChatStyle(ichatcomponent1.getChatStyle().createShallowCopy());
        list1.add(j + 1, chatcomponenttext);
        flag = true;
      }

      String s4 =
          func_178909_a(ichatcomponent1.getChatStyle().getFormattingCode() + s, p_178908_4_);
      String s5 = s4.endsWith("\n") ? s4.substring(0, s4.length() - 1) : s4;
      int i1 = p_178908_2_.getStringWidth(s5);
      ChatComponentText chatcomponenttext1 = new ChatComponentText(s5);
      chatcomponenttext1.setChatStyle(ichatcomponent1.getChatStyle().createShallowCopy());

      if (i + i1 > p_178908_1_) {
        String s2 = p_178908_2_.trimStringToWidth(s4, p_178908_1_ - i, false);
        String s3 = s2.length() < s4.length() ? s4.substring(s2.length()) : null;

        if (s3 != null && s3.length() > 0) {
          int l = s2.lastIndexOf(" ");

          if (l >= 0 && p_178908_2_.getStringWidth(s4.substring(0, l)) > 0) {
            s2 = s4.substring(0, l);

            if (p_178908_3_) {
              ++l;
            }

            s3 = s4.substring(l);
          } else if (i > 0 && !s4.contains(" ")) {
            s2 = "";
            s3 = s4;
          }

          ChatComponentText chatcomponenttext2 = new ChatComponentText(s3);
          chatcomponenttext2.setChatStyle(ichatcomponent1.getChatStyle().createShallowCopy());
          list1.add(j + 1, chatcomponenttext2);
        }

        i1 = p_178908_2_.getStringWidth(s2);
        chatcomponenttext1 = new ChatComponentText(s2);
        chatcomponenttext1.setChatStyle(ichatcomponent1.getChatStyle().createShallowCopy());
        flag = true;
      }

      if (i + i1 <= p_178908_1_) {
        i += i1;
        ichatcomponent.appendSibling(chatcomponenttext1);
      } else {
        flag = true;
      }

      if (flag) {
        list.add(ichatcomponent);
        i = 0;
        ichatcomponent = new ChatComponentText("");
      }
    }

    list.add(ichatcomponent);
    return list;
  }
Beispiel #25
0
  /** Executes the click event specified by the given chat component */
  protected boolean handleComponentClick(IChatComponent p_175276_1_) {
    if (p_175276_1_ == null) {
      return false;
    } else {
      ClickEvent clickevent = p_175276_1_.getChatStyle().getChatClickEvent();

      if (isShiftKeyDown()) {
        if (p_175276_1_.getChatStyle().getInsertion() != null) {
          this.setText(p_175276_1_.getChatStyle().getInsertion(), false);
        }
      } else if (clickevent != null) {
        if (clickevent.getAction() == ClickEvent.Action.OPEN_URL) {
          if (!this.mc.gameSettings.chatLinks) {
            return false;
          }

          try {
            URI uri = new URI(clickevent.getValue());
            String s = uri.getScheme();

            if (s == null) {
              throw new URISyntaxException(clickevent.getValue(), "Missing protocol");
            }

            if (!PROTOCOLS.contains(s.toLowerCase())) {
              throw new URISyntaxException(
                  clickevent.getValue(), "Unsupported protocol: " + s.toLowerCase());
            }

            if (this.mc.gameSettings.chatLinksPrompt) {
              this.clickedLinkURI = uri;
              this.mc.displayGuiScreen(
                  new GuiConfirmOpenLink(this, clickevent.getValue(), 31102009, false));
            } else {
              this.openWebLink(uri);
            }
          } catch (URISyntaxException urisyntaxexception) {
            LOGGER.error(
                (String) ("Can\'t open url for " + clickevent), (Throwable) urisyntaxexception);
          }
        } else if (clickevent.getAction() == ClickEvent.Action.OPEN_FILE) {
          URI uri1 = (new File(clickevent.getValue())).toURI();
          this.openWebLink(uri1);
        } else if (clickevent.getAction() == ClickEvent.Action.SUGGEST_COMMAND) {
          this.setText(clickevent.getValue(), true);
        } else if (clickevent.getAction() == ClickEvent.Action.RUN_COMMAND) {
          this.sendChatMessage(clickevent.getValue(), false);
        } else if (clickevent.getAction() == ClickEvent.Action.TWITCH_USER_INFO) {
          ChatUserInfo chatuserinfo =
              this.mc.getTwitchStream().func_152926_a(clickevent.getValue());

          if (chatuserinfo != null) {
            this.mc.displayGuiScreen(
                new GuiTwitchUserMode(this.mc.getTwitchStream(), chatuserinfo));
          } else {
            LOGGER.error("Tried to handle twitch user but couldn\'t find them!");
          }
        } else {
          LOGGER.error("Don\'t know how to handle " + clickevent);
        }

        return true;
      }

      return false;
    }
  }
Beispiel #26
0
  /** Draws the hover event specified by the given chat component */
  protected void handleComponentHover(
      IChatComponent p_175272_1_, int p_175272_2_, int p_175272_3_) {
    if (p_175272_1_ != null && p_175272_1_.getChatStyle().getChatHoverEvent() != null) {
      HoverEvent hoverevent = p_175272_1_.getChatStyle().getChatHoverEvent();

      if (hoverevent.getAction() == HoverEvent.Action.SHOW_ITEM) {
        ItemStack itemstack = null;

        try {
          NBTBase nbtbase = JsonToNBT.getTagFromJson(hoverevent.getValue().getUnformattedText());

          if (nbtbase instanceof NBTTagCompound) {
            itemstack = ItemStack.loadItemStackFromNBT((NBTTagCompound) nbtbase);
          }
        } catch (NBTException var11) {;
        }

        if (itemstack != null) {
          this.renderToolTip(itemstack, p_175272_2_, p_175272_3_);
        } else {
          this.drawCreativeTabHoveringText(
              EnumChatFormatting.RED + "Invalid Item!", p_175272_2_, p_175272_3_);
        }
      } else if (hoverevent.getAction() == HoverEvent.Action.SHOW_ENTITY) {
        if (this.mc.gameSettings.advancedItemTooltips) {
          try {
            NBTBase nbtbase1 = JsonToNBT.getTagFromJson(hoverevent.getValue().getUnformattedText());

            if (nbtbase1 instanceof NBTTagCompound) {
              List<String> list1 = Lists.<String>newArrayList();
              NBTTagCompound nbttagcompound = (NBTTagCompound) nbtbase1;
              list1.add(nbttagcompound.getString("name"));

              if (nbttagcompound.hasKey("type", 8)) {
                String s = nbttagcompound.getString("type");
                list1.add("Type: " + s + " (" + EntityList.getIDFromString(s) + ")");
              }

              list1.add(nbttagcompound.getString("id"));
              this.drawHoveringText(list1, p_175272_2_, p_175272_3_);
            } else {
              this.drawCreativeTabHoveringText(
                  EnumChatFormatting.RED + "Invalid Entity!", p_175272_2_, p_175272_3_);
            }
          } catch (NBTException var10) {
            this.drawCreativeTabHoveringText(
                EnumChatFormatting.RED + "Invalid Entity!", p_175272_2_, p_175272_3_);
          }
        }
      } else if (hoverevent.getAction() == HoverEvent.Action.SHOW_TEXT) {
        this.drawHoveringText(
            NEWLINE_SPLITTER.splitToList(hoverevent.getValue().getFormattedText()),
            p_175272_2_,
            p_175272_3_);
      } else if (hoverevent.getAction() == HoverEvent.Action.SHOW_ACHIEVEMENT) {
        StatBase statbase = StatList.getOneShotStat(hoverevent.getValue().getUnformattedText());

        if (statbase != null) {
          IChatComponent ichatcomponent = statbase.getStatName();
          IChatComponent ichatcomponent1 =
              new ChatComponentTranslation(
                  "stats.tooltip.type." + (statbase.isAchievement() ? "achievement" : "statistic"),
                  new Object[0]);
          ichatcomponent1.getChatStyle().setItalic(Boolean.valueOf(true));
          String s1 =
              statbase instanceof Achievement ? ((Achievement) statbase).getDescription() : null;
          List<String> list =
              Lists.newArrayList(
                  new String[] {
                    ichatcomponent.getFormattedText(), ichatcomponent1.getFormattedText()
                  });

          if (s1 != null) {
            list.addAll(this.fontRendererObj.listFormattedStringToWidth(s1, 150));
          }

          this.drawHoveringText(list, p_175272_2_, p_175272_3_);
        } else {
          this.drawCreativeTabHoveringText(
              EnumChatFormatting.RED + "Invalid statistic/achievement!", p_175272_2_, p_175272_3_);
        }
      }

      GlStateManager.disableLighting();
    }
  }
 public static IChatComponent setColour(IChatComponent msg, EnumChatFormatting colour) {
   msg.getChatStyle().setColor(colour);
   return msg;
 }
Beispiel #28
0
 public void func_175188_a(IChatComponent p_175188_1_, boolean p_175188_2_) {
   this.setRecordPlaying(p_175188_1_.getUnformattedText(), p_175188_2_);
 }