예제 #1
0
  public static void sendBlockPacket(IBlockSync block, EntityPlayer player, int id) {
    if (block instanceof TileEntity) {
      DataWriter dw = getWriter(PacketId.BLOCK_SYNC);
      TileEntity te = (TileEntity) block;
      boolean onServer = !te.getWorldObj().isRemote;

      dw.writeData(te.xCoord, DataBitHelper.WORLD_COORDINATE);
      dw.writeData(te.yCoord, DataBitHelper.WORLD_COORDINATE);
      dw.writeData(te.zCoord, DataBitHelper.WORLD_COORDINATE);
      dw.writeData(id, block.infoBitLength());

      block.writeData(dw, player, onServer, id);

      if (!onServer) {
        dw.sendToServer();
      } else if (player != null) {
        dw.sendToPlayer((EntityPlayerMP) player);
      } else {
        dw.sendToAllPlayersAround(te, BLOCK_UPDATE_RANGE);
      }

      dw.close();
    }
  }
예제 #2
0
 public static void sendToServer(DataWriter dw) {
   if (!Quest.isEditing || QuestingData.isSinglePlayer()) {
     dw.sendToServer();
   }
   dw.close();
 }