public static void drawSplitString(FontRenderer fontRenderer,String string,int x,int y,int width,int colour){
  fontRenderer.resetStyles();
  fontRenderer.textColor=colour;
  List<String> list=fontRenderer.listFormattedStringToWidth(string,width);
  FloatBuffer currentGLColor=BufferUtils.createFloatBuffer(16);
  int line=0;
  for (Iterator<String> iterator=list.iterator(); iterator.hasNext(); y+=fontRenderer.FONT_HEIGHT) {
    String next=iterator.next();
    if (line > 0) {
      int currentColour=fontRenderer.textColor;
      GL11.glGetFloat(GL11.GL_CURRENT_COLOR,currentGLColor);
      int glColourRGBA=((int)(currentGLColor.get(0) * 255) << 16) + ((int)(currentGLColor.get(1) * 255) << 8) + ((int)(currentGLColor.get(2) * 255));
      if (glColourRGBA != currentColour) {
        int j=0;
        for (; j < fontRenderer.colorCode.length; j++)         if (fontRenderer.colorCode[j] == glColourRGBA) {
          String code=Integer.toHexString(j % 16);
          next='\u00a7' + code + next;
          break;
        }
      }
    }
    fontRenderer.drawString(next,x,y,colour,false);
  }
}

public static void drawSplitString ( FontRenderer fontRenderer , String string , int x , int y , int width , int colour ) { fontRenderer . resetStyles ( ) ; fontRenderer . textColor = colour ; List < String > list = fontRenderer . listFormattedStringToWidth ( string , width ) ; FloatBuffer currentGLColor = BufferUtils . createFloatBuffer ( 16 ) ; int line = 0 ; for ( Iterator < String > iterator = list . iterator ( ) ; iterator . hasNext ( ) ; y += fontRenderer . FONT_HEIGHT ) { String next = iterator . next ( ) ; if ( line > 0 ) { int currentColour = fontRenderer . textColor ; GL11 . glGetFloat ( GL11 . GL_CURRENT_COLOR , currentGLColor ) ; int glColourRGBA = ( ( int ) ( currentGLColor . get ( 0 ) * 255 ) << 16 ) + ( ( int ) ( currentGLColor . get ( 1 ) * 255 ) << 8 ) + ( ( int ) ( currentGLColor . get ( 2 ) * 255 ) ) ; if ( glColourRGBA != currentColour ) { int j = 0 ; for ( ; j < fontRenderer . colorCode . length ; j ++ ) if ( fontRenderer . colorCode [ j ] == glColourRGBA ) { String code = Integer . toHexString ( j % 16 ) ; next = '§' + code + next ; break ; } } } fontRenderer . drawString ( next , x , y , colour , false ) ; } }
custom implementation of drawing a split string because mojang ' s doesn ' t reset text colour between lines > ___ >
