public Builder setBotCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
        botCode_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:messages.FrameCommands)
    }

    static {
      defaultInstance = new FrameCommands(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:messages.FrameCommands)
  }

  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_messages_PlayerText_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_messages_PlayerText_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_messages_FrameMessage_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_messages_FrameMessage_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_messages_FrameCommands_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_messages_FrameCommands_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\016aimodule.proto\022\010messages\032\nunit.proto\032\013" +
      "types.proto\032\rterrain.proto\032\rcommand.prot" +
      "o\032\ndraw.proto\"*\n\nPlayerText\022\016\n\006player\030\001 " +
      "\002(\005\022\014\n\004text\030\002 \002(\t\"\341\006\n\014FrameMessage\022\022\n\nfr" +
      "ameCount\030\001 \002(\005\022\016\n\006mouseX\030\033 \002(\005\022\016\n\006mouseY" +
      "\030\034 \002(\005\022\017\n\007screenX\030\004 \002(\005\022\017\n\007screenY\030\005 \002(\005" +
      "\022\035\n\005units\030\006 \003(\0132\016.messages.Unit\022!\n\007bulle" +
      "ts\030\003 \003(\0132\020.messages.Bullet\022!\n\007players\030\024 " +
      "\003(\0132\020.messages.Player\022&\n\014createdUnits\030\007 " +
      "\003(\0132\020.messages.UnitId\022(\n\016destroyedUnits\030",
      "\010 \003(\0132\020.messages.UnitId\022&\n\014morphedUnits\030" +
      "\t \003(\0132\020.messages.UnitId\022$\n\nshownUnits\030\n " +
      "\003(\0132\020.messages.UnitId\022%\n\013hiddenUnits\030\013 \003" +
      "(\0132\020.messages.UnitId\022(\n\016renegadedUnits\030\014" +
      " \003(\0132\020.messages.UnitId\022\023\n\013leftplayers\030\025 " +
      "\003(\005\022+\n\rreceivedTexts\030\026 \003(\0132\024.messages.Pl" +
      "ayerText\022\'\n\rselectedUnits\030\030 \003(\0132\020.messag" +
      "es.UnitId\022\020\n\010sentText\030\r \003(\t\022&\n\nnukeDetec" +
      "t\030\016 \001(\0132\022.messages.Position\022\016\n\006paused\030\017 " +
      "\002(\010\022\016\n\006replay\030\020 \002(\010\022\023\n\013multiplayer\030\021 \002(\010",
      "\022\020\n\010gameover\030\027 \001(\010\022\020\n\010isWinner\030\031 \001(\010\022*\n\016" +
      "screenPosition\030\032 \002(\0132\022.messages.Position" +
      "\022\017\n\007latency\030\035 \002(\005\0228\n\022dynamicTerrainInfo\030" +
      "\022 \002(\0132\034.messages.DynamicTerrainInfo\0220\n\013t" +
      "errainInfo\030\023 \001(\0132\033.messages.StaticTerrai" +
      "nInfo\"\203\002\n\rFrameCommands\022#\n\010commands\030\001 \003(" +
      "\0132\021.messages.Command\022\021\n\tgameSpeed\030\002 \001(\021\022" +
      "\020\n\010sendText\030\003 \003(\t\022\016\n\006printf\030\004 \003(\t\022\035\n\005fla" +
      "gs\030\005 \003(\0162\016.messages.Flag\022+\n\014drawCommands" +
      "\030\006 \003(\0132\025.messages.DrawCommand\022*\n\016screenP",
      "osition\030\007 \001(\0132\022.messages.Position\022\017\n\007bot" +
      "Name\030\010 \001(\t\022\017\n\007botCode\030\t \001(\t*1\n\004Flag\022\032\n\026C" +
      "ompleteMapInformation\020\000\022\r\n\tUserInput\020\001B$" +
      "\n\030org.bwapi.proxy.messagesB\010Messages"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_messages_PlayerText_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_messages_PlayerText_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_messages_PlayerText_descriptor,
              new java.lang.String[] { "Player", "Text", });
          internal_static_messages_FrameMessage_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_messages_FrameMessage_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_messages_FrameMessage_descriptor,
              new java.lang.String[] { "FrameCount", "MouseX", "MouseY", "ScreenX", "ScreenY", "Units", "Bullets", "Players", "CreatedUnits", "DestroyedUnits", "MorphedUnits", "ShownUnits", "HiddenUnits", "RenegadedUnits", "Leftplayers", "ReceivedTexts", "SelectedUnits", "SentText", "NukeDetect", "Paused", "Replay", "Multiplayer", "Gameover", "IsWinner", "ScreenPosition", "Latency", "DynamicTerrainInfo", "TerrainInfo", });
          internal_static_messages_FrameCommands_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_messages_FrameCommands_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_messages_FrameCommands_descriptor,
              new java.lang.String[] { "Commands", "GameSpeed", "SendText", "Printf", "Flags", "DrawCommands", "ScreenPosition", "BotName", "BotCode", });
          return null;
        }
      }